[研討會心得] Golang Tokyo Special @Tokyo - 令人難忘的東京 Go 社群分享經驗

前言

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。 今年開始負責率領著台灣的工程師團隊到日本受訓的工作,陸陸續續也率領了二大團的台灣工程師到日本東京去受訓。 每次去東京受訓的時候,其實也有思考到究竟要不要去參加看看東京的社群活動,了解一下日本社群的魅力。

趁著最近剛好當選了 Google 的 Go GDE ,就想說來去東京社群來會會東京的 Go GDE - Takuya Ueda ,於是就開始在 twitter 上面跟他開始聯絡,試著想要在東京出差的機會來跟當地的社群夥伴見見面,並且分享一下我自己成為 GDE 的經過故事。

必須得說 Takuya Ueda 是一個為人相當和善並且熱心助人的社群人,馬上幫我四處尋找場地來舉辦 meetup 。 最後也將場地定在他所工作的公司位於六本木的 Mercari

(Mercari 位於六本木辦公室的 21F ,有個約莫一百五十人的會議室)

六本木大冒險

必須得說忙碌完一天的會議後,還要逼迫自己來一趟日本東京地鐵大冒險的挑戰實在很大。 就在到達了六本木的辦公室之後,也很順利的見面到東京的 Go GDE - Takuya Ueda -san ,其實 10/25 也是 Google Developer Expert Global Summit 的重大日子,但是我卡著一趟 On-Job-Training 並且週末還有 JSDC 的研討會,只好忍痛放棄,而 Ueda-san 也是因為 10/28 要舉辦 GopherCon Tokyo Autumn 2019 於是他也無法去,不過也因為如此,才能夠讓兩個 Go GDE 在東京的社群聚會碰頭。

(Evan Lin and Takuya Ueda 兩個 Go GDE 難得同台)

Go 社群大會面與東京的社群魅力

就在拍完照片沒多久,也發生一個有趣的小插曲。 有一位遠從土耳其來的 Golang Meetup Organizer - Sinan 也來跟我們相見歡,一起討論歐洲,日本與台灣的社群舉辦經過。 於是我們也趁了這個機會來了一個三個社群主辦人大合體的照片。

( Golang Taipei - Evan Lin / Golang Tokyo - Takuya Ueda / Golang Izmir - Sinan)

在日本舉辦社群跟台灣有一些不同的是,台灣會先開放餐飲給來賓們享用。然後第一個講者講完後的休息時間會讓來賓們相互聊天,才會開始第二個講者的議題。

而東京的社群有一些不同,他們習慣讓講者一口氣將兩個議程都講完,然後開放餐點(與啤酒)給來賓們享用與交流的時間。

接下來就開始了,本次聚會的題目分享。

How I become Go GDE / 資深開發技術推廣工程師 Evan Lin

投影片

本次的簡報內容雖然圍繞著如何成為 Go GDE (Google Developer Expert) ,但是不少內容其實在敘述一些工作上的經歷過程。 大致上的內容就是經過了十年在多媒體外商軟體公司的工作之後,為了學習新的 Web 程式語言進而嘗試了不少的程式語言之後,最後選擇了 Golang 來鑽研。並且為了深入的學習 Golang ,而啟動了 Project 52 來作為學習 Golang 的方式,也因此學習了不少的演算法與進階的資料格式的應用方式。當然也因為分享 Golang 與 Project 52 的原因,因為參與了不少的社群活動與研討會,變成了 Golang Taipei 的主辦人之一,透過持續的分享與社群的經營,我才有幸能夠到 LINE 從事 Developer Relations 的工作與變成了 Go GDE 。 內容大綱跟 2016 的 COSCUP 的主講內容很像,只是經過一些修正跟到目前為止的一些心得分享。

其實這也是我自己第一次從事英文的社群演講,雖然有做過一些比較短的演講與即席討論之外,但是準備接近一個小時的英文演講也讓我事前擔心了一下, 整場的流程與節奏掌握的也讓自己相當滿意。

After Party (懇親会)

講完之後就輪到第二位 Go GDE - Takuya Ueda 的演講(似乎沒有投影片),雖然聽不懂日文但是光看投影片還是能感受到講者的深度與能力。

緊接著就是他們的懇親會(也是我們台灣人說的 After party) ,這個時候社群的主辦人就會擺上食物與啤酒來招待所有的來賓,並且歡迎大家邊吃東西,喝啤酒邊聊天。

