Quantcast
Channel: Blog E
Viewing all 537 articles
Browse latest View live

[研討會心得] 2020/06/12 LINE Developer Meetup 12

$
0
0

大家好,我是 LINE Tech Evangelisgt – Evan Lin。LINE 一直以來不遺餘力地提升資訊安全,除了以 DevSecOps 的概念為基礎,將資安 DNA 注入 LINE 產品與服務,更積極促進整體資安生態圈的成長。 而 Beer is beautiful, hacks is amazing, BECKS is gold. BECKS是Beer與Hacks兩個字所組成。 透過一系列的 BECKS.IO – Security Meetup 資安社群活動,為韓國、日本、台灣等地的優秀資安人才提供當面交流、建立良好連結的機會! 本次 BECKS.IO 小聚選於台北的 Avenue 舉辦,邀請台灣的講者們,在輕鬆開放的氛圍中,暢談不同企業與個人的資安思維及實務經驗,並展望相關技術的未來發展。

KKTIX 活動網頁: 活動網址

The Silence of Incident Responders in Taiwan The realities , the difficulties and the future - Jack Chou/ISSDU Senior Technical Consultant

這邊提供一些搜尋到的基本常識:(相關資料都是資安小白筆者搜尋的)

IR (Incident Responders):

受到威脅的時候,需要透過 SOC 來制定相關第一階段的應對機制與方法。

SOC (Security Operation Center) :

資安運作中心,由政府聘僱的一個組織來確保政府單位資訊安全,避免資安相關威脅與攻擊。

SOC 監控共同提供契約,其中分為三個 services level:

  • 低流量: EPS: 900, IR: 3次
  • 中流量: EPS: 2300 IR: 7次
  • 高流量: EPS 4900 IR: 15次

SOC 要做的事情:

  • 跟客戶開會(0800 點名)
  • 樣本分析
  • 客戶高度期望

骨感的現實

雖然 IR 的理想很美好,講者也分享了現實在台灣的 IR 內容大概有分哪一些類型。 甚至還有: 動態銷售型 IR,勸架型 IR, 張老師型 IR,安撫型 IR 與情資型 IR 等等類型。 也就是說,雖然 IR 在目標上感覺需要做出相當多的分析與應對,但是許多時候根據場景的不同。 IR 在不同的情況下會會有不同方面的處理方式。

那要如何找到未知的攻擊(?) SOC & IR

搜尋 CVE 上資料 攻擊三家以上。通常會可以當作“有預謀的大規模攻擊?” 。

###未來 Future:

某一個現實狀況: 政府單位收到資安通報 –> 接到通知台東出現問題 -> 是否需要到現場 -> 地點太遠無法第一時間到達 -> 遠短設定相關環境 –> 開始了解問題 –> 後來可以在很快速的時間內反應,並起做出處置。

根據這個案例可以知道,「遠端的 IR」將是未來的一個趨勢。

參考文章:

  • 關於 SOC 的說明 https://www.mcafee.com/enterprise/en-us/security-awareness/operations/what-is-soc.html
  • IR 工作説明: https://www.cybersecurityjobs.net/incident-responder-jobs/
  • https://www.hackerupro.co.il/soc-operation-and-incident-response/

Operation ENDTRADE: TICK’s Multi-Stage Backdoors for Attacking Industries and Stealing Classified Data - Joey Chen/Trend Micro Sr. Security Engineer

講者是威脅研究員,本篇內容是報告一份駭客組織的研究白皮書: ENDTRADE PIC 研究白皮書

什麼叫做 ENDTRADE

像是間諜任務,許多的相關任務其實圍繞著一個主要的目標。

  • 有一個明確的目標 (舉例:日本國防資料)

  • 需要有不同階段的攻擊(預備的準備活動)

  • 先攻擊相關合作廠商,藉以獲取相關資訊。 (先打大陸廠商,因為日本的代工廠在大陸)

  • 主要研究組織: TICK

  • 對於專門攻擊專門做研究報告的公司

  • 透過這些研究報告公司來攻擊目標(因為研究報告公司的信箱的信件比較沒有防備心)

  • 透過這個方式來攻擊化工與公家包案承包單位

  • 2018 年找了相當多的漏洞,並且也開發了相關的惡意程式與相關的駭客工具。

    • 甚至把後門程式放進防毒軟體的資料夾中。
  • 防毒軟體不會找自己資料夾(或是自己)

策略型的作用

  • 放惡意程式放在明顯(容易被點選地方)
  • 一開始入侵目標常使用的網站
  • 讓惡意程式去常用網站去下載真正的惡意程式碼

相關開發工具:

  • Downloader
  • Dropper
  • 並且還有整合完整的工具,讓攻擊動作可以相當順暢且容易。

攻擊型態:

  • (2019 上半年)

    • 將惡意程式放在照片裡面,透過其他方式還原為執行檔。透過合法網站來下載惡意程式,讓掃毒軟體無法偵測得到。
    • 放惡意程式裝成 pdf –> 放後門 –> 連線到合法網站 –> 下載惡意程式。
  • (2019 下半年)

  • 假裝是 PDF 的執行檔 –> 連線到合法網站 –> 透過 PHP 控制本地端檔案

持續研發的開發團隊

  • 新型下載器的特色:

    • 只能在上班時間運行
    • 會砍掉防毒軟體
    • 攻擊特地範圍的使用者(日文與簡中)
  • 入侵後回傳資料會透過 AES 跟 base-64 改變過才回傳,確認是否需要繼續攻擊。

入侵內網後做的事情

  • 截圖小工具
  • Load VB Script 小工具

結論 (takeaway)

  • 每個任務會花費一兩年來攻擊
  • 開發多樣性的惡意程式
  • 並且不斷的檢查與保護惡意程式
  • 也會偷取相關資訊,確認目標是需要繼續動作的。

相關的 Q&A

Q: 如果有惡意程式放在防毒軟體資料夾,貴單位有任何防範

A: 在資料夾如果要執行前,都會做相關的檢驗。確保沒有被惡意程式修改過。

相關資料

  • https://documents.trendmicro.com/assets/pdf/Operation-ENDTRADE-Tick-Multi-Stage-Backdoors-for-Attacking-Industries-and-Stealing-Classified-Data.pdf ENDTRADE PIC 研究白皮書。

活動小結

今晚的聚會邀請到國內外資安專家,不藏私分享資安策略和經驗,幫助與會者在短短數小時內,從不同角度領略實現資安的各種可能。BECKS 是由 Beer 與 Hacks 兩個字所組成,透過本次小聚,我們再度凝聚資安社群,讓資安專家分享最新研究,並讓各領域的資安研究員進行面對面討論,除了幫助更多人了解 LINE 的安全設計,更希望透過交流,讓多元的資安思維得以迸發出精彩的火花!

立即 follow「BECKS」活動訊息,就能收到第一手 Meetup 活動最新消息的推播通知。▼

「BECKS」活動專頁:https://becks.io

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息


[研討會心得] 2020 六月 LINE 平台更新整理與 LINE Group/Room Chatbot 的展示

$
0
0

前言

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

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

這次活動總算又回到 LINE 台灣的辦公室來舉辦,同時這也是疫情後 LINE 辦公室第一次舉辦線下的聚會。希望透過這次的聚會可以讓更多朋友了解到打造自己的聊天機器人是如此讓人開心的事情。

整場分享的影片:

LINE Platform 平台 2020 六月更新

投影片

06/09: Flex Message Simulator tutorial now available

Flex Message 一直都是開發者在開發 chatbot 上面最常用來跟使用者互動的訊息格式。除了提供各種基礎的樣版之外,更有許多有元件可以讓開發者發揮創造力。 而 Flex Message Simulator更是開發者與設計師溝通最好的橋樑,設計師可以透過 Flex Message Simulator來套出漂亮的 Flex Message 之後,再透過 JSON 資料給開發人員加入 Chatbot 中。

但是要如何透過 Flex Message Simulator來開發 Flex Message 呢? 本月份就有新的文件更新,透過逐步的教學讓沒有程式開發基礎的人也能透過 Flex Message Simulator開發出一個數位的名片。

如果需要更多的 Flex Message 的樣板,也可以參考這篇我翻譯來自泰國 LINE API Expert 所提供的樣板。

參考鏈結:

06/10: Messaging API update for June 2020

接下就是到了本月份的 Messaging API 新功能更新了,這個月主要的更新都跟群組(Group) 與聊天室 (Room) 有關,主要圍繞著以下三個新功能:

透過這三個資訊,筆者也在稍後的內容整理出如何製作出一個簡易的群組/聊天室管理機器人。

06/15: Developer Console 裡面的設定 “Linked OA” 的位置修改

原本 LINE Login Channel 裡面都有一個 “Linked OA” 也就是指定 LINE Login Channel 鏈結的官方帳號 Channel 。 經過設定鏈結後,可以透過 LINE Login 的同時,詢問使用者要不要一起加入官方帳號為好友。 相當的有用啊! 設定的位置從 “LINE Login” Tab 移到 “Basic Setting” 的位置,大家千萬別忘記。

06/15: LIFF 支援 Error Code

以往對於 LIFF 開發者而言,對於 API 請求如果失敗(或是發生錯誤)。只會出現 Exception 需要來處理,但是往往不知道到底是發生什麼問題? 是參數設定錯誤? 還是呼叫的方式不正確?

現在開始有了 LiffErr資料可以取得,目前先支援以下的 API :

LINE Group/Room Chatbot 功能介紹與小訣竅

程式碼開源: https://github.com/kkdai/linebot-group

直接加入官方帳號測試:

範例說明:

這是一個將所有跟群組 (Group) 與聊天室 (Room) 的 API 整合的 Demo Chatbot ,具有以下的功能:

小訣竅 1: 如何處理 Join Event

群組:

聊天機器人被加入群組後,馬上就會收到 Join event 的 webhook 。

聊天室:

聊天機器人加入聊天室後,不會馬上收到 join event ,需要聊天室內成員發言,或是有人加入或離開,才會收到通知。

小訣竅 2: 如何知道訊息是來自哪個(群組/聊天室)

Webhook 中有一個資訊 source其中會顯示訊息來源是來自於群組還是聊天室。可以透過 source.groupId或是 source.roomId來確認相關的資訊。

總結:

希望透過這個 LINE Group/Room Demo Bot 可以讓開發者們更了解如何使用群組與聊天室的相關 API ,開發出更有創意的聊天機器人。

關於活動其他聽眾的分享:

活動小結

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

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[好書分享] 理財盲點(The Dumb Things Smart People Do with Their Money)

$
0
0
理財盲點
有錢人不會做的13件理財決定
The Dumb Things Smart People Do with Their Money : Thirteen Ways to Right Your Financial Wrongs
作者: 吉兒.施萊辛格  
原文作者: Jill Schlesinger  
出版日期:2020/05/20 

買書推薦網址:http://moo.im/a/03jDET

前言:

這一本是今年所讀完的第七本書。

當初會讓我注意到這一本書,其實是以下的「文森說書」的內容讓我吸引到。尤其是開頭的第一句話,「生命中最棒的事情是免費的,第二棒的東西則非常非常貴 - Co Co Chanel」。

這樣的一句話,讓我開始想看看這一本書究竟在談些什麼。歡迎各位一起來往下去了解吧!

內容簡介:

你在人生中會遇到的各種財務問題,吉兒都寫在這本《理財盲點》:坐下來跟家人好好談談金錢、大學費用籌款、購買保險、購買不動產或租屋、討論退休養老規劃、擬定遺囑、為老邁父母規劃長期照護等等,吉兒將提出簡單的工具,幫助你用最省力的方式避開投資陷阱,做出真正聰明的理財規劃。

