[Google] Google I/O 2019 心得

大家好我是 LINE 台灣的 Technical Evangelist – Evan Lin 。LINE內部的企業文化就是鼓勵大家勇於分享與自我學習,對於各大國內外的研討會更是鼓勵員工們去報名參加與分享。 今年很榮幸地能夠申請到在舊金山舉辦的 Google I/O 2019 ,本篇文章透過開發者關係與技術推廣部門的角度來帶著讀者們用不一點的角度來了解 Google I/O。 身為資深推廣技術工程師與開發者年會的主辦者,本篇文章一開始將先透過活動的意義與原因,到會場的周邊設施加以介紹與分享。最後透過一些機器學習的相關議程分享,希望分享給各位讀者參與 Google I/O 所帶來的饗宴。 什麼是 Google I/O (圖片來自: Wiki) Google I/O 從 2008 開始舉辦後,每年都是 Google 最大的面向全世界開發者的年度開發大會 (類似於 Google Developer Day) 。而 “I/O” 的所代表的縮寫從一開始的”輸入”(Input) 與 “輸出”(Output)到近幾年的”創新”(Innocation)與”開放”(Open)。顯示出整個大會由於參加的人數越來越多,議題也越來越多元與開放。 每一年的 Google I/O 有著來自於全世界的開發者,而在 2019 年根據官方的數據參與的人高達了 7200 位,而且來自於各種類型的開發者,從行動裝置的 Android App 開發者,雲端伺服器與服務開發者到機器學習的資料科學家。各式各樣的開發者也是 Google I/O 每一年最令人驚豔的部分,在此身為 Developer Relations 團隊與機器學習愛好者的筆者會針對以下幾個部分來進行分享: 機器學習的內容分享 報到流程的分享 多采多姿的場外花絮分享 此外,同行的同事 Rene 也分享了她在 Google I/O 的一些想法”2019 Google I/O 初體驗“,在此筆者就不在多家贅述已經提過的部分。歡迎各位去這篇文章裡面查看關於 Sandbox 的一些記錄,相當的充實喔。 機器學習的內容分享 Federated Learning: Machine Learning on Decentralized Data Federated Learning 是今年 Google I/O 的一大亮點,更是讓許多使用者與機器學習的資料專家都相當驚豔的部分。 原本在做大數據與機器學習的時候,都是由 Edge(也就是資料的產生端,比如說手機,瀏覽器, App)來傳送資料,由於需要有許多的使用者行為的偵測需求,許多的資料也都帶有敏感的個人資料。而且資料在收集與預測 ( Prediction ) 的時候也需要不中斷的網路連線,對於電池能量的消耗與資料的安全上都是很大的隱憂。 但是隨著手機的處理能力越來越快,機器學習平台 (Tensorflow Lite ) 的所需要耗電量也越來越小的的演進下,開始思考著有沒有可能部分的機器處理都在 Edge 端來處理,如此一來許多的資料不需要另外上傳到雲端整合的來處理,又能夠兼顧個人資訊的隱私與安全。 這就是 Federated Learning 的基本中心思想。 這個議程主要討論如何做到之外,也討論了哪一些方面的資料才適合使用 Federated Learning ,能夠如何透過這樣方式來讓使用者滿意度更提升。 很推薦大家好好了解。 報到流程的分享 身為 LINE 台灣 Developer Relations 的一員,也是 LINE 台灣年度開發盛會 TechPulse 的主辦單位之一成員。最令筆者好奇的當然就是報到流程,因為要能夠同時處理七千多人的報到流程設計上需要有許多思考的面相,接下來就讓筆者來分享所觀察到的部分: 首先在線上繳交大會費用之後,就可以獲得註冊的 QR Code 一組,而當初在刷卡填寫個人資料的時候也會一起的填寫個人的衣服尺寸大小。(當然還有參加者的姓名) 當天在經過了層層嚴格的安全檢查之後,就會到了這個註冊的帳篷。裡面其實相當的大,也有 20 ~ 30 位左右的工作人員幫忙指引與分流。 每個人都需要先拿出 QR Code 在這裡刷,這裡的作用主要是作為分流,因為七千多人的東西其實相當的多,這裡的電腦會告訴你該去哪一個櫃檯領取袋子。 在此同時,櫃台前面的工作人員也會收到使用者的袋子號碼。 電腦指引到櫃台前面之後,工作人員就會把參加者專屬的袋子拿出來,整個過程算是相當的順暢跟方便。 當然,最讓許多人好奇的就是這次的袋子裡面有什麼呢?就是一件 Google I/O 的衣服,一個方巾,一個水瓶,一個防曬油,還有一些小貼紙。筆者認為防曬油相當的有用,因為五月的加州真的很曬。 多采多姿的場外花絮分享 ” Google I/O 是全世界開發者的嘉年華,全部的議程其實在線上都會直播,參加的人應該要花時間在網路不會直播的部分,多跟來自世界的開發者互動,多參與許多的互動活動” ,這些建議來自於同行的來過不少次的友人,相當的受用,在此也跟各位分享一下,這個開發者嘉年華的場外盛典。 首先先讓各位看一下,整個會場的鳥瞰地圖,可以看到除了有八個議程會場之外,還有八個 Sandboxes 裡面有相當有趣的展示與實驗性質的專案展示。在此也相當推薦大家有去的話一定要保留時間來逛逛。同事 Rene 文章...
繼續閱讀

