後續:穩健邁向好走的人生

上篇提到岳父出意外後我的心境變化與生活中的種種挑戰。文末總結,在這生活波瀾無定的時刻,最終我能做的還是回歸基本:提早計畫、提早執行、努力再努力而已。本篇想分享一下這些日子來思考的結果,以及後續的執行計畫。

The Design of Everyday Things一書中,作者Don Norman在第五章"Human Error? No, Bad Design"花了非常長的篇幅解釋為何人們習慣把意外事故歸咎於人為錯誤而非去檢討設計、為何重大意外源自系統性風險且分析起來曠日費時、為何明明事故如此昂貴,人們卻偏向忽略安全系統的投資直到後果無法承受,最後從根源的設計來正視何謂「錯誤」,以及預防和處理的心智模型。順帶一提,如果我可以選一本書讓全台灣的人都讀過,這本定是首選,而這章又是精華中的精華;如果在讀這篇文章的你還沒看過,請務必嘗試找原文的來讀讀看,保證值得。

其中引述早期波音公司的一段話我非常喜歡:

我們可不是靠祈禱來每天把數以萬計的旅客送上天空

雖然波音在幾年前出了大包,但這句話仍是言簡意賅 — 即使是每天把成千上萬人送到天空再平安降落這種事,我們都可以透過通盤的計畫與嚴謹的實踐來把風險降到極低。

那麼,我區區一個人想要健康地終老,並把我一個人的意外、老病對家族帶來的風險降到最低,沒道理不可能吧?

寫在長假過一半

Automattic的許多福利中,讓人看了就口水直流的就是每五年有一次長達三個月的sabbatical了。Sabbatical,指在工作一段時間後由服務單位提供的給薪長期休假。這在學術界似乎較常見,因此有「學術休假」這種譯法,但用在勞工身上似乎不太恰當,因此又有極富野心的「壯遊假」或單指客觀長度的「長假」兩種光譜兩側般的翻譯,這邊就姑且用後者。

我其實2020就滿五年了,本來打算2021的6月開始放,但COVID引發的各種封鎖政策讓我覺得放了也不能做什麼事,因此就先取消,延到今年。今年的情況大家都知道——台灣邊防失守,彷彿晚了兩年才跟上流行般,跟上了世界的腳步。但這次我決定不再等了,反正局勢已定,我們注定要與這隻圓圓刺刺像顆帶刺沙灘球般的病毒共存,人生經得起幾次等待?於是我在3月正式提出申請,從4月開始就著手計劃長假期間我負責的事務的交接計畫,5月就開始執行。除了工作方面,更令人興奮難耐的自然是這三個月的休假究竟要如何好好利用了。

我本來就有用筆記本規劃的習慣,對於這難得的長假,從想嘗試的事情、副專案、研究學習、想去的地方、想教孩子的事、想帶父母與岳父岳母去體驗的事,我像是把腦子外翻般花了數天確保每一滴靈感、每一縷思緒都倒出,用我力所能及的最小字體狠狠刻畫,直到寫不出任何一個字時,才如夢醒般停筆,對自己寫出這麼長篇如經文般的文字,竟有種暖暖的成就感浮上心頭,牽動我的嘴角不住上揚。「多麼奢侈的煩惱啊」我自嘲道,公司的長假指南中寫道:「請盡量利用這段時間做完全與工作無關的事情,為你的身心做最好的重啟」,就是指這種感覺吧?後來同事問我有什麼計畫,我一律說「我有一大堆想做的事,但我決定不要預先計畫太多,而是放下一切,讓當下的我決定」,嗯,多麼禪風的回答。

當時的我怎麼也想不到,接下來的某個如往常一般平凡展開的週一早晨,岳父會在家重摔,命危送醫。

再見Unite,你好fzf.vim