作者分享了 13 件聰明人容易發生的理財方面的蠢事,跟大家分享。並且檢討應該如何改進:
蠢事01 購買自己不懂的金融商品
蠢事02 聽取錯誤的財務建議
蠢事03 過度重視金錢
蠢事04 背負過多學貸
蠢事05 該租房子的時候卻買房子
蠢事06 過度承擔風險
蠢事07 保護個資人人有責
蠢事08 退休初期,過度消費
蠢事09 將個人的金錢問題強加在子女身上
蠢事10 照顧年邁父母,缺乏事先規劃
蠢事11 買錯保險,甚至根本沒買
蠢事12 沒有留下遺囑
蠢事13 企圖「看準」市場時機

蠢事01 購買自己不懂的金融商品

接受業務員推銷給你理財性商品的時候,記得詢問自己以下五個問題:

  • 這項商品要花多少錢(完整且現實要花多少錢)?
  • 這個金融商品的替代方案是什麼?
  • 這個金融商品取回現金容易嗎?
  • 我得替這個金融商品付多少稅金?
  • 這個金融商品將會帶給我的最糟狀況是什麼?

蠢事03 過度重視金錢

這個章節其實蠻有趣的,裡面有提到:根據全球 170 萬人調查發現,年收入到達六萬美金到七萬五千美金的人每天最快樂,而且年收入九萬五千美金的人自覺整體生活最佳。

心得:

這十三件蠢事其實也圍繞著基本的理財觀念來探討,首先要先對相關財富的「風險」加以控管。比如說「保險」「房貸」「學貸」或是幫子女背負著過多的「債務」。 這些都是基本的理財中的節流與風險控管,常常讓許多人沒有注意到就開始亂花。

文章裡面也提到,美國許多人退休其實都有準備足夠的退休金(五六百萬美金!!) 。但是往往因為胡亂地購買,並且過分的開銷讓許多的退休金也沒有多久就花光,必須過著拮据的生活。

整本書圍繞著對於退休生活與理財規劃的討論,算是相當好的概念整理。

[研討會心得] 2020/07/07 Test Corner #26 聚會心得

$
0
0

大家好,我是 LINE Tech Evangelist - Evan Lin 。LINE 致力於舉辦對內的技術交流、教育訓練,以及對外的社群聚會、校園演講、開發者徵才日與開發者大會等各式各樣的活動。我們希望創造更多技術分享與跨國交流的機會,同時持續招募優秀人才加入 LINE 台灣開發工程團隊!

今晚我參加了充滿創新精神的 Test Corner meetup,和與會者一起探索測試的奧義,本次聚會的各種巧思令人耳目一新,充滿社群活力的氛圍更讓我跟著熱血起來,一起來感受本次聚會的魅力吧!

KKTIX 活動網頁: 活動網址

今晚的 Test Corner meetup 特別由甜美可愛的主持人 – Sherry 幽默(很像是空姐幫各位展示周遭環境)的開場,他也介紹了什麼事 LINE TECH FRESH 校園新星人才計劃。什麼是 LINE TECH FRESH ? LINE 台灣工程團隊每年透過 LINE TECH FRESH – 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們能在國際級科技公司中觀摩學習。

更多內容,可以參考這篇文章: LINE TECH FRESH – 技術新星人才計劃,實習經驗大公開

LINE SPOT 口罩地圖 - Vince Chen

LINE SPOT 是串接實體商家與生活服務的平台,讓使用者可秒查所在地點附近的優惠與服務。而 LINE SPOT 便是把這些服務放在一起、深化線上/線下生態圈的連結。而如此便利的服務,在開發過程中自然也面臨不少挑戰,包括整合眾多不同的服務、頻繁的搬移服務,以及支援系統的大流量。

而身為 Automation Engineer 在這個團隊的主要工作內容分為 (1) API 的驗證,確認資料的正確性。 (2) 系統的效能調校與優化。

口罩地圖當初上線的時候的流量,比起當初預想中的超過了 30 倍以上。那麼 LINE SPOT 的要如何做類似的相關測試呢?

首先 LINE SPOT 團隊透過 k6.io 這套工具,搭配著 Jenkins pipeline 的流程。 每次有修改上線後,就會部署到測試機器,並且透過 k6.io 來做 load testing 跟 performance testing 。 每次結果都會預設丟到 InfluxDB 儲存,透過 Grafana 可以視覺化整個測試的效能報告。 讓測試人員與開發人員可以一目了然整個結果。

當然,為了這麼大的流量,整個服務也做了不少的效能調校的部分。

  • 針對 API Gateway 有 Query Efficiency check ,檢查每個呼叫是正確並且確保查詢效能。
  • 針對 ElasticSearch 更有 Connection Pool Tuning ,對於查詢的資源使用也更有保障(不會過分開查詢連線)。
  • 也有針對 API Gateway 做 cache 與 call monitor 來監控是否效能有受到影響。

Lesson learned from 口罩地圖

LINE SPOT 團隊在經歷了開發與營運「口罩地圖」的相關功能後,學習到以下的相關事項:

  • 監控與效能管理對於 Micro-services 是相當的重要
  • 隨時要關心效能優化與調整過後的變化
  • 透過一些客製化小工具可以讓團隊在經營與管理上更加的方便。

LINE 訊息查證 - Hank Chen and Johnson Wu

本段分享由 Hank Chen 與 Johnson Wu 所帶來,分成兩個部分,第一個部分為 Hank 帶來的 LINE 訊息查證的測試流程與如何做好 Test content 與 Test Case。 第二部分則由 Johnson Wu 所帶來的訊息查證的資料處理的流程與資料處理平臺。

第一部分: LINE 訊息查證的測試流程

開發出「LINE 訊息查證」平台服務。「LINE 訊息查證」平台在去年七月份正式上線,不僅有官方網站,更串聯 LINE 官方帳號,用戶只需把在聊天室中收到的訊息「轉傳」至「LINE 訊息查證」官方帳號。如過去已有查核報導在資料庫中,查證小幫手會自動判斷其真偽,系統將即時提供查證結果;如訊息尚未查核,將提報給專業查核單位,待釐清後再盡快回傳正確資訊給予用戶,提供最即時的訊息辨別服務,協助用戶辨識可疑訊息真偽,降低假訊息再次散播的機會。

而訊息查證的 Agile 的測試流程如下:

  • Planning Refinement:
  • Acceptance Criteria:
  • Functional Test:
  • Regression Test:
  • Exploratory Test:
  • Release Retrospective:

整個 Agile 流程中,每天都有 15 分鐘的 standup meeting 確保專案的成員都能在相同的共識下開始工作。

而針對偵測內容的建立(Test Case 建立),目標是希望流程清楚,並且敘述清楚。可以具有相同技能的同仁能夠快速接續繼續測試。 整體測試平台分為手動測試與自動測試,其中自動測試使用的是 TestRail 平台。

CICD 發布流程:

使用 Drone 跟 git 接續,一有相關的 code submit 之後,就會透過 argo 來部署到 Kubernetes 上面。

訊息查證小幫手新功能

  • 可以查詢有問題的官方帳號
  • 可以快速查核有問題的網址

有興趣的讀者,歡迎加入 LINE 訊息查證小幫手官方帳號

###第二部分:「LINE 訊息查證」中如何做資料處理與分析

首先機器學習要如何幫助做訊息查證呢?主要的方式如下:

  • 透過相似搜尋 (Similarity Search) 來找出類似的假消息,直接回覆使用者。
  • 並且透過 Classification 與 Near-Duplication 的分類方式來將相似的假消息做一個分類。

其中 Near-Duplication 透過就是將收到的訊息與已知的假消息做 Near-Duplication 來計算出兩者是否相似。如果確定相似,或是部分相似。代表著為假消息的機率也會提高。

而完整的流程,會先透過 Ner-Duplication 做比對,來找出可能近似的假消息給使用者確認。 如果確認之後,就會將使用者查詢的消息也歸類在該假消息的類別。

其中整個系統更是包含了管控機器運算模型流程的 mlFlow , 作為資料處理流程控管的 airFlow 。受到訓練的字串與標記(label) 透過訓練流程,使用 airFlow 排程與訓練的先後順序,再透過 GPU 來加速訓練結果。 透過 mlFlow ,可以將計算好的模型部署到 Predictor Server 作為查詢之用。

最後,講者也分享了相關得專案成果數據:

  • 46% 使用者有辨識出假的新聞
  • 其中有 33% 使用者是相當主動在檢查
  • 更有 25% 會將結果分享給好友

這樣真的才能讓假消息儘早杜絕掉,不要讓你我都成為假消息的幫兇。

活動小結

隔了一年又能夠邀請 Test Corner 來到 LINE 辦公室。很開心看到許多學生朋友對於 LINE 的產品測試有高度的興趣。 LINE 秉持著高度自我約束與社會責任的一份子,除了要讓更多使用者可以透過 LINE SPOT 取得最即時與最在地的資訊外,更希望透過「訊息查證」可以讓每一個使用者儘早辨別訊息的真偽,避免成為幫兇。

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息

[TIL] Emotion detection API on Go - oxford-emotion 2020 update

$
0
0

之前在做 Project 52 的時候,一時興起也把微軟的 Emotion API 也弄好 SDK

https://github.com/kkdai/oxford-emotion

結果過了四年後,發現目前狀況有些修改。

  • https://www.projectoxford.ai/ 專案網站消失了,併入了Azure cognitive-services https://azure.microsoft.com/zh-tw/services/cognitive-services/face/#demo
  • 不過輸入跟輸出的內容好像沒什麼變?
  • 要玩測試可以在 https://azure.microsoft.com/zh-tw/services/cognitive-services/face/#demo
  • 不過範例好像也沒有改過誒
  • 微軟自己提供了 C# SDK https://github.com/microsoft/Cognitive-Emotion-Windows

[TIL][Golang] 關於 etcd 的程式碼閱讀建議 - segregrated hashmap 效能優化

$
0
0

前言:

每次在 Gopher TW 討論群裡面談到關於透過研究 open source 來了解架構的時候,我個人都很推薦 etcd 。原因如下:

  • 工作單純 etcd 要完成事務相對單純。
  • 基本 Client / Server 概念 (並且有許多工具)
  • 具有 RAFT 分散式計算 HA 演算法

所以通常討論到該如何研究程式碼,我也很喜歡跟人家分享 etcd 。

程式碼鏈結:

https://github.com/etcd-io/etcd

相關推薦:

所以這次討論的時候我也提出以下建議:

  • 想搞懂 Raft 演算法~先看 https://github.com/etcd-io/etcd/tree/master/raft
  • 工具怎麼寫就看 https://github.com/etcd-io/etcd/tree/master/tools
  • client app 怎麼寫就看 https://github.com/etcd-io/etcd/tree/master/client

根據你的目的性來閱讀良好架構程式碼,就像讀一本好書一樣。 受益良多!

網友建議 segregrated hashmap 的效能優化:

根據網友 Naruto 建議:

因為 bbolt db 的page 儲存區會出現效能問題,設計了一套 segregrated hashmap 去解決

快速搜尋一下,整理一下:

segregated hashmap

由阿里巴巴發起的優化,根據他們事業業務所發現的效能瓶頸。

成效很威

The new optimization reduces time complexity of the internal freelist allocation algorithm in etcd from O(n) to O(1) and the page release algorithm from O(nlgn) to O(1) , which solves the performance problem of etcd under the large database size. Literally, the etcd’s performance is not bound by the storage size anymore. The read and write operations when etcd stores 100GB of data can be as quickly as storing 2GB. This new algorithm is fully backward compatible.

找時間來研究一下…

[TIL][Golang] COSCUP 社群軌 - Effective Go 影片列表

$
0
0

[研討會心得] 2020/08/15 Summer Tech Fair 台灣科技就業博覽會

