[好書分享] 臺灣史上最有梗的臺灣史

(圖片參考 讀墨 ) 臺灣史上最有梗的臺灣史 作者:黃震南 插畫:壯兔 出版社:究竟出版 出版日期:2016/08/01 語言:繁體中文 ISBN: 9789861372242 《臺灣史上最有梗的臺灣史》電子書 - 臺灣這塊土地上,曾發生過數不清的鳥事蠢事搞笑事傷心事正經事,想更了解臺灣、更珍惜我們所居住的地方,不如就從本書開始,一起對臺灣史動真感情吧! 買書推薦網址: http://moo.im/a/6eilCT 前言: 當初會買這本書,是因為好像是某一次讀墨的推薦文章裡面有摘錄一篇文章。透過 ptt 鄉民的口語來敘述台灣的歷史,相當的有趣。 在看的過程中由於輕鬆的口吻,很快的就會把整本書當成休閒的書籍來看完。 很推薦喔 內容簡介: 當真一槍在手希望無窮,只要龍五的手上有槍誰都動不了他[14]。而這些軍警大多來自中國的貧窮省分,對於現代化的臺灣鬧出頗多土包子笑話,例如有人目睹軍官搶了小孩的腳踏車,但因為不會騎只好扛著走,小孩就跟在身邊哭鬧,軍官一急跳上腳踏車硬要逃脫,結果一頭栽進水溝。士兵沒見過自來水,於是買了水龍頭釘在牆上,以為這樣就有水喝(那是哆啦A夢的道具好嗎)。 這段文字節錄於這本書的某一個段落,就可以看得出來作者除了相當認真的做歷史書籍之外,也希望透過 ptt 上面時下人們喜愛的口語來敘述台灣的歷史。 這本書敘述台灣歷史相當的早,從第一批的台灣著名(大概是原始人的時代)。慢慢地到了荷蘭人經營台灣的歷史。 除了有敘述相關背景之外,也有相當多有趣的歷史。比如說鄭芝龍曾經是海盜,荷蘭人其實建造了不少的制度與硬體設施。 許多的故事都讓讀者感覺新奇跟引人入勝。 隨著時代的經過,這本書也會到了清朝開始有了鄭成功的故事。也有了許多相關的故事。甚至連清朝為何會來經營台灣都有稍微敘述到。 最後到了國民黨退守台灣的故事也有提到,讓人難過的故事有提到但是儘量地輕描淡寫。有興趣的人作者都有列出相當多的相關文獻跟資料,可以讓讀者去查詢更多的資訊。 心得: 想要邊讀 Joke 版面邊學歷史嗎? 這本書很適合推薦給讀者。在輕鬆的過程中就可以把台灣的歷史整個走過一次,也有許多 ptt 有趣的梗。就等各位去慢慢發現了。
繼續閱讀

[研討會心得] 2019/03/29 LINE Developer Meetup 7