一開始來找我聊天的就是在日本工作的台灣朋友們,其實整場的聽眾大多也都是外國人與台灣人居多,可能日本人對於使用英文的講題興趣也沒有那麼的高。

(在東京遇見來自台灣工作的朋友)

在社群的討論方面,這裡我也有滿腹的疑問去詢問著東京社群的主辦單位,為什麼要讓餐點與飲料在演講之後上呢?那麼會不會造成聽眾們森氣氣而中途離開呢?

這邊東京的主辦單位也說,雖然也有發生過類似的狀況,但是為了考量讓大家願意聽到最後與跟大家交流,還是決定讓餐點放到最後才放出來。

此外我們也聊到關於報到率的問題,我好奇的問說:「台灣的免費社群句會報到率大約都是七成左右,不知道東京的報到率如何呢?」

日本的主辦單位表示,這個要看城市而定。如果是大城市(像東京)可能是大家的工作太忙碌,選擇太多,以至於報到率也大概是在七成左右。但是如果是比較偏鄉的區域舉辦社群活動就可以來到八成以上。

在這個時候也與來自土耳其的朋友也一起參與討論,他分享說在土耳其的大城市舉辦社群聚會也是如此。這也讓我會心一笑,原來社群真的全世界都一樣啊。

(與土耳其主辦人,台灣的夥伴,右邊是日本 Mercari 的日本協辦夥伴)

活動小結

透過出差日本的機會接觸到日本的社群活動,也跟當地的台灣朋友聊聊東京的工作現況,真的是一個令人難忘的經驗。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)

[研討會心得] 20191022 Chatbots 13 at 台北商業大學

前言

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatb10ts meetup 聊天機器人小小聚 13 @ 天瓏書局 Coding Space” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。

  • 社群 Chatbots Meetup: https://chatbots.kktix.cc/
  • 本次活動網頁: 活動網址
  • 本次活動的共筆紀錄: https://beta.hackfoldr.org/chatbot/

由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。

這次活動也很開心地來到了台北商業大學,最近台北商業大學跟 LINE PROTOSTAR 也舉辦了”LINE Chatbot 對話機器人設計大賽” 也希望大家能夠踴躍報名參賽。

LINE Platform Update 201910 / 資深開發技術推廣工程師 Evan Lin

投影片

本次的分享主要是跟大家分享一下近期平台的相關更新,希望能讓大家第一時間的收到最新的相關消息。

新聞中文版本即日起上線

每一次有新的平台功能更新,都會透過 LINE Developer News 來發布最新的消息,很興奮的告訴大家之後也有繁體中文的新聞消息了。 讓每一個開發者能夠更容易地了解最新平台的訊息。

取得使用者互動資訊

以往再透過 Chatbot 廣播訊息的時候,開發者都想要能夠了解訊息是否可以精準地傳遞給使用者。使用者是否有打開訊息? 是否有點擊鏈結? 是否有播放影片?

之前只能透過 LINE OA 平台上面的 Insight 來查看相關資訊,現在透過 Get Messaging Event API 可以取得以上的資訊了。

GET https://api.line.me/v2/bot/insight/message/event?requestId={requestId}

透過這樣的資訊可以讓你的 Chatbot 去查詢過去的資料,並且學習(或是)判斷之後的訊息該如何精確的哪送。當然這樣的平台也是有一些小筆記如下:

  • 只支援透過 Broadcast API 的訊息
  • OA 需要有 20 個好友以上
  • 僅提供查詢 15 之內的訊息資料。

LIFF v2 的上線

LIFF 從 2018 Q2 公開之後受到大家的喜愛,讓許多的 Web App 在設計的同時也能夠透過 LIFF 的 API 取得所需要的資訊。到了這個月, LIFF 也迎來了最大的更新 LIFF v2 的更新。主要支援的新功能如下:

  • 可在 external browser 使用 LIFF
  • 兼容 Login v2.1,可取得 user profile/email 等資訊
  • Read QR codes
  • 可獲取 user 使用 LIFF 的環境,包含 OS/語言設定/是否以 IAB 開啟等等

而支援的 API 列表部分,大家也可以參考 Engineering Blog 這篇文章

最後,也要跟各位開發者分享。 LINE LIFF Starter 也提供了 v2 的版本了。歡迎大家下載新的版本來試用,體驗一下新的功能。

如果只是想要快速的感受一下新功能,也可以直接加入以下的 OA

更多相關內容:

