2018年2月15日 星期四

唯有偏執狂得以倖存

Only the Paranoid Survive - Andy Grove

還記得葛洛夫嗎? Intel的創辦人之一。他說的這句話,台灣大多翻譯成『唯有偏執狂得以倖存』,乍看之下很難理解,也不太容易關連到日常工作或生活當中的情境。

為什麼我會突然想到這句話? 講個故事。

適逢農曆過年前,由於過年時候必須要往返南北長途開車,所以過年前理當去車廠保養一下,因為一直都在原廠保養,從來沒發生過什麼太大的問題,也剛好在定期保養的時間內,農曆年前又一堆課程、專案,所以預約保養的時間拖到了小年夜的最後一天。

想說換換機油什麼的,應該很快。

沒想到坐在休息室大廳,咖啡都還沒喝兩口,師傅跑出來說:『先生,我跟您解釋一下車子的狀況…』心想,不妙。師傅說:『OO這邊,和XX這邊,有這些問題,另外OOXX應該要換,但…』『最麻煩的是,車子的水箱幫浦漏水很嚴重,這個問題比較大,如果開長途,恐怕有些危險…』

『好吧,那這些換下來要多少錢?今天會好嗎?』我心裡想,錢能解決的問題都是小問題。
『恩,但是,我們這邊現在沒有料件』師傅說。
『那能不能幫我調調看,是不是其他廠有零件可以換?』我問。
師傅為難的說『恩…就是都問過其他廠了,現在剛好都缺貨,要…年後才能夠幫你調料。』頓了一下又說『但,這個問題蠻嚴重的…』

我立刻問『你是說,車這樣沒法開長途嗎?』

師傅回答:『恩…就是你要常常看水箱是不是空了,我們剛才檢查你的水箱是全空的…如果溫度…如果有亮燈,你要立刻停車。』師傅還補了這一句『這問題蠻麻煩的,如果有貨我一定會建議你立刻換…』

『所以說,我目前也沒法做什麼?』我問。
『我們可以把剛才OO和XX這幾個問題先處理,OOXX先換掉…』師傅說。
『那好吧,我在這邊等。』我回答。

回到休息區,越想越不對勁。上網一查,水箱幫浦不貴,但如果掛掉或漏水,確實風險蠻高的,對安全很有疑慮。

怎麼辦?

過年行程已經定了(訂金也付了),現在改搭高鐵(沒票)或租車都來不及。而且就算下去,沒車也挺不方便的。

剛才一邊喝咖啡一邊打開電腦螢幕上寫到一半的code已經沒法吸引我的專注力,我心想,我要怎麼解決這個問題。

--------------------------------------------------------------------

先停在這邊,如果你有耐心讀到這裡,我想問問,如果是你,你怎麼解決這個問題?

---------------------------------------------------------------------

每個人解決的方式不同。

壓抑下煩躁的心情。我想,反正我坐在這邊等也是等,我能做甚麼,來試著改變這個狀況呢?
就在這時候,我不知道為何想到葛洛夫這句話:『Only the Paranoid Survive…』

好吧,既然我不想改行程,我也不想沒自己的車開,那只能試著解決師傅說的『剛好都缺貨』的問題。

怎麼解決?

我上網找了台北所有的保養廠,一家一家打電話去問有沒有這個零件,師傅沒騙我,還真都缺貨,台北打完了,開始打新北,終於打到最後一家,零件部的師傅跟我說,它們沒貨,但系統上看到有一家在新莊的廠有這個料件。

中午12點了。我立即找到正在幫我換輪胎的師傅,跟他說,我問到有料件了,他一臉茫然加不可思議。我說,新莊的XX廠說有料件,你可以幫我調料嗎?

『如果不行,我自己過去拿…』我話還沒講完,師傅就說:『恩…沒關係,我們幫您處理。』他的表情很難言喻,像是有一點點不可置信,加上了一點點的無奈。

我繼續回到休息區,繼續打開NB,等師傅幫我搞定車子。

--------------------------------------------------------------------------

我回頭想…

真的是沒料件嗎? 可能真的沒有,至少,這個廠確實沒有。但師傅有幫我『盡全力』調料件嗎? 我猜也沒有。因為今天是小年夜,大家都想早點回家,萬一真的調到了料件,恐怕是會導致大家都加班這個唯一的結果。(其實我得感謝師傅願意加班)

我又想…如果今天不是我自己的車,是公司的車,我還會這樣積極嗎? 又或者,如果今天,我是請公司的小弟幫我去保養車子,他聽到了師傅這樣說,他會主動地幫我打電話去每一間保養廠問料件嗎? 他會試著想盡辦法幫我解決這個問題嗎?

我想也不會(即便他其實也得困在休息區等上兩三個小時),他依舊會回來告訴我,因為車廠說沒料,所以,我的車過年不能開下去了。而當我接到這樣的消息時,我肯定也已經無能為力,因為今天是小年夜最後一天上班日的傍晚,我當然不能怪公司小弟,也不能怪車廠,我只能接受這個結果。