$
0
0

大家好,我是 LINE Tech Evangelist - Evan Lin 。LINE 致力於舉辦對內的技術交流、教育訓練,以及對外的社群聚會、校園演講、開發者徵才日與開發者大會等各式各樣的活動。我們希望創造更多技術分享與跨國交流的機會,同時持續招募優秀人才加入 LINE 台灣開發工程團隊!

這是參加到今年第一個聯合徵才的台灣科技就業博覽會,希望能讓更多的學生朋友能了解 LINE 所帶來的學生實習計畫。「 LINE 技術新星人才計劃 - LINE TECHFRERSH 」。

首先先來介紹第一場也就是 LINE 台灣的 LINE TECH FRESH 與相關團隊的介紹。

TECHFRESH 計畫介紹 - Evan Lin

首先還是先讓大家了解 LINE 的成立是因為 2011 年東京發生大地震的時候,許多人因為擔心著朋友的近況。於是開發了透過貼圖的訊息溝通軟體。 正也是呼應了 LINE 的成立宗旨:「 Closing The Disctance 」。 希望透過科技來拉近人與人,人與資訊,人與科技之間的距離。

LIFE on LINE with AI

由這張圖可以看到,感謝台灣群眾的喜愛。其實日常生活中充滿著許多 LINE 的相關服務。 而其中更是有許多服務都透過 AI 的技術來提供讓使用者更方便的服務。

  • 早上一起來看著 LINE Today 提供的個人化新聞,根據使用者經常閱讀的新聞來猜你喜歡的頭條。
  • 中午逛街的時候,經過捷運站可能會觸發 LINE Beacon 的服務,並且 LINE 貼圖的購買也會根據圖片內容下一些關鍵字協助搜尋。
  • 朋友間討論 LINE 功能,需要知道更進一步的使用方式。不需要真人客服的服務,可以透過 LINE 客服小幫手給予適當的協助。
  • 收到一些疑似的假訊息,可以馬上透過 LINE 訊息查證小幫手的人工智慧判別機制,馬上告訴你假消息。讓你不會成為假消息的幫兇。
  • 晚餐想找點特別的餐廳,可以透過 LINE SPOT來尋找最近的地點。並且透過 AI 的方式來推薦你可能有興趣的景點或是店家。
  • 回到家之後可以透過 LINE Music來播放令人覺得放鬆的音樂,並且可以透過 AI 來快速找尋到你喜歡的歌曲與歌手。
  • 睡覺前意猶未竟?可以透過 LINE 購物的 AI 購物推薦,馬上找到你最有興趣的商品,節省下單時間。

LINE TECH FRESH 介紹

LINE 台灣工程團隊每年透過 LINE TECH FRESH – 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們能在國際級科技公司中觀摩學習。

更多內容,可以參考這篇文章: LINE TECH FRESH – 技術新星人才計劃,實習經驗大公開

每一位實習同學都會分配到不同的團隊中,擔任著團隊裡面的種子工程師。經過一些內部與訓練型專案的指導,讓每一位參與的同學能夠了解跨國產品的開發流程與大公司的軟體工程技巧。

接下來由各個不同團隊來分享不論是擔任 TECH FRESH 的心得,或是許多有 TECH FRESH 的用人主管來分享他們專案的訓練方式與負責的業務範圍。

相關內容

TECHFRESH 實習心得分享 - Wei

接著上場的目前在 LINE Music 擔任正職開發工程師的 Wei ,講者之前也是由 TECH-FRESH 實習計畫畢業後獲得正職的機會。因為剛畢業的新鮮人要直接能獲得 LINE 的面試機會是相當的難得,往往面試官在挑選上都會希望畢業生或是新鮮人是經過 LINE 實習計畫出來的。才能夠確認是否符合公司文化外,透過為期一年的培養下,讓有潛力的開發人員能夠獲得有制度的訓練。

為何想加入 TECH-FRESH

講者首先在分享就有提到當初由於在校園的場子,偶然聽到 LINE 提供了實習計畫。於是馬上在 LINE Career 網頁上面提出申請。 經過了線上測試與線上作業後。獲得了面試的機會,面試官透過講者所繳交的專案來相互討論設計的想法與更多可以改善的空間。 進而獲得近來實習的機會。

TECH-FRESH 的實習生活

除了有相當高檔的辦公室椅子與個人工作電腦之外,最讓講者覺得驚奇的是工作方式的自由與鼓勵創意的方式。

  • 開發方式的自由:
    • 可以透過與 mentor 的討論,提議想要開發使用的框架與方法。
  • 跨部門合作:
    • 透過與其他 TECH-FRESH 的相互合作,甚至是學習到跨部門的合作(往往都是與日本的跨國合作。)。讓講者感受到跨國產品的開發流程。
  • 有制度的開發與上線流程:
    • 身為國內前幾大的網路服務提供商,所有的服務在上架之前都有嚴格的審核機制。在內部開發的時候更有詳細規定好該如何做 code review 與相關的測試規範。 讓當時身為學生的講者,學習到許多的經驗。
  • 優渥的福利:
    • 雖然身為實習的學生,但是應該要有的員工訓練與相關的同仁聚餐也都不會少。 隨著許多專案的上線,身為專案的貢獻者,更是有著跟著 LINE 工程團隊一起慶祝。

給想報名 TECH-FRESH 的學生建議

最後對於 LINE TECH-FRESH 有興趣的人,講者也有一些建議。

  • 良好查資料能力:
    • 在 LINE 中經常會使用新的技術與架構來嘗試專案,並且透過這些技術來改善許多舊有的工作流程。工程師的自學能力相當的重要,所以要建立好如何能快速找尋到需要的資料是相當的重要。
  • 網路教學影片與多看原始碼:
    • 對於自我學習部分,除了網路上有相當多的教學影片外。更建議同學們要經常主動閱讀開源程式裡面的原始碼,這樣除了能自行找尋問題之外。對於許多 coding style 與 coding convention 才能習慣,對於應徵實習機會的時候會相當的佔優勢。
  • 多做 Side Project ,作為熟悉技術的方法:
    • 透過作多 side project ,除了可以了解 git 的基本流程,了解開源專案的進行方式外,更能夠熟悉許多技術與了解該技術開發上可能會遇到的困難。

參考資料:

LINE Music 團隊介紹 - Cid

接下來由 LINE Music的開發團隊 lead - Cid 來分享與介紹。

什麼是 LINE Music

LINE Music是 LINE 所提出的線上音樂串流播放平台。並且與許多 LINE 的功能有深入的整合:

  • 「LINE鈴聲自造」功能讓用戶能從LINE MUSIC中離線下載任何歌曲,剪輯喜歡的音樂片段製作成個人化的LINE音樂鈴聲及來電答鈴。
  • 還能在LINE個人檔案頁面設定背景音樂。
  • 「AI智慧推薦」功能將根據千萬首的曲庫及個人音樂點擊狀況,每天更新個人特選歌單。
  • 「聊天室一鍵分享」功能讓用戶可以在聊天室中將30秒歌曲片段分享給朋友,即使對方不是LINE MUSIC會員也能免費收聽。
  • 最新的更有 LINE MUSIC 去人聲功能上線

有更多關於 LINE Music架構與相關功能歡迎查看投影片的介紹。

LINE HR ONLINE 專案分享 - Libra

LINE 除了注重著產品的快速迭代與使用者的體驗外,更是在意工作同仁的效率與權益。所以開發團隊也會協助內部相關系統的建置,務必希望每一個內部系統能夠適應上 LINE 的敏捷開發的工法,也希望能讓工作同仁節省更多的時間。

平時工作中,員工可能有許多表單與流程上的問題,經常會透過內部溝通系統來跟 HR 詢問。 但是隨著公司的擴展,那個問題的量可能一天高達十多間,造成 HR 無法有專注的時間處理,於是乎「 HR onLINE」就這樣產生了。

HR onLINE 透過 LINE 聊天機器人與自然語言處理的相關 AI 進階功能,透過將每一位同仁的問題加以分類,並且可以記錄與相關排程每一位工作同仁的需求。不僅可以加速 HR 的工作效率,更可以滿足每一個洽談的同仁。

LINE QA 團隊介紹 - John Wu

接下來 Johnny 帶來分享 LINE QA 團隊的介紹,LINE 因為有許多的,並且都是高用量的產品。每一個產品上線的時候,面臨的都是數以百萬的使用者流量,所以高品質的把關者更加的重要。

講者分享 QA 團隊的重點是 「 Diversity 」(多樣化),除了男女比相當的均衡外。並且也有來自於各國的工作同仁。測試團隊在每一家的公司都會有,但是 LINE 的團隊有以下的不同點:

  • 有著多種截然不同的產品與服務:地理資訊服務的 LINE SPOT ,音樂服務的 LINE Music 也有新聞提供平台的 LINE TODAY。
  • 與開發團隊的緊密結合:除了最終的產品測試外, QA 團隊更是在開發的初期就會一起討論,務求能了解使用者的需求。 並且也有自動化工程師(Automation Engineer),除了協助完相關部署的功能,更強化了其中的自動化測試與驗證的功能。

當然身為 LINE 的每一個工程團隊,都有著無比的好奇心與旺盛的學習精神。 QA 團隊定期的舉辦讀書會,透過學習「實例化需求」(Spec by Example) 的學習,讓軟體開發流程與測試流程都能夠更符合使用者的需求,讓每一個工程師都能夠更高效的開發。

LINE FRESH 校園競賽

LINE FRESH代表著 LINE 台灣與學生之間的深度連結,LINE台灣團隊在今年這個特別的時刻,我們舉辦第一屆的校園競賽,期望透過競賽的形式,廣邀校園中的優秀好手發揮創意,運用LINE旗下多元服務或開放的平台技術,為台灣產業創造更多商業可能性、為台灣用戶提供更全面的便利生活體驗。

手刀報名▶︎▶︎LINE FRESH 2020校園競賽活動官網

攤位活動

在台灣科技就業博覽會現場的攤位上,也提供了許多服務的相關介紹。並且透過這些小遊戲,讓每一個參與攤位的人都能夠更了解 LINE 的服務如何跟日常生活結合在一起。

  • 把錢變成喜歡的樣子:透過找出可以使用 LINE Point 的店家來回答問題。
  • 第一次約會就上手:透過 LINE Today 的電影資訊,馬上了解現在最熱門的電影,線上訂票一點也不難。
  • 神奇的 LINE 隱藏祕技:透過 LINE SPOT 可以找到當地的飲料店,並且可以馬上推薦給你的朋友。

透過這些小活動更每一位參與的人能更瞭解之外,也能獲得一些精美小禮物。

活動小結

第一次參與綜合徵才的博覽會,看到許多同學們與社會新鮮人的求職熱情。希望透過這次的活動參與,除了讓每一位參與者更了解 LINE 的工程團隊外,更希望好手們不要害羞,加入我們一起來打造令人驚豔 WoW 的服務吧!

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息


[NETFLIX] Cobra Kai 眼鏡蛇道館 (只要認真努力的話,在某些人故事中,也是會成為壞人)

$
0
0

改變一生的賽事結束數十年後,強尼和丹尼爾在《小子難纏》系列電影的續作中再次激烈交鋒。

(圖片與介紹來自: NETFLIX 眼鏡蛇道館介紹頁面)

就算是再好的人,只要有在好好努力,在某人的故事裡也會變成壞人。
																								【貓之寺的知恩姊】

劇情簡介:

小子難纏是一部發生在 35 年前 (1984) 的電影(我也是很小的時候看重播的 XD) ,裡面身為學校裡面剛搬過來的主角 Daniel ,被學校裡面的風雲人物 Johnny 所欺負, 而 Johnny 就是在眼鏡蛇道館裡面學空手道。 結果 Daniel 認識了日本的空手道師父宮城先生,開始一連串的鍛鍊(洗車,擦玻璃,整理花圃)。一開始 Daniel 還相當生氣,為什麼這些會跟空手道有關係。結果在宮田先生的指導下,這些訓練逐漸發生效果,最後 Daniel 擊敗了當時學校的惡霸 Johnny 也抱得美人歸。

(當年 1984 Karate Kid 的預告片)

35 年後… 當年金髮碧眼意氣風發的校園風雲人物 Johny 因為在空手道總決賽輸給 Daniel 之後,人生過得相當的悲慘。他自怨自艾,並且也有了一個失敗的婚姻,有了一個失去聯絡的兒子,整天跟酒渾渾噩噩的過日子。 有一天在超商遇到一個可憐的外來移民高中生 Miguel 被小混混欺負,於是使用了以前空手道的功夫教訓了小混混們,並且受到 Miguel 的影響,開始重新開設眼鏡蛇空手道館,想要讓這些被欺負的宅男們保護自己。

相反的 Daniel 在打敗 Johnny 人生過得相當順遂,開設了汽車行賣車子。並且用空手道作為廣告宣傳獲得相當不錯的業績。 跟高中女友分手後,娶了美女老婆也有可愛的高中女兒 Samantha 跟一個兒子。 劇情就在這裡展開了。

令人驚喜的劇情部分

劇情部分就不幫各位暴雷,就先提幾個我覺得劇情裡面很有趣,也是設計巧思的部分分享一下。

好壞並不是絕對

如同敘述的,本部影集的主角是以前的惡霸 Johnny ,而不是 Daniel 。 並且故事中的他也相當的可憐。 就他的說法, Daniel 來了以後,搶了他的女友,並且在決賽打敗他,讓他在學校變得被人嘲笑。整個人生也變得相當的悲慘。

而 Daniel 雖然是電影版的壞人,但是從小受到眼鏡蛇道館欺負的他。看到 Johnny 又開設道館後就反應過度,千方百計阻礙 Johnny 並且透過各種手法打擊他。 ( 484 很像壞人?)

這部影集中, Johnny 想要改邪歸正。逐漸從自我放棄人生中走出來。而 Daniel 過分想要保護家人而顯得有些不擇手段。

於是也讓人想到: 「就算是再好的人,只要有在好好努力,在某人的故事裡也會變成壞人。」 這句台詞。

某些相同的巧合

經過劇情發展, Daniel 跟 Johnny 各自有了新的徒弟,並且在最後比賽碰頭。 並且兩個徒弟都愛上同一個可愛女孩(也就是 Daniel 的女兒 Samantha ) 。 許多影集的劇情也有「致敬」電影版的許多相對應之處,除了感受到設計巧思外,也讓人回顧了時空?

全民女友 - Elisabeth Shue

這時候又發現原來 35 年前的重要角色,兩位男主角爭奪的女主角也是當時的全民女友 Elisabeth Shue。不僅僅有演小子難纏擔任女主角,也是回到未來系列的女主角。當然最近比較讓我了解的就是他也有演 CSI 。

令人懷念的 宮城師傅 (Pat Morita)

Pat Morita也就是在系列電影中的神祕日本宮城師傅,在電影中也講出了許多至理名言。

「輸給對手,沒有關係。輸給恐懼,不可以。」

本來很好奇宮城師傅怎麼了,裡面也有一集專門紀念他,他本人(演員)也於 2005 年過世了。

結語

滿滿的回憶之作,但是裡面有許多故事鋪成算是精心地打造。讓原來的壞人 Johnny 變成了主角,並且深入敘述他內心的轉變。 裡面也不斷的從 Johnny 的角度來看事情的過程。 許多欺負人在他心中可能只是一個小是,但是被當初的主角 Daniel 打敗,搶走女友卻一直無法忘懷。 真的也是呼應到了~ 「就算是再好的人,只要有在好好努力,在某人的故事裡也會變成壞人。」。

相關鏈結:

[研討會心得] 2020/09/22 BECKS.io #7 聚會心得

$
0
0

大家好,我是 LINE Tech Evangelisgt – Evan Lin。LINE 一直以來不遺餘力地提升資訊安全,除了以 DevSecOps 的概念為基礎,將資安 DNA 注入 LINE 產品與服務,更積極促進整體資安生態圈的成長。 而 Beer is beautiful, hacks is amazing, BECKS is gold. BECKS是Beer與Hacks兩個字所組成。 透過一系列的 BECKS.IO – Security Meetup 資安社群活動,為韓國、日本、台灣等地的優秀資安人才提供當面交流、建立良好連結的機會! 本次 BECKS.IO 小聚選於台北的 Avenue 舉辦,邀請台灣的講者們,在輕鬆開放的氛圍中,暢談不同企業與個人的資安思維及實務經驗,並展望相關技術的未來發展。

KKTIX 活動網頁: 活動網址

Detect and track Apple devices for fun and profit - Ta-Lun Yen / TXOne Networks (Trend Micro) Threat Researcher

來得太晚,只聽到後半段。主要講解關於 Apple裝置的一些溝通與互動方式。不論是討論的 BLE 還是 Hotspot 的溝通方式。也有提到 Airdrop 的部分。

內容大多是溝通方式,可能有的資安疑慮。 現場也展示了透過軟體來掃出所有在場藍牙裝置的 uuid 與 MAC address。

From NLP to Neural Network based Malware Detection - aaaddress1 / Chroot member

原始論文: https://github.com/Lancern/asm2vec

講者網站: https://30cm.tw

惡意程式 (malware) 的 syntax pattern (from assembly call)

  • uExitCode -> intterup

如何防禦 Malware

  • 把程式切塊,找尋可疑區塊。

是否可以借助「語義學」模型來找出 malware 判斷方式

缺點:

  • 指令與指令間的關係 (for loop 回傳 pattern)
  • 大量改版,變種的 malware 。
  • 根據舊的 malware 新增索引包,很容易被判斷跳脫

語義學(semantics)介紹

  • 根據一個詞的前後文來判斷文字本身的意思
  • e.g.
    • I drink beer, I drink wine.
    • I guzzle beer, I guzzle wine.
  • 透過共生矩陣表 (tokenFeq) 來找出前後文出現頻率,有出現 +1 。
  • 透過詞頻率畫出的折線圖,可以找出類似的詞。 (e.g. drink and guzzle)
  • cosine similarity

為何不直接用 semantics 分析方式?

  • 如果有新的詞出現,造成 tokenFeq 得重新建立(訓練)

所以,本次分享將用 distributed memory sharing 方式來建立,而非使用共通的 tokenFeq 。

透過相關 dimention 來分類,而非直接緊接的詞。

e.g.

  • Apple -> 技術相關的品牌
  • NBA -> 運動類別
  • Apple Watch -> 運動心跳 -> 技術品牌
  • China -> 政治類別
  • 華為 -> 科技品牌 -> 政治類別
  • 接下來就可以計算兩個單詞的相似度 similarity
    • China x 華為 –> 相似度就會很高。
    • 經常使用到的方式 : sigmoid 將無限大的數值, normalize 0~1 。
  • 不斷的 sigmoid 會造成相似會聚合一起 (over-fitting)
    • 解決方式:
      • Google 採取方式,也要計算錯誤的方式。
      • 透過一整段詞的 average ,來確認是中間詞的數值。

Asm2Vec

那麼要如何透過 word2vec 來判斷 malware ?

  • 指令的詞分佈性
  • 透過完整 asm 指令前後文的相似分佈

要能完整拿到指令前後文,需要使用靜態掃描,在動態執行狀況要如何取得前後文?

  • 透過分區塊的方式分群
  • 透過區塊間的流程 block a -> block b -> block c -> block b
  • code block 之間透過丟骰子的方式,來判斷前後文的關係。 (Random walking)

  • 這樣也可以透過三個詞的平均,來判斷中間詞的是否相似

是否要用 push rbp來建立 tokenFeq?

  • sub rsp, 138h
  • sub -> op
  • Rsp -> 參數
  • 138h -> 參數
  • 補齊參數,作為矩陣操作用
  • 對於 asm 經常出現的指令
    • mov rax 8h
    • 需要透過一個
      • Loss function theda 來調整,作為相似度的 sigmoid 調整用

成果

  • 用 25 隻 mirai 樣本,來訓練出來。來預測四萬多隻的樣本:
    • MIPS 96%
    • x86 96%

Challenge

  • malware 只要套上「殼」(shellcode),就不容易被抓到
  • dll side-loading 方式,就無法找出 control graph
  • mov 語意相當的薄弱
  • 動態修改自身程式碼
  • 95% 是正常的程式碼,只有最後 5% 是 malware

相關的 Q&A

  • Q: Random walking 如何確認正確? 順序一錯,完全就是不同東西。
    • A: 原本論文 30 ~ 40% 正確性
  • Q: 為何相關成果不公布?
    • A: 論文還在研究,跟原本作者想法有一些不同。

議程小結:

將者將原始作者論文 repdroduce 後,發現其中有一些有問題的算式部分。加以修改後,得到更好的效果。算是一個相當有趣議程。

活動小結

今晚的聚會邀請到國內外資安專家,不藏私分享資安策略和經驗,幫助與會者在短短數小時內,從不同角度領略實現資安的各種可能。BECKS 是由 Beer 與 Hacks 兩個字所組成,透過本次小聚,我們再度凝聚資安社群,讓資安專家分享最新研究,並讓各領域的資安研究員進行面對面討論,除了幫助更多人了解 LINE 的安全設計,更希望透過交流,讓多元的資安思維得以迸發出精彩的火花!

立即 follow「BECKS」活動訊息,就能收到第一手 Meetup 活動最新消息的推播通知。▼

「BECKS」活動專頁:https://becks.io

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息

[研討會心得] 2020/09/23 Golang#54 @LINE

$
0
0

前言

大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 Golang 社群的邀請,參加了 “Golang Taipei Gathering #54” 的聚會活動,並且分享 Golang 開發的一些技巧與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓 Golang 更受到人了解。

Golang in LINE MUSIC TW - Wei@LINE Music

介紹 LINE Music 中主要使用到的 Golang 套件與相關的經驗分享。

errors x stack x info - Hsueh-Tsung Kuo @Rayark

投影片: https://hackmd.io/@fieliapm/Bk48ziTj8#/

首先講者先介紹了 Go Error 系統的一些常被人詬病的問題:

  • error 包含的資訊過少
  • 不容易瞭解錯誤,拆包(摘解 error)與包裝

Go 1.13 的 error

可以參考一下這篇 Working with Errors in Go 1.13,可以透過 Warp 跟 UnWarp 來包裝與拆解 Errors 。

  • 有沒有辦法 Inspect ?
    • 透過 error.Is()來判斷是不是同一個,或是透過 error.As()判斷是不是同一種類別 (type assertion)。
  • Go Error system sucks, 可以參考 Rust 的 error handling與 Trait std::error::Error

  • https://github.com/pkg/errors 不錯用,但是無法解析底層的 errors (因為跟底層的 standard error 不相容)。參考文章 Can new Go errors wrapper replace pkg/errors?

參考鏈結

活動小結

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[TIL][Golang] Debugging Go in prod using eBPF 心得

$
0
0

Refer article “Debugging Go in prod using eBPF” by Zain Asgar : https://blog.pixielabs.ai/blog/ebpf-function-tracing/post/

前言:

在 Golang 上面來 debugging 其實有許多方式,不論是最常使用的 logging 或是透過 delve 甚至是 GDB 。 都算是常見方式來 debugging Go 。 但是最近看到這篇文章,覺得裡面提到的 eBPF (extended Berkeley Packet Filter) 算是蠻有趣,在這裡稍微做個簡單的整理。