LINE Bot 上的表單驗證、搜尋以及分頁 / LAE - 郭佳甯

投影片

身為 LINE API Expert 並且是支援 Chatbot 卡米狗的開發者的講者,並且也有持續在開發 LINE Bot Rails framework Kamigo 。透過展示來教導大家如何透過 Kamigo 來製作表單驗證,搜尋跟分頁的功能。

Kamigo 是基於 Rails 的 Bot Framework ,可以快速加入相關的功能,開發 Bot 就像是開發 Web 一樣快。並且整合 LIFF 與 FLEX Message 。

接下來講者透過開發一個「守護寵物聊天機器人」來介紹該如何透過 LIFF 開發一個表單驗證與輸入的聊天機器人。透過讓使用這在 LIFF 表單上面輸入走失的動物資訊,來放在聊天機器人上面讓所有的好友可以一起來幫忙協尋。

相關鏈結:

  • https://github.com/etrex/kamigo

不懂開發也能建立屬於自己的 Chatbot / LAE - 白凱仁

投影片

接下來由 CNTUG 的共同主辦人白凱仁所帶來的很有趣的主題,透過 Kuberbetes 來部署一個 LINE chatbot Operator。

原因是打魔物獵人需要查詢許多魔物的弱點跟容易攻略的弱點,但是要用電腦找太慢了,於是就想說寫一個 LINE chatbot 。但是考量到魔物其實會不斷的修改跟增加,如果好不容易把魔物”火龍“的弱點加入之後,隔天又想查詢”角龍”,那這樣不就得要不斷的修改跟更新你的代碼。

加上最近 Kubernetes Operator 其實是一個熱門的話題,但是一直沒有一個有趣的應用,於是講者就透過 Kubernetes Operator 將 LINE chatbot 部署起來。

(架構圖節錄來自投影片,獲得作者同意)

透過上圖可以了解 LINE Bot Operator 分成 Bot Controller 跟 Event Controller 兩個部分。Event Controller 透過 EventBinding 的方式可以將不同的 event 一一加入卻又不需要撰寫太多額外的代碼。 以下分享一個講者所提到的例子: 透過部署以上的 EventController 只要使用者在對話匡裡面打入”火龍” 或是 “Rathalos” 就顯示出以下那些文字,而要增加一個魔物也很簡單只要再增加另外一個相似的 YAML 設定然後將這個 EventController 部署上去即可。既可以讓會眾了解 Kubernetes Operator 的強大,也可以讓 LINE Chatbot 的開發上有了另外一種新的思路。

閃電秀

三個講者之後,接下來就是介紹這個社群最有魅力的部分就是閃電秀。所有的閃電秀可以參考這篇共筆文章 https://beta.hackfoldr.org/chatbot/ ,由於都是五分鐘的閃電秀,主要內容快速用條列介紹給各位:

  • 如何用Chatbot說921故事 / Afore
    • 簡介:
    • 介紹聯合報如何透過 Chatbot 來讓使用者了解 921 的相關故事,透過與使用者互動的方式來讓使用者閱讀到許多聯合報的深入報導。
  • 921 故事 Chatbot開發心得 / 謝化挺
    • 簡介:
      • 開發人員來分享如何開發 921 的 Chatbot ,主要的資料儲存在 Google Sheet ,原因是希望可以讓 PM 可以快速了解 Chatbot 使用者的互動資料,相當直覺而有效的開發經驗。
  • 介紹即將發佈的 Bottender v1 / C.T Lin

    • 投影片
    • 簡介:
      • 講解 Bottender 正式版本 v1 的發布,也歡迎大家來一起參與使用。
  • 宣傳DevFest活動 / Kevin
    • 報名網址: https://sessionize.com/gdg-devfest-in-taiwan-2019/
  • FunWater - It’s time to rethink about the “single-use plastic” product. / Demo
  • 投影片
    • 簡介:
      • 一個倡導使用飲水機而減少使用寶特瓶的公益聊天機器人專案,透過飲水機 Open Data 幫你尋找最近的飲水機。

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)

[研討會分享] 20191002 LINE Chatbot 對話機器人 API 與 UX 入門課程

前言

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。 很開心 2019/10/02 到台北商業大學跟同學與先進們分享 LINE API 的介紹。 主要參與的內容是 「LINE Chatbot 對話機器人 API 與 UX 入門課程」,也是 【2019 LINE Chatbot對話機器人設計大賽】 前導教學課程,歡迎各位了解。

關於【2019 LINE Chatbot對話機器人設計大賽】

