發表文章

Quilt Patch 管理操作方法

QUILT in Linux 管理 Patch 的工具 Edit quiltrc file Ubuntu 預設使用 nano cat > ~/.quiltrc <<EOF QUILT_DIFF_ARGS="--no-timestamps--no-index -pab --color=auto“ QUILT_REFRESH_ARGS="--no-timestamps--no-index -pab" QUILT_PATCH_OPTS="--unified" QUILT_DIFF_OPTS="-p" QUILT_SERIES_ARGS="--color=auto" EDITOR="vim" EOF EDITOR="nano" 修改預設的編輯器 在 Ubuntu 14.04 環境下,即使已經新增 .quiltrc 檔案了,但是編輯時,預設還是使用了 nano。 為了要使用熟悉的 vim ,只要在 .bashrc 下,直接 export EDITOR=vim ,就可以解決這個問題了。 --- .basrc --- export EDITOR=vim -------------- Package 先去建立 Package make package/xxx/{clean|prepare|compile} V=s Quilt 進入編譯目錄 cd build_dir/target*/xxx 查詢 Patch 查詢所有 Patch 綠色的字 : 已經 apply 的 patch 橘色的字 : 已經 apply 的 patch, 且是目前最新的 patch 白色的字 : 還沒 apply 的 patch quilt series 查詢 apply Patch quilt applied 查詢未 apply Patch quilt unapplied 查詢下一個 patch quilt next 查詢最新的 patch quilt top 查詢 patch 包含那些檔案 quilt files Push/Pop Patch p...

[VS2017] 自動換行

[VS2017] 自動換行 開啟 Visual Stdio , 選取上面的工具,選項,文字編輯器,所有語言,一般選項中,有個 Word Wrap 選項,將他打勾,後續的文件,程式碼,只要超過編輯器預設的寬度,即會自動換行。

[Middleware] Using Middleware in Asp.Net Core

[Middleware] Using Middleware in Asp.Net Core 因為在 Asp.Net Core 中,它本身是一個管線的概念,Middleware 本身就是坐落在管線之中,所以我們可以透過 Middleware , 一直在管線中,安插我們想要執行的一些程式邏輯。 Middleware Middleware 基本上需要注入 RequestDelegate,也需要實作 Invoke 方法。有一點需要注意的是,在 Invoke 中,一定要呼叫 RequestDelegate 方法, 否則管線運行時,運行到此 middleware 就會停止於目前的管線中。 public class MyMiddleware { public MyMiddleware(RequestDelegate next) { _next = next; } public RequestDelegate _next { get; } public async Task Invoke(HttpContext context) { Console.WriteLine("Hello, I am in Middleware!"); await _next(context); } } Configure // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // 將 Middleware 排入 管線中 app.UseMiddleware<MyMiddleware>(); app.UseMvc(); } Result MiddlewareExam...

[Sniffer] Sniffer Wireless Packet on Mac

[Sniffer] To sniffer wireless packets on Mac 由於對 Mac 不熟,但是想抓一些無線的封包,所以 google 一下,順便筆記。 新增 airport 連結 $ sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport airport $ airport Usage: airport <interface> <verb> <options> <interface> If an interface is not specified, airport will use the first AirPort int erface on the system. <verb is one of the following: prefs If specified with no key value pairs, displays a subset of AirPo rt preferences for the specified interface. Preferences may be configured using key=...

[Swagger&ExtensionService] Adding Swagger and Extensions to ASP.NET Core Web API using XML Documentation

Adding Swagger and Extensions to ASP.NET Core Web API using XML Documentation 之前一直在想,很多服務與設定檔都集中在 Startup.cs 裡面,可是東西服務很多,整個 Configure 與 ConfigureServices 就會越來越肥,但是很不喜歡這樣,很想把類似相關聯的東西集中在一起。Google 看看,做筆記一些筆記,順便研究該怎麼把那些東西從 Startup 中抽離出來。 Startup Startup 類似是以前 ASP.NET 的 Global.asax。它掌管整個系統的設定檔,與要運行那些服務到管線中。它主要分成兩個部分,一個是 Configure 與 ConfigureServices。 ConfigureServices ConfigureServices 主要是掌管註冊服務到的ASP.NET Core的服務容器。 // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } Configure Configure 主要是將要運行的程式或是路由一些設定到後續程式運行的管線中。 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { ...

[JWT] Bearer Token in Asp.Net Core

[JWT] Bearer Token in Asp.Net Core JWT (Json Web Token),主要是為了保護網路安全傳輸的資訊,透過 JWT 可以產生一把權杖,透過這把權杖,來驗證使用者的資訊,細節可以參考附錄4。 JWT Token (權杖) 權杖主要由三個部分所組成(Header, Payload,以及Signature)。 {{"alg":"HS256","typ":"JWT"}.{"nameid":"ROBERT.CHEN@RFF.COM","http://schemas.microsoft.com/ws/2008/06/identity/claims/role":"Admin","exp":1532966362,"iss":"Robert Chen","aud":"Robert For Fun"}} "token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiJST0JFUlQuQ0hFTkBSRkYuQ09NIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQWRtaW4iLCJleHAiOjE1MzI5NjYzNjIsImlzcyI6IlJvYmVydCBDaGVuIiwiYXVkIjoiUm9iZXJ0IEZvciBGdW4ifQ.5wl6YqmVI9IHSDSgFw_i1bW5OpZuiKGJ9s38V0HiGog" Header 表頭 表頭主要定義演算法,與權杖的類別。 {"alg":"HS256","typ":"JWT"} 上面的內容是指 HMACSHA256 演算法,權證的類別為"JWT" Payload ...

[ORM] Using Dapper async in asp.net core 2.1

[ORM] Using Dapper async in asp.net core 2.1 Dapper 是一套輕量化 ORM 套件,有優秀的效能,支援物件對應,與快速查詢,...,等。 Dapper 優點 查詢快速 優秀的效能 支援物件映射 支援預存程序 SP 支援 Bulk 處理 支援強型別 支援動態綁定 支援參數化查詢 支援例舉 Packages Please install Dapper Nuget PM> Install-Package Dapper -Version 1.50.5 建立 Model public class Employee { public int Id {get;set;} public string Name {get;set;} public Datetime birthday {get;set;} } Repository Pattern IRepository public interface IRepository<T> { Task<List<T>> GetAll(); Task<T> GetById(int id); } XXXRepository public class EmployeeRepository : IRepository<Employee> { readonly IConfiguration _config; public EmployeeRepository(IConfiguration config) { this._config = config; } public IDbConnection Connection { get { return new SqlConnection(_config.GetConnectionString("MyConnec...