[研討會心得] 20190628 Chatbots 10 at 天瓏書局 Coding Space

前言 大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatb10ts meetup 聊天機器人小小聚 10 @ 天瓏書局 Coding Space” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。 社群 Chatbots Meetup: https://chatbots.kktix.cc/ 本次活動網頁: 活動網址 由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。 Write image proxy server for LINE Bot in Go / 資深開發技術推廣工程師 Evan Lin 投影片 首先先跟所有的來賓分享新的 LINE Login API 更新 並且也分享透過更新後的 API 所撰寫的範例網站 https://login-tester-evan.herokuapp.com/ 。 透過新的兩個變更,可以讓開發者能夠更有彈性的來開發 LINE Login 的相關應用。 在此列出相關細節: 1. ui_locales: 技術細節: https://developers.line.biz/en/docs/line-login/web/integrate-line-login/#spy-making-an-authorization-request Parameter: ui_locales Type: String Required: Optional Description: Display language for LINE Login screens. Specify as one or more RFC 5646 (BCP 47) language tags, separated by spaces, in order of preference. Corresponds to the ui_locales parameter defined in the “Authentication Request” section of OpenID Connect Core 1.0. 懶人包: 透過輸入 ui_locales 可以變更 LINE Login 顯示語言,比如說 ja-JP: 日文 ko-KR: 韓文 zh-CN: 中文 th-TH: 泰文 2. amr: 技術細節: https://developers.line.biz/en/docs/line-login/web/integrate-line-login/#spy-getting-an-access-token Property: amr Type: Array of strings Description: List of authentication methods used by the...
繼續閱讀

[LINE][Golang] LINE Login v2.1 new parameter and properties 2019/06/26

前言: 今天剛剛出了新的參數,就馬上加到我的開源套件裡面,歡迎大家玩玩看。 https://login-tester-evan.herokuapp.com/ 裡面有六個 LINE Login 範例,其中包含 Open ID 方式與透過 Socal API 拿取 User Profile 的方式。 並且加上了新的參數 amr 與 ui_locales 讓你可以設定語言。 如何使用: 連線到 https://login-tester-evan.herokuapp.com/ 選擇要登入的方式 如果選擇 OpenID 方式到最後 LINE Login 完成後會出現, amr 相關資訊。 (範例 1) 如果選擇不同的 Locales 則會修改 LINE Login 相關的語言。 (JP, TW) (範例 2) 相關程式碼,請參考 https://github.com/kkdai/line-social-sdk-go https://github.com/kkdai/line-login-go 範例 1: amr: 技術細節: https://developers.line.biz/en/docs/line-login/web/integrate-line-login/#spy-getting-an-access-token Property: amr Type: Array of strings Description: List of authentication methods used by the user. Contains one or more of: pwd:Log in with email and password lineautologin:LINE automatic login (including through LINE SDK) lineqr: Log in with QR code linesso:Log in with single sign-on 懶人包:** 如果透過 JWT 來 decode payload 的話,可以看得到使用者透過哪些方式來做 LINE Login ,比如說 pwd: 密碼登入 lineautologin: LINE 自動登入 … linesso:Log in with single sign-on 範例 2: ui_locales: 技術細節: https://developers.line.biz/en/docs/line-login/web/integrate-line-login/#spy-making-an-authorization-request Parameter: ui_locales Type: String Required: Optional Description: Display language for LINE Login screens. Specify as one or more RFC 5646 (BCP 47) language tags, separated by spaces,...
繼續閱讀

[研討會心得] GopherConSG 2019 (1)

