2018

Baby

2018 年回顧拖了快要半年還沒出來,主要原因是現在空閒時間很少,而且本來想先把記錄組文章的第二篇寫出來,不過想一想還是放棄這個方案,免得到了 2020 年還沒寫好。

去年對我來說變化很大,忙碌到沒有每個月都有拍照,所以放棄以往一個月一張照片的方式,改以文字為主。所以去年有什麼變化呢?去年我換了工作、搬了家、小孩出生然後還買了新車,買車主要是為了方便帶小孩出門時,以前開的是我哥的老車,考慮到安全性和舒適性的問題,決定還是買台新車,然後因為車款熱門所以等很久才拿到車就是。

搬家也是為了小孩,因為考慮到本來住的兩房不夠大才搬的,本來有一間很大環境不錯、價錢不錯還有車位的陰錯陽差沒租到,不過那間缺點是比較偏僻,之後又一直找不太到適合的,然後現在租的也是有點運氣才租到的,本來跟房東約好週末要去看房子,結果前一天房東就打來說租出去了,然後又過了不知道多久那位房東又打來說本來要租的因故無法承租了,然後才輪到我有機會去看,然後一看就覺得不錯就先訂下來,大約是二十年的房子,實際上住進來當然還是有些缺點,不過還算 OK,不過有覺得現在的空間也還無法以後給小孩獨立一間房間,大概過幾年又要再看看了。

工作的部分,其實現在也有點想不起來完整決定離職的原因,不過之前工作有段時間有心理影響生理的狀況出現,現在的工作則是託朋友的福才有的,當時其實最想要的是找國外的遠端工作,第一目標是 Elastic,對於 Kibana 開發還蠻有興趣的,不過可惜連履歷那關都沒過XD,還有一家很想加入的是 DuckDuckGo,其實是第一個投的,履歷的品質和後來的版本差很多,也是一樣沒下文,其它有得到大約兩家的面試機會,不過都沒順利過關,自我評量大概是英文表達能力還明顯不足,現在的工作則是想要的外國公司都失敗後,開始要在國內找時,先有一些朋友來找我,然後我就從中挑了其中一個工作了,其實本來有想公開找的,不過也是還沒機會公開說就確定了。之後大概等小孩大一點就要開始來加強英文了,這部分真的是應該早點開始的。

最後終於要來談談小孩的事了,我家小孩是 5/3 號晚上出生的,剛好預產期同一天,差一點就變成原力寶寶了,不過講真的生產過程也是很辛苦,老婆痛了將近 20 小時,差點就要全餐了,然後還臍帶繞頸,生出來之後給小兒科那邊弄了好久才哭出聲音來,等待的時候真的是很緊張,還好沒什麼其它異狀,大概就是不好帶吧,不愛吃不愛睡,即使到今天已經滿一歲了還是一樣,還好長得很可愛,不然早就忍不住垂下去了(?),說可愛也不是父母視點,是真的客觀來說長得很可愛,在外面常常被當成小女生,睫毛超長,甚至有過一次背著他走路時,路邊一個大叔看到驚呼:「太可愛了吧!」不過隨著年紀越來越大可愛度似乎也有下降了。有小孩之後生活和心境都變化不少,也必須放棄不少東西,要寫的話好像可以寫一堆,所以還是不寫了,不過就是,在某些時候,就突然想起了 About Time 的劇情,曾經一直想著為什麼主角不再穿越時間,似乎現在也明白了。

Baby


W3C and WHATWG and HTML

w3c-whatwg-logos

「天下大勢,分久必合,合久必分」,沒想到 W3C 和 WHATWG 之間的複雜關係就這麼突然的踏上新的里程碑了,今天 W3C blog 發表了一篇文章-W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM,說兩個組織已經簽好合作的協議了,未來算是要共同維護同一份 HTML 和 DOM 的 spec,HTML WG 的章程也因此要重新制訂,現在有草稿可看,詳細一點的摘要可以看 W3C CEO Jeff Jaffe 的文章 -W3C and WHATWG to work together to advance the open Web platform

  • W3C and WHATWG work together on HTML and DOM, in the WHATWG repositories, to produce a Living Standard and Recommendation/Review Draft-snapshots
  • WHATWG maintains the HTML and DOM Living Standards
  • W3C facilitates community work directly in the WHATWG repositories (bridging communities, developing use cases, filing issues, writing tests, mediating issue resolution)
  • W3C stops independent publishing of a designated list of specifications related to HTML and DOM and instead will work to take WHATWG Review Drafts to W3C Recommendations