好在,我是自己來保養車,好在,我是保養自己的車。也好在我想到了葛洛夫的那句話。

我想到了十多年前,我在電子製造業工作的日子。
那家CEO的口頭禪是『使命必達』,他要求同仁必須『當責(accountability)』,十多年前台灣的市場氣氛與工作環境與現在當然大不相同。沉溺在那種工作氣氛中,我們被訓練得碰到問題時,習慣性的總是先想該怎麼解決 ,即便(特別是)這個問題不是自己造成的,而是卡在別人(的配合度)的時候。

當時我幾乎不曾聽過,公司裡有任何一位同仁說,因為誰誰誰(或哪一個上下游廠商)的甚麼問題,所以這件事情沒辦法處理。大部分開會的討論只會聚焦在,那我們現在該怎麼辦?

很神奇的,當我們專注在思考解決方案(而非抱怨或歸責)時,解決方案往往真的就會出現。

十多年後的今天,我開始知道葛洛夫(Andy Grove)所謂的『Only the Paranoid Survive(唯有偏執狂得以倖存)』到底是甚麼意思…



那,葛洛夫最後如何?

毫不令人意外,死了(只要是人,終有一死),Andy Grove卒於2016年,他過世時沒像賈伯斯那樣轟動,但其實他影響程度深遠不輸賈伯斯。

這篇也算是對葛洛夫的致敬和悼念。

2018年2月13日 星期二

使用C#開發Linebot(20) - 不寫一行code完成Linebot的LUIS串接

前陣子,介紹過如何No Code完成Line bot的開發,如果你錯過了,可以看這裡

No Code當然不是一行程式碼都沒有,只是,程式碼骨架我幫你寫好了。你只需要輕鬆地填入相關的Channel Access Token等資訊即可。

而很多同學不滿足,在我們介紹了LUIS(Language Understanding Intelligent Services)之後,當然會想,能不能一行程式碼都不寫,就將Linebot的Web Hook串接到LUIS,完成一個能夠更用戶進行自然語言對談的Chat bot?

可以嗎? 沒問題,有人開口就做給你。

請打開VS2015/VS2017,然後建立一個空的Web專案:

這個畫面似曾相識? 當然,前面我們做過啊。請務必依舊選擇.net framework 4.5.2以上。然後,在下一個畫面中,直接選擇Empty(空)的範本類型,然後請務必(一定一定要)勾選WebAPI:

就這樣,VS2015會幫你建立好一個空專案,,接著,重點來了,請安裝一個nuget套件:

前面做過了,我知道,再一次加深印象,在Nuget套件安裝畫面上,選擇Studyhost.Example.Linebot套件:

按下安裝鈕,安裝完成後,你會看到這個套件已經幫你把程式碼都寫好了。只不過,跟上次不同,這次請把焦點放在TestLUISController:

你會發現,TestLUISController這支WebAPI Controller,就是一隻寫好了的支援LUIS的Line WebHook,你只需要把上面的幾個參數填進去就行,分別是:

  1. channelAccessToken: Linebot的Channel Access Token
  2. AdminUserId: 你建立Linebot的那個帳號(Admin)的UserId
  3. LuisAppId: LUIS App的App ID
  4. LuisAppKey: LUIS App的Key
  5. Luisdomain: LUIS App的domain

上面關於LUIS的幾個參數怎麼來呢?  如果你還對我們介紹過的LUIS有印象,應該會知道LUIS有一個Publish之後的會出現的Enpoint:

其中就有你需要的所有資訊了。

把相關的資訊填入程式碼之後,不用做任何事情,只需要發佈到Azure Web App站台上,並且到Line bot的後台設定一下WebHook,記得位置是 https://你的網站/api/TestLUIS 喔,類似底下這樣:

完成後,你可以試試看,你的Linebot已經可以用你訓練好的LUIS服務做基本的對談了:

由於,我們在連結的LUIS App中,設計了『客戶點餐』和『客訴』兩個intent,因此當用戶跟Line bot點餐的時候,Linebot認得用戶點餐的語句,並且可以分辨出漢堡但(即便『蛋』寫成『但』),且該bot也可以分辨出『你們服務態度很差唷』這句話是『客訴』這個Intent,而非點餐。

輕鬆愉快,透過我們的Nuget套件中的範本,你不用寫任何一行程式碼,只需要設計好LUIS App,並且把該LUIS App的ID, Key, Domain等資訊填入程式碼中,就可以完成支援LUIS的WebHook囉,至於裡面的程式碼究竟寫了什麼呢? 怎麼完成LUIS整合的功能?

請看,完整程式碼如下:

其實非常簡單,我猜不太需要解釋了,如果有甚麼地方需要說明,請留言告訴我囉。

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

Related Posts Plugin for WordPress, Blogger...

熱門文章