手機眼中的我

2019 年入手的小咪

大家好,我是小咪,是成哥的手機,聽說主人要找一件隨身物品來介紹他,由我來介紹便最適合不過了,試問有誰會比我更常待在他身邊呢?

雖說,我是他最親密的隨身物品,但比起我的前任們,我算是非常失寵的一個… 聽說,我 n 代的前任 iPhone 一代,成哥對他可是愛不釋手的!有事沒事也會把手放在口袋摸它一下,還因為太愛它,由 windows 人變成果粉呢!之後還因為被整個 Apple 生態感動而學習開發手機 app。我可沒有這種待遇了,他選我,是因為我的性價比高而已… 雖然在速度、屏幕、性能各方面我都是遠超前任們的,而且我還是全面屏啊!不像那些有瀏海或在臉上開孔的,醜死了🤮 可是成哥就沒有象親近它們般親近我,更從來沒想過為我開發手機 app 呢 😢 他平常會把我放在房間的一角,幾小時才來看我一次 … 當然外出的時候我是在他口袋裏的,但也不見得他有事沒事便來看我一下 😪

成哥啊… 聽前任們說,你以往在一些零碎時間,例如等人、等車、坐升降機的時候,都會拿起手機,看看 Facebook 或者 whatsapp 一下, 但你現在幾乎都沒用 facebook 了… 還把它放到第 2 版的 “social” folder 裏,以往你可是放在 dock 的啊!這都算了,最令我難受的,是你把手機長期設在靜音模式,一天才看兩三次 message,難道就不怕人家找不到你嗎?不怕成為一個孤獨老人嗎?

既然這麼難得被訪問,告訴大家一個秘密吧 😁 你們知道成哥每日最 relax、最 enjoy 的是什麼時候嗎?就是在所有家人都睡著以後、他自己睡覺之前,約一小時左右的時間。這是他的絕對私人時間,通常他都會吃宵夜,而他幾乎每晚都是吃 corn flakes + 牛奶, 對這麼一個愛新鮮的人來說,竟然十年如一日地吃著同一牌子的粟米片,真是不可思議啊!而家中的貓貓也會在那時候坐在他身邊陪他一起吃宵夜,或坐在他腿上古嚕咕嚕的,這也是貓貓每天最期待和 enjoy 的時段~ 而我呢?也是在這時段和成哥最親密的了 🥰 他通常會一邊看手機,一邊吃 corn flakes,看看 youtube 有什麼新事,又或者看一些時事評論、影評、書評之類。之後他也許會看一陣子書,然後便睡覺了。至於他喜歡看什麼類型的書呢?就留給書本兄來介紹吧~

Belle 的暑假日常

這是她七月的日曆,滿滿的 ✓ 代表什麼呢?

CT: Chinese typing 
ET: English typing 
RC: Read Chinese book
RE: Read English book
M2: math exercise 2 chapters
S: 不吃 Snack
TV: 控制看電視時間
W2: 600ml water x 2
ES: Exercise & stretching
大 ✓ : 除了交叉以外的所有目標都完成

首先是中英文打字,約各半小時。她現在學校的功課,大部分是做 powerpoint present 和寫一些短文章,都是用 Google doc. 相信將來都是 digital 形式為主。打字速度對工作效率影響很大,所以在小學階段,我給她設定了中文每分鐘30字,英文 40 字的目標,往後是快是慢,便看她自己了。

中/英文閱讀,也是各半小時。英文書她很喜歡看,一點也不用我操心,她自己在 openlibrary.org 會找一些她喜歡的(這期喜歡看鬼故,然後不敢關門洗澡…) 但中文書我便要花點心思了,因她中文程度著實比同年的台灣小朋友差,她只有中文一課是有中文的,雖然理論上跟本地國小是同一 syllabus,但實際上她日常中文書寫應用極少,對課文的理解是非常有限的,特別是四字詞。然而 Belle 的性格是:有成功感的便很樂意去做,沒有成功感的便怎樣也推不動(人之常情吧~),所以會進入一個惡性循環,非常不喜歡看中文書。我暫時的解決方法是幫她找一些大約是二年級程度的、有注音的、和有很多公仔的童書給她看,希望能保持她對中文閱讀的興趣。 

對於注音系統,當然有其好處也有其壞處,但我覺得整體來說是利多於弊的。以 belle 為例,她的中文程度本來已經不太好,如果她看一本書,連讀也讀不出來,她的成功感便非常低,要她從中發掘趣味,繼而自發地閱讀的機率變更低了… 另外,當她遇到一些不懂的詞語/四字成語,雖然她看完全書以後還是不太理解的,但那個詞語的發音已經落入她的腦海中,到將來她再遇到這個詞語的時候,能夠掌握和理解的機率便相對提高了。 

