March
17th,
2020
前言 大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatbot meetup 聊天機器人小小聚 17 @ Dcard” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。 社群 Chatbots Meetup: https://chatbots.kktix.cc/ 本次活動網頁: 活動網址 本次活動的共筆紀錄: https://hackmd.io/@chatbot-tw/meetups-017 由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。 這次場地感謝 Dcard 贊助在 Dcard 的 14 樓辦公室,有一個專門提供給技術社群分享的空間。相當的不錯,也希望有更多的社群來這裡分享。 由於防疫的要求,這也是我第一次參與到全程配戴口找的線下實體活動。感謝主辦單位準備完善的酒精消毒與口罩配戴叮嚀,讓參與的人與工作人員都能夠受到良好的保護。 LINE Platform Update 202003 / 資深開發技術推廣工程師 Evan Lin 傾聽開發者反饋,以 LIFF Server API 為例: LINE 對於開發者的反饋是相當重視的,歡迎每一位開發者與我們共同成長,互信與互惠的經營著這個平台。在 2020/01/21 的時候曾經在網站上宣布著 LIFF Server API 即將在三月底停止功能之後,收到了許多開發者的回覆,對於與客戶之間的合作方式將會因為 LIFF Server API 的停用而造成莫大的困擾。 DevRel 團隊蒐集到相關的案例與討論後與總部的開發團隊討論之後,也很開心的獲得了計畫團隊的了解。將時程停止了,更多訊息可以參考 LIFF v1 API 及停用日期變更。 更好用,讀取更快速的 LINE Developer 網站 2020/01/27 我們曾經宣布開發者網站 (LINE Developer) 有了大幅度的改版,變得更快!更好用!最近有一篇更詳細的文章敘述,他們如何從 Middleman 轉換到 VuePress 的過程,歡迎觀看。 相關文章: LINE Developers site: From Middleman to VuePress 更有效地分眾訊息 - Narrowcast 與 Custom “我們不是不喜歡廣告……我們只是不喜歡與我們無關的廣告。” 同事 Tan 在文章「透過 Narrowcast API 在 LINE Chatbot 上發送”精準”且”討喜”的訊息」裡面有介紹到這個事實。 使用者們並不討厭廣告,但是討厭被跟自己無關,自己不在意的廣告騷擾。經常出現無關的廣告訊息會增加使用者的好友封鎖率。 因此, LINE 在一月底推出了分眾管理的相關 API ,透過主要提供的三種分眾方式: 人口資料挑選方法: 透果使用者的統計資訊來分眾,年齡,性別,甚至是地區,都是可以讓開發者可以根據來分群的方式。 點擊再行銷: 根據發送過的訊息內網頁鏈結的點擊用戶,針對該用戶再來做相關的行銷。 曝光再行銷: 根據發送過的訊息有收到並且已讀的用戶,針對該用戶再來做相關的行銷。 針對以上所以的三種方式還可以做相關的運算比對( OR, AND ) 的方式,更可以讓商家可以找出想要針對的客戶: 九十天前加入的好友,並且為男性的年輕人 點擊過鞋子類商品鏈結的女性好友 這些都是相當好用的範例,更多的範例可以看由廣告與商業部門同仁提供的「LINE 生活圈」官方粉絲團的相關介紹影片。 相關資訊: 「LINE 生活圈」官方粉絲團的相關介紹影片。 透過 Narrowcast API 在 LINE Chatbot 上發送”精準”且”討喜”的訊息 Messaging API narrowcast 英文技術文件正式上線 新的 LIFF App...
繼續閱讀
March
7th,
2020
被討厭的勇氣:自我啟發之父「阿德勒」的教導
原文: 嫌われる勇気 : 自己啓発の源流「アドラー」の教え
作者: 岸見一郎、古賀史健
譯者: 葉小燕
ISBN: 9789861371955
買書推薦網址:http://moo.im/a/biuGKR
前言:
這本書大概算是一本相當知名的書籍,也一直出現在我的推薦清單裡面。其實這一本也看了很久,每每看一個章節都需要不少的時間去反芻裡面的內容,思考許多不同層面的問題。 經常裡面有一些對話,都會讓人掉入過往的時空情境而不斷的思考與反省。
即便我現在的工作職責可能是最不怕被人討厭的(?),但是我之前在工作的時候其實相當的在意人家的看法。所以一直常常聽到人家跟我講過這本書。 但是卻一直沒有想讀完的勇氣(怕被討厭?),所以也一直無法分享。去年買來之後,間斷地看了這本書,時而讓我開心,時而讓我心有戚戚焉。
如果你很怕被同事(朋友)討厭,很怕講錯話被人輕視,很怕問錯問題? 或許你也該來看看這本書。
內容簡介:
為什麼人們一直無法改變?
為什麼自卑感總是揮之不去?
為什麼我們總是活在別人的期待之下?
為什麼現在無法真實感受到幸福?
或許是因為,我們缺少了被別人討厭的勇氣!
一名憤世嫉俗的年輕人來到哲學家的小屋。
當他聽聞哲學家主張「世界無比單純,人人都能幸福」,便決心前來推翻這種謬論。
這個世界明明複雜混亂,哪裡單純了?
如果幸福真的這麼容易,為什麼他還會過得這麼痛苦?
他們開始了你來我往的思考與論辯。
年輕人原以為哲學家不過是昧於現實的昏庸老頭,
但是一夜又一夜過去後,年輕人反而陷入沉思:這世界到底是什麼樣子?
「所謂的自由,就是被別人討厭。」哲學家說。
怎麼會這樣?怎麼會有人想被別人討厭?
想得到真正的自由,又為什麼非得被別人討厭不可呢?
這個世界,究竟是單純,還是複雜?人,到底能不能得到幸福?……
問題不在於「世界」是什麼樣子,而在於「你」是什麼樣子。
簡介來自讀墨:http://moo.im/a/biuGKR
本書的內容主要透過兩個人的對談,一個是年紀很大的長者「哲學家」跟一個由於環境變化開始自我懷疑的「年輕人」。
兩個人一來一往的對談,從傾聽著「年輕人」的煩惱開始。慢慢的到不同深度與方向的人生哲理的對談。主軸都是圍繞著「阿德勒的心理學」。
了解心理創傷
一開始年輕人相當的沮喪,他遇到了「哲學家」而「哲學家」首先也先跟他分析了心理創傷是如何造成的,心理創傷究竟是誰造成的? 心理創傷往往都是都是有某種「目的性」所造成的習慣。孩子的心理創傷是因為渴望著父母注意的習慣。 阿德勒心理學就堅決的反對心理創傷的存在。
不甘現況
許多人都經常為了現況而煩惱,經常的怨天尤人。「年輕人」有著一樣的疑問,而「哲學家」也很有智慧的回答他,有許多人的不安現況都是自己選擇的,自己造成的。 不安於現在的環境,卻又選擇「不去改變」。不安現況的不幸狀態很多時候只是對於自我的憤怒所造成的。
人際關係
接下來討論的就是許多人都有的困擾:「人際關係」。「哲學家」說人際關係是無法避免的困擾,只要你不是孤零零的生活在宇宙中,人就一定會有「人際關係」的困擾。對於自我認定的困擾,其實也是「害怕別人對自我的觀感」所造成的,許多時候的問題,其實都自己所帶來的困擾罷了。 害怕被人討厭,害怕被人排斥,很多時候也是對於自我的懷疑所造成的。
活在當下與舞動人生
人生不是目的論,像是有許多小漣漪的線性才是。會有不段的新事件產生,所以產生了許多的人生的高潮與低潮的交錯。讓每個人都無法以目的性來評論你的人生。重要的是享受當下,每一步慢慢地踏出像是舞蹈一樣的享受著你的人生才是。
心得:
現在終於把這一本書看完,「被討厭的勇氣」講解的裡面與想法或許你我的知道。 但是能夠真正的打動內心深處的又有多少人呢?哲學心裡書籍大概就是如此吧,道理可能被你所知道,但是你卻從來無法同意的。透過這一本書裡面的對談,語言中的激盪,呼應著過往的情境。也或許你才能「稍微」的感受到作者希望你能夠感同身受的一些想法。
把幾個章節的重點打出來很快,但是許多的對談內容其實會衝擊著你的想法,打動到你的內心。 雖然是敘事般的對談,卻能夠透過許多的對話內容讓你深刻的記憶著。像是從底層呼叫出你的記憶般。
很推薦大家看一下這一本書籍,但是又不推薦一口氣把它閱讀完。或許慢慢地閱讀,仔細地品嘗每一個段落,每一個對談想要表達的意境。或許才能體會作者想要表達的道理。
如此一來才能夠真正的把這本書的意境吸收起來。
繼續閱讀
March
5th,
2020
前提 聽 Podcast 是我一個培養聽力跟學習的管道之一,而 Software Engineering Daily 更是我相當喜愛的 Podcast 頻道。 這一次我聽到一個蠻有趣的議題,就是「Go Networking with Sneha Inguva」,內容就是來自 Digital Ocean 的工程師來分享為何 Digital Ocean 要透過 Golang 來打造他們 Networking Team 網路相關的工具。 而這一篇文章主要是以 Sneha Inguva 在 Stange Loop 這個研討會的錄影內容為主,而 Software Engineering Daily 的 Podcast 為輔。 希望能幫大家整理一下相關的內容。 影片鏈結: https://www.youtube.com/watch?v=XqKvgzXCoXc Podcast 相關內容: Go Networking with Sneha Inguva “Networking and Go: An Engineer’s Journey” by Sneha Inguva Networking and Go: An Engineer's Journey (Strangeloop 2019) from Sneha Inguva 投影片與影片: link 介紹主要分成幾個主軸,作為說明為何 Digital Ocean 使用 Golang 作為 Networking programming 的程式語言。 When to use Go 這裡講者總結了一些 Golang 的優點,這邊不詳細介紹了。 Concurrency Server-side Great for CLI tools Easy-To Fuzz-test Easy to write REST/RPC services 上圖解釋了 Digital Ocean 如何 golang 來打造相關的工具。 The network stack 這邊介紹 OSI 的七層架構跟 TCP/IP 的五層架構。這邊就不詳述基本常識的部分。 延伸閱讀: Wiki: OSI model TCP/IP v.s. OSI Model Networking primitives 接下來就開始介紹如何用 Golang 來打造一些網路原生的工具。 先以 Layer 7 的 Load Balancer 來介紹: Use HTTP protocol. Accept client-side connections. Pass client-side request to one of backends. Return server-response back...
繼續閱讀
March
3rd,
2020
大家好,我是來自 LINE 台灣開發者關係與技術推廣部門 (Developer Relations) 的資深開發技術推廣工程師 Evan Lin。 LINE 從 2019 年初在台灣啟動「LINE開發社群計畫」,長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等。 經過了一年多的努力,舉辦了超過三十場的社群聚會,並且有相關的活動。更多細節歡迎參考: LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告。
關於什麼是開發者關係與技術推廣部 (Developer Relations)與開發社群計畫的三個主軸,也歡迎查看一下 2019 年LINE 開發社群計畫活動時程表 。
希望在這裡跟大家分享一下,今年度的開發社群計畫的主軸與一些令人期待的活動。
#更多人參與的可能性:線上互動直播與錄影
收到許多參與者的回饋表示,因為時間與場地距離的限制,許多次的活動都無法及時趕到現場而無法參加, 並且活動後也不容易找到相關的錄影資源。 也由於新冠病毒(COVID-19)疫情的爆發,許多社群的線下活動都受到影響。今年團隊將嘗試開放 LINE 官方帳號 「LINE開發者官方社群」線上直撥的部分,並且也會在之後的官方頻道中(後續補充)補充相關的錄影資源。
校園菁英們看過來: LINE TECH FRESH - 技術新星人才計劃
今年開發社群計畫將計畫往校園開發,除了計畫與相關學校舉辦的學術競賽外,也會舉辦一些跟學校招募與宣傳相關活動。 希望讓許多學校的菁英們更了解 LINE 平台之外,對於打造能夠乘載這些服務的跨國合作方式能夠更了解。也歡迎更多的學生們能加入我們的行列。 更在此年也擴大展開了 LINE TECH Fresh 計畫。
LINE 台灣工程團隊每年透過 LINE TECH FRESH - 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們有機會在國際級科技公司中觀摩學習。LINE TECH FRESH 由兩位經驗豐富的技術專案經理帶領小組團隊,接觸多元化的專案與產品開發,學習業界實際的軟體專案分工,並體驗跨國團隊合作。往年工作內容包含 server、web、mobile app、chatbot、IoT、data、DevOps 等領域,並透過實習熟悉 LINE 平台系統、SDK、API 等.對於軟體開發有熱情、有想法的同學們,千萬別錯過這個任你揮灑創意與衝勁的機會!
更多的內部開發者活動
今年將針對 LINE 內部開發者有設計相關的程式競賽,讓大家在趕專案的同時依舊能發揮創意。一起打造出讓使用者 WOW 的產品。 更多相關計畫正在緊鑼密鼓籌辦中。
如何取得第一手 LINE 開發者關係與技術推廣部資訊
立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼
「LINE開發者官方社群」官方帳號ID:@line_tw_dev (點擊這裡 加入好友)
關於「LINE開發社群計畫」
LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:
2019 年LINE 開發社群計畫活動時程表
LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告
2020 年LINE 開發社群計畫活動時程表
繼續閱讀
February
22nd,
2020
前提
為什麼要學 Go(lang)? Go 有很多缺點說: 沒有 Generic,error handling 很麻煩, Dependency Management .. 種種問題經常被討論。 但是,各位有沒有想過 Go 帶來的優點會是什麼? 當初我們喜歡上 Go(lang) 又是什麼?
Carmen Andoh 在 2017 的 QCon 的這篇演講非常的棒,當時的他還在 Travis CI 任職。這篇演講包含了許多的語言層面的整理與效能評比的數據分析。 最近一次我遇到她是在 Golang Meetup Organizers 聚會上,他代表 Google Go 團隊一起跟大家討論著 Go 十週年慶祝活動的討論。
歡迎各位好好閱讀這篇:
https://www.infoq.com/presentations/go-concurrency-gc/
QCon2017: Carmen Andoh - The Why of Go
網址
講者一開始先就語言層面敘述了程式語言的開發演進,每個語言都有人認為可以演進的部分,所以有著不同語言的演進過程。 到了 2009 年 Go 語言的發展也是如此,一開始 Go 語言經常被抱怨的項目如下:
(參考網址: https://github.com/ksimka/go-is-not-good)
缺少語法糖: 相較於其他語言, Golang 並不存在語法糖。
No generics (沒有泛型) : 這就不解釋了
error handling:
被抱怨的就是會寫太多的
err := foo()
if err != nil {
......
}
No macros or templates
更多部分可以看這篇 https://github.com/ksimka/go-is-not-good
這一頁提到了,現今的環境已經跟三十年前不同了,需要有更適合的程式語言,並且專注解決以下的相關文題:
Multicore processor: 多處理器執行緒
Networked systems: 網路相關處理系統
Massive computation clusters: 大型運算的執行叢集。
Web programming model: 網頁程式的模型。
這邊列出了 Go 對於 21 世紀需要的部分所增強的部分,這也是這一篇演講最希望專注的幾個特點。
Concurrency: 指的是 goroutine 與 channel
Distributed Systems: 對於分散式系統中,需要的 cross compile 。很適合在分散式系統裡面作為 micro-service 部署之用。
Garbage Collection: 這邊就不解釋了。
Code Readibility:
最後這張截圖~來自於 Dave Cheney 在研討會裡面的一句話,個人相當喜歡這句話。 裡面是說「工程師應該是被雇用來解決商業上的問題,而不是再試著維護某些人的程式碼」。
但是經常我們會聽到「通靈工程師」(代表由於交接,或是文件的不足,造就維護人家的程式碼就像是需要通靈一樣)的説法,這些都是 code readibility 的問題。
由於 Golang 本身沒有複雜的「語言糖」,對於代碼的維護上也能夠相對的簡單許多。
這篇演講相當不錯,很適合大家好好專研一下。
Refer:
https://github.com/ksimka/go-is-not-good
繼續閱讀
February
10th,
2020
前提 日前 2020/02/01 ~ 02/02 (FOSDEM: Free and Open source Software Developers’ European Meeting ) 也就是歐洲最大的開源開發者大會(可以解釋成歐洲版本的 COSCUP 嗎?) 裡面有一個專門的 Go DevRoom ,所有的投影片跟影片都有公開出來。 歡迎大家來裡面挖寶!! 投影片與影片鏈結: https://fosdem.org/2020/schedule/track/go/ Advanced debugging techniques of Go code / Andrii Soldatenko 投影片與影片: link 除了 “The state of Go” 這種 keynote 類型的主題之外,第一個讓我想要了解的就是這篇。在 Golang 上面的進階除錯技巧部分。 裡面提到的 debugging skill 主要是透過 https://github.com/go-delve/delve 所提供的相關技巧。相關的技巧包括了: 如何 attach by delve 如何設定 conditional breakpoint 如何透過 delve 來跑 unit test ,就是透過 delve 來跑 test function 我個人很愛用這個,也很常使用。 甚至可以使用 Goland 裡面的 eval 來快速查詢相關數值 最後介紹的技巧就是透過 delve 來 remote debugging docker container ,透過了 docker port expose 將 web app 的 port 轉給 delve (e.g. port 40000) 使用。然後就可以透過 port 40000 來 attach delve debugger 。 參考: link1 link2 最後當然你也會好奇,這些不是 GDB 就可以了嗎?但是其實 GDB 有一些小問題: GDB MacOSX 需要 codesign 如果再 MacOSX 10.13 使用 GDB 舊的版本 8.0.1 才能正常 attach Go app 由於 Golang 在 MacOSX 上面有使用 compress dwarf 這樣會使得 debugging info 無法正確在 GDB 上面顯示出來。 需要再 compiler 的時候加上以下參數。 go build -ldflags=-compressdwarf=false -gcflags=all 才能讓 GDB 看到...
繼續閱讀