由 LINE Protostar 新星計畫與國立臺北商業大學合辦的「2019 LINE Chatbot 對話機器人設計大賽」活動正式開跑了!   無論你是學生、開發者、產品經理或 CUI 設計師,只要有想法、熱情、有創意,都歡迎你報名,一起創造下一個 LINE Chatbot 的酷炫應用!   ※參賽說明※

  • 不限參賽身份
  • 每組不限人數
  • 決賽以 PPT 簡報,不會寫程式也可參賽
  • 本活動提供賽前講座與教學
  • 總獎金 20 萬元等你來挑戰!

詳請請參考活動官方網站: https://chatbot2019.com

LINE API Introduction / 資深開發技術推廣工程師 Evan Lin

投影片

除了投影片之外,有提到相關內容如下:

  • 提到透過流浪動物之家的 Open Data 製作的 LINE Bot 請參考: (完全開源,歡迎複製)
    • https://github.com/kkdai/LineBotPetNeedMe
  • 提到 LINE Things 的部分,歡迎參考這篇文章:
    • https://engineering.linecorp.com/zh-hant/blog/warm-up-20190531/
  • 關於 LINE Account Link 的開發文件,請參考:
    • https://engineering.linecorp.com/zh-hant/blog/how-to-use-account-link/

活動小結

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)

[研討會心得] 20190917 Chatbots 12 at 天瓏書局 Coding Space

前言

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatb10ts meetup 聊天機器人小小聚 12 @ 天瓏書局 Coding Space” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。

  • 社群 Chatbots Meetup: https://chatbots.kktix.cc/
  • 本次活動網頁: 活動網址
  • 本次活動的共筆紀錄: https://beta.hackfoldr.org/chatbot/

由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。

LINE Platform Update 201909 / 資深開發技術推廣工程師 Evan Lin

投影片

本次的分享主要是跟大家分享一下近期平台的相關更新,希望能讓大家第一時間的到最清楚的相關消息。

###Flex Message 更新

在 LINE Bot 溝通上, Flex Message 給予了許多的相關設計彈性,不僅僅可以設計出許多特殊訊息。想要設計閱讀卡,菜單甚至是小卡片訊息都是可以的。這一次的更新則帶來更多強大的更新,包括了服飾展示卡片,交通行程規劃卡片,甚至是代辦事項跟工作記錄卡片都可以顯示。 其他部分歡迎了解相關文章

LINE Developer Document 支援繁體中文

(網頁: LINE Login overview)

LINE 持續在開發者關係與改善開發者文件持續努力,目前也於近期在 LINE Developer Document 特別提供中文內容,協助開發者更快掌握 LINE 開發相關資訊! 目前涵蓋主題包含:LINE Login, Messaging API, Bot Designer。

Stay Tuned! 更多中文化內容,敬請期待!

LINE SDK 4.x 將在 2019/12/12 End-of-life

LINE 平台功能提供了許多有用的功能,不僅僅可以讓電商網站可以使用,更可以讓 Client App 來作為使用。不論是 LINE Login ,還是一些傳訊給 LINE 好友的相關功能,不論你是使用 iOS 或是 Android 系統的行動裝置開發者都可以使用。 為了提供更安全,確保開發者都能使用最新版本的開發套件,不久前已經聲明 LINE SDK 4.x 即將棄用 (deprecated) 。 現在即將在 2019/12/12 之後就正式停止支援 LINE SDK 4.x ,並且正將相關文件與下載的鏈結都移除。 請開發者們儘早將使用的套件升級。以下的相關文件也會做適當的修改與移除:

更多相關內容:

開放群眾參與的即時訊息查證系統 Cofacts 真的假的 / LAE - 郭冠宏 ggm

投影片

第二場則是由 LINE API Expert - ggm 郭冠宏所帶來關於 Cofacts 的架構分享。 Cofacts (真的假的 LINE ID: @cofacts)的出發來自於太多的民眾對於不確定的新聞消息的轉傳,造成不必要的過度恐慌或是不實訊息的散佈。 Cofacts 的運作流程如下:

  • 在聊天室收到轉傳訊息 (Receive message in chatroom)
  • 轉傳給 Cofacts (Forward to Cofacts)
  • 取得查證資訊 (Get auto-response)
  • 轉傳回原聊天室 (Forward back to source chatroom)

而整個系統有分成兩大塊平台,一個是使用者回報與收到編輯審核結果的回覆。另外一個則是負責協助審核新聞資訊的編輯系統。大致上架構圖如下:

雖然看似單純的回覆流程,但是由於回覆之後還會牽扯到回報的使用者覺得有沒有正確。使得整體設計上需要加上一個 “狀態” (state) 的設計,也使得整個使用者回覆的訊息流程變得需要更多的調整與優化。

這整張系列圖敘述了使用者轉傳新聞後可能出現的相關狀態圖,也很建議讓其他開發者來了解一個希望有使用者回覆與貢獻的互動溝通介面中需要多少的狀態敘述圖。很建議大家好好的閱讀這篇投影片的內容。

聊天機器人與社群經營 / 撒景賢

講者主要分享透過 Chat Bot 經營生酮飲食社團的經驗談。

Chatbot UX 設計經驗法則與案例分享 / 溫明輝

相關文章

最後則由國立台北商業大學商業設計與管理系副教授溫教授來幫大分享 Chatbot UX 設計經驗法則與案例分享。身為兩個在 LINE 上面相當成功的 LINE Bot - 微股力與記帳雞產品的幕後指導教授,溫教授分享了許多在 Chatbot 的特性與 Chatbot UX (User Experience) 設計上需要注意的地方。 以下紀錄幾個重點:

App 成功無法直接複製

  • LINE bot 可以主動提醒
  • 群組效應

Chatbot 使用者某些時不是來聊天

  • 舉凡記帳機或是微股力使用者重要不是來聊天,可能有某些使用目的性。
  • 聊天功能很多時間才是提醒使用者的用處(尤其在群組內,有趣的回覆有效提醒使者)

擬人化 / 機器主張

  • TaxiGo 主要就是將功能完整呈現,而不是要擬人化。
  • Chatbot 應該要讓使用者能夠使用為主。

讓使用者擁有主導權

  • 減少 User 抗拒
  • 避免封鎖

不需要追求介面簡潔性

需求滿足 -> 友善互動 -> 愉悅的體驗

就算使用介面困難,但是能滿足根本的需求。才是使用者最在意的事情。

避免一視同仁的廣播訊息

  • 擴展使用者興趣
  • 但是推播會引發封鎖率,所以要減少一視同仁的推播。
  • 優化視覺呈現的內容(透過使用者的分眾,標記)

用 UI 補償 AI

  • AI 目前發展雖然迅速,但是還是有限制。
  • 但是可以使用

Chatbot 是無所不在的意識

  • Mini App
  • 語音輸入

這些 UX 的設計重點都相當有用,有興趣的讀者也歡迎在文章裡面尋找更多相關資訊。

閃電秀

講解完了主要三個講者之後,接下來就是介紹這個社群最有魅力的部分就是閃電秀。所有的閃電秀可以參考這篇共筆文章 https://beta.hackfoldr.org/chatbot/ ,由於都是五分鐘的閃電秀,主要內容快速用條列介紹給各位:

  • LINE BOT 市容幫手 / 班班
    • 投影片
    • 簡介:
      • 講者分享了一個在台北市行政區內一個透過 LINE 想要幫助里長們在市容上面的小幫手。因為許多里長都習慣透過 LINE 來跟台北市行政區的相關首長直接回報問題,有時候難免有遺漏或是效率不好的問題。這個機器人就是為了解決這個問題而生的,而講者是希望可以找到更多跟他一起想要幫忙解決這個問題的人。
  • Modern web 閃電秀 - 肌肉仔 / NiJia

  • 叉出一個開放的在宅醫療社群 / fly
    • 投影片
    • 簡介:
      • 這也是一個尋求一起來幫忙開發的閃電講,台灣在宅支援診所聯盟 ( http://i.hsca.me/ ) 希望可以透過在宅診所的計畫來尋求許多願意幫忙開發的熱心人士。希望可以讓偏遠地區的民眾可以透過 LINE Bot 來獲得更多的醫生資訊與相關資訊的服務。 歡迎一起來參加!!
  • Voice hackathon / Kevin

    • 這一個主要是推薦給大家最近基於 Google Assitant 所舉辦的 Voice Hackathon ,有興趣的可以一起來報名參加。
    • 報名網址: https://www.voicehackathon.org/

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)

[研討會心得] 2019/09/05 TWJUG@LINE

