0%

什麼是 COSCUP?

大家好,我是 LINE Taiwan Technology Evangelist – NiJia Lin。很高興這次能以 LINER 身份於 8/1、8/2 參加 COSCUP 2020,並體驗開源社群充滿熱忱與活力的氛圍!COSCUP 是亞洲最大的開源會議之一,自 2006 年開始由開源社群舉行的年度會議,也是台灣自由開源軟體運動 (FOSSM) 的主要倡導者。COSCUP 包含演講、贊助商、社群攤位,以及 BoF 社群同樂會等,COSCUP 的宗旨在於提供一個聯結開放原始碼開發者、使用者與推廣者的平台。

感謝台灣的防疫英雄們的努力讓大家有機會參加線下的研討會,也辛苦大會在行前的各種宣導與措施,讓這次 COSCUP 可以圓滿結束!

以下為大家帶來這次 LINE 的三個講者分別為大家帶來的內容分享 😃

閱讀全文 »

原文出自 มาสร้างตู้เพลง Jukebox เท่ห์ๆด้วย LINE Chatbot ผ่าน Spotify API กัน!

今天我將透過這篇文章帶大家在 LINE 中創建聊天機器人 “Nickelodeon”。會實作此聊天機器人是因為有時會有朋友來我家做飯,我會同時在家中播放音樂。但是朋友們會一下這首一下要求那首。所以我有了新主意:嘿,不如讓 Chatbot 擔任我的助手,幫助我脫離 555+ 種 DJ 身份。而實際上這個 Chatbot 可以應用於其他情境,例如在辦公室中或開車和朋友一起旅行等。

點唱機是什麼?

閱讀全文 »

前言

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

社群 Chatbots Meetup: https://chatbots.kktix.cc/
本次活動網頁: https://chatbots.kktix.cc/events/meetup-021
本次活動的共筆紀錄: https://hackmd.io/@chatbot-tw/meetups-021

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

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

整場分享的影片:

閱讀全文 »

前言

大家好,我是 LINE Taiwan 的 Tech Evangelist – NiJia Lin。

在尚未更新前時常會遇到問題就是網址後面會接上 liff.state= 抑或是會在原始 target url 上加上 斜線(/) 這類相關的問題,開發者(包括我)都需要使用相關的 workaround 去解套,這邊提供之前我寫的 Twitch-Bot 的 Javascript workaround 來處理 liff.state 的問題:

1
2
3
4
5
6
7
8
9
const query = req.query['liff.state'].split('?')[1].split('&');
const notifyPayload = { code: null, state: null };
query.forEach(el => {
const queryObj = el.split('=');
if (queryObj[0] in notifyPayload)
notifyPayload[queryObj[0]] = queryObj[1];
});
const code = notifyPayload.code;
const userId = notifyPayload.state;

這樣的解法可以解決我的問題但會讓開發有點綁手綁腳的,但隨著 LIFF v2.3 改版上線後出現了兩個模式提供選擇,分別是 ConcatenateReplace 兩個選項,如下圖所示:

在 v2.3 的更新中將之前所會遇到問題以及已有對應 workaround 的版本變成 Replace mode,而新推出的 Concatenate mode 則已解決相關的議題。也許在使用上還是會有點困惑,以下就使用一些 Scenario 為各位介紹一下這兩個功能之間的差異以及解決了什麼問題 🙂。

閱讀全文 »

前言

最近重灌了兩次 Mac 系統,而加入 LINE 之後也需要在安裝自己的工作環境,而我日常都在寫文章寫範例,除了日常已經將開發環境上傳 Gist 以外還有一些小細節需要注意,因此以下就介紹一些我認為較常用的工具以及一些環境設定的部分。

閱讀全文 »

前言

從一開始在社群中為了 demo code 將程式放上 GitHub,接著到了認識前輩們都在開源圈積極展示自己的成果也分享帶來的好處,造就了我也加入開源行列,但看了 open source 中許多好用的工具,也希望自己能夠看懂並加入開發,希望自己的貢獻能力(Pull Request)別只停於上傳範例以及修改文件,以下我就使用我第一個貢獻的 LINE SDK(python) 帶大家了解開源專案會有的樣子。

閱讀全文 »

前言

Grafana 是一個視覺化即時監控以及 plug-in system 的工具,之前使用時也含有許多儀表板(dashboard)以及圖表來呈現 Server 狀態,且他們還很酷地將它 open source - Grafana,使用 React JS 打造的可容下大量資料的畫面,Grafana 除了支援多平台外也支援 Docker,接下來就來看一下我聽這集的心得吧!

📸 by WFranz

前言

Kubernetes 在分散式系統中已經成為一個高可用性平台,並且有許多人都會將程式部署在上面,雖然部署在 Kubernetes 上很好,但本身的管理以及學習都不那麼簡單,因此也有許多人會使用 Serverless 來解決需求。

而今天介紹這個集節目就邀請到 Mux 的 Matt Ward,他們家的產品主要是在做 video streaming APIs,現今他們有自己的 Kubernetes 也曾經在 Serverless 中使用過,以下就分享我從這集 podcast 學到的東西以及心得囉!

閱讀全文 »

Photo by tingyaoh

前言

寫程式不管在哪個情境都會需要處理錯誤訊息,除了程式以外語言本身也需要這樣的功能,因此 python 就提供了一個標準函式庫 - atexit,這名字從 C 語言時態就存在的一個工具,主要是監聽程式當收到關閉請求時,可以先跳至已註冊的函式中先處理掉一些事情後再接著關閉服務,這個做法被稱為 Exit Handler,主要就是當程式收到關閉的訊號時最後會進入的函式們,一般較常見的會放上關閉資料庫連線釋放記憶體備份 cache 等等的功能,如此一來就能降低問題的產生,讓服務能夠可平滑的關閉、重啟。

不管使用 python 寫 腳本後端爬蟲 都可以使用 atexit 來處理例外錯誤,而我在 flask 中使用時與官方記載的註解有點不同,本篇就介紹一下 atexit 以及使用中不同的部分吧!

閱讀全文 »

前言

本次活動連結:https://www.meetup.com/CloudNative-Taiwan/events/271350471/

這次一樣是線上小聚的方式為大家帶來精彩的活動,自從碩班畢業之後對於 Cloud Native 接觸的頻率就越來越低,最多是在工作上可能會擦邊學到相關的內容,較多面向程式開發上,那也因為剛好有機會可以跟上活動時間,既然以前有相關經歷那就來參加看一下大家現在都在討論些什麼新知識 🙂。

閱讀全文 »