#Others

前言

最近 YDKJS(You Don’t Know JS 的縮寫,中譯版翻成:你所不知道的JS)有了第二版,名叫 YDKJSY,Y 是 Yet 的意思(中文版可能可以翻叫:你還是不知道的 JS)。這個第二版還沒全部完成,但在 GitHub 上面已經公開了最前面的一些章節。

搶先讀了一下第一章,在講與 JS 相關的歷史,其中提到一段讓我很感興趣的議題:

As such, sometimes the JS engines will refuse to conform to a specification-dictated change because it would break that web content.

In these cases, often TC39 will backtrack and simply choose to conform the specification to the reality of the web. For example, TC39 planned to add a contains(…) method for Arrays, but it was found that this name conflicted with old JS frameworks still in use on some sites, so they changed the name to a non-conflicting includes(…). The same happened with a comedic/tragic JS community crisis dubbed “smooshgate”, where the planned flatten(…) method was eventually renamed flat(…).

大意是在說有時候 JS 的規格必須跟現實(已經存在的那些舊的實作)妥協。例如說原本 Array 要加上一個叫做 contains 的 method,但因為會有問題所以改叫 includes,flatten 也改名叫做 flat。

還有一個上面特別標起來的詞「smooshgate」,用這個當關鍵字去找才發現是去年三月左右發生的事件,至於發生了什麼,底下會詳述,跟上面提的 flatten 有關。看到有這件事的時候我第一個反應是:「咦,我怎麼什麼都不知道?」,查了一下繁體中文的資料,大概也只有這篇有提到:SmooshGate,以及[筆記] 3 種 JavaScript 物件屬性的特性這篇有擦到邊而已。

在仔細研究了一下事情的來龍去脈之後,覺得是個滿有趣的議題,因此寫了這篇跟大家分享。

閱讀更多

大約在一年前的時候,我把 Blog 直接放在 GitHub Issues 上面。雖然說台灣很少人這樣做,但有許多中國的開發者都利用這個方式來架 Blog。

那時我會想採用 GitHub Issues 的原因很簡單,就是因為方便。

  1. GitHub Issues 完美支援 Markdown 語法。
  2. 上傳圖片超方便
  3. 當別人也用 Issues 提到你的文章時,會自動產生 reference
  4. 留言系統超方便
  5. 可以按 Emoji
  6. GitHub repo 可以按 watch 來關注,更新時會收到通知

總結以上,當時選擇了 GitHub Issues。

但最近發現一個很大的問題,當初沒有注意到,那就是 GitHub Issues 的 SEO 極差。你直接拿 Issue 的標題去 Google 搜尋,還不一定能搜得到。

因為這問題挺大的,所以最後還是搬回了 Hexo。

兩年前其實我就已經搬過一次家了,從 Logdown 搬到 Hexo 去。但那時我沒有繼續使用 Hexo,因為我覺得那個部落格的版面不太好看。

而這次重新搬回來,很大一部分是因為看到了 Askie Lin 的部落格,我看到的時候驚為天人,想說:「哇,這部落格也做得太漂亮了吧!」,後來得知是使用現成的主題 Minos 來改的,於是我就想說可以換成這個主題試試看。

今天經過一整天的調整,自己修了滿多東西,試著把這個版型修成自己想要的樣子,發現還滿順利的。可能是因為原本的 code 就寫得不錯,基本上修起來沒有太大問題,改了一下字體大小以及分類跟文章列表顯示的樣子,其他都沒什麼動。

沒什麼意外的話,以後就決定在這邊紮根了,原本 GitHub 那邊就當作備份文章的地方好了。

Hexo 萬歲,Minos 萬歲 🎉

前言

前幾天的時候我在 Medium 上發了這篇文:Medium 中文寫作者追蹤人數排名與不專業數據分析,內文是我用 Node.js 寫了一個簡單的 Medium 爬蟲之後整理出來的數據。

在原本那篇文章裡面有簡單提到爬蟲的資料來源,但是對技術的部分沒有太多著墨。事實上,在寫 Medium 爬蟲的時候其實踩了一些坑,與其教大家寫一個 Medium 爬蟲,不如讓大家跟我一起走過這些坑,盡可能地還原我當初在寫這個爬蟲時碰到的障礙以及解決方法,我覺得這樣會更有趣一點。

因此,這篇就是用來記錄我寫這個 Medium 爬蟲的經過,其中也會有點教學的成份在,所以看完之後你應該也能夠寫出一個類似的爬蟲,或至少你看到 source code 的時候不會一頭霧水。

雖然說最後寫出來的是這個跟使用者資料有關的爬蟲,但我一開始其實是先從文章列表開始的,因為那時候剛好有一個需求,想要把自己的文章全部爬下來。