Unite是一個vim的模糊搜尋外掛,透過將模糊搜尋的邏輯和資料來源分離,實現了一個可泛用於各種情境的模糊搜尋框架,例如:檔案搜尋、內文搜尋、git commits等等;加上它作為一個原生vim外掛,幾乎是只要vim能用的地方它就能用,省去不少環境設定的麻煩,過去幾年來它一直在我的開發環境中扮演重要角色。但Unite效能不彰、由於設計上的問題擴充不便,更受不了的是作者Shougo沒事就把一樣的東西一直重寫,而不是好好地維護好一個專案,終於「再次」下定決心換掉 –– 是的,這不是我第一次找,只是過去都沒有成功。

所幸一代新人換舊人,這次很快就找到:fzf。實作品質優秀、效能拔群、設計上擴充容易,加上穩定的維護,用得我老淚縱橫,忍不住就贊助了好幾杯咖啡給來自南韓的作者junegunn。

從進入web3到離開

以區塊鏈為基礎的技術現在有多火紅,相信不需要任何解釋。個人最早的加密貨幣經驗是十幾年前在研究所的時候嘗試買了一千多台幣的比特幣,體驗過整個流程後覺得「喔喔,真的這樣就可以買、可以用了耶,好有趣呢」就把它忘了 –– 對,忘到連錢包都弄丟了,我並沒有因此買房買地,謝謝關心。

現在會想去玩玩看的契機,主要是連我周遭跟技術領域八竿子打不著的人都開始聊這個,再加上我本身對分散式技術一直很有興趣,偶然發現Ethereum的EVM是turing complete,同樣基於區塊鏈技術實現的Golem和野心勃勃的The Internet Computer像約好了一樣同時吸引了我的目光,就決定是時候從使用者的角度去從Ethereum切入體驗看看。

幾個月下來後這所謂「真正自由的去中心化網路」,並沒有讓我感受到它的支持者所大肆宣揚的種種美好,因此我現在是沒什麼在玩了。它的好已經很多人在寫了,因此本篇專注在為什麼我覺得它其實沒這麼好。

用瀏覽器自動化優化你的網頁QA人生

我個人目前偏好的工具是M牌的Playwright。因為早期calypso的e2e tests是用Puppeteer,不知為何它的行為常常跟我預期的相差甚遠,只能說八字不合;至於Selenium就更不對盤了,我連要弄個最基本的開個網頁點個按鈕都弄半天。Playwright倒是幾分鐘內就弄出來了,API設計上對我來說較易理解,而且原生支援多種瀏覽器,就這麼用到現在了。

不只是操作自動化

說到瀏覽器自動化,大部分人第一件想到的事情其實是屬於「操作」的自動化,例如:開啟網頁A,按下按鈕X,如果出現Y對話框就按下Z按鈕等等。但我個人經驗上,對於平日開發工作的輔助上,真正最常用的其實是瀏覽器的狀態設定腳本化,例如:cookies、local storage、query strings、解析度、桌面裝置vs行動裝置等等,能夠把這些都寫成一個能重複使用的腳本,在修改完程式後輕鬆地用一行命令生出需要的瀏覽器實體,不用重複手動設定,又不用動到自己平常用的瀏覽器。過去總是靠匿名視窗去手動調、這個瀏覽器開發用那個瀏覽器日常用,簡直不堪回首。

楊梅的後山:散步,運動,兼垃圾場

楊梅與龍潭交界處有座小山名為「乳姑山」,除較為人知的大型地標如揚昇高爾夫球場與東森山莊外,沿著山邊環繞的校前路與秀才路綠意環繞,坡度友善,又有多條優質的步道如秀才步道、福人步道、保甲古道橫亙其間。秀才路側到了高點視野開放處在好天氣甚至可以看到101,也因此吸引大量景觀咖啡進駐。

我個人最喜歡的是地圖上桃71這一側,也就是校前路這一邊:

這一側除了坡度更平緩外,到北庄前都是非常寬的雙線道,騎車或慢跑都不需要擔心與車搶道。春天時,一路慢跑到揚昇,路上甚至有許多不同的野花可欣賞。也因此,平日假日不論早晚都可看到許多人攜家帶眷健走或騎腳踏車自在穿梭,享受鄰近市區的自然氣息。