之後是數學,這是她最最弱的一環,她非常討厭邏輯運算,其實我也沒有要求她在數理上有什麼突出的表現,只希望她在一般日常的數學應用能夠輕鬆掌握。我試過買一些基本四則運算的練習給她,她有很乖的去做,但完全是水過鴨背不能入腦的,做的時候教她她懂,之後遇到同類型問題的時候她完全用不出來…  所以之後我便買一些應用題練習,即是文字和故事為主的練習,要她從中理解並做出一些簡單的運算,這樣好一些,起碼她真的會一點了。記得一次在超級市場買牛奶,同一牌子,一個是一公升裝,另一個是六包紙盒裝,她竟然能夠算出哪一個比較便宜,我真是超級高興喜出望外!!其實我對她的期望是什麼呢?如果有一日她能夠很清晰地解釋給我聽,買十送一便宜,還是九折便宜一些,她便畢業了!往後是否繼續研習數理邏輯,純看她的興趣。 

其餘是一些生活細節,她是超級不喜歡喝水的(好像我小時候也是 … 😜)所以我要她一天喝兩瓶 600ml 的水,她基本上都做得到。另外便是拉筋和做運動,這對她來說是小菜一碟,但為什麼有這一項呢?因近來台灣很大雨,我們根本沒辦法外出攀石,疫情關係連 boulder 場也不能去,在家中每天就是吃… 她的肚腩越來越大了,而她自詡是一個 climber,保持 core 和瘦是很重要的,所以便教她每天都做一點 core 和拉筋,本質上她很樂意,但人總是有惰性,這些 ✓ 能記錄進度以外,還能加一點成功感,更可以給我一些機會去讚她「叻女」,為她增加動力之餘又能促進親子關係,一舉數得😁

而她最多交叉的一項便是零食,她超愛吃零食和甜點(我也是)但她又知道對 climber 來說,瘦是相當大的優勢。所以如果有一天她完全沒有吃零食,她便給自己一個 ✓  其實是否做到我覺得還是其次,她有成爲 climber 的心,並自己定下目標一步一步前進,己經是一件很熱血的事情 💪 

上面都是一些培養良好習慣的措施,最後一項是破除壞習慣的。她是超級電視精,極度喜歡看 youtube 和 netflix,所謂三歲定八十,她小時第一句會說的句子便是 “i want iPad” 如果不限制她,她是可以由朝看到晚的。其實我本身也不太抗拒她看 netflix 的兒童台,畢竟內容尚算 ok 而且對她的英文也有幫助。可是這對身體,特別是眼睛便不太好了,最大問題是她有一點妥瑞症… 之前我已經帶她去看兒童神經科檢查過,幸好她是輕症,在西醫的角度不需要用藥。之後我帶她看中醫,吃了兩個月中藥是有改善的。但明顯地當 screen time 一長她眨眼的頻率便會增加,而且是左眼不是兩隻眼,這是妥瑞症復發的先兆,所以我限制她一天的 screen time 不能超過兩小時。之前疫情關係 online 上課,上課已經看著電腦 4、5 小時,其實是很傷的。所以除了限制她的 screen time 我還買了 e-ink 的平板(又有借口買玩具了… kakaka),現在她看中英文圖書的時候都是用 e-ink,效果明顯比 iPad 好,就算睡前看書也不會影響她的睡眠質素。

上面看似很多東西,但其實每天加起來只不過是大約三個小時,其餘的時間做什麼呢?當然是她最喜歡的 rainbow loom 和其他手作仔。最近她還用 rainbow loom 的技術應用到毛冷上面,做一些毛冷公仔,我覺得很可愛。大家有興趣可以去他的 channel 看一下。

AZ 接種後感

很感恩,先不說過去一年政府把關得力,台灣國內生活基本上與平常無異。政府從 5 月疫情爆發,由因某國阻撓買不到疫苗,到日、美、立陶宛等「真友邦」捐贈數百萬疫苗並全面開打,只用了兩個月時間,無論外交的疫苗獲取,或內政的預約、施打,都算是非常高效率的!

網上登記時我揀了 AZ 和 Moderna 都没所謂,在當前的供應下,我當然知道會配到 AZ。但我支持政府的說法,不要挑三揀四,有疫苗便盡快打,這無論對自己、身邊的人和社會都是一種保護。

