[研討會心得] 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 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

第二個部分介紹如何透過 Golang 來開 Image Proxy Server 。當初開發 Image Proxy Server 的契機是由於當初開發寵物領養機器人 - “流浪動物需要你” 的聊天機器人。由於流浪動物的收容資訊都是透過 Open Data 所提供的,裡面的圖片竟然是 http 而不是 https 。 在這裡分享了透過 Heroku 的開發方式來建置一個 Image Proxy Server 可以不需要任何伺服器的費用就可以讓 http 的圖片轉換到 https的圖片。

相關的開源程式碼在: https://github.com/kkdai/img-cache-server

更多相關內容:

[email protected] 2.0 的 offline to online (LIFF + richmenu + push 機制) / LINE API Expert -Caesar Chi

投影片

[email protected] 2.0 offline to online from Caesar Chi

第一位 LINE API Expert - Caesar Chi 帶來相當實際的運用案例,由於今年在四月的時候,官方帳號 2.0 正式的上線。許多的客戶希望能夠更有效的運用 LINE @ 的帳號來達到更好的使用者轉換率,而 Caesar 在此就分享了在實務上如何有效地透過 LIFF + RichMenu + Push 機制有效地讓廠商能夠更有效率的轉換,並且也跟開發者們分享了,在官方帳號 2.0 轉換後的一些小技巧。

LINE Bot on Cloud Run: 使用 line/line-bot-sdk-go / LINE API Expert - CL Sung

投影片

第二位 LINE API Expert 分享了相當硬底子的開發經驗,透過了 LINE Bot 在 Cloud Run 上來部署 LINE Bot 。

一開始講者分享了當初為什麼會踏入 Golang 的開發過程,並且也分享了 Go 的 Vendor 的機制演變,從 Go 1.5 的 Vendor 到 Go 1.11的 Go Modules 。並且也分享了 https://github.com/line/line-bot-sdk-go 的參與貢獻的開發過程。

接下來透過一個小型 LINE Chatbot 的專案來 (一個回應使用者輸入,並且可以透過 AWS 與 GCP 提供的功能來偵測臉部辨識的聊天機器人)講解如何透過 Google Cloud Run 來開發 LINE Chatbot 。

一開始講者分享兩段透過 GCP 與 AWS 雲端服務來偵測臉的相關範例程式碼,而其他聊天機器人所需要的相關處理程式碼也都帶過一次。完成所有需要的聊天機器人開發上所有需要的部分。

部署上,一開始先講解開發者熟知的透過 ngrok 來部署聊天機器人的方式,接下來透過 docker-compose 的方式來部署起來。並且透過 docker 特有的 Multiple Stage Build 的方式來讓部署的執行檔案大小變小。

最後再來介紹 Google Cloud Run 的部署方式,透過 Container 的方式來實現 Serverless 的技術。透過這樣的方式讓你的 LINE Chatbot 變得更有效率與更經濟。

上線之後,講者也分享了實務上很常使用到的「三寶」- Logging , Tracing 跟 Metrics 。解釋了在這次提供的案例之中如何加入 Stackdriver 的 Logging 與 Tracing ,可惜時間不夠無法完整討論到 stackdriver 的 monitoring 。

閃電秀

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

  • Is your bot ALIVE? / petertc
    • 相關影片與投影片:
      • https://youtu.be/Ljwwm_8E-uk
      • https://www.slideshare.net/petertc/is-your-chatbot-still-alive
    • 內容說明:
      • 講者分享如何來有效的監控你的聊天機器人,並且能夠精確的確認 chatbot 是正常運作的。這時候透過的方式是跑自動化測試的好幫手 http://doc.sikuli.org 也就是透過圖片的自動化測試工具來監測你的聊天機器人有沒有正常運作。
  • Chatbot O2O 案例分享 / EJay
    • 內容說明:
      • 做這透過 LINE Chatbot 與動態網頁互動跟現在參加活動的會眾互動。透過問卷調查的方式來贈送小獎品。蠻有趣的,可惜沒有相關影片與投影片。
  • Chatbot 待辦小精靈 / Jeffrey
  • 收藏小幫手 - 金魚腦救星 / Zz Chen
  • 從台幣匯率機器人延伸至團購 LIFF / Melix
    • 相關影片與投影片:
    • 內容說明:
      • 相當有創意的應用,原本是開發一個出國幫忙記錄匯率的小幫手。由於不少人有代購的需求,轉變成代購小幫手的工具,開發成 LIFF 之後,透過鏈結的分享。也搖身一變成為團購使用的小工具。相當建議各位看看影片的介紹。
  • 迷你綠洲LINE智慧淨水器 / McGee
    • 內容說明:
      • 分享透過淨水器產品,如果需要更換濾心可以透過 LINE Chatbot 通知。由於牽扯商業宣傳就不提供,請有興趣的去看共筆。
  • 自幹一個 Flex Message Editor / Ding
    • 內容說明:
      • 很棒的工具, Bot Designer 雖然是很方便的工具,但是使用上有收到不少的建議,於是獎者自行開發了另外一套 FLEX MEssage Editor ,功能相當不錯,可惜是商業作品也不方便宣傳。

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 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/)