前提 偷個懶來看一下 GopherConSG 2019 ,順便了解幾個有趣的議題。 這邊分別提到了在 IDE 裡面,處理 autocomplete 的 gocode ,另一個議題則是由資安的角度,如何讓你的服務能夠更加的安全。 Go, pls stop breaking my editor - GopherCon SG 2019 Youtube 看到很多人之前問的關於 gocode 的問題… 都表示 “Gocode 壞很久”,好像說 1.10 之後 Gocode 常常不會動。其實真的有些問題,而且分了不同 repo 1.10 nsf/gocode –> mdempsky/gocode 1.11 (support go modules) mdempsky/gocode–> stamblerre/gocode 回頭查 vscode-go https://github.com/microsoft/vscode-go/blob/9655d527548b286fee424983378560ce83adf8a2/src/goInstallTools.ts 預設使用 mdempsky/gocode 這個 session 就是 go team 認為他們應該花心思來維護一個讓每個編輯器都可以使用的 language server 於是這就是 gopls (Go Language Server, pronounce “go please”) 的由來 更多詳情可以看看影片 Refer: https://github.com/mdempsky/gocode Going Secure with Go - GopherCon SG 2019 Youtube 講者從五個面向 ,來談談如何讓 Golang App 更有安全考量。 Data: 選擇好密碼的隨機法則 確認 Kubernetes Secret 的安全性,其中講者也提到 Kubernetes secret 其實會存在 /proc/<PID>/environ ,其實相對不安全的。請愛用 HashiCorp 的 Vault Code: 需要常常做弱點掃描 gosec 一定要用。 Dependency: 確認你使用的套件是跟上相關的修正,確認套件是否有任何安全性修復。 很多時候,很多時候,小修正往往是修復安全性問題。 Container: 使用 Multi-stage build 來確保不會有任何安全疑慮 Policy (這邊指的是網路) ,要設定好並且有正確的考量。 整個 session 前顯易懂,並且有許多相關代碼的討論,很適合閱讀。
繼續閱讀

[研討會心得] 2019/05/31 LINE 台灣 Warm-up meetup 活動後分享

前提 大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。身為數位科技時代的各位,家庭中有經常多達十幾款不同的家電,而每個廠商都有自己的App。如果要能夠完全使用這些家電的功能的話,必須安裝至少十多個 App,其中有些廠商甚至推出兩個以上不同功能導向的 App, 這讓許多使用者感到相當困擾,而為了解決這種 App 過多的問題,LINE Things 應運而生! 就在五月中的時候,LINE Things 自動通訊功能 隨著最新版的 LINE (9.6) 的更新也開放給所有人。也讓開發者透過 LINE Things 能夠達到的事情也更多了。本活動特別請到日本團隊 LINE Things Leader - Takaku Hiroo 來到台灣與特地邀請的 maker 社群的開發代表們介紹新功能架構之外,也會透過簡單的範例帶領大家的來建置一個 LINE Things 的範例。最後也會開放社群開發者們提問與各種交流討論。 KKTIX 活動網頁: 活動網址 LINE Developer Meetup 開發者小聚系列活動將邀請 LINE 台灣工程師、開發者工具平台,定期分享內部開發技術,並安排優秀案例分享開發經驗,持續促進 LINE 技術平台開發與交流,歡迎對 LINE 技術平台有興趣的開發者參加。 Introduction LINE Things architecture and how it works / LINE Things Leader - Takaku Hiroo / LINE - Hazel Shen 投影片 首先一開始由來自日本的工程團隊代表 Takaku Hiroo 帶來對於 LINE Things 的架構解釋,並且跟開發者們解釋為什麼開發者們需要使用 LINE Things 。 ( 透過 LINE Things 開發的優點,圖片來自: 中文 Engineering Blog : 結合 LINE Things DIY一個智慧門鎖吧 ! ) LINE Things 主要希望原本必須透過 iOS 與 Android 設計用來控制藍牙設備的 App 的一些廠商,透過 LINE Things 的使用可以達到「一份 code ,兩個平台」,也就是只要撰寫一次 LIFF 上面的藍牙控制相關程式碼,就可以讓使用者不論是透過 iOS 與 Android 的 LINE App 都可以達到只有 App 才能做到的事情。 由於發佈的方式也改成 LINE Chatbot 的方式,不僅能接觸到的使用者將會更多,也能夠更快速的更新軟體的版本。以往如果要開發一套新的設備,就必須要更新開發者的 App ,而且還得一次更新兩個版本。透過 LINE Things 就不需要那麼困擾,對於開發成本能夠降低之外,版本更新與部署的速度也會大大的提升。 ( LINE Thing 自動通訊功能系統架構圖,圖片來自: LINE Things 自動通訊功能已上線與使用介紹) 而五月初隨著 LINE App 9.6 更新所上線的新功能 「自動通訊功能」 (Automatic Communication) 更是一個方便的功能,使用者再也不需要持續打開著 LIFF 的視窗就可以收到來自...
繼續閱讀