Golang 上除錯的方式 (Debugging in Go)

一般來說要在 Go application 中來 debugging ,有以下的方式:

Add log:

就如同大家熟悉的,使用 fmt.Println()或是 log.Println()

Using debugger (delve or GDB)

不論是透過 vscode 內建的 delve ,或是透過 GDB 來做 debugging 。 透過 debugger 來除錯,其實是相當消耗系統資源,並且經常會中斷整體應用程式的運行。

Tracing

這裡指的是透過外部的 tracing tool ,不論事 USDT 還是 strace 都算是一種方式。

什麼是 eBPF

eBPF (extended Berkeley Packet Filter) 根據官方網站 (https://ebpf.io/) ,是一個技術可以讓 application 跑在 sandbox 上面,並且可以透過 Syscall hook 方式來查看相關的資料而不需要修改任何的 kernel source code 。

應用範圍有:

Secuerity:透過 eBPF 可以做為一個與系統呼叫 (Syscall) 與硬體設備的中間層。

Tracking and Profiling:由於 Linux 系統都有提供 eBPF 的接口,可以透過這個直接 tracking 與 Profiling 你的應用。 (with very low latency) 。

這也是這篇文章提到的主要技巧。

為何使用這個?

既然提到 Debugging Go App 的所有工具,必須要跟其他方式做個比較。可以看到 eBPF 具有以下特性:

  • Performance Impact 非常的低(disruption 也很低),類似於 Tracing tool 。但是跟 GDE 與 Delve 一樣可以追蹤到 Application Code。
  • 但是無法作分散式系統的測量,因為一次 eBPF 只能針對你需要 hook 的應用來做 debugging 跟 tracing 。

更多介紹:

[研討會心得] 2020/09/18 LINE Developer Meetup 13 (一)

$
0
0

前提

大家好,我是 LINE Taiwan DevRel 團隊的 Evan Lin。很開心在這裡跟各位分享本年度的第三場開發者小聚。 這也是疫情後第一次在新竹舉辦的線下聚會的活動。 也是 LINE 台灣工程團隊第一次來到交通大學舉辦線下的活動。

KKTIX 活動網頁: 活動網址

本次 LINE Developer Meetup 開發者小聚,首先有 LINE 台灣技術長 Marco Chen 帶來的 LINE 技術新星實習計畫的相關介紹,並且有 LINE 資料工程團隊的負責人 Shawn Tsai 帶來關於 ”How ML Powers LINE Services” 。

文章列表

  • 第一篇 : [研討會心得] 2020/09/18 LINE Developer Meetup 13 (一)
  • 第一篇 : [研討會心得] 2020/09/18 LINE Developer Meetup 13 (二)
  • 第一篇 : [研討會心得] 2020/09/18 LINE Developer Meetup 13 (三)

LINE TECH FRESH (LINE 技術新星人才計劃) 學生實習計畫宣傳 / CTO Marco Chen

首先上場的就是 LINE 台灣的 CTO - Marco Chen ,身為 LINE 工程團隊的大家長 Marco 為所有同學來解釋關於 TECH-FRESH 當初成立的緣由。以下有一些擷取自當天內容:

請問各位在職的來賓,你們當年在學校想著從事你現在的職務的人,請舉手。
請問各位在校的同學,你很確定你將來的工作内容是什麽的人,請舉手。

你們知道在 LINE 或像 LINE 這樣的網際網路應用服務的公司,開發一個大流量的系統,要有多少種專業角色的人參與?
使用多少種技術? 各位知道有那些角色? 那些職務?

TECHFRESH 是 LINE Taiwan 的在校生技術實習計劃,有兩個主要的目的:

- 幫助準備要進入職場的同學,真正的去了解,在一家網際網路應用服務的公司中,會有那些軟體開發的工作。進而可以讓同學們,找出自己職涯中最合適自己的工作内容,發揮自己的專長。不論最後是不是在 LINE 發展,我們也幫助這個國家培養出好的人才,能發揮最大能力貢獻給這國家。

- 在過程中培養出熟悉我們開發技術與流程的人材,進而到最後願意留在 LINE 發展。原本 LINE 的暑期工讀計劃,三個月的時間,對於資訊科系學生想要能真的了解統開發生命週期中所有角色與工作内容,實在太有限了。 因此我們向總部提出一年的實習計劃,一週來三天,工作內容則是由 TPM 帶領,執行一些一次性的專案開發,或者加入專案團隊支援專案團隊的開發工作。

透過這一段談話,同學們可以清楚了解到 LINE TECHFRESH 成立的主要原因與由來。透過長達一年的實習,同學們才有機會真正的學習跨國產品的開發合作,軟體工程開發的經驗。 希望同學們趕快來報名! 申請網址

相關資料:

How ML Powers LINE Services / LINE Data Team - Shawn Tsai

第二位上場的是 LINE 台灣資料工程團隊的 Shawn Tsai ,跟大家分享機器學習如何的讓 LINE 的服務能更貼近使用者。

LINE 台灣資料工程團隊的組成

首先 Shawn 先跟大家分享 LINE 台灣資料工程團隊的組成,主要由以下三個角色所構成:

資料工程師 (Data Engineer)

身為資料工程師需要有一手強大的工程技能,不論是資料的截取,抓取與前處理 (Pre-processing) 。甚至是資料探索的部分,到最後機器學習模型的部屬都缺少不了資料工程師的協助。

資料科學家 (Data Scientist)

資料科學家的工作就是要協助資料工程師來擷取資料,並且一同討論如何前處理之後。將機器學習模型學期出來。

資料分析師 (Data Analyst)

資料分析師的重點在資料的探索,尋找出真正能解決問題的數值。並且針對完成的模型來做相關的測試與修正。

資料工程團隊與專案的合作方式

資料工程團隊主要由以上三個角色所組成,所有的資料工程團隊會因為不同的產品需求有不同的任務小組。 有些產品還在資料討論與擷取的階段,有些產品可能已經進入機器學習模型的調教。 針對不同產品線,每一個成員在日常的工作都可以參與許多有趣的產品與專案,更能學習新穎的機器學習模型方法來套入每一個日常工作之中。

資料工程團隊面臨的挑戰

由於 LINE 使用者超過兩千一百萬, LINE TODAY 上面一年產出一百萬篇文章, LINE 購物上每個月有五百萬筆商品查詢。這麼多的資料就是資料工程團隊要面臨的問題。 而機器學習本身可以是簡單的,也可能是相當複雜的。接下來就會根據產品的不同稍微解釋所使用到的機器學習技術。

LINE 客服小幫手

img「糟糕…換手機要怎麼移動帳號? 」

img「怎麼購買貼圖送給親友?」

這些問題都是使用者每天都會想要了解的操作問題,但是要如何能及時的找尋到解答呢? 這時候就可以透過「客服小幫手」機器學習的能力來幫你快速回覆。 手機點此加入LINE 客服小幫手帳號或搜尋 @linehelptw加入好友。 更多使用方面的介紹可以參考 「LINE 客服小幫手」智能客服全新升級~對談中解決用LINE大小事

由於同樣的問題可能會有各種詢問方式,比如說:

  • 為什麼有時候賴都不會通知?
  • 訊息都跑不出來是怎樣?
  • LINE 都不會叫也不會震動?

這三種完全不同的問法,可能導向的都是當初 iOS 11 更新造成的問題。這些如果要透過人力來回覆相當的費時,就需要使用自然語言理解 (NLU: Natural Language Understanding) ,並且是用到 LSTM 來了解文字在前後文中的相關性,並且透過 CNN 來獲取文字與其他文字的特徵。 這是第一個版本的解法,但是效果不算是令人滿意。 後來透過了使用 seq2seqCBoWDSSMBERT達成的 Esemble 的解決方案,這樣的方式大幅度的得到比較好的效果。

LINE 訊息查證小幫手

LINE 訊息查證」平台在去年七月份正式上線,不僅有官方網站,更串聯 LINE 官方帳號,用戶只需把在聊天室中收到的訊息「轉傳」至「LINE 訊息查證」官方帳號。如過去已有查核報導在資料庫中,查證小幫手會自動判斷其真偽,系統將即時提供查證結果;如訊息尚未查核,將提報給專業查核單位,待釐清後再盡快回傳正確資訊給予用戶,提供最即時的訊息辨別服務,協助用戶辨識可疑訊息真偽,降低假訊息再次散播的機會。

每天收到的訊息量高達四萬則,但是人工辨識每天只能夠 300 則,所以這時候需要機器學習大量的協助。 透過了 Near-DuplicationClassification兩種方式來尋找與分類訊息。現在訊息查證的效率也進步了十倍以上,並且成功的釐清了 46% 使用者所發送的可疑訊息。 不想要變成假訊息的傳播者嗎? 一起加入 「LINE 訊息查證」官方帳號。

透過機器學習專案的學習

許多學生朋友都會好奇,真正在 LINE 來從事資料工程團隊的工作倒底每一天的時間都在做什麼? 講者也很大方的跟大家分享了,身為資料工程團隊每一天大部分的時間真的都是花在訓練機器學習模型嗎? 這張圖可以讓各位了解,大部分的時間都是花在機器設定( Configuration) ,資料擷取 (Data Collection) ,並且相當多時間在資料的驗證 (Data Verification) 甚至是模型建立後的建置能夠不斷的更新最近的機器模型的基礎建設 (Serving Infratructure) 也會花費相當多的時間。 真正拿來做模型訓練往往是整個專案中少少的一個部分而已。 也可以知道資料科學家主要的時間與專業在於如何找出與辨識「關鍵的資訊」。

相關文章:

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[研討會心得] 2020/09/25 LINE Internal Hackathon 2020

$
0
0

大家好,我是 LINE Tech Evangelist - Evan Lin 。LINE 很重視員工們的自主創新與團隊合作,所以各地都會舉辦 LINE Internal Hackathon 。 在 LINE 台灣這已經是第二屆的內部黑客松競賽,也期待能夠看到不同團隊激盪後滿滿的創意。

第一屆內部舉辦的時候,受到許多的迴響。不少非工程團隊也希望能夠一起參與,所以今年特定修改參賽方式,第二屆的 LINE 內部黑客松競賽的主題就是 「Team up for A+」 ,目標希望同仁們能團隊合作,共同優化與創新出更令人驚豔(WOW) 的產品服務。

第一屆回顧 LINE Internal Hackathon 2019 - LINE Attitude

第一屆的 LINE Taiwan Internal Hackathon 主旨為 「AI is new Attitude」,由於 LINE 是一家注重 AI 的公司,我們也希望每一位員工都能透過機器學習為出發點,來反思每一個服務,一些內部應用是否可以透過機器學習與人工智慧的方式來優化。

第一屆的 LINE Internal Hackathon 我們收到許多有趣的應用,在 TECHPULSE 2019 上我們也分享了第一名的成果與技術。 也就是透過人工智慧的方式來幫助出差報帳的系統。

20019 LINE Internal Hackathon 第一名:自動報帳系統

LINE 的開發團隊遍及許多國家,於是 LINE 的工程團隊有許多的機會可以到不同國家的分公司去合作與討論。但是回來後最令出差人員困擾的就是要將許多的單據一步步的用人工的方式要輸入到系統與表單之中,這樣的作業流程往往要半個小時左右,相當的消耗人力。

去年的參賽隊伍透過人工智慧學習的方式,透過超過數百張出差表單的學習經驗。透過 iPhone 的軟體拍照之好,透過 OCR 的辨識與學習經驗,自動將不同表單填寫到正確的表單位置。並且產出報帳需要的表單文件。大大的將原本三十分鐘節省報帳的流程到兩分鐘之內。因此獲得了評審的青睞。

今年新增 (What’s new in 2020)

第一屆舉辦後收到不少的迴響:

  • 非工程團隊能有否參與的機會? 有點子但是都找不到工程師來一起組隊。
  • 有沒有更多的時間能讓參賽隊伍完成這個專案?

吸取了去年的意見,於是今年的參賽規則也做了部分的修改:

  • 每個參賽的隊伍需要有不同團隊的成員(e.g. 開發人員+行銷團隊,或是開發人員+人力資源團隊)。但是開發人員與測試人員都ㄙ算是工程團隊而無法這樣組隊。

  • 第一階段提案入選的隊伍,能夠有三次的 Hacking Space (黑客工作訪)的機會。週末下午有特定的空間與餐點(下午茶)提供讓每個參賽隊伍能極盡可能得提高產品的完成度。

( Hacking Space 的紀錄照片)

同事們都很妥善利用公司所提供的時間與空間,在不影響專案進度的狀況下熱情的參與。

總決賽

經過了三次的 Hacking Space 的活動後,也到了最後總決賽的日子。 為了讓公司內沒有參賽的同仁可以一起觀賞總決賽的展示說明。這一次特定在總決賽舉辦在公司內部的十二樓會議空間。 整天的活動分成三個部分:

  • Hacking:
    • 讓同仁做最後衝刺的機會,並且可以調整簡報的順暢度。
  • 猜謎活動:
    • 下午舉辦的猜謎活動,一些有趣的問題外。也讓緊張的氣氛獲得緩解。
  • 最終展示簡報:
    • 最終的簡報展示,必須包含可以 demo 或是讓評審實際遊玩的產品。

現場也有一些必要的佈置,並且也替每一位同仁定制了專屬的紀念 T-shirt 。提供給每一個參賽的同仁可以拍照,讓本次的活動不留白。

猜謎小活動

從去年第一屆就開始的猜謎小活動,其實題目都相當的有趣。除了有 LINE Friends 相關小故事猜謎外,也有一些 LINE 相關服務的問題。除了可以讓每一個同仁更佳的了解 LINE 之外,也可以讓每個同仁舉舉手,運動一下也可以舒緩緊張的比賽氣氛。

活動小結

今年的參賽題目都相當的有趣(礙於都有可能變成未來產品,不方便公開)。除了許多產品有人工智慧與機器學習的輔助之外,更有許多產品是相當有趣的突發奇想。也由於今年有 Hacking Space 的安排,每一個參賽隊伍的作品完成度都很高,不僅僅都可以讓評審現場的試玩之外,也都開放給全台灣同人測試。 完成度與穩定度之高,讓評審們都讚不絕口。

也想要參加有趣的 LINE 內部的黑客松活動嗎? 那還不趕快投遞你的履歷加入 LINE 喔!

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息

[研討會心得] 2020/10/21 TWJUG@LINE

$
0
0

前提

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。在 2020/10/21 的晚上,很開心能夠再邀請 TWJUG 社群來到 LINE 台北辦公室來舉辦社群聚會。這次的講者一共有四位,而其中來自於 LINE 的講者主要是 TECHFRESH 的 Wayne Wu ,來自 LINE 購物團隊的 Joanna Hu 與 Andy Chen。

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

開場 LINE TECHFRESH 介紹

LINE 台灣工程團隊每年透過 LINE TECH FRESH – 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們能在國際級科技公司中觀摩學習。

更多內容,可以參考這篇文章: LINE TECH FRESH – 技術新星人才計劃,實習經驗大公開

每一位實習同學都會分配到不同的團隊中,擔任著團隊裡面的種子工程師。經過一些內部與訓練型專案的指導,讓每一位參與的同學能夠了解跨國產品的開發流程與大公司的軟體工程技巧。

接下來由各個不同團隊來分享不論是擔任 TECH FRESH 的心得,或是許多有 TECH FRESH 的用人主管來分享他們專案的訓練方式與負責的業務範圍。

LINE 實習經驗分享 / Wayne Wu

第二位上場的是來自於台大資工系大四同時也是目前在 LINE 實習的同學 Wayne Wu ,他來分享從七月到現在剛好滿三個月的實習心得。 首先身為學生,在專題分工的習慣上常常有「責任歸屬」不均的狀況,「溝通」不順暢與「流程」不清楚的問題。但是來 LINE 實習的時候往往不會有這樣問題,透過有經驗的 Mentor 細心的帶領,並且在實習一個月後有了處理新專案的機會,讓講者在學習上更有自主性與積極性。

同時間講者也分享了,在 LINE 實習的時候感受到團隊內對於文件的高度要求。清楚的文件帶領的新手快速入門,並且 Mentor 也會要求處理過的同學試著紀錄下所有的經驗的學習機會。透過了定期內部讀書會,提高了學習的動力與技術力,並且透過經常性的溝通確保團隊內的同仁都是在共識下將專案積極推進。

跨國合作上,講者也分享了與越南工作同仁的小趣事。彼此在溝通上雖然都是透過文字,但是也讓語言能力與表達能力能不斷的提升。

最後這位同學也分享了他平時就是常常在懶骨頭上工作,可以更專注地處理手上的問題。風氣很自由並且工作彈性高,讓工作就像是另一場有趣的學習。

Migrating to JUnit 5 / Joanna Hu

接下來由 LINE SHOPPING 的工程師 Joanna 來分享 migrating 到 junit5 的經驗分享。首先先釐清幾個名詞:

  • JUnit Jupiter: 一個在 JUnit5 上新的撰寫 test case 的方式。
  • JUnit Vintage:則是可以跑 JUnit3 與 JUnit4 架構語法的測試引擎。
  • JUnit Platform:則是最底層用來在 JVM 下啟動測試架構。

為何整合到 JUnit5

  • 高度支援 IDE 與 build tool
  • 容易從 JUnit4 移植
  • 並且有相關新功能

JUnit5 新功能

  • Nested testing

支援 Nested testing,應該是讓測試檔案的架構變得更有系統,也可以分類成各種功能來跑不同規模的測試。

  • Display Name

支援 Friendly Display Name ,可以讓測試執行的時候不僅僅是顯示測試的名稱。而是更有意義的測試名字。

  • Parameterized tests

透過不同的參數輸入來不斷地重複執行同一個 test function 。

  • Support multiple runners

How to migrating to JUnit5

接下來也是本次演講的重點,如果你是 JUnit4 的開發者,如何來 Migrating 到 JUnit5 呢?

  • 升級你的 Maven 到 3.63 以上
  • 升級你的 Gradle 到 4.6 以上

  • 先寫一些使用 JUnit5 的測試案例

  • 移植舊有 JUnit4 的測試
    • Package 有更換過就可以繼續使用
  • 根據 JUnit4 Rule 測試,改寫成 JUnit5 Extension
    • 透過換名字方式即可,也可以使用 IntelliJ IDEA 的功能來置換

參考文件:

  • JUnit 5 website: https://junit.org/junit5/
  • 7 Reasons to Consider JUnit 5: https://dzone.com/articles/7-reasons-to-consider-junit-5
  • Migrating from JUnit 4 to JUnit 5: https://blog.jetbrains.com/idea/2020/08/migrating-from-junit-4-to-junit-5/

Introduction to AssertJ / Andy Chen

接下來一樣也是由 LINE SHOPPING 工程師 Andy 帶來介紹 AssertJ 。 透過 assert 是拿來檢查相關數值或是測試的警告訊息。 而 AssertJ 有著比較好閱讀的優點,接下來會詳細介紹:

Fluent Expression

透過 AssertJ 可以顯示更像口語化的方式,

assertThat(actual).isEqualTo(expected);

除了可以容易閱讀,也更容易表達。 也可以透過 AssertJ 來減少 getter 與 temprorary variable 。也可以透過 collection asserting 來一次做多種數值的檢查。

Better Error Description

透過 AssertJ 可以有更多的 expression 來表達正確的想法,可以避免過多的單獨 assert 反而容易有遺漏。

並且可以透過 soft assertion 讓錯誤發生的時候不會第一個就跳出,可以一次檢查許多個地方。

並且有更多的相關功能 Expression Assertions , Optional Assertions 更清楚與 Completable Future Assertions 都可以使用。

總結

  • AssertJ 可以更容易來陳述與表達 test case 原本的意思(語意上)
  • AssertJ 可以更清楚表達 test failure 的狀況
  • 更少的 code 可以有更精準的表達

參考文件:

活動小結

感謝 TWJUG 的熱情參與,在 LINE 辦公室舉辦的活動獲得相當高的報到率。 LINE 對於開源技術社群持續的耕耘與支持,並且即將在 2020/11/19 舉辦的 JCConf 擔任黃金級的贊助,當天也有相關的攤位與開發者們相見歡。 熱愛 Java 的開發者,大家到時候見!

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:


[好書分享] 找到你的為什麼: 尋找最值得你燃燒自己、點亮別人熱情的行動計畫 (FIND YOUR WHY : A Practical Guide for Discovering Purpose for You and Your Team)

$
0
0
找到你的為什麼
作者: 賽門.西奈克、大衛.米德、彼得.道克  
原文作者: Simon Sinek、David Mead、Peter Docker  

買書推薦網址:http://moo.im/a/7ertCS

前言:

這一本是今年所讀完的第八本書。

賽門.西奈克曾經在一段影片中提出「黃金圈激勵理論」,裡面提到驅使人類去行動的三個圓圈。外層是做什麼的「WHAT」,中間而是如何做的「HOW],而在中心點就是最重要的「WHY」。