況且,AZ 跟其他 mRNA 廠牌的保護效果其實差不多(詳情

高雄巨蛋

我在大型接種場接種,場內的工作人員都十分認真和有禮,由登記 → 問診 → 施打,過程大約十分鐘,很順暢。打完再到看台休息十五分鐘,確認無急性過敏後便可離場。

我傍晚 6 點接種,到睡覺時都沒有不適,以爲過關。怎料到半夜3點便雙腿肌肉疼痛,開始發燒,約 38.5 度。一燒便燒了一天半,感覺就像沒有鼻水喉痛的大感冒,比想象中辛苦。

打過疫苗,內心消除了重症的憂慮,信心滿滿的,感覺很好。這一年多在疫情籠罩下的愁雲慘霧,這一針,有種「撥開雲霧見青天」的感覺~

為什麼我沒有選擇 MeWe

centralized → federated → distributed network (source: mastodon)

在這一波網絡移民潮中,我並沒有選擇 MeWe,因為:

  1. 它不是 open source,外界無從監管他網站的實際運作
  2. 它由一家私人公司擁有, 善價而沽是遲早的事公司一切都是商業決定,是否出賣你的個資只在 management 的一念之差
  3. 它是中央集權式系統,隨時可以審查/刪除你的資料,甚至封殺你account,你無權 say no

說到這裏,MeWe 基本上和 Facebook 是沒有分別的,只是它還沒有紅,沒有足夠的商業價值去做一些損害用戶的事情而已。

btw, 我們總不能因為別人有機會出賣你,就認定他會這樣做。(但看過 MeWe founder 的專訪後,直覺告訴我,如果有機會的話,他會)

所以我會從機制上,選擇一個被出賣機會較低的 social network。

  1. 它必須是 open source,雖然你不是 coder,但如果他有古惑,總有人能第一時間公開
  2. 沒有人能改動你的資料,或封殺你的 account
  3. 系統必須是分散式/去中心化的 (de-centralized system), 即無人完全擁有整個系統,任何人也可以成為系統的一部分,這跟 bitcoin 有點類似

這種開放式系統存在嗎?有的,但他們都不是很紅,而且過往主要由非主流的團體使用。(如果他們的立場是主流的,早就用主流媒體了,對吧?)

在這些開放式 social network 中,我選了 mastadon (source code here),它完全符合我上述的選擇條件,如果你想了解多點其原理,可看以下深入淺出的 intro:

這篇中文簡介

而眾多 mastodon 的 instance (即 server) 當中,我選了 g0v.social,因它的理念與我比較接近,如果你無 idea,或者你可在這裏選擇一個。

當然如果你懂一點 IT,可選擇自己開一個 server,然後把 server 加入 mastodon 的 de-centralized network,那你便擁有 full control。但這成本很高,除非你是一個團體 / 政治組織之類,否則不值得這樣做。所以我還是選擇了一個 ok 自由的 instance 來加入算了。

其實,我轉 social network,與其說是為了個資,不如說是為了內心的忿忿不平。畢竟放得上 social network 的東西,基本上就是公開給全世界的,不然便不會放上去吧~

fb / twitter 等巨頭這些日子的打壓和操弄,有目共睹,不用它們,是一種表態、一種價值的取向。

我 mastodon 的 accout 是 https://g0v.social/@kelvin,fellow 我吧~

Auto-format Svelte in VS Code

Svelte is an amazing front-end framework, which gives much better developer experience over other frameworks like Vue or React. To enjoy the super handy auto-format on save feature in VS Code, a little setup is needed at time of writing, here is how:

  1. install Svelte extension in VS Code
  2. in VS Code settings, add:
"editor.formatOnSave": true,
"[svelte]": {"editor.defaultFormatter": "svelte.svelte-vscode"}

The first line let VS Code triggers auto-format on save, and the second line tells VS Code to use the Svelte extension as the default formatter for svelte files. Reload VS Code, you should be able to auto-format .svelte files on save from now on.

Note that Svelte extension internally uses prettier-plugin-svelt for auto formatting. It has no relationship with the Prettier extension in VS Code. That means, it dis-regards the Prettier extension settings in VS Code.

So what if you want to tweak the Prettier settings, such as using single quote, removing semi colon at line end … etc? You have to add a .prettierrc file in your project root in order to configure the Prettier plugin behavoir, a sample config file as follow:

{
  "semi": false,
  "singleQuote": true,
  "arrowParens": "avoid",
  "printWidth": 120
}

Save the config and reload VS Code, custom auto-formatting on saving .svelte files is done 🎉

P.S. some old tutorials suggest installing prettier-plugin-svelt with npm in your project. You don’t have to do it now as its already included in the Svelte extension.