基本上就是 W3C 相關的 WG 以後都改成貢獻到 WHATWG 那邊(在 GitHub 上),然後 W3C 那邊會拿 WHATWG 標準文件的 snapshot 來作為 CR、PR、REC,或許也可以稱為 Living Standard 的勝利。

如果要看比較細節關於兩個組織間簽的合作內容也有公開在網路上-Memorandum of Understanding Between W3C and WHATWG,裡面還有列出所有相關的 W3C 的標準文件,以前我就一直很好奇到底全部是有哪些,剛好趁這機會一次收集齊全,其實還不少我沒看過的,甚至也有 404 的(?),其中推薦標準(REC)的部分:

  1. https://www.w3.org/TR/html5/including other URLs under this directory
  2. https://www.w3.org/TR/html50/including other URLs under this directory
  3. https://www.w3.org/TR/html51/including other URLs under this directory
  4. https://www.w3.org/TR/html52/including other URLs under this directory
  5. https://www.w3.org/TR/html/including other URLs under this directory
  6. https://www.w3.org/TR/webstorage/
  7. https://www.w3.org/TR/webmessaging/
  8. https://www.w3.org/TR/eventsource/
  9. https://www.w3.org/TR/2dcontext/
  10. https://www.w3.org/TR/dom/

非推薦標準:

  1. https://w3c.github.io/html/including other URLs under this directory
  2. https://www.w3.org/html/wg/drafts/html/master/including other URLs under this directory
  3. https://www.w3.org/TR/websockets/
  4. https://www.w3.org/TR/2dcontext2/
  5. https://www.w3.org/TR/microdata/
  6. https://www.w3.org/TR/staticrange/
  7. https://www.w3.org/TR/workers/
  8. https://dvcs.w3.org/hg/webperf/raw-file/default/specs/RequestAnimationFrame/Overview.html
  9. https://w3c.github.io/dom/
  10. https://www.w3.org/TR/dom41/
  11. https://www.w3.org/TR/DOM-Parsing/
  12. https://www.w3.org/TR/html53/

這些東西在 WHATWG 那邊基本上都寫在HTMLDOM裡面,就是單一份標準文件內塞了比較多東西這樣。

最後就是我還發現一點有趣的,WHATWG投票那邊,四位出來投票的分別是 Apple、Microsoft、Mozilla 和 Google 四間公司的人。然後我只對 Mozilla 的dbaron有印象而已。


SameSite Cookie

Cookie Time

Cookie 的規格是 RFC 文件所定義的,其實一直以來都有在演化,目前為止已經有三個版本,照順序分別是RFC2109RFC2965和最新的RFC6265,像是HttpOnly就是 RFC6265 才出現的,而最近最新的屬性,就是SameStie了,其實它和HttpOnly的起源很接近,都是近年來比較被人重視的安全性和隱私的原因,Google 的 web.dev 有一篇圖文並茂的文章介紹的很詳細-SameSite cookies explained,建議還不清楚什麼是 SameSite cookie 的可以先去看一下。

SameSite Cookie 的標準文件其實還未正式定稿,目前還算是草稿RFC6265bis(bis 在The Tao of IETF有解釋),不過主流瀏覽器都已經支援了,然後其實這篇文章我想說的是最近在 W3C TAG 看到的 Issue 373:SameSite=Lax by default,是由 Google 的 Mike West 提案要把 SameSite 的預設值改為 Lax,現在 Google Chrome 已經有這個實驗選項了,而且除了 SameSite 預設值的改變之外,其實還有一個修改目標是SameSite要在Secure的時候才能設為None,這項改變相對而言是影響比較大的,所以提案的文件(Incrementally Better Cookies)也有提到可以分步進行,另外就是 Firefox 也表示有意願來實做,看起來至少 SameSite 預設改為 Lax 這件事應該是不會太久之後就會發生了。

在花時間看一些文件內的參考資料後,發現 Mike West 還有其它幾份相關的草案:

  • first-party-set是用/.well-known/URL 來跟客戶端溝通,可以提供 first party 的域名清單;
  • First-Party Sets and SameSite Cookies利用上面的 first-party-set 資訊,然後提供兩種新的 SameSite 值:FirstPartyLaxFirstPartyStrict
  • HTTP State Tokens定義了個標準化的 session token,是由瀏覽器端產生的 token,而不是 Web API,至於怎麼傳遞到 server 端,怎樣溝通有效期等都有寫在規範內,Incrementally Better Cookies 的想法也是從這份草案中的特性而來。

這些草案都還蠻有趣的,至於會不會定稿成為規範甚至大家都開始實做,目前就還很難斷定了。


➡ 前一個月的文章