但對環保志工們來說,這裡其實是令人頭痛的超大垃圾場。特別是鄰近戶政事務所那一段,經常有人停車休息,順手就把垃圾往樹林裡丟,甚至還有很明顯是特地載垃圾去丟的。例如我曾經撿到過一整黑色垃圾袋用過的尿布,一整包廢線材,還有沿著福人步道沿路丟棄的數十包廢泥作建材

我們每次出勤至少撿50瓶阿比,100個煙頭,這絕對不是在開玩笑。下面這堆是我一個人在100公尺不到的範圍內撿的,而且垃圾都像會無性繁殖一樣,每次出勤都有辦法撿這麼多。永寧里是楊梅最大的里,志工隊有超過100人,這樣還能每次都撿這麼多,想想也有點不可思議。

志工隊大多是退休的大哥大姐們,大概只有我一個人是因為遠端工作在家才有這閒情逸致。但就算是我這個還算常運動的人,溜進林間裡去撈大包垃圾出來都常受傷,去年年底一次出勤就曾經拉傷肩膀,治療復健了一整個月才好。因此志工隊能處理的範圍其實非常有限,清出的大量垃圾在有限的時間和人力內也無法好好分類。

只要停下來往樹林裡探個頭,山林到底幫我們藏掉多少不堪可是一目瞭然:

撿的速度永遠跟不上丟,但又只能持續去撿,簡直有種薛西弗斯神話的既視感啊。

關於報稅這檔事

服用前請注意:本篇以個人經驗寫成,因此可能有許多法律或稅務相關用語不太精確,還請見諒。

就在去年,a8c在台灣人數堂堂衝破2位數,而且還在穩定增長中,正式擊敗東亞一哥日本,可喜可樂、可喜可樂。因此我們前陣子舉辦了第一次的區域性meetup,在天母古道的1800級階梯毀滅膝蓋、探索隱藏版瀑布,大吃興蓬萊排骨酥與其它大量與健康扯不上邊的食物。

當天我被問到最多的就是如何報稅,我當初也是被這問題搞得暈頭轉向過,是時候寫一篇文章總結一下。

先寫結論

內文很長,有空的人再泡壺茶、沖杯咖啡展開內文看看吧,沒空看一下這段應該就夠了 🙂

Automattic在沒有分公司的地方是以用「契約工作者」(contractor)的方式簽訂發當地貨幣的合約,這種情況可以用個人身分透過全部列舉或是用執行業務所得的名目來報稅,手續簡便但會報到哭出來。後來透過Zapier的前輩Chang-Hung介紹,我才知道更好的方式是成立一間機構,透過「外銷勞務零稅率」來節稅,我是選擇透過Simpany的服務成立行號。行號的稅計算很簡單,營業稅0稅率,免營業所得稅,最後就是「總收入*行業稅率」算出營利所得,算入個人所得稅去報(*修訂1)。軟體服務是8%,軟體出版則是6%,後來透過Simpany協助申請到後者,這樣一來我基本上繳不到稅,除非公司突然加我十倍薪水。但有一個最大缺點就是每個月都要去銀行用印才能拿到錢,我是在玉山開公司戶,他們是說這跟洗錢防制法有關,只要是用這種形式進來的台幣就避不掉。至於其他銀行有沒有別的方法,我就沒去進一步研究了。

因此,我一年關於稅務的常規大概如下:

  1. 每個月月底開一張invoice給公司(無制式格式,自己找個template做就行),以及用線上工具開一張電子發票,勾選「零稅率」,項目寫「服務費」。
  2. 銀行通知有匯入款進來要用印,帶著大小章風塵僕僕地騎車去蓋章。一開始會要請行員把水單email給我,但後來熟了都不用說了。
  3. 雙數月底,Simpany會通知要報稅,這時就把合約、給公司的invoice、銀行水單印出,包成一包預約順豐取件寄出。
  4. 時光匆匆來到5月報稅季,這時「71D 課稅年度營利事業投資人明細」根據Simpany提供的資料申報。(5/19補充)
  5. 時光又匆匆來到12月,這時候會需要申報「年度各類所得」,申報員工薪資等等。因為我都沒有,也沒打算給自己做個薪水的名目,所以就報0即可。(這部份見仁見智,有一說是為了將來申貸或信用卡申辦等事宜最好還是要設定個薪資,免得銀行那邊審核不過,我沒有相關經驗就是了。)
  6. 新的一年開始,繳給Simpany記帳服務費26000+珍奶型電子發票方案660 = 26,660。(*修訂2)