[好書分享] 先問,為什麼?顛覆慣性思考的黃金圈理論,啟動你的感召領導力

(圖片參考 讀墨 ) 先問,為什麼?: 顛覆慣性思考的黃金圈理論,啟動你的感召領導力 Start with Why : How Great Leaders Inspire Everyone to Take Action 作者:賽門.西奈克 原文作者:Simon Sinek 譯者:姜雪影 出版社:天下雜誌出版 出版日期:2018/05/23 語言:繁體中文 ISBN: 9789863983347 買書推薦網址: http://moo.im/a/6cenrE 前言: 不論是身為開發技術推廣的人,或是跟一些同事在討論相關開發者推廣的活動。很多時候,許多同仁可能不能了解為何需要有那麼多的開發者社群活動? 為什麼需要一個月忙碌好幾個晚上留下來跟不論是內部的開發者,或是外部的開發者來舉辦社群聚會? 經常在各種會議上被問到類似的問題,但是我都會很願意回答這些問題。 因為要讓你的夥伴能夠真正的瞭解你的想法法,「為什麼要做這些」?而不是冷冰冰的,做這些所能帶來的效果是哪些? 所能帶來的認知度有多少? 能讓多少工程師更容易被招募? (當然~這些都是事後要被評量的 (笑) ) 所以買下這本數位版本的書籍,好好的閱讀。除了希望能夠更有決心的鼓舞其他夥伴之外,也希望讓自己的更了解該如何用「為什麼」來說服其他人。 內容簡介: 吸引人心、點燃熱情的黃金圈是甚麼?怎麼練習? 黃金圈是三層同心圓,由外到內分別是做什麼、怎麼做,與為什麼。這個架構看似簡單,卻與人腦如何處理資訊與情感的結構完全一致。最核心的「為什麼」,最能撼動人心,產生強大連結,但也正是語言最難清楚表達的部分。 身為開發者關係與技術推廣的工作,很多時候除了要將技術理念傳遞給對方(不論是外部開發者,或是內部開發者),都是需要透過點燃熱情的黃金圈理論。 對外需要將技術的本質,也就是該技術「為什麼」需要的原因清楚的解釋之外。對內則是需要跟同事們解釋為何需要做這些活動。 這本書一開始透過探究沒有講解「為什麼」的世界,來讓讀者感受到。當一件事情失去了原本的「意義」與「使命」的時候,很多時候就會讓事情難以推動。 接下來也透過幾個成功的企業,分享者當初創立者的「使命」。一個企業的「使命」也就是這個企業賴以為生的「為什麼」。不論那個使命造就了為什麼消費者會選擇他們,而不選擇其他的競爭對手。 裡面有提到西南航空著名的以客為尊,就是因為當初的創造者希望能夠打造一個以客為尊讓乘客可以很輕鬆以他可以負擔的價格來搭乘,這就是西南航空的「為什麼」。 當然很多人會說西南航空會贏是因為他是便宜的航空,他有簡單的定價策略。但是其他那些都是「做什麼 (What) 」 而不是他們的原因。了解了西南航空的企業價值之後,完全就能夠認同他為什麼會有那些特價促銷與一些服務的準則了。 這就是「為什麼」的重要。 心得: 記得曾經看過類似的文章,敘述著關於工作態度的問題。 文章的全文大概是 有一位哲學家到一個建築工地分別問三個正在砌築的工人說: 「你在幹什麼?」第一個工人頭也不抬地說:「我在砌磚。」 第二個工人抬了抬頭說:「我在砌一堵牆。」 第三個工人熱情洋溢、滿懷憧憬地說:「我在建一座教堂!」 第三個人顯然相當有熱情,因為他對於工作的使命相當的清楚,也就是他對於「為什麼」要做這份工作相當的認同。 這裡也分享給找不到工作目標與使命的夥伴們,你需要找到你的工作裡面最重要的「為什麼」。
繼續閱讀