前提

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。在 2019/09/05 的晚上,很開心能夠再邀請 TWJUG 社群來到 LINE 台北辦公室來舉辦社群聚會。這次的講者是 LINE 東京辦公室的 Yoshida Shinya 和 Kafka Summit 2017 擔任過講者的 Yuto Kawamura,講題分別是 ZGC for Future LINE HBase 和 Kafka Broker performance degradation by mysterious JVM pause 。

活動網址: KKTIX: https://twjug.kktix.cc/events/twjug201909

ZGC for Future LINE HBase / LINE Shinya Yoshida

投影片

首先帶來的是來自於 LINE 的同仁專職在負責 HBase 相關處理的 Shinya Yoshida 來分享關於 HBase 在 LINE 上面的相關應用。HBase 是一個廣為使用在 Java 上的 NoSQL 應用,擁有著快速的反應時間與高可用性 ( High Availability ) 。 由於 JVM 在 GC (Garbage Collection) 的處理上會動用到 STW (Stop The World: 也就是中斷存取的動作來做 GC ) ,這在對於需要大量連線與高效能的處理應用上是相當困擾的。 本篇演講就是分享相關的效能調校與觀察心得, 一開始講者先分享關於 Gargage Collection 的相關類別與種類。

首先講者分享 GC 有兩階段主要的處理:

  • Finding the garbage:
    • 解釋:
      • 也就是要先將可以回收的記憶體資源標記成 Garbage 。
    • 應用演算法:
      • 分為兩種主要方式,一個是透過 Counting Reference 也就是對於變數的使用做計數,做為可以回收的標記。另一種則為標記( Mark ) 也就是針對資料的相關使用方式透過樹狀結構來整理,如果沒有相關連的變數,代表該變數可以被回收的可能性就相對的高。
  • Collect the garbage and defrag :
    • 解釋:
      • 接下來就是回收記憶體資源後,整理破碎可用的記憶體空間。
    • 應用演算法:
      • Sweep/Compaction:
        • 先將可以回收的記憶體回收之後,將剩下不連續的記憶體整理過後變成連續可使用的記憶體。
      • Copy:
        • 相較於前一個方式, Copy 則直接使用一整個新的記憶體空間。直接將可以使用的連續性的記憶體複製過去。這樣比較消耗記憶體空間,但是對於效能上相較得比較快速。

這張圖講解了許多近期的 GC 演算法,在對於 DeFragment 的處理上都是使用 Copy 的方式,雖然比較消耗記憶體但是速度相對的快。針對這些方式可以看到有不少的 GC 演算法可以選擇, G1GC, ZGC 跟 Shenandoah 跟以往的 Old GC 。 而在 GC 的選擇方向上講者有以下以些方向可以推薦給大家參考:

  • 了解每個 GC 的優缺點。

  • 針對你的應用程式(服務)的硬體設施來挑選 GC。

裡面有許多的使用參考值得各位讀者去細看,這裡容我直接分享相關結果給各位。針對效能的比較上,講者最後挑選了 ZGC 跟 G1GC 來做一些比較,結果如下:

針對這樣的結果,可以看出來在不同的硬體設備(記憶體配置上) G1GC 與 ZGC 會有不同的效能呈現。可以看得出來在記憶體比較大的 (128G) 的配置下, ZGC 具有比較好的更新與讀取的效能。這樣的配置也跟 LINE 的服務應用上能夠呼應得上。 但是由於 HBase 在 Java 11 上面的 ZGC 還依舊是實驗階段( Experimental ) 所以在 LINE 的內部僅僅作為效能的測試使用,也將會通過更多的實驗與測試之後正式上線後再分享相關結果給各位。

Kafka Broker performance degradation by mysterious JVM pause / LINE - Yuto Kawamura

投影片

這一段則由 LINE 的資深工程師 Yuto Kawamura 分享一段曾經在正式上線服務所發生問題的除錯過程。 Kafka 在 LINE 的訊息後臺上佔有相當重要的地位 ,超過了六十個以上的服務都有使用 Kafka(可以參考這篇投影片) 。 而講者分享一個當初 Kafka 上面發生的問題,並且解釋整個如何除錯的過程。

現象/問題

原本每個 Kafka 訊息都是相當的順暢,但是忽然有一段時間發生了以下狀況: Response time degration for 99th %ile produce ,變且造成 zookeeper session timeout 。

接下來開始分析發生問題的時候,幾個相關的現象:

  • 發現每一個運行的 threads 的使用率暴增
  • GC Time (STW) 增加,在 JVM 裡面環節來分析發現 Garbage Collection 運作的時候所產生的系統停頓 (STW) 時間區段也變長了。

