.Net Core Roadmap 2.1 Part 1
.Net Core Roadmap 2.1 Part 2
網頁
▼
2018年6月8日 星期五
Asp.Net Core 2.1 實作 https超簡單
參考資料
ASP.NET Core 2.1 roadmap
Enforce HTTPS in ASP.NET Core (2.1)
之前開發 1.0時,因為我的程式會直接包成 docker image並佈署在 CentOS上,要設定網頁強制走 https好像不是那麼容易,想不到在 2.1的版本上,微軟很給力的讓整個設定變方便了,真的要給個讚
在 2.1基本產生的專案,在 development mode就會預設給你一個 ceterficate用,不用擔心憑證從那裡來
ASP.NET Core 2.1 roadmap
Enforce HTTPS in ASP.NET Core (2.1)
之前開發 1.0時,因為我的程式會直接包成 docker image並佈署在 CentOS上,要設定網頁強制走 https好像不是那麼容易,想不到在 2.1的版本上,微軟很給力的讓整個設定變方便了,真的要給個讚
在 2.1基本產生的專案,在 development mode就會預設給你一個 ceterficate用,不用擔心憑證從那裡來
2018年6月7日 星期四
Boatswain beta - docker container log記錄器
Boatswain官網
在安裝 docker並已經有 container在服務的本機端安裝一個 boatswan服務,可以把 docker container log上傳至 Boaswain 雲端上,這樣就可以在這邊查詢到所有 docker log資訊
我的 docker跑在 CentOS上,可以參考 在 CentOS 安裝 Boatswain
安裝前需要在 Boatswain官網上先註冊一個帳號,取得一個 token,在安裝時必需把這個 token字串放到 etc/boatswain.yml內
在安裝 docker並已經有 container在服務的本機端安裝一個 boatswan服務,可以把 docker container log上傳至 Boaswain 雲端上,這樣就可以在這邊查詢到所有 docker log資訊
我的 docker跑在 CentOS上,可以參考 在 CentOS 安裝 Boatswain
安裝前需要在 Boatswain官網上先註冊一個帳號,取得一個 token,在安裝時必需把這個 token字串放到 etc/boatswain.yml內
2018年4月10日 星期二
ThunderBird 不使用Theme Font & Size Changer方式變更字型大小
參考網址:https://addons.mozilla.org/zh-TW/thunderbird/addon/theme-font-size-changer-for-tb/reviews/
請至目錄 C:\Users\YourName\AppData\Roaming\Thunderbird\Profiles\xxxxxx.default 下建立一個目錄為 chrome,在 chrome目錄再建立一檔案為 userChrome.css,再把下列文字 copy至檔案內儲存後重新開啟 thunderbird即可
/*
* Do not remove the @namespace line -- it's required for correct functioning
*/
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */
/*
* Make all the default font sizes 11 pt:
*/
* {
font-size: 11pt !important;
font-family: Arial !important;
}
請至目錄 C:\Users\YourName\AppData\Roaming\Thunderbird\Profiles\xxxxxx.default 下建立一個目錄為 chrome,在 chrome目錄再建立一檔案為 userChrome.css,再把下列文字 copy至檔案內儲存後重新開啟 thunderbird即可
/*
* Do not remove the @namespace line -- it's required for correct functioning
*/
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */
/*
* Make all the default font sizes 11 pt:
*/
* {
font-size: 11pt !important;
font-family: Arial !important;
}
2018年4月1日 星期日
Face recognition, 自家人的臉部識別 - machine learning tensorflow CNN + Mobilenet SSD
我不會建立 model,但希望可以了解 machine learning的原理和應用,所以就試著找找好玩的東西,才發現台灣有好多優秀的人才在作這一塊,程式寫很久的我很習慣處理邏輯, if else用的很多,但對於 machine learning這種東西完全是不能理解的,因為不用自己寫邏輯的部份,系統就會透過 training後就可以作出回答,到現在我才慢慢習慣它
學 machine learning現在最流行的應該是 TensorFlow了,而使用 tensorflow的話, 一般入門者最好看看 Keras,有大陸同胞翻譯的中文說明可以看,有興趣的人相信在這邊可以找到很多資訊的
2018年3月31日 星期六
使用 VSCode開發 python
Anaconda安裝程式會問你需不需也安裝 VSCode,安裝之後如果 python有建立虛擬環境的話,比如要建一個 tensorflow用的需要 python 3.5的話,這時就要設定 VSCode的 Path
作法請參考 Configuring Python environments
先按下 Ctrl + Shift + P後輸入 python:Select Interpreter後就可以選擇其環境
作法請參考 Configuring Python environments
先按下 Ctrl + Shift + P後輸入 python:Select Interpreter後就可以選擇其環境
2018年3月28日 星期三
SQL Server Performance - Block, SQL, Open Trans, Lock
針對 SQL Server,我不是 DBA,但是還是可以透過系統的資訊查詢到可能有問題的節點。
先檢查 DB Server CPU, RAM, I/O的執行狀況,離峰與尖峰的時段的情況,有 Whatsup可用的話,定時捉取 Server資訊比較方便。
查詢那些 SQL秏用的時間比較多,可以用下列 SQL 查詢,最主要看的是每次平均執行最長的前 20,看是否再作 SQL Tuning或是建立 Index方式可以改善
select * from (SELECT TOP 20
substring(ST.text, ( QS.statement_start_offset / 2 ) + 1,
( ( case statement_end_offset when -1 then DATALENGTH (st.text) else QS.statement_end_offset end - qS.statement_start_offset ) / 2 ) + 1 ) as statement_text ,
total_worker_time / 1000000.0 as total_worker_time_second,
execution_count,
( total_worker_time / 1000000.0 ) / execution_count as avg_worker_time_second,
total_logical_reads,
total_logical_reads / execution_count as avg_logical_reads,
qp.query_plan ,creation_time,last_execution_time
,CONVERT(varchar(max),sql_handle,2) as sql_handle
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle ) st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY avg_worker_time_second DESC
) a
查詢 Block資訊,看有那些 process 造成塞車,要把源頭解決,這部份 SQL Server有標準報表,而我是寫一隻 procedure定期執行,可以把當下的情況記錄下來,如果有一隻 process一直塞成塞車的情況,就可以大約知道塞了多久,前不久才發現有人使用 TOAD for SQL Server可以造成 block的狀況,而且有 2個多小時。不知道是人的問題還是 TOAD的問題
SELECT 0 as spid ,blocked
FROM ( SELECT * FROM master..sysprocesses WHERE blocked > 0 ) a
WHERE NOT EXISTS ( SELECT * FROM master..sysprocesses WHERE a.blocked = spid AND blocked > 0 )
UNION
SELECT spid ,blocked
FROM master..sysprocesses
WHERE blocked > 0;
查詢 process 狀況,每一個 connection 連線狀況,如果是 client/server的軟体連線到 DB上,當一個使用者使用系統時,在 DB的部份就可能會發現一次就會好幾個 process產生,最主要這邊要看是否有 open_tran >= 1,執行很久的就要注意,尤其 status 還是 sleeping的就是馬上要解決的 process,看是那一個程式連線到 DB的可能要關掉
select spid,loginame,hostname,program_name
, login_time,last_batch ,text,open_tran, blocked
,CONVERT(varchar(max),sql_handle,2) as sql_handle
,status,Cmd,s.DBID
from master.sys.sysprocesses s CROSS APPLY sys.dm_exec_sql_text(s.sql_handle)
查詢 Lock情況,找出 resource_mode為 X,這部份要先確認 process的執行狀況,正常的情況是 process open_tran = 0,lock就會消失,所以先解決 process的問題後都沒有辦法,再來作 kill process的動作
select * from (SELECT request_session_id AS spid,
resource_type AS rt,
resource_databASe_id AS rdb,
(CASE resource_type
WHEN 'OBJECT' then object_name(resource_ASsociated_entity_id)
WHEN 'DATABASE' then '<db_name>'
ELSE
(SELECT object_name(object_id) FROM sys.partitions
WHERE hobt_id = resource_ASsociated_entity_id) END) AS objname,
resource_description AS rd,
request_mode AS rm,
request_status AS rs
FROM sys.dm_tran_locks ) a
where 1=1
先檢查 DB Server CPU, RAM, I/O的執行狀況,離峰與尖峰的時段的情況,有 Whatsup可用的話,定時捉取 Server資訊比較方便。
查詢那些 SQL秏用的時間比較多,可以用下列 SQL 查詢,最主要看的是每次平均執行最長的前 20,看是否再作 SQL Tuning或是建立 Index方式可以改善
select * from (SELECT TOP 20
substring(ST.text, ( QS.statement_start_offset / 2 ) + 1,
( ( case statement_end_offset when -1 then DATALENGTH (st.text) else QS.statement_end_offset end - qS.statement_start_offset ) / 2 ) + 1 ) as statement_text ,
total_worker_time / 1000000.0 as total_worker_time_second,
execution_count,
( total_worker_time / 1000000.0 ) / execution_count as avg_worker_time_second,
total_logical_reads,
total_logical_reads / execution_count as avg_logical_reads,
qp.query_plan ,creation_time,last_execution_time
,CONVERT(varchar(max),sql_handle,2) as sql_handle
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle ) st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY avg_worker_time_second DESC
) a
查詢 Block資訊,看有那些 process 造成塞車,要把源頭解決,這部份 SQL Server有標準報表,而我是寫一隻 procedure定期執行,可以把當下的情況記錄下來,如果有一隻 process一直塞成塞車的情況,就可以大約知道塞了多久,前不久才發現有人使用 TOAD for SQL Server可以造成 block的狀況,而且有 2個多小時。不知道是人的問題還是 TOAD的問題
SELECT 0 as spid ,blocked
FROM ( SELECT * FROM master..sysprocesses WHERE blocked > 0 ) a
WHERE NOT EXISTS ( SELECT * FROM master..sysprocesses WHERE a.blocked = spid AND blocked > 0 )
UNION
SELECT spid ,blocked
FROM master..sysprocesses
WHERE blocked > 0;
查詢 process 狀況,每一個 connection 連線狀況,如果是 client/server的軟体連線到 DB上,當一個使用者使用系統時,在 DB的部份就可能會發現一次就會好幾個 process產生,最主要這邊要看是否有 open_tran >= 1,執行很久的就要注意,尤其 status 還是 sleeping的就是馬上要解決的 process,看是那一個程式連線到 DB的可能要關掉
select spid,loginame,hostname,program_name
, login_time,last_batch ,text,open_tran, blocked
,CONVERT(varchar(max),sql_handle,2) as sql_handle
,status,Cmd,s.DBID
from master.sys.sysprocesses s CROSS APPLY sys.dm_exec_sql_text(s.sql_handle)
查詢 Lock情況,找出 resource_mode為 X,這部份要先確認 process的執行狀況,正常的情況是 process open_tran = 0,lock就會消失,所以先解決 process的問題後都沒有辦法,再來作 kill process的動作
select * from (SELECT request_session_id AS spid,
resource_type AS rt,
resource_databASe_id AS rdb,
(CASE resource_type
WHEN 'OBJECT' then object_name(resource_ASsociated_entity_id)
WHEN 'DATABASE' then '<db_name>'
ELSE
(SELECT object_name(object_id) FROM sys.partitions
WHERE hobt_id = resource_ASsociated_entity_id) END) AS objname,
resource_description AS rd,
request_mode AS rm,
request_status AS rs
FROM sys.dm_tran_locks ) a
where 1=1
2018年2月26日 星期一
Line Bot 加入選單
目前有兩種方式可以加入選單
方法1 使用 Messaging API的方式,可以達到動態設定
方法1 使用 Messaging API的方式,可以達到動態設定
如果要使用 Messaging API 可以參考 官方 API參考
方法 2使用 Line Manager內設定,可以設定多個並指定日期
在 Line Manager請點選建立圖文影音內容,請新增一個圖文選單,相關欄位請輸入,有6格或 4格可以選擇,下列的方式是用文字 + 圖標方式,是比較簡單的,也可以用圖片製作,輸入完成之後就儲存
到基本設定請把行動官網選單設為隱藏
設定完成之後,使用手機開啟 Line bot應該就可以看到如下的畫面了
需要建立 rich menu,上傳 rich menu image ,設定別名,指定預設 menu等作業,不同作業有不同的 API (網址),帶入參數除了 token之外,其它大部份一般都是用 json格式,使用者可以實作程式控管,但如果不常變動,建議可以使用 Postman來完成工作即可
背景圖的繪製可以至 Pixlr.com 完成
在 Line Manager請點選建立圖文影音內容,請新增一個圖文選單,相關欄位請輸入,有6格或 4格可以選擇,下列的方式是用文字 + 圖標方式,是比較簡單的,也可以用圖片製作,輸入完成之後就儲存
到基本設定請把行動官網選單設為隱藏
設定完成之後,使用手機開啟 Line bot應該就可以看到如下的畫面了
2018年1月11日 星期四
ThunderBird Theme Font & Size Changer插件不能用了
參考文章:
Review for Theme Font & Size Changer for TB by mrx2020
目前發現有的 plug-in不再支援新版的 thunderbird,比如Theme Font & Size Changer,這部份有方式可以解決,先要下原本的 plug-in,副檔名為 .xpi再解壓縮後,修改 bootstrap的程式碼,改完再重新壓縮,使用用不同名稱的 .xpi file後使用檔案更新的方式安裝 plug-in
Review for Theme Font & Size Changer for TB by mrx2020
目前發現有的 plug-in不再支援新版的 thunderbird,比如Theme Font & Size Changer,這部份有方式可以解決,先要下原本的 plug-in,副檔名為 .xpi再解壓縮後,修改 bootstrap的程式碼,改完再重新壓縮,使用用不同名稱的 .xpi file後使用檔案更新的方式安裝 plug-in