多了許多手續,但這樣一來稅負全免,一年只需繳給事務所26,660即可。

年度交換禮物來啦!

在a8c,每年年末會有一次秘密聖誕老人(Secret Santa)的交換禮物活動,也就是「小天使小主人」遊戲。雖然我幾乎每年都參加,突然想到我好像沒有寫過這件事。

活動進行方法是:

  1. 當年主辦人會在約11月中於watercooler p2宣布開始登記,有興趣的人就自行到內部一個名為"Automattic Gift Exchange"的WordPress網站登記。
  2. 登記時間截止。Automattic Gift Exchange會發送Slack ping,告訴你今年的送禮對象已經決定了,這時去該網站就會看到本次送禮對象的寄送資訊,以及一個可以匿名發送訊息給送禮對象或是你的秘密聖誕老人的表單。
  3. 收到禮物,是時候去watercooler p2發文炫耀啦!一個不成文的規定是最先收到禮物的人要開一個新的p2討論串。

因為公司的人遍布全球,所以玩這個好玩之處就在會有機會收到世界各地的東西。我曾經收過來自瑞典的節慶食品,其中一條焦糖醬因為真的太甜了現在還躺在我家冰箱;來自亞利桑那州的各式仙人掌特產以及當地小咖啡店的重烘焙豆,那支咖啡的風味之好我至今還念念不忘(我常常覺得台灣咖啡師大多對重烘豆過於歧視,不過那是題外話);還有一年某熱愛烘焙的同事因為沒辦法寄她自己的作品來,居然訂了Biolove的蛋糕給我,她不通中文也沒到過台灣,令我印象深刻。

今年收到的是來自英國的恐怖漫畫:Ghost Island: The Complete Collection:

這本書來自一位曾經在grand meetup合作過的同事。他事前有寫匿名信給我,想多了解我的喜好來選擇。
「你最近一次追劇是追了什麼?」
「魷魚遊戲」
大概是這樣,他選了一本恐怖漫畫給我。我收到沒多久就看完了,作畫呈現相當精彩,雖然整體故事張力和人物表現深度似乎礙於篇幅有些不足,但仍然是部佳作。

至於我送的禮物呢?過去每次我都是精選台灣美食大禮包寄送,但今年抽到印度同事,很不幸沒有任何運費合理的方式可以寄送,我只好上Amazon.in去買了一個我出外工作必備的收納神器GRID-IT,從當地商家送去,雖然氣勢不足,起碼顧到實用性與價值感。

如果2022年末全球物流能恢復正常,抽到我的人就賺到了。兩年悶氣集成的兩倍大禮包,必定要他一次從台灣頭吃到台灣尾,看到MIT字樣都會怕。

啥?Terminals database is inaccessible?

今天在設定開發環境以及安裝git-filter-repotmux-open時不知動到什麼,首先發現顏色都跑掉,接著tmux出現一系列令我抓狂的問題:tab completion陣亡,在zsh下delete變空白,打clear會出現terminals database is inaccessible 錯誤,然後我的命令列提示字元甚至還可以刪除:

再鬧啊

搞了半天,桌子快撞壞,才發現$TERM不知為何變成了tmux-256color,在tmux.conf中加下面這行設回macOS預設的xterm-256color就行了:

set -g default-terminal "xterm-256color"

我還是不知道我在安裝過程中到底動到什麼,或許是安裝git-filter-repo時有更新一些tmux相依套件,安裝tmux-open後重開tmux問題才顯現出來。後來我的顏色設置還是回不來,索性就當一個機會把用了6年還是7年的配色給換了。vim換了molokai

terminal則是自己隨便配一配:

僅以本文紀念一下今日花在這問題上的半天,和我一去不復返的配色們 T___T