[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 讓你可以設定語言。

如何使用:

  1. 連線到 https://login-tester-evan.herokuapp.com/
  2. 選擇要登入的方式
    1. 如果選擇 OpenID 方式到最後 LINE Login 完成後會出現, amr 相關資訊。 (範例 1)
    2. 如果選擇不同的 Locales 則會修改 LINE Login 相關的語言。 (JP, TW) (範例 2)
  3. 相關程式碼,請參考
    1. https://github.com/kkdai/line-social-sdk-go
    2. 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, 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: 泰文

詳細官方文件:

LINE Developer News 2019/06/26

Reference:

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

前提

偷個懶來看一下 GopherConSG 2019 ,順便了解幾個有趣的議題。 這邊分別提到了在 IDE 裡面,處理 autocomplete 的 gocode ,另一個議題則是由資安的角度,如何讓你的服務能夠更加的安全。

Go, pls stop breaking my editor - GopherCon SG 2019

Youtube

看到很多人之前問的關於 gocode 的問題… 都表示 “Gocode 壞很久”,好像說 1.10 之後 Gocode 常常不會動。其實真的有些問題,而且分了不同 repo

回頭查 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 的視窗就可以收到來自 BLE 設備的資料。詳細的圖片說明如下:

自動通訊可透過以下流程使LINE Bot和裝置進行連動。

  1. 支援LINE Things 裝置的製作者經由 API,分別針對各個產品進行登錄通訊步驟(Scenario)。
  2. LINE應用程式只要曾和支援 LINE Things 裝置連動過後,就會遵照事先登錄的 Scenario 進行通訊。
  3. 若 Scenario 完成執行動作,LINE 應用程式就會透過 Webhook 將執行結果傳送給經由 Messagine API 完成裝置所綁定的 Channel 上。
  4. 依據 Scenario 的執行結果,Channel 的 LINE Bot 就可以自由地回覆用戶。

講解完關於 LINE Things 的應用場景與解決的問題,並且也介紹最新的功能之後。 Hazel 就根據文章「中文 Engineering Blog : 結合 LINE Things DIY一個智慧門鎖吧 ! 」的內容逐步地帶領著相關的夥伴們解決相關的問題。

Q&A / 交流時間 - Takaku Hiroo / Hazel Shen

此次的來賓們皆為邀請制,主要分為 Maker 社群 (LASS) ,相關 IOT 技術廠商與一些技術合作夥伴。過程中收到許多來自不同領域夥伴的問題,將主要問題整理如下:

藍牙裝置需要逐一配對,無法快速地切換?

答:

  • LINE Things 主要透過手機的藍牙配對成功後的設備開始控制,請注意手機上的藍牙裝置每一個皆有獨立的裝置 UUID 不會有重複的狀況出現。每個裝置需要逐一配對,而且每一個藍牙裝置被另外一個設備連線後就無法強制連線? 這邊的行為並不是 LINE Things 特有的行為,是藍牙配對上的傳統行為。

LINE Things 參考鏈結:

活動小結

LINE Things 新功能 Automated Communication 上線,日本團隊特地到 LINE台灣辦公室希望能夠跟一些 Maker 社群與相關廠商見面。希望能夠透過功能介紹與展示 LINE Things 的最新功能獲得開發社群的意見回饋。 感謝旭多社群朋友的參加與意見討論,如果讀者為企業夥伴想要透過 LINE Things 機制有更多的合作歡迎透過企業合作需求 送出貴公司的申請。

立即加入「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/)

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

(圖片參考 讀墨 )

先問,為什麼?: 顛覆慣性思考的黃金圈理論,啟動你的感召領導力
Start with Why : How Great Leaders Inspire Everyone to Take Action

作者:賽門.西奈克  
原文作者:Simon Sinek  
譯者:姜雪影 
出版社:天下雜誌出版
出版日期:2018/05/23 語言:繁體中文 ISBN: 9789863983347

前言:

不論是身為開發技術推廣的人,或是跟一些同事在討論相關開發者推廣的活動。很多時候,許多同仁可能不能了解為何需要有那麼多的開發者社群活動? 為什麼需要一個月忙碌好幾個晚上留下來跟不論是內部的開發者,或是外部的開發者來舉辦社群聚會?

經常在各種會議上被問到類似的問題,但是我都會很願意回答這些問題。 因為要讓你的夥伴能夠真正的瞭解你的想法法,「為什麼要做這些」?而不是冷冰冰的,做這些所能帶來的效果是哪些? 所能帶來的認知度有多少? 能讓多少工程師更容易被招募? (當然~這些都是事後要被評量的 (笑) )

所以買下這本數位版本的書籍,好好的閱讀。除了希望能夠更有決心的鼓舞其他夥伴之外,也希望讓自己的更了解該如何用「為什麼」來說服其他人。

內容簡介:

吸引人心、點燃熱情的黃金圈是甚麼?怎麼練習?

黃金圈是三層同心圓,由外到內分別是做什麼、怎麼做,與為什麼。這個架構看似簡單,卻與人腦如何處理資訊與情感的結構完全一致。最核心的「為什麼」,最能撼動人心,產生強大連結,但也正是語言最難清楚表達的部分。

身為開發者關係與技術推廣的工作,很多時候除了要將技術理念傳遞給對方(不論是外部開發者,或是內部開發者),都是需要透過點燃熱情的黃金圈理論。 對外需要將技術的本質,也就是該技術「為什麼」需要的原因清楚的解釋之外。對內則是需要跟同事們解釋為何需要做這些活動。

這本書一開始透過探究沒有講解「為什麼」的世界,來讓讀者感受到。當一件事情失去了原本的「意義」與「使命」的時候,很多時候就會讓事情難以推動。

接下來也透過幾個成功的企業,分享者當初創立者的「使命」。一個企業的「使命」也就是這個企業賴以為生的「為什麼」。不論那個使命造就了為什麼消費者會選擇他們,而不選擇其他的競爭對手。

裡面有提到西南航空著名的以客為尊,就是因為當初的創造者希望能夠打造一個以客為尊讓乘客可以很輕鬆以他可以負擔的價格來搭乘,這就是西南航空的「為什麼」。

當然很多人會說西南航空會贏是因為他是便宜的航空,他有簡單的定價策略。但是其他那些都是「做什麼 (What) 」 而不是他們的原因。了解了西南航空的企業價值之後,完全就能夠認同他為什麼會有那些特價促銷與一些服務的準則了。 這就是「為什麼」的重要。

心得:

記得曾經看過類似的文章,敘述著關於工作態度的問題。 文章的全文大概是

有一位哲學家到一個建築工地分別問三個正在砌築的工人說:

「你在幹什麼?」第一個工人頭也不抬地說:「我在砌磚。」

第二個工人抬了抬頭說:「我在砌一堵牆。」

第三個工人熱情洋溢、滿懷憧憬地說:「我在建一座教堂!」

第三個人顯然相當有熱情,因為他對於工作的使命相當的清楚,也就是他對於「為什麼」要做這份工作相當的認同。

這裡也分享給找不到工作目標與使命的夥伴們,你需要找到你的工作裡面最重要的「為什麼」。

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

(圖片參考 讀墨 )

臺灣史上最有梗的臺灣史 
作者:黃震南  插畫:壯兔  出版社:究竟出版
出版日期:2016/08/01 語言:繁體中文 ISBN: 9789861372242

《臺灣史上最有梗的臺灣史》電子書 - 臺灣這塊土地上,曾發生過數不清的鳥事蠢事搞笑事傷心事正經事,想更了解臺灣、更珍惜我們所居住的地方,不如就從本書開始,一起對臺灣史動真感情吧!

前言:

當初會買這本書,是因為好像是某一次讀墨的推薦文章裡面有摘錄一篇文章。透過 ptt 鄉民的口語來敘述台灣的歷史,相當的有趣。 在看的過程中由於輕鬆的口吻,很快的就會把整本書當成休閒的書籍來看完。 很推薦喔

內容簡介:

當真一槍在手希望無窮,只要龍五的手上有槍誰都動不了他[14]。而這些軍警大多來自中國的貧窮省分,對於現代化的臺灣鬧出頗多土包子笑話,例如有人目睹軍官搶了小孩的腳踏車,但因為不會騎只好扛著走,小孩就跟在身邊哭鬧,軍官一急跳上腳踏車硬要逃脫,結果一頭栽進水溝。士兵沒見過自來水,於是買了水龍頭釘在牆上,以為這樣就有水喝(那是哆啦A夢的道具好嗎)。

這段文字節錄於這本書的某一個段落,就可以看得出來作者除了相當認真的做歷史書籍之外,也希望透過 ptt 上面時下人們喜愛的口語來敘述台灣的歷史。

這本書敘述台灣歷史相當的早,從第一批的台灣著名(大概是原始人的時代)。慢慢地到了荷蘭人經營台灣的歷史。 除了有敘述相關背景之外,也有相當多有趣的歷史。比如說鄭芝龍曾經是海盜,荷蘭人其實建造了不少的制度與硬體設施。 許多的故事都讓讀者感覺新奇跟引人入勝。

隨著時代的經過,這本書也會到了清朝開始有了鄭成功的故事。也有了許多相關的故事。甚至連清朝為何會來經營台灣都有稍微敘述到。

最後到了國民黨退守台灣的故事也有提到,讓人難過的故事有提到但是儘量地輕描淡寫。有興趣的人作者都有列出相當多的相關文獻跟資料,可以讓讀者去查詢更多的資訊。

心得:

想要邊讀 Joke 版面邊學歷史嗎? 這本書很適合推薦給讀者。在輕鬆的過程中就可以把台灣的歷史整個走過一次,也有許多 ptt 有趣的梗。就等各位去慢慢發現了。