會有這個需求是因為 Medium 內建的功能其實滿爛的,你很難找到一個作者 po 過的所有文章,或者是說很難一目瞭然。所以早期的文章除了透過 Google 以外,是很難被找到的。

所以我後來就手動做了一個文章的索引,自己整理了以前發過的所有文章。但是身為工程師,這明明就是一件可以寫程式來做的事啊!所以想嘗試看看能不能先寫一個文章列表的爬蟲。

閱讀更多

前言

有許多的 HTTP Status Code 大家都耳熟能詳,例如說 404 Not Found、500 Internal Server Error 以及 200 OK 等等。

在眾多的狀態碼之中,有一個擺明就是來搞笑的:418 I’m a teapot。

但你知道嗎,它不在 HTTP 標準裡面,所以根本不是標準的 HTTP 狀態碼。你可能會想說:「我都看過 RFC 了,怎麼會不是?」。但那份 RFC 也跟 HTTP 一點關係都沒有,不過滿多人都沒注意到這點。

我一開始也沒注意到這件事,以為 418 是 HTTP 標準的其中一部分,一直到 2017 年 8 月時有人在 Node.js 的 GitHub 發了一個 Issue:418 I’m A Teapot 我才注意到。

Issue 裡面提到希望能移除對 418 的 support,而發起 Issue 的作者在被人告知 Go 也這樣搞的時候,也跑去 Go 發了一個 Issue。

那時候這起要求移除 418 狀態碼的事件其實引發了不小的風波,而大部分人其實是反對移除這個狀態碼的。甚至還有人做了一個 save418.com,想要拯救 418。

前陣子花了點時間研究一下整件事情的來龍去脈,在整理的過程中也發現無論贊成或是反對,這其中的理由都很值得我們去思考,因此在此總結成一篇文章跟大家分享。

閱讀更多

前言

前陣子我為了幫自己的學生們更熟悉 HTTP 以及 API 的串接,寫出了一個小遊戲:Lidemy HTTP Challenge,需要根據每一關的說明取得正確的 token,一共有十五關,前十關基本,後五關進階。

經過了一些朋友的測試之後,慢慢調整、改善,最後讓學生測試發現反應都不錯,於是就在前端社群正式對外公開這個遊戲,讓大家也能一起參與。

如果你還沒玩過,那強烈建議你不要看這篇文章,因為這篇文章會破壞你遊玩的興致(大概就跟電影爆雷一樣)。建議可以先去玩一下,等全破了再回來看這篇文章,會得到一些不同的收穫。

接下來我會講一下這個遊戲誕生的歷程以及每個關卡的設計。

閱讀更多

前言

最近又開始了自己的教學計畫,第一期的時候寫了這篇:利用 Github Classroom 加 Travis CI 打造改作業系統,第二期寫了這篇:AWS Lambda + GitHub API + Google Sheet = 自動化簽到系統,都是利用現成工具來快速湊出符合自己需求的系統。

而第三期開始前我希望課程能有個討論區,讓學生們可以在上面很方便地問問題。一直以來都是用 Slack,但 Slack 最大的缺點就是免費版會吃訊息,很多不錯的資訊被洗掉就覺得滿可惜的,希望能有個論壇或是討論區之類的地方會比較好。

在兩年前我也寫過一篇:自架論壇的解決方案:flarum, github issue, nodeBB, discourse,研究了幾套方案,最後選擇 GitHub Issue。因為最簡單、最方便,但最大的缺點是學生好像不太習慣,因為左看右看上看下看其實都不像是個論壇。

閱讀更多

前言

在兩年前我寫了這篇一個資淺工程師年末的自我省視,內文主要是檢視自己那年學到的東西以及抒發心得感想,並提出一些對於自己職涯發展上的疑問。

標題之所以是打「資淺」工程師,是因為那時覺得連資深的邊都沾不上,所以用了資淺這個字來形容自己。

兩年過去了,職稱從工程師變成資深工程師,甚至還再往上變成了 Front-end Team Lead。雖然職稱本來就不代表一切,但我認為它至少「代表著什麼」,你到了那個位子就必須負起責任,如果覺得自己能力未及,就必須盡力去追趕,直到自己能擔起那個責任為止。

這篇會先回顧我這兩年來的發展,最後再分享一些自己的心得感想。

在這之前一樣先預祝各位讀者新年快樂!

閱讀更多

前言

最近剛好在做直播相關的東西,雖然說是做前端,但還是必須懂一些直播的原理
至少要知道有哪些格式,以及各種格式的優缺點是什麼,做起來也會比較踏實

這篇就簡單記錄一些心得跟資料,如果想比較深入了解 hls 的,可以參考下面這兩篇文章:

  1. 直播协议的选择:RTMP vs. HLS
  2. 在线视频之HLS协议—学习笔记:M3U8格式讲解及实际应用分析

閱讀更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×