前提 大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。很開心在這裡跟各位分享本年度的第二場開發者小聚。這次的場地又回到台北的 GO92 志業中心,並且邀請了兩位 LAE (LINE API Expert) Will 保哥與 David Tung 董老師來分享 LINE Notify 與 LIFF (LINE Frontend Framework) 。 KKTIX 活動網頁: 活動網址 LINE Developer Meetup 開發者小聚系列活動將邀請 LINE 台灣工程師、開發者工具平台,定期分享內部開發技術,並安排優秀案例分享開發經驗,持續促進 LINE 技術平台開發與交流,歡迎對 LINE 技術平台有興趣的開發者參加。 官方帳號 2.0 開發者需要知道的事 / 資深開發技術推廣工程師 Evan Lin 投影片 首先一上場,來回顧一下自從上次 (03/29) 的開發者小聚之後,到本年度第二次開發者小聚之間究竟發生了哪些的訊息。對外的活動有: TWJUG(台灣 Java 開發者社群)@LINE Golang.Taipei@LINE 兩個大程式語言社群先後來 LINE 舉辦活動相當的熱鬧,並且也跟 LINE Pay 的開發者與 LINE SPOT 的開發者相互交流。 除了對外的活動之外,其實也有相當熱鬧的對內訓練活動: 第一屆 LINE Taiwan Technical Writing Day 這種難得一見的訓練活動,除了提升 LINE 內部開發者的技術寫作技巧之外,也希望增進開發者之間的技術溝通能力,讓同仁們在交流時可以更加的順暢達到更好的產能。 除了對內的訓練之外,當然也有本年度第一次的: LINE Developers Recruitment Day (技術人才招募日) 也希望透過這樣的活動可以讓更多有才華的開發者能夠加入這個充滿開放思想的開發環境,一起打造最好的產品。 而距離上一次聚會之間最大的新聞就是官方帳號 2.0 (OA 2.0) 正式上線。透過官方帳號 2.0 的上線,開發者除了不再有好友的上限之外,更有了許多嶄新的功能。 (圖片來源: LINE@生活圈 全面升級 | 全新官方帳號2.0計畫) 除了好友上限再也不受限 50 人的關卡(LINE@ 也不怕八萬人的限制)之外。更有許多新功能,不僅僅有分眾訊息,一對一聊天,圖文訊息,圖文選單之外,更有行動官網,集點卡與 Messaging API。讓開發者在開發上能接觸到更多的使用者,更有許多的功能可以選擇。 (升級的時程表來自於: 全新官方帳號2.0計畫 問與答) 當然官方帳號的升級時程上也是相當具有彈性的,除了 Developer Trial 是預計在六月中開始逐步升級之外,LINE@ 的商家更可以在 05/22 就開始將帳號升級到新的官方帳號 2.0 ,第一手感受無限好友的好處與許多新功能所帶來的市場。 而在 LINE@生活圈開放手動升級至官方帳號2.0(上篇)這篇文章中也介紹了,對於要將帳號升級的開發者務必需要了解以下的事項: 重要資料備份 先結束進行中的活動後再執行升級 升級後無法恢復到舊版的LINE@ 手動升級需要的時間大約數分鐘,請保留足夠的作業時間,執行升級過程中,切勿關閉畫面 下載新版的官方帳號2.0 App 緊接著在接下來的文章 - LINE@生活圈開放手動升級至官方帳號2.0(下篇)也講解了如何開始手動升級帳號。除了指示該如何正確的升級之外,也讓讀者可以搶先了解官方帳號 2.0 新的管理後台並且知道相關的功能切換方式。 當然就開發者的角度來說,最重要當然就是了解新開放給開發者的 API。除了原先就有開放給 Developer Trial 的 Push Message 與 Multicast Message 之外,這幾個新的 API 分別是: Get the target limit for additional messages 透過這個 API 可以取得目前方案能夠發送的訊息 (也就是...
繼續閱讀

[TIL] 介紹一個好用的剪貼簿軟體 PasteApp

前言: 最近有一點久沒有寫技術相關文章,因為大多數的文章都在撰稿中,而且自己在忙碌 LINE Developer Meetup 的相關投影片。 回過頭來自己答應一週要寫一篇文章的,就來專文分享自己近幾年有花費買的好用的軟體吧。首先第一個就是 PasteApp。 為什麼需要一個好用的剪貼簿軟體? 這邊的剪貼簿並不是指實際上的剪貼簿,也不是在隨意貼的軟體。而是專門儲存複製貼上的歷史紀錄的工具軟體。 經常在筆電的操作上,因為有太多資料需要複製與貼上,往往會在視窗間切換花費了太多的時間。比如說在購物得時候,可能需要輸入地址跟電子發票。常常會花費很多時間回去原來的視窗為了複製原來的資料。這個時候,就需要好好思考與尋找一個剪貼簿軟體來協助。 但是其實剪貼簿軟體何其多,之前也經常撰寫個人的剪貼簿功能後台。那該如何挑選一個實用的剪貼簿軟體呢? “蓋紹哩後又” (介紹你好藥) ,在這裡就跟各位介紹一個個人相當喜愛的剪貼簿軟體 — PasteApp 軟體功能: 在這裡簡單介紹幾個強大的功能: Unlimited history 可以有相當長的剪貼紀錄,並且可以看得出來。這個軟體可以清楚地條列出剪貼簿裡面的資料。不論是文字,圖片,檔案,還是圖片。都可以一目了然,清清楚楚。 Intelligent search 讓我最喜歡的功能(沒有之一)就是可以搜尋剪貼簿的內容。如果想要在剪貼簿裡面尋找三天前的某段內容,使用其他的軟體可能需要不斷的向下拉,向下尋找。但是使用 PasteApp 就相當的簡單,可以透過某些關鍵字來搜尋,使用上更加的方便與順利。 iCloud sync 最後一個功能是,就是可以透過 iCloud 同步來讓你的手機與電腦同步相同的剪貼簿。實在是太方便了。在使用上可以讓你的手機馬上貼上你在桌機的鏈結,再也不需要任何 note 來暫存。 XDD 買下去!不會後悔 這個軟體是付費軟體,但是採取買斷的方式其實相當的佛心。$14.99 的費用其實真的很超值。筆者自從買了之後,換電腦的第一件事情就是裝 PasteApp,之前電腦壞掉要換到測試電腦也是裝這個。真的好用到覺得沒裝好像殘廢一半一樣。 推薦給大家!! Reference: PasteApp [TIL] 如何快速重置上手習慣的 MacOSX 環境
繼續閱讀

[Google] Google ML Study Jam - Machine Learning APIs

前言: Google ML Study Jam 是 Google Developers 所設計的免費機器學習培訓計劃。 在這個初級培訓課程中,參加培訓的學員僅須運用 Qwiklabs 線上學習平台,按照自己的步調及時間,實際動手操作由培訓計劃所指定與機器學習相關的 Hands-on Labs,便能自我學習而擁有基礎開發 AI/ML 應用程式的能力。 只要完成指定課程中的四項,就有機會獲得最新版本的 TensorFlow T-Shirt 。看起來實在相當棒就忍不住把 Machine Learning APIs 都上完了。 這邊分享一下相關內容吧! 課程內容: 整篇課程其實相當的實用,也由於整個 HANDS-ON LAB 透過 qwiklabs 逐步教學從登入帳號,開啟 cloud console 都很容易可以完整。 而 Lab 重點也在希望能夠讓使用者整個走過一次相關的使用流程。 所以每個步驟力求簡單明白,不需要任何的程式設計基礎。 課程特點: 全部的 hand-on lab 在設計上相當友善,只要完整跟著做一次通常可以順利完成。整個課程有以下的優點。 完全免費的帳號與清楚登入流程 每個小課程有專屬的帳號,不用擔心你不小心學任何 GCP 的功能因為忘記關掉伺服器而花了大錢。 清楚的指令提供複製貼上 由於 GCP 許多功能除了啟動與狀態回報之外,大多數的功能都還是透過 console mode 的指令來溝通(或許說不少是透過 API 呼叫方式)。 這時候最怕就是指令過時或是需要自己摸索,這邊的指令全部都是清楚條列,並且可以一個按鈕複製讓學習上完全沒有障礙。 完整了解許多 gloud console 提供的功能 雖然說之前很常使用 GCP 上面的許多功能,必須得說這次的課程讓我清楚更多平時不常使用到的功能。 透過 gcloud console 編輯檔案 透過 gcloud console 來跑一個 local web server ,並且使用 web preview 來查看 8088 的輸出。 但是學習上也不是沒遇到問題啦~分享一下我遇過的問題。 課程遇到的問題 Scanning User-generated Content Using the Cloud Video Intelligence and Cloud Vision APIs https://google.qwiklabs.com/focuses/1831 Scanning User-generated Content Using the Cloud Video Intelligence and Cloud Vision APIs 課程好像會卡住。 > gcloud beta functions deploy GCStoPubsub --stage-bucket gs://${STAGING_BUCKET_NAME} --trigger-topic ${UPLOAD_NOTIFICATION_TOPIC} --entry-point GCStoPubsub ERROR: (gcloud.beta.functions.deploy) Missing required argument [runtime]: Flag `--runtime` is required for new functions. 原因是因為 gloud beta function deploy 的時候需要標註 runtime ,這裡的範例是使用 nodejs 只要改成以下即可。 gcloud beta functions deploy visionAPI...
繼續閱讀

第一屆 LINE Taiwan Technical Writing Day

前提 LINE 台灣開發者關係與技術推廣團隊 (Developer Relations) 除了對外部的開發者推廣之外,有另一個很重要的使命就是希望能夠透過相關的開發者活動能夠激發內部的開發者的潛力,不論是透過內部訓練或是相關的活動。而這次的活動就是希望能增進內部開發者技術文件的寫作能力外,更重要的是希望能夠增加開發人員彼此的溝通技能。也期許透過本次的訓練能夠增進內部開發者彼此技術文件分享的能力,也希望增進對外文件的撰寫品質與數量能夠更好。 什麼是技術寫作日 (Technical Writing Day) 身為開發者對於文件的寫作總是有許多困難的地方,不論是不知道該如何撰寫之外就是經常不確定如何撰寫讓使用者能夠淺顯易懂的文件。開發者經常認為程式碼能夠表達許多事情,而無法有效的將讀者或是使用者需要的資訊寫在文件上。 在開發者部落格寫作上,開發者們經常不知道該如何安排他們的文章內容,順序與如何有效地表達。 技術寫作日其實是一個由 LINE 技術文件作家 (Technical Writer) 團隊所籌畫的一系列活動。日前不僅在韓國有舉辦過(請參考這篇文章),其實在日本也舉辦過。這次很開心能遠從韓國與日本邀請到他們來到台灣舉辦。 不僅僅邀請了所有的內部開發者,連經常需要撰寫技術文件的團隊也都邀請一起來了解,並且增進我們技術文件的寫作能力。 關於技術寫作日的課程簡介 技術寫作日是一整天的訓練課程包括了早上的基礎訓練之外,下午有許多進階的訓練課程。在這裡簡單的分享幾個重要的課程與相關的介紹,分享給各位讀者。 Introduction to Technical Writing 首先登場的是由 Technical Writing Team Lead 所帶來的 Introduction to Technical Writing 。透過帶出軟體開發的流程 ( Concept, Analyze, Design, Development and Test ) 帶出其實技術寫作應該視為軟體開發的流程。需要有足夠的構思,設計之外,更需要詳細寫作後的測試。也就是重新檢視寫作內容,測試所有範例程式碼確認所有技術細節都是正確並且是最新的狀態。 LINE 的開發者有以下幾種方式是透過技術文件方式來做溝通: Wiki: 為開發者內部溝通最主要的管道,透過可以容易分享,共同編輯的 Wiki 系統。 許多的技術相關的溝通與討論往往是在 Wiki 上面而不是 Email ,讓許多的變更與分享更加有效果也能夠允許更多人開發同仁能夠一起協作。 README 文件: 每個專案的負責人都會撰寫相關的介紹文件,不論該專案是內部專案還是開源的專案。 API 文件: 平台團隊與 SDK 團隊經常會準備的相關技術文件,不論是內部專案或是外部的公開 API 。都會有清楚的 API 文件。 這些部分的文件撰寫都很需要 Technical Writing 的技術寫作概念的持續增進。 Introduction to P.O.W.E.R. Writing 第二部分介紹的是相當有用的概念 P.O.W.E.R Writing , 而 POWER 其實是五個字的縮寫。 Preparing Organizing Writing Editing Reviewing 在寫作技術文件的時候,透過使用 POWER 的原則可以讓寫作更加的順利,也可以增加文章的可讀性與減少錯誤的產生。這五個字就像是一個心法一樣,相當的重要而且相當的有用。方便我們可以準備技術的素材,組織整個文章架構,寫作更清楚的文字,透過使用更易懂的方式來修改,最後要不斷的審核。相當有用的一堂課程。 Writing Blogs 這一段的教學主要是簡介 LINE Engineering Blog 的發布流程,與為何要撰寫 Engineering Blog 與有哪些好處。 為何要撰寫 Engineering Blog 的部分。透過將技術文件分享在文字的過程,可以從頭到尾仔細地審視了解的技術,遇到的問題與解決的方法。這邊也鼓勵每個開發者都應該要試著撰寫部落格,除了可以增進每個人對於技術溝通能力之外,更可以清楚了解自己是不是還有不清楚的地方。 而且相當建議每個開發者透過公司的平台來發表相關的文件。因為除了平台的比較受到大家的重視之外,每一篇文章的發行需要透過許多專家層層的把關。從每一個文字的校對到資訊安全的審核,讓每一位開發者只需要專注在自己的文字表達部分。 每個開發者透過 Engineering Blog 還可以獲得許多同仁對於技術文字表達方式與內容的排列方式有著更深層的交流,真是獲益良多。 Organizing and presenting information using the wiki Wiki 是 LINE 開發者作為內部技術溝通很重要的一個工具,不論是會議記錄,產品規格,甚至到部落格文章草稿。如何能夠有效地呈現卻是困難的,所以如何展現與擺放足夠的資訊在 Wiki 上面就是一門學問。這一場分享中,講者講解了如何透過 Wiki 的一些工具告訴大家該如何來有效的將資訊作為有效的相互鏈結,分享並且協作的方式。最後講者也分享一個很有趣的例子: 就在出國六個小時前,忽然找不到護照。不論在行李箱裡面,或是他的辦公桌上都找不到,最後卻在舊衣服堆裡面發現了。 這個故事就告訴我們,除了資訊的足夠之外如何有效地「擺放」你的 Wiki 頁面讓大部分的人能夠透過關鍵字或是階層式資料夾排列方式來尋找到文件就是一門大學問。 Writing developers guide 如何要開始撰寫開發者指南,永遠都是開發產品或是微服務 (microservices) 的很痛苦的地方。而這一段分享就是透過分享如何撰寫微服務的開發者指南來分享該文件應有的架構與特點。撰寫開發者指南講者建議就要由讀者的面向來出發。如果要撰寫一個微服務的安裝手冊,安裝需求與如何安裝就是每個使用者第一次看文件馬上會著眼的地方。那麼就開從這些地方開始準備,而且要不斷的反覆測試你的開發者指南,並且清楚地記錄下每一個容易犯錯的地方。不要讓使用者發生了錯誤而不知道該怎麼自行解決問題,這就是開發者指南最重要的幾個部分。 總結 身為 LINE台灣資深開發技術推廣工程師(Technical Evangelist) ,深刻的認為撰寫良好的技術文件的技巧也就是在磨練著開發者彼此對於技術的溝通能力。許多的開發者在文件撰寫上往往不知道該如何開始,如何將整個來龍去脈做有效與系統化的呈現。 透過技術寫作日的訓練,希望就是能夠讓開發者們的溝通能力更上一層樓。彼此能夠更精進文件撰寫能力與系統思考的組織力。 開發者關係與技術推廣部 (Developer Relation) 將持續引進與推逛更多內部開發者的相關課程訓練,對外也將持續的努力提供更好的,更友善的 「LINE開發社群計畫」。 關於「LINE開發社群計畫」 LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE...
繼續閱讀

LINE 開發社群計畫: 2019/04/23 GolangTW#40@LINE

前提 大家好我是 LINE 台灣的 Technical Evangelist - Evan Lin 。「開發社群計畫」是今年一個開發者關係與技術推廣部門一個重點,將在今年一整年中,在台灣舉辦對內的技術交流、教育訓練,對外的社群聚會、校園演講、開發者徵才日與開發者大會等各式各樣超過30場的活動。我們希望創造更多技術分享與跨國串連的機會,同時,持續招募優秀的人才加入LINE台灣的開發工程團隊。 四月的第二場社群邀請到 Golang Taipei Gathering 社群的朋友來到 LINE 台北辦公室,並且一起來分享與討論 LINE 內部開發流程上針對 Golang 使用上的心得分享。這次的相關資訊可以在 meetup Golang Taipei #40 找到所有的內容介紹, Go GraphQL in LINE SPOT/ LINE - Denny Tsai 投影片 首先上場的是來自 LINE Spot 的工程師 Denny Tsai 。他也介紹了即將在 LINE 2019 下半年上限的全新服務 – LINE Spot 。提供消費者輕鬆搜尋所在地鄰近的店家資訊,以及店家進行中的特惠活動,消費者想要的資訊、店家想曝光的資訊都可以在 LINE SPOT 一站完成。這樣的服務將在 2019 年的第三季上線,敬請大家期待。 接下來講者開始分享如何透過 Go 跟 GraphQL 來當作微服務( Microservices ) 的 API Gateway 的經驗分享。由於產品的微服務漸漸增加,各個微服務都會提供個別的 API 供前端使用。除了 HTTP 的 API 之外還會多出了其他溝通的介面 (gRPC, Thrift…) ,如此一來造成前端與微服務間的串接複雜度提升。這時候會使用 API Gateway 當作統一進入點 ,進而使用 GraphQL 提供前端更好更有彈性的查詢方式,希望能夠 GraphQL 解決聽眾們經常遇到的問題。 GraphQL 是一個 Query Language 並且具有以下的優點: 單一進入點 (Single Endpoint): 不論是各種的不同的 API 需求,通通透過單一的進入點。 由客戶端來定義需要的資料型態 (Response shape defined by the client): 客戶端(通常指的就是前端)可以修改自己需要的資料型態,順序與排列方式。不需要修改任何的後端代碼。 Transport Agnostic: GraphQL 並不是一種語言而是一種標準,可是其實他並沒有限制所使用的傳輸層,因此可以使用任何適合的方式作為 GraphQL 的傳輸層。 此外講者也介紹了許多關於 GraphQL 有用的開發工具: GraphiQL: 一個在瀏覽器上的 IDE 可以讓你查詢與瀏覽 GraphQL 的工具。 GraphQL Playground: 開發 GraphQL 的 IDE 與測試工具,提供許多良好的介面與具有互動式的文件。 除了這些工具之外,由於本場分享關於 Golang 的開發者。講者也分享了市面上比較熱門的 GraphQL in Go 的開發套件: https://github.com/graphql-go/graphql https://github.com/graph-gophers/graphql-go https://github.com/99designs/gqlgen 這三套大概是搜尋 Golang 與 GraphQL 最容易被人找到的三個套件(因為 star 數也最高),但是講者最推薦 gqlgen 原因如下: Schema first Type safe Less boilerplate 而使用上也相當直覺,建立...
繼續閱讀