開始縮小範圍

透過這些結果,講者分享了他的偵錯經驗。首先他做了一個假設: 懷疑是 JVM 系統層的某些事件造成系統過慢。並且試著想要 Reproduce 一樣的環境。

這邊要解釋一下,關於 STW 的運作方式,運作 GC 的 STW 會做兩件事情首先是設定 safepoint 也就是告訴 JVM 要開始做 GC 了,這時候系統會等每一個運作的 thread 慢慢暫停,這個叫做 safepoint sync

而這時候的要來測試看看事不是 JVM safepoint sync 造成太多的時間浪費,使用的方式是寫一段很長的巢狀迴圈來避免系統太早執行 safepoint sync 。接下來透過觀測的方式來卻是自己的假設是否正確,同時也觀測是否能夠正確的重現問題。

這邊的內容相當精采,歡迎大家好好的了解投影片的內容。整個過程就是作者不斷透過假設,撰寫測試工具來試著重現問題。最後再透過一些底層觀測工具來確認自己的假設是否正確。

最後的問題是什麼? 讓筆者賣個關子,歡迎大家好好閱讀投影片來一起了解這個偵錯系統底層的 Kafka 效能問題的真相。

參考資料

活動小結

這一次聚會的內容相當的精彩,而且都是深入 JVM 系統的底層的介紹與除錯經驗。相信帶給每一位參加的人一個精彩的知識饗宴,也歡迎大家多了解投影片的內容一起來討論。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/

[研討會心得] 20190829 NAVER x LINE AI-Rush 2019 總決賽心得分享

什麼是 AI RUSH

大家好,我是 LINE Taiwan 的 Technical Evangelist – Evan Lin。去年於日本東京舉辦的 LINE DEVELOPER DAY 2018 會中,LINE 技術長朴懿彬以「Next LINE」定調 LINE 在技術上的發展願景,其中人工智慧、區塊鏈,與金融科技三大領域的相關技術,將扮演舉足輕重的角色,並以兩大關鍵字「串連(Connect)」與「互惠生態圈(Mutually Beneficial Ecosystem)」點出實現「Next LINE」所帶來的具體價值,讓 LINE 的服務持續進化。

為了探索 AI 的更多可能,並為 AI 開發社群提供一個切磋交流的平台,LINE 將首次與南韓市占第一的搜尋引擎 NAVER 聯手舉辦以人工智慧為主題的跨國黑客松「AI RUSH 2019」。「AI RUSH 2019」官方網站:https://ai-rush.com/

活動過程:

(圖片截至於 AI-Rush 官方網站)

整個 AI-Rush 活動分成兩個大部分,線上初賽與線下的決賽。 首先線上的初賽題目為「圖像分類 (Image Classification)」的題目,參賽者必須在 08/13 之前送出第一個階段的解法,最後經過挑選出最後的決賽隊伍,前往韓國春川的 NAVER Connect One 進行總決賽。

經過了第一階段的激烈競爭之後,透過第一階段的結算分數選出了總共三十個隊伍。要出發前往韓國來進行總決賽。 這次很開心台灣有四個隊伍進入了決賽,我也在韓國的仁川機場一路的陪伴他們往總決賽的場地勇敢邁進。

NAVER Connect One 總決賽:

08/26 全員到齊

08/26 當天在仁川機場迎接台灣的四隊代表隊伍後,就直接驅車前往位於韓國北方春川的 NAVER Connect One 的決賽場地。第一天到了當地其實已經是傍晚了,稍作休息後,我們就直接到餐廳來吃晚餐。

NAVER Connect One 的餐廳其實相當的乾淨,並且有專門的人員幫忙打理所有參賽者的餐點。在這邊的餐飲讓比賽的夥伴相當的安心與滿足。 吃完了晚餐過後,不少隊伍回到房間開始討論明後天的工作分配與相關準備,可以看得出來每一個參賽夥伴都躍躍欲試的樣子。

當然活動的特製貼紙與 LINE Developer 貼紙也是不會少。會場四周都有提供滿滿的貼紙讓參賽者可以自由地取用。當然也有不少本次活動特製的 “AI RUSH 2019” 的貼紙。

08/27 正式開工

“AI is the new black” 是這一次比賽的 Slogan 也是取自於 MIT Technology Review 2017 的文章。也就是代表著 AI 就是這個時代中最令人興奮與讓人覺得最跟得上時代的。 這也是 AI-Rush 想要參與的人都能感受到的。

