[Golang] 快速整理一些 Go 版本上的差異(使用者角度) (Go version change note since Go 1.3 to 1.12)

前言: 其實從 Go 1.10 之後大概就沒有認真的在確認每個版本的變更之處,所以在這裡整理一下 Go 1.3 ~ 1.12 的變革。 一些快速懶人包如下: 幾個大變動: Go 1.5 : Pure Go for compiler and linker. go vendor. Go 1.11: Go modules and WebAssembly support. 其他好奇的人可以查看 The State of Go. (用英文寫,因為語言變化用中文實在不好表達) Go version history (major change): Since Go 1.3, here only list few major changed you might be interested. Go 1.3 (2014/06/18) (Detail Release note) Start 6 months release cycle. Remove support for Windows 2000 Support DragonFly BSD, FreeBSD Go 1.4 (2014/12/10) (Detail Release note) Support build ARM processor of Android system. Support go generate Speed is slightly faster than 1.3 (Big change) Go 1.5 (2015/08/19) (Detail Release note) The compiler and runtime are now written entirely in Go (with a little assembler) If you want to build go after 1.5, you need to install go 1.4.2 first. Go programs run with GOMAXPROCS set to the number of cores available. experimental support for “vendoring” Add...
繼續閱讀

[Golang] 在 KKTIX 上免費透過邀請碼來開邀請票

前言: 身為社群的共同籌劃人,每個月最基本的工作總是在不斷的開票亭,找講者跟舉辦 Meetup。而在舉辦 Meetup 的時候,總是希望可以開放一些邀請票給某些特定的族群(內定名單,工作人員,講者)不需要透過搶票就可以直接拿到票卷,但是 KKTIX 原本的邀請碼是需要透過付費的方式來達成。 其實不用那麼麻煩,可以透過「購票資格」的方式來達成,本篇文章希望能夠幫助有一些人能夠更快的了解。 最後把以前常用的邀請碼建立小工具也開源出來,大家可以拿來用。 建立邀請碼小工具 https://github.com/kkdai/radomtix 流程: 首先先到購票資格去新增一個購票資格,也就是邀請碼的意思。 這裡點選「新增名單」 所謂的名單可以透過「邀請碼」或是某些特殊文字來讓使用者填寫,這裡開始填寫邀請碼。 使用這個小工具 建立邀請碼小工具 https://github.com/kkdai/radomtix 隨機是 10 個長度為 6 的邀請碼,全部大寫的原因是因為比較不會誤會。(大小寫混用容易搞錯) 這時候回到票種去新增一個新的票種 請注意 “必須使用邀請碼購買” 不要打勾 購票資格這裡,就把”Invitation ticket” 跟 “test Invitation code” 連接在一起。 建議可以有購買限制,這樣一個邀請碼只能買一張票。 Reference: 建立邀請碼小工具 https://github.com/kkdai/radomtix
繼續閱讀

[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 前顯易懂,並且有許多相關代碼的討論,很適合閱讀。
繼續閱讀