2018年6月8日 星期五

.Net Core Roadmap 2.1 - Video

.Net Core Roadmap 2.1 Part 1




 .Net Core Roadmap 2.1 Part 2

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用,不用擔心憑證從那裡來

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內


2018年4月10日 星期二

Fullcalendar event 資料來源意視圖 - 使用兩種 web service


參考文章
Fullcalendar 使用 google calendar event資訊 - 使用 javascript

Web服務- 維基百科,自由的百科全書 - Wikipedia

淺談 REST 軟體架構風格 (Part.I) - 從了解 REST 到設計 RESTful!
淺談 REST 軟體架構風格 (Part.II) - 如何設計 RESTful Web Service?


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; 
}

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後就可以選擇其環境




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

2018年2月26日 星期一

Line Bot 加入選單

目前有兩種方式可以加入選單
方法1 使用 Messaging API的方式,可以達到動態設定

如果要使用 Messaging API 可以參考 官方 API參考
需要建立 rich menu,上傳 rich menu image ,設定別名,指定預設 menu等作業,不同作業有不同的 API (網址),帶入參數除了 token之外,其它大部份一般都是用 json格式,使用者可以實作程式控管,但如果不常變動,建議可以使用 Postman來完成工作即可

背景圖的繪製可以至 Pixlr.com 完成


方法 2使用 Line Manager內設定,可以設定多個並指定日期

在 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