這個會場是這次主要 AI-Rush 總決賽的 Hacking 的場所,在這個光線充足並且舒適的場地討論其實相當的棒,外面並且有供應源源不絕的甜點,飲料跟泡麵,讓每一個參賽的夥伴可以專心的討論與思考該如何尋找出最適合的運算方式。 就算是晚上或是半夜你都可以到這個會場中找到食物與參賽者來討論。 第一天的晚上就聽到有不少的團隊夥伴,因為半夜想吃點宵夜,於是到了會場跟大家一起 Hacking 。除了可以找靈感,也可以跟不少參與的夥伴來相互認識。

Quiz Game

在兩天一夜的 Hacking 過程中,每一個參加隊伍都相當的緊繃,全部人都相當嚴肅的面對的電腦螢幕。為了讓每一個參與的夥伴可以除了 Hacking 也能夠盡情地參與討論與互動。 主辦單位在 10:00, 14:00, 16:00, 20:00 與 22:00 都有安排小測驗 (Quiz time) ,並且在每一個 Quiz 的獲勝者都有機會可以得到相當珍貴的相關贈品。 這樣的小測驗除了可以讓每一個參賽的隊伍稍微放鬆心情之外,也可以吸引更多的參賽者在會場跟其他隊伍的互動。 讓整個活動相當的生動有趣。

小測驗的形式分為以下數種:

Quiz: 小挑戰

“剪刀,石頭,布” 這是一個很有趣的互動遊戲,也是一個讓台下的辛苦參與者可以伸展身體。透過主持人手舉起來玩猜拳遊戲,必須要贏過主持人(如果平手也被視為是淘汰),才能晉級。剩下最後的幾位才有機會來前面領取相關的贈品。

也有其他有趣的小挑戰:

  • 看兩張圖片找出不同的點。
  • 猜猜圖片是誰的照片。
  • 一些關於 LINE 的小歷史。

這些小活動的設計,除了可以讓會場的參與夥伴們有相關的互動之外,也紓解了競賽所產生的緊張氣氛。讓每個參賽者可以更認真的面對問題。

Treasure hunting

img img

除了有趣的小 Quiz 之外也有尋寶遊戲。主辦單位在活動會場周圍與餐廳的四周有隱藏有一些小紙條,只能能夠找到這些小紙條,也可以在每天的結尾前跟主辦單位來兌換相關贈品。 所以可以看到許多的參加隊伍除了在會場 Hacking 之外,也可以看到他們在會場與餐廳的周圍不斷地尋找相關的“寶藏“,畫面相當的有趣。

贈品

為了讓參賽者更能夠盡情享受互動的 Quiz 與 Treasure Hunting ,主辦單位的贈品準備的相當豐富。 想必每一位參賽者應該都收穫滿滿的。

08/28 名次揭曉與頒獎

激烈的競賽總是有揭曉的一天,最終恭喜來自於日本的團隊獲得了第一名的殊榮,第二名來自於東京大學的同學而第三名則是來自於韓國的同學。 這三個團隊也都樂於分享,也都在台上分享了如何分析資料,並且透過對於資料的了解方式來分享得到高分的技巧。

08/29 放鬆之旅

最後一天為了所有的參賽者安排了輕鬆的行程,工作人員們安排了韓國的鐵道自行車旅遊。整段旅程有接近兩個小時的放鬆行程,除了可以觀賞漂亮的鐵道風景之外,也有一些隧道有獨特的感受。每一個參賽者也都放鬆下盡情的享受韓國美麗的風景。

午餐則是選擇有名的春川雞,在具有風味的韓國餐廳之內享受韓國春川的風味餐點。每一個參加者都告訴我三天的行程下來,除了寫程式 Hacking 之外,大概就是不斷的吃東西。不論是 NAVER Connect One 的美食,小餐點甚至到了最後一天的春川雞。每一個參賽者都感受到主辦單位的用心與韓國的美食。

活動小結

一整個月的活動,最終選出了來自全世界的三十對決賽隊伍。三天密集的總決賽除了感受到每一個參賽團隊的熱情,更可以感受到大家對於追求最佳數據模型的專注與不妥協。 每一個團隊都希望到了最後一刻還可以想出更好的數據模型來解決使用者的問題,來尋求資料背後真正代表的意義。 我想這也是 AI-Rush 想要每一個參賽者能夠獲得的,更期待下一次與每一個參賽團隊見面的機會。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)**