2020年1月31日 星期五

If somethings difficult or painful, do it more often.


If somethings difficult or painful, do it more often.

這句話似乎有點黑色幽默。你知道我在哪邊看到它的嗎? 是Azure DevOps的教材中。不可思議吧,剛看到的那刻我一頭霧水,它是怎麼會這麼不搭的出現在教材裡?

然後,我努力地搜尋,發現第一次出現這句話相關的內容,是在Martin Fowler的blog:
https://martinfowler.com/bliki/FrequencyReducesDifficulty.html

它讓我想起以前在某本書上讀到的一段話,『如果你想成功,就拼命去做自己明知該做但卻不想面對的那些事情。』理由很簡單,因為我們始終得去面對我們該面對的事情…早晚而已。

為何要盡早且頻繁的去做那些我們不想做的事情呢,Martin Fowler給了三個看法。分別是 Smaller chunks、Feedback、Practice。

越討厭的事情就要越早做,免得積壓起來變成一大塊,那時候你就更不想做了。而且,一小塊一小塊的去進行,比起特別空出一段時間一次做完,其實來的輕省的多。Martin Fowler提到Database migrations就是這樣,我覺得其實不只,根本重構也是。

(平常有掃地,過年的大掃除就可以輕鬆一點;每天做一點功課,就不用期末前拼命趕報告K書的概念…)

而一小塊一小塊地進行,更容易讓我們即時取得反饋(不管是來自外在環境的、或是來自客戶的),這樣可以讓我們經常持續性的檢視自己的方向是否正確,如果把討厭的事情堆積起來,等到非做不可的那一天才做,那些會造成你卡關的問題常常來的讓你措手不及。

(平時不運動,等到發現自己身體有問題才開始運動,你的體能和身體狀況往往已經吃不消了的概念)

最後一件事情,就是『練習』。
確實,很多事情看起來很難(不然我們也不會想要逃避它),但當我們去面對它,常常練習之後,它會開始變得容易,如此反覆進行之後,本來看起來很困難的事情,慢慢的你會越來越熟悉和上手,這時候原本的難度會開始漸漸消失,困難的事情也就變得不再那麼困難了。

藉由反覆練習,你會熟悉踩過的坑和需要注意的事項,久而久之將變成習慣,在外界的人眼中,你似乎是天生好手,但你知道,其實也不過是因為你常常練習罷了。

很有趣吧。

If somethings difficult or painful, do it more often.

所以,我現在得要去準備上課的教材了...

對了,有部我很喜歡一部電影, 它的主題曲是 Let's Hurt Tonight,建議你搭配本篇服用。很有意境。

https://www.youtube.com/watch?v=8wGN7D03Nho

2020年1月29日 星期三

用C#開發LINE Bot(35) - 使用 Command Line 發送免費的LINE推播訊息

在command lin(命令列)e發送LINE Notify的免費推播訊息,我想實現這個功能很久了,因為身為系統管理與開發人員,在許多系統管理與維運場合我都會用到。

先來看看執行結果,你可以在命令列中執行底下指令,它會讓你免費發送一則 LINE Notify 訊息給你指定的(訂閱你的通知)的用戶(或群組):

C:\> line notify -n C02hfClbZuqo9cKQk4uckWQdGLYJBgHNKpldgL1ialx -m "test"
{"status":200,"message":"ok"}

上面這段命令中,-n後面的參數是LINE Notify Token,代表某個訂閱者(或群組),而 -m 後面的參數則是你要發送的訊息。

上面指令的執行結果如下:

要怎麼實現呢? 其實很容易。不管是MAC或是PC/Linux環境,你只需要先安裝好 dotnet core 3.1 SDK, 然後執行底下指令:
C:\> dotnet tool install --global line.cli

這會在你的環境上安裝好 LINE CLI,你會看到類似底下的訊息:
您可以使用下列命令來叫用工具: line
已成功安裝工具 'line.cli' ('1.0.15' 版)。


接著,就可以透過底下這樣的指令免費發送訊息給特定用戶了。
C:\> line notify -n C02hfClbZuqo9cKQk4uckWQdGLYJBgHNKpldgL1ialx -m "test"

除了可以發送文字訊息,當然也可以發送貼圖,類似底下這樣:
C:\> line notify -n C02hfClbZuqo9cKQk4uckWQdGLYJBgHNKpldgL1ialx -s 1,2

也可以發送特定圖片:
C:\> line notify -n C02hfClbZuqo9cKQk4uckWQdGLYJBgHNKpldgL1ialx -i [https://圖片url]

請留意上面 -n 後面的參數是 LINE Notify token,這是訂閱你的LINE Notify通知的用戶。是的,本質上它是透過LINE Notify技術來實現,我們曾經介紹過很多次LINE Notify,你可以參考過去我們的介紹。透過簡單的網頁設計,你可以引導用戶訂閱你的LINE Notify服務(當然你必須先申請好LINE Notify服務,這也都是免費的),並透過你建立的網頁來取得訂閱者的Token。

不知道怎麼申請LINE Notify,不會寫網站? 通通沒關係…

不過,即便你不是網頁開發人員,不熟悉網頁設計,也可以免費使用LINE Notify做為系統通知、客戶服務…等機制,我們建立了一個協助非開發人員使用 LINE Notify 的後台網站,你可以直接點選[這裡],先點選左上角的[重新登入]用你的LINE帳號登入:

完成登入後,依照『設定新的 LINE Notify Service』步驟1,2,3,就可以建立好一個LINE Notify服務,並取得訂閱QR Code,將QR Code提供給用戶『以LINE App』掃描,即可讓用戶訂閱你的通知:

一般來說,我們會為我們提供的每一個服務(例如客戶通知訊息、網站通知訊息…etc.)建立一個LINE Notify,例如下圖就建立了兩個。(但建議你用不同的服務名稱,以方便區分)

完成後,你可以點選底下[訂閱連結]取得訂閱QR Code:

然後,在你自己的網站或系統中,透過訂閱連結或是QR Code讓用戶訂閱(如果採用QR Code,用戶可以透過LINE App掃描該QR Code即可訂閱),當用戶訂閱了你的通知,未來你就可以在[發送訊息]的功能中,統一發送訊息給訂閱你通知的用戶。

在[發送訊息]功能頁面中,你就會看到LINE Notify Token:

接著可以自行寫程式或透過剛才我們介紹過的命令列的方式來發送訊息給特定用戶囉。

我時常使用此功能在command line script中作為 DevOps或IT系統的即時訊息通知,不僅完全免費、發送迅速、比簡訊更快速方便。

hope it helps.

-----------

線上課程:https://www.udemy.com/line-bot/
最新實體課程:http://www.studyhost.tw/NewCourses/LineBot
電子書:http://studyhost.blogspot.tw/2017/12/line-bot.html 
實體書:https://www.tenlong.com.tw/products/9789865022662?list_name=srh
LineBotSDK:https://www.nuget.org/packages/LineBotSDK
如果需要即時取得更多相關訊息,可按這裡加入FB專頁。若這篇文章對您有所幫助,請幫我們分享出去,謝謝您的支持。

Related Posts Plugin for WordPress, Blogger...

熱門文章