這一本書就是再將這段影片的內容加以詳述的一本書,也是我推薦給每一個想要激勵別人的人都該看的一本書。

內容簡介與心得:

Thinkers50全球管理思想家第18名、新世代領導大師西奈克10年前首創黃金圈激勵理論,
他的TED同名演講盤踞最受歡迎前三名,吸引近四千萬人觀看。
《先問,為什麼?》全球銷售破百萬冊,持續高踞亞馬遜分類榜TOP 1。

愈來愈多讀者開始問:「我跟我的團隊該怎麼做,才能找到為什麼?」
西奈克與團隊在全球各領域累積10年顧問經驗,將「為什麼」理論發展為完整的行動計畫,
適用於每個人、每個團隊,幫助大家踏上為什麼的旅程,發揮最大潛能!
「人們不會買你做了什麼,人們會付錢去買你為什麼而做它」 
                                             by Simon Sinek

「你是否曾經跟一個陌生人介紹過你的工作,你是如何敘述你的工作內容?」 這本書的一開頭,作者用了自己的一個例子,來講解工作熱情的重要性。他試著再坐飛機的路途上,跟著鄰座的人來敘述他的工作。如果是你,你會如何敘述自己的工作? 一開始你可能先說明你的工作,再來你可能會跟他人分享著你日常的工作內容。 這樣的會談相當的令人乏味,但是如果你試著分享著自己做工作時候的心情與想法,為何想要做這份工作? 與這份工作帶來給你的意義,慢慢的你就會找到你工作上的「WHY』,你會覺得興奮,感到熱情萬分,你會認為你做了一個世界上最好的工作。

這本書透過「為何需要找為什麼?」「你如何找到你的為什麼?」再來慢慢的帶領你如何幫助你與你的團隊來找到你們的為什麼。書本的後半部分偏重於整個「團隊探索營」該如何舉辦,如何開始,如何能讓團隊的探索引導到正確的方向。進而你們就能找出團隊的強項,讓團隊們來追尋共同信仰的價值,追尋你們的夢想(也就是你們的 WHY )。

心得:

整本書很像是該十八分鐘影片放大版,但是因爲重點圍繞在如何帶領團隊一同探索。所以很多「團隊探索營」的細節。但是整本書的理念相當的正確,也很適合做 Developer Relations 的人來好好看看。 因為許多人不了解開發者關係,不懂開發者關係,所以無法了解工作每一個環節所帶來的意義。 總是認為 DevRel 在辦活動,去演講,跟開發者打好關係。 這些都沒有錯,但是就像是由 What -> How -> Why 去敘述一樣,無法讓人打動人心。 雖然這是團隊探索的方式,卻不是一個跟他人分享的方式。真正的方式應該由 Why -> How -> What 來敘述著每一份工作。這樣才能讓許多人了解日常工作細節的重要性。

舉個例子,如果要做 Internal Evangelism 。 那麼應該是要透過分享與激勵他人的成長來讓內部同仁的自我成長(Why),所以我們鼓勵同仁們去分享。 讓同仁們了解分享所帶來愉悅的心情與成長的喜悅(How),進而讓他們自我成長。 所以我們舉辦內部讀書會,廣設工作坊甚至是舉辦外部活動來讓同仁去外部演講,去官方部落格來撰寫文章 (What) 。

由 Why -> How -> What 來了解他人工作,就會變得相當的合理與精確。許多時候的辛勤工作也都能被體會。 也建議每一個讀者來看看這本書,一起找到你們生命中的 Why 。

[好書分享] 刻意練習:原創者全面解析,比天賦更關鍵的學習法(Peak : Secrets from the New Science of Expertise)

$
0
0
刻意練習
原創者全面解析,比天賦更關鍵的學習法
Peak : Secrets from the New Science of Expertise
作者: 安德斯‧艾瑞克森、羅伯特‧普爾  原文作者: Robert Pool、Anders Ericsson  譯者: 陳繪茹  出版社:方智出版

買書推薦網址:http://moo.im/a/5dvIOY

前言:

這一本是今年所讀完的第九本書。 經常聽到人家說「一萬小時法則」,還有 Kobe 與 Leborn 就算擁有著令人羨慕的天賦,依舊在聯盟裡持續不斷的鍛鍊。來維持自己高效能的表現。

那是不是只要一直花時間就好呢? 事實上可能不是如此。你需要將練習的精力花在正確的地方,那麼這本書就是在探討該如何練習才能到達巔峰,該如何有效地「刻意練習」。

內容簡介與心得:

找到天賦,不如找對方法!
天才與庸才之間的差別不在基因、不在天分,在「刻意練習」!

原創者親授,首度完整揭露「刻意練習」的科學實證與應用。
帶你揮別道聽塗說的不完整資訊,
正確學會這足以讓你精通所有技能的全新學習法,
顛覆你長久以來對潛能、對天賦、對智商的觀念!
  1. 第1章 有目標的練習
  2. 第2章 駕馭大腦與身體的適應力
  3. 第3章 心智表徵
  4. 第4章 刻意練習的黃金法則
  5. 第5章 在工作上運用刻意練習原則
  6. 第6章 在日常生活中運用刻意練習原則
  7. 第7章 邁向非凡的路線圖
  8. 第8章 如何解釋「天賦」這回事?
  9. 第9章 用刻意練習打造全新的世界

一萬小時定律是指作家格拉德威爾在《異類》一書中指出:“人們眼中的天才之所以卓越非凡,並非天資超人一等,而是付出了持續不斷的努力。1萬小時的錘煉是任何人從平凡變成超凡的必要條件”。要成為某個領域的專家,需要10000小時,按比例計算就是:如果每天工作八個小時,一周工作五天,那麼成為一個領域的專家至少需要五年。

本書持續圍繞著「為何需要有目標的“刻意練習”」,「該如何有目標的練習」,「探討是否天才就不需要練習」。

首先前幾個章節在探討“刻意練習”的細節與重要性,“刻意練習”代表的不僅僅是不間斷得持續練習,而且是根據目前狀況來改善與增進某些項目的練習。 比如說練習打籃球,如果沒有「刻意練習」,你可能只是給自己定下每天需要打籃球三十分鐘的練習目標,但是「刻意練習」就會針對目前的缺點(比如說運球,比如說籃下對抗的項目來訂定訓練的項目,專注的訓練。

到了第四章,就是在探討除了體能上的“刻意訓練”外,如果要練習心靈層面的鍛鍊(舉凡:棋藝,牌技)也能夠套用“刻意練習”嗎? 第四章用了記憶訓練的項目來舉例。 透過世界記憶冠軍的鍛鍊過程來闡明心靈層面就像是肌肉組織一樣,需要持續不斷鍛鍊。並且需要透過不同的鍛鍊方式來持續地讓練習效果的增進。

到了五六章則是跟讀者們敘述,就算是不需要成為世界頂尖的運動家,競賽選手。“刻意練習”可以讓你在日常生活中獲得更高效的結果,也能讓生命中的時間更有價值。

難道真的沒有所謂的天才嗎? 是不是只有天才才能夠到達巔峰造極的境界呢? 最後幾個章節則是分析了許多頂尖的選手,分析他們儘管有著令人羨慕的天賦,但是真正讓他們偉大的往往是進入職業生涯後得持續“刻意訓練”。

心得:

持續的鍛鍊是一個我常在講的議題,我也持續在鍛鍊自己的身體。但是看了這本書之後,我才驚覺到原來除了持續的段練外,我更需要“刻意的練習”來讓身體鍛鍊更有系統與更有效果。

這本書的鍛鍊方式讓我覺得收益良多,講解了許多教學與自我學習上應該要有的正確心態。應該需要透過訂定有效的目標,持續的改善與前進來讓每一次的練習變得更有效果。 想要讓你的人生更豐富,學會更多有趣的技能嗎?來看看這本書吧。

[研討會心得] 2020/09/18 LINE Developer Meetup 13 (二)

$
0
0

前提

大家好,我是 LINE Taiwan DevRel 團隊的 Evan Lin。很開心在這裡跟各位分享本年度的第三場開發者小聚。 這也是疫情後第一次在新竹舉辦的線下聚會的活動。 也是 LINE 台灣工程團隊第一次來到交通大學舉辦線下的活動。

KKTIX 活動網頁: 活動網址

本次 LINE Developer Meetup 開發者小聚,首先有 LINE 台灣技術長 Marco Chen 帶來的 LINE 技術新星實習計畫的相關介紹,並且有 LINE 資料工程團隊的負責人 Shawn Tsai 帶來關於 ”How ML Powers LINE Services” 。

文章列表

LINE Shopping App with Flutter / LINE Client Team - Evan Fang

投影片

(LINE 購物 App 功能介紹)

接下來輪到講者來自於 LINE Taiwan client App 開發團隊的 Evan Fang 。 來分享如何透過 Flutter 來開發下載榜第一名的 「LINE 購物 App」。 首先主要提到 LINE Taiwan Client App 團隊主要有負責的產品有:

  • LINE TODAY 的 App (在印尼有上架)
  • LINE SDK 也就是大家看得到的開源套件:
    • https://github.com/line/line-sdk-android
    • https://github.com/line/line-sdk-ios-swift
  • 當然也有協助開發 LINE App 的一些功能。
  • 最新的也就是今天要介紹的「LINE 購物 App

關於 「LINE 購物」的介紹

LINE購物與多家知名購物網站合作,匯集超過2,000萬件商品,只要在搜尋處輸入想找的商品,讓你一個網頁就能一次看各家購物網站的商品資訊和價格,讓你從此不用處處比!

透過 LINE購物不僅僅可以一站找到你需要的商品,還可以獲得更多的回饋。

Flutter 打造 LINE 購物專屬 APP

為了提升更佳的使用者體驗,打造更精緻的服務介面,LINE 購物也決定在今年推出了專屬的 APP 。 但是希望能快速地到使用者的反饋,並且即時的改善更好的使用者體驗。 開發團隊選擇使用 Flutter 作為開發的程式架構,透過 Flutter 可以一次開發出 Android 與 iOS 的應用。 而選擇 Flutter 的理由如下:

效能考量:

以整合性設計框架而言,透過 Widget Rendering 可以讓 Flutter 直接在 Canvas 上面操作,具有類似於 Native App 的效能。

快速開發:

單一的 code base 來開發兩個平台的 App。在 UI 元件的開發上,很適合透過 Flutter 使用。可以確保 UI 設計的一制性,讓使用者有相同的使用體驗。

Flutter 支援 Hot reload 可以在 IDE 上面不需要編譯而即時看到變更的成果。

豐富的開發資源:

豐富的官方導覽教學,還有 Dart Devtool 與 pub.dev開發資源可以參考。

最後成果

最後的成果也相當的亮眼,使用 Flutter 可以在三個月之內於 iOS 與 Android 平台上完成一制性的使用設計體驗。 並且獲得當月份的下載量第一名的肯定。

遇到的問題分享

當然在使用 Flutter 開源套件也會遇到一些問題,但是 LINE 開發團隊也有跟 Flutter 團隊回報並且溝通相關的問題。目的希望能讓套件更完善,也能讓產品更符合使用者期待。 以下條列式一些問題:

  • 問題: Flutter 在 Anroid 上無法變更鍵盤語言
    • 解法:
      • 使用 Hybrid composition 並且更新 Flutter 到 1.20.0 版本之後。
  • 問題: Hybrid composition 在某些狀況下會 crash app
    • 解法:
      • LINE 提供相關解法,也被套件團隊了解使用另一種解法來解決。
  • 問題:讀取資料量大的頁面,經常跑記憶體不足的狀況。
    • 解法:
      • 修改讀取方式,僅顯示使用者看到的部分在 Viewport。 其他部分資源部採取預讀與使用過後釋放,讓資源更有效運用。

小結

講者也分享了,目前 Flutter 很適合開發在不複雜的頁面。具有較高的效能,快速迭代與開發的工具,還相當的容易學習。但是如果需要開發比較複雜的頁面時,需要有能力追蹤到底層套件的原始碼,發生問題的時候才能夠解決。

最後也希望大家一起來下載一下 LINE 購物 App 感受一下 Flutter 開發出來的效能吧!!

Serving Location-based data / LINE 熱點 - Julian Shen

投影片

接下來由 LINE SPOT開發團隊的 Julian Shen 帶來分享他在處理地理資料 (location-based data) 時候所遇到的一些問題與經驗分享。關於LINE SPOT可以參考 Julian 在 TECHPULSE 2019 的會場有介紹過關於 LINE SPOT 服務介紹。更多的 LINE SPOT 服務介紹與 LINE SPOT 架構介紹可以參考這篇文章 「LINE TAIWAN TECHPULSE 2019 科技盛會精彩回顧」

這次主要介紹 LBS: Location-Based Serivice 的內容,關於 LBS 相關的遊戲或是服務我們經常可以看到,舉凡打卡,地圖,導航都會用到。那麼要尋找兩個點之間距離上,可以使用的技術也相當的多。

找出距離幾公里的景點

在處理上面經常是拿到 GPS 座標,或是直接拿到地址。 地址是可以方便人類來閱讀的,但是真正要電腦能夠處理的就是經緯度的座標位置。 如果要對某一個座標找尋出距離三公里距離的所有座標,那是不是需要把資料庫裡面的地點全部拿來計算呢? 這裡介紹了一種方式叫做 K-D Tree 。

K-D Tree 的方法就是將地圖平面透過二分法的方式來切割,將每兩個點找出距離後作為一個區塊。透過這樣的方式可以很快速地找出兩個最相近的距離點。

如何將搜尋結果作 Caching

如果有一群人同時開 LINE SPOT需要尋找三公里內所有座標,那麼有方式可以快速的暫存起來資料,並且快速的回覆使用者的需求嗎? 這時候可以考量使用 Hashing 的方式來將經緯度數值直接轉換成一串文字,透過這個方式可以快速找到上一次搜尋的結果。如果沒有搜尋過才去跑 K-D Tree 的搜尋,這樣一來就可以在不經過複雜的運算就可以快速的回覆使用者。

這個方式雖然可以快速地知道有沒有搜尋過,但是有一些問題如下:

  • 由於採取 zig zag travesal 的方式來 hashing ,可能不同的經緯到有相當相似的結果。
  • 可能相當的接近,由於在邊界上可能造成 geohashing 結果不同。

其他的方式

Google 也有提出 S2 Cell ID 的方式來區分地理資訊。而 Uber 也有提出 H3 的方式,透過六角形的方塊來切分整個地理資訊。也因為使用六角形,才能更精確地將地球球形的地理狀況表現出來。

「LINE 熱點」美食推薦

別再說新竹市美食沙漠, LINE 熱點也是有精選「十家新竹在地美食店家」。 也希望同學們了解地理資訊的處理經驗分享後。也都可以來 LINE 熱點來分享你的新竹美食地圖。

活動小結

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[研討會心得] 2020/10/24 新竹 x 梅竹黑客松決賽 - LINE 競賽組別活動紀錄

$
0
0

(照片來源: 梅竹黑客松官方粉絲團)

寫在前面:

大家好,我是 LINE Tech Evangelist - Evan Lin 。LINE 很重視員工們的自主創新與團隊合作,所以各地都會舉辦 LINE Internal Hackathon 。 並且在日前也舉辦了 在 LINE 台灣第二屆的內部黑客松競賽,而這次很開心跟新竹市政府與梅竹黑客松主辦單位一同支持學生們創新的 Hacking 精神,一起舉辦了 「新竹 x 梅竹黑客松」 LINE 的競賽組別。

在決賽前一週, LINE 的開發工程師也應邀出席了企業工作坊透過教導同學們 LIFF 與 LIFF Share Target Picker 來讓每一個參賽的同學能夠了解。 (詳情請看: 梅竹黑客松賽前企業工作坊 – LIFF shareTargetPicker )

活動擺攤

首先在活動擺攤上,當天 LINE Dev 也有參與擺攤並且歡迎大家來加入我們的官方粉絲團與官方帳號。也歡迎文章的讀者可以一起加入。

相關資訊

競賽說明

LIFF (LINE Frontend Framework) 是 LINE 為網頁應用 (Web Application)所開發應用套件。 透過 LIFF 除了可以快速做相關的 LINE Login 取得使用者資訊,更可以將有趣的資訊直接在網頁上分享給你 LINE 的好友。

本次的主題希望同學們能發揮想像力,透過 LIFF 來開發出一個令人為之讚嘆(WoW) 的應用服務。

更多 LIFF 的相關開發文件請參考: https://developers.line.biz/en/docs/liff/

(摘自文章, 可以看得出來透過 Share Target Picker 作出的應用可以比直接在 LINE 中傳訊息要快上兩倍左右。)

(LIFF Share Target Picker 可以做出很有趣的應用,圖為迷音圖修改器 Share Target Picker from 工作坊)

相關文章

決賽衝刺

(同學們都會把每次導師來詢問的時候,盡可能地詢問相關技術跟導師身上學習)

(看著同學們的大包小包,感受的出來兩天一夜的備戰心情)

這是一個維持兩天一夜的黑客松競賽,可以看到同學們的熱情。 一開始都可以看到同學們對於競賽題目,競賽項目與需要必備的企業組題目項目都有相關疑問。 經過導師們每一組的詢問與討論過後,可以感受到同學們都是有備而來。

中間也有遇到同學們在開發過程中遇到一些問題無法解決,導師們也都是現職的 LINE 台灣服務的開發工程師,導師們也都可以坐下來跟同學們一起討論,一起 tracing 相關的問題。

決賽報告

(照片來源: 梅竹黑客松官方粉絲團)

經過了一天與一夜的努力後,第二天下午就是每一組的展示與報告時間。筆者很開心能夠參與評審的評分之一。聽取的每一個同學們的簡報,可以感受到同學們兩天來的努力與創意的激盪。

由於本組是需要有實際成果的展示,所以有些組別由於設定問題無法完美地將成果展現出來,實屬可惜。但是 LINE 台灣對於服務的可落地性與使用者體驗相當的重視,在此次比賽中我們也希望能傳達相關的概念給同學們,讓同學們感受到身為通訊平台領導品牌的堅持。

接下來我們將分享前三名的作品如下:

前三名頒獎

(照片來源: 梅竹黑客松官方粉絲團, 頒獎人 Nijia Lin)

題目:

  • 4Fun

成員:

  • 交大資工系郭乃恩
  • 交大資工系褚又嘉
  • 交大資工系許哲瑋
  • 台大資工系沈郁均

該團隊透過 LINE 的 Share Target Picker 可以分享在 Twitter 上面看到有趣的訊息,你可以直接在 tweet 網址傳給他們的官方帳號,之後就會得到相關的 LIFF 頁面。 點取該頁面就可以開啟 Share Target Picker 來分享給你的好友。 好友看到的訊息也都透過 FLEX Message 來包裝過,整個就相當的精美與漂亮。

(照片來源: 梅竹黑客松官方粉絲團,頒獎人 Sing-Ming Chen)

題目:

  • Agent.J

成員:

  • 夏宇澄 清大資訊工程學系 大一
  • 劉昱辰 台大電機工程學系 大二
  • 賴怡臻 交大資訊管理與財務金融學系 大二
  • 施易劭 交大資訊管理與財務金融學系 大二
  • 陳瑋嘉 交大資訊管理與財務金融學系 大二

這個隊伍想要解決出去遊玩的時候,相簿往往難以搜尋。 並且因為去遊玩時候,有時候需要有人代墊款項或是分帳的需求。 所以他們打造出一個以地點資訊(地圖)為出發點,透過出去遊玩的地點來做出團體相簿。 並且結合 LINE Bot ,可以快速查找相簿,讓你尋找出遊資訊再也不需要每個群組的相簿一一翻找。

其中由於時間的限制,對於權限控管的部分也還沒有完整。 透過 LIFF 與 Share Target Picker 除了可以分享相簿之外,未來也能夠邀請一同編輯。

M

(照片來源: 梅竹黑客松官方粉絲團,頒獎人: Evan Lin)

題目:

  • 找外快?打開 LINE

成員:

  • 清大資工所吳易東
  • 清大資工所郭芝瑜
  • 清大資工所郭俊豪

學生們經常有空閑時間希望能夠打工賺一點外快,但是卻很難找到適合自己的外快嗎? 這個痛點造就這一組的題目,透過網頁登入後可以直接在後台刊登外快工作。 這一組很有創意的是,透過自然語言處理 (NLP) 的技術。 可以自動將外快工作自動找出相關的關鍵字,比如說:「 修電腦」,「家教」這一些關鍵字。 當找外快的同學登入網站後,就可以根據自己登記專長資料的關鍵字媒合。 如果自己也是希望找「家教」的工作,就會收到官方帳號的通知說,有適合你的工作。 透過 LIFF 與 Share Target Picker 則可以很快速的將外快推薦給自己的好朋友。讓好朋友也有外快的工作可以做。

活動總結

LIFF 簡單易學,加上透過高度分享功能的 Share Target Picker 希望能可透過本次的活動讓更多同學們更能夠瞭解相關的功能與應用。 兩天一夜的黑客松活動,充分展現同學們的熱情與源源不絕的創意。希望之後能有更多的機會來跟同學一起腦力激盪,來打造讓使用者驚艷 (WoW) 的產品服務。

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

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

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息

[好書分享] 唐鳳:我所看待的自由與未來

$
0
0
唐鳳:我所看待的自由與未來
作者: 丘美珍、鄭仲嵐  
出版社:親子天下 
出版日期:2020/11/04 

買書推薦網址:http://moo.im/a/1hsPQX

前言:

這一本是今年所讀完的第十本書。

會注意到這本書,好像是因為 Suiting Tseng 的 twitter 在問 Readmoo 能不能進這本電子書。結果一天就有了(驚!)。 也就忍不住手滑,買下去了。 一開始會好奇,這本書竟然是由「親子天下」這一個專門出版親子相關議題的書局所出版。後來讀了以後發現內容相當的吸引人,除了講出了一段精彩的資訊屆的歷史外(Perl6 相關的開發),也提到了太陽花學運與 g0v 的崛起。 相關的教育互動方面,更是發人深省,尤其是新手父母更是推薦要看。

內容簡介與心得:

「我的全部,都公開透明在這邊了;
我所看待的自由和未來,也將與各位一同分享。」
第一本經唐鳳認可,串連她的過去與現在,遠眺自由與未來的深刻之作。
 
揭開神人級公民黑客、台灣抗疫功臣,被日本媒體譽為「天才IT大臣」的背後思路;
理解她超越一切框架,主張從征服(conquer)到增幅(empower)的共好價值,
用無差別的愛與自由,邁向分享協作的「唐鳳Style」

Chapter1 三十五歲的數位政委 Chapter2 天才兒童 Chapter3 自學少年 Chapter4 導師與隊友 hapter5 跨越性別的人 Chapter6 民主社會的公民黑客 Chapter7 唐鳳的建言:對未來世界與科技的想像

書本的一開始,先從最近讓大家知道的唐鳳開始談起。口罩地圖的政府單位公家資料的串接,發起民間高手的共襄盛舉。短短的幾個禮拜,市場上就有了接近一百種口罩地圖的相關應用,(廣告一下: LINE Bot 也有超過 20 個)。 造就了一股全民黑客松的熱潮,讓每個開發者都熱血的加入並且打造出自己可以找口罩的地圖應用。

這件事情也讓日本注意到我們,我們有一個技術高手的數位政委。更有許多的傳聞討論到唐鳳高達 180 的智商,但是令人好奇的是,這樣的天才究竟是如何靠自學與教育來造成呢?

接下來的內容,圍繞著唐鳳成長的環境。有著高學歷並且注重著教育的父母,尊重的家庭讓從小思考與想法往往領先週遭人可以獲得完整的發揮。 國中之後,就沒有繼續就學的他,選擇自學透過強大的自學程式設計能力,經過建中電腦社中遇見的資訊界前輩們,讓他的學習變得更加的快速。在 Perl 社群中學習,也讓他的外語能力精進並且也透過領導的相關的套件開發與維護體會到黑客社群的經營與共同成長的方式。 也就是後來的公民黑客與 g0v 的崛起。

最後這本書也透過唐鳳的建言,描繪出他心中對於未來的想法。威廉.吉布森(William Gibson)的名言:「未來已經來了,只是沒有均勻擴散(The future is already here – it’s just not evenly distributed.)。」

心得:

這本書雖然出發點是孩童教育的出發點,但是對於資訊界的歷史其實也有蠻多著墨。裡面不管是提到了藝立協,還是關於 Perl6 的開發過程,甚至是後來的 g0v 的崛起。其實都有蠻多的著墨,也讓我趁機補了一下相關的資訊相關故事。

但是這本書真正讓我驚豔的,當然還是唐鳳家人對於他的管教方式。從他的家人可以看出,不僅他的天資夠好,也要有家人與師長的大力支持才能讓這樣一個有才能的小孩能夠依照自己的想法成長,不被世俗的教育體系與學習成績要求所捆綁著。就像是作者寫出的這句話:

「剛開始,我們以為要寫的是一個天才的傳奇,後來發現,我們寫的其實是一個平凡人的故事,是所有人在心裡,都曾經期待有的人生:能夠不受限地學習和探索,能夠被家人和朋友所愛,能夠做自己最愛的工作,能夠生活無虞,能夠做出對社會有益的貢獻。不同之處,在於唐鳳歷經嘗試,走了一條不尋常的路。」

蠻推薦大家好好看這本書的。

Viewing all 537 articles
Browse latest View live