2022 recap - 迷惘與沉潛的一年

Jan 13, 2023

相較 2021 年而言,2022 是沈潛的一年,減速步調,探索可能性,包括以未曾使用過的學習方式學習 Rust 語言、以 TailwindCSS 創造新的設計系統、被 Larry McEnerney 一棒敲醒,開始思考自己的寫作可以為社群帶來什麼新的見解,並進而寫出認真系列的作品,並開始延展名為 Curioucity 的題目。

總結而言,我認為 2022 年是豐沛的一年,我大幅度地擴展了自己的眼界,甚至出現了許多自身思考決定性轉折的時刻。為了留下更深刻的痕跡紀念這一年,這將會是一篇寫給未來的自己的信,描述了這一年自己如何認真地活了一遍。除此之外,我也將我認為很精彩的東西置放於此,你或許也可以找到有利於你個人成長的事物。

個人成長

從 2022 年的第二季,我與我的愛人開始一系列紀錄自身成長的計畫,我們相約製作出幾個好習慣目標,並在 Notion 上共同維護一個表格來紀錄每日是否有完成這些目標,總共紀錄了 250 天,我的紀錄如下。

  • 每日學習者:學習新的事物、概念,特別是與基礎科學有關的理論
    • count 152 天(60.8%)
    • streak 24 天(9.6%)- 學習 Rust 語言
  • 每日讀者:特別是文史哲的基礎理論:
    • count 97 天(38.8%)
    • streak 10 天(4%) - 開放社會及其敵人
  • 每日運動員:特別是重量訓練:
    • count 186 天(74.4%)
    • streak 26 天(10.4%)
  • 每日寫作:特別是認真系列文章:
    • count 68 天(27.2%)
    • streak 10 天(4%) - 2018-2022 短記
  • Self motivated programmer - 無關工作得撰寫程式
    • count 157 天(62.8%)
    • streak 29 天(11.6%)- Curioucity
  • 每日使用環保餐具一次
    • count 195 天(78%)
    • streak 34 天(13.6%)
  • 16/8 進食窗口
    • count 86 天(34.4%)
    • streak 34 天(13.6%)

寫作

今年總共寫了十四篇文章,其中有五篇是認真系列的文章。認真系列的定義在於這些文章的主要讀者不是我自己(過去我總是以自身為讀者為前提思考寫作),它們同時需要預先思考這些讀者所處場域認為的價值,並且提出我對這些價值的反思與建議。

認真系列

技術分享

個人抒發

小說概念

  • 統一語言裝置:這個概念想像了一個每個人都可以製作自己獨特的語言的世界,他們透過一個「統一語言裝置」交流。好處在於人們可以以此去優化自身的生活,並屏棄過去語言對自身的限制,壞處在於,某一天統一語言裝置忽然失去作用,所有人一夕之間難以溝通,除了回到舊有的語言體系之外他們沒有其他辦法。整個系列故事發生在統一裝置失去作用後的日子,人們如何生活,以及一種獨特的職業,專門銜結過去使用統一語言裝置溝通的設備,讓他們繼續運作。

程式設計

今年總共從零開始建構了 12 個專案。

instill-ai

  • instill-ai/design-system:一個以 TailwindCSS utiltiy class 為主架構的設計系統,它採取了雙層元件(exported & base components)以及 one style one prop 設計,兼顧彈性與易維護性。
  • instill-ai/console:以 Nextjs 為主體,react-query 為 server data cache 建構出來的 SaaS 介面,dockernize 且輸出 standalone server,可攜帶性強。
  • instill-ai/product-website reboot:instill-ai 的第二版官方網站,從深色模式轉入淺色模式,互動性與動畫強化。
  • instill-ai/docs, tutorial, blog revamp:將 instill-ai 原本四散各方的 Document, Tutorial 和 Blog 收束回 product-website 以同一個 repo 以及相同的架構管理。
  • instill-ai/design-token:可以從 Figma 匯出設計系統的規範並且轉換成 TailwindCSS 可以使用的 design-token

Personal project

  • 2022-02 EiffelFly/post-to-ghost (archived): This github action will post content to Ghost instance once target folder have modified post
  • 2022-03 EiffelFly/keycap (archived): Keycap is a component library for you to handle keyboard event, more specificaly, Keybinds.
  • 2022-03 EiffelFly/huyu (archived): Huyu is my personal apporach toward virtual dom based framework
  • 2022-06 EiffelFly/markdown-indexed-block: This lib will annotate every block in the markdown file with site wise unique identifier and generate HTML accroding to the new markdown.
  • 2022-09 EiffelFly/mdshield: Guard your markdown/mdx file’s frontmatter/meta with vscode extension and in-project pre-build script.
  • 2022-09 EiffelFly/poe-lake-of-kalandra-reading-list: Path of Exile 3.19 - Lake of Kalandra is a tough league for both players and the Grinding Gear Games. But I think no matter what the direction of this game goes, these issues had inspired lots of good discussion around lots of stuff and we need to document it down before it gets flooded by other content.
  • 2022-10 ~ EiffelFly/Curioucity: Rust based knowledge management tool built for community and its builder.

Mind frame

愛默生與創造性的行為

這是我於年初時聆聽 PhilosophizeThis - Ralph Waldo Emerson - Self reliance/Nature and other thing得知到的內容。其中讓我受益最多之處在於愛默生對當前「追求人類團結、和平」的方法論的批判,他指出人類目前普遍依靠的方法論為「找到一個敘述,並且讓不同的敘述去辯論,最後沈澱出最強的敘述。」他認為這不會帶來團結,因為它的來源既表彰了其結果,一個越來越混亂的世界。他指出我們應該要回到人類的原點,回到自然(愛默生的自然非常廣義,包括不是自我的所有事物,舉例來說,藝術對愛默生而言也是自然。)

他最後總結如果我們想要讓人類團結的話,我們的教育應該要包含三者:Nature、Book、Action。而我們所學的都應該為創造性的行動服務。

我認為愛默生的批判讓我對當前社會的紛爭有了新的觀點,他甚至提供了第一原則來思考這類事物(各種敘述辯論、沈澱出的結果並不一定就是最佳解),雖然我對於他的解決辦法的跳躍性略有困惑,但整體而言,這部分的理念依然推進了我思考的厚度。

程式與圖像的關係

這是在與我的好友敬智討論程式時由他提出來,我受益良多的概念。

放在一起的程式碼,邏輯的層次不要差太多。這很類似於漫畫/動畫人物常常沒有畫清楚鼻子,或是一兩筆帶過一樣。因為漫畫的畫風常常是現實物體的簡化的模樣,此時如果鼻子、人中等臉部細節過於著重,人物的臉會顯得奇怪。

我覺得圖其實還是人腦/人眼最直覺的接收訊息的方式,所以盡可能把一塊程式碼當作一張圖畫去看待。而不是一段文字,縮排、空格、大小寫等等,其實都會影響人眼解析程式碼的流暢度,進而影響可讀性。比如好幾行一樣結構的賦值語句,有可能因為變數名稱長度相差很多,導致不整齊等等

那時我和他正在討論如何去陳列程式碼,不僅是把程式碼當作功能性的文字來看待,更需要兼顧易讀性與易維護性。他突然提到這個他近期頻繁思索的概念,「如果用漫畫來思考不就非常清楚嗎?」我能感受螢幕後的他正在笑著。

Pinball without score

這個概念指出 UI 不能沒有數據,他可以代表日記、進度、任何一種你希望你的顧客感受到的事物,它觸發多巴氨,帶來充沛的感受,沒有它,將難以維持產品的吸引力。

這個思考方式成為了我設計、發想產品時的主軸。

Human not exist to be happy

There is only one inborn error, and that is the notion that we exist in order to be happy. So long as we persist in this inborn error…the world will seem to us full of contradictions. For at every step, in great things and small, we are bound to experience that the world and life are certainly not arranged for the purpose of being happy. That’s why the faces of almost all elderly people are deeply etched with such disappointment.

  • Arthur Schopenhauer

我發現這個哲學觀和我生活的方式很接近,我鮮少刻意執行單純尋找快樂的事物。我發現我的快樂大多來自於持續性、手感的事物,例如寫作寫久以後某一天忽然發現自己的文字開始產生「語氣」那類的結晶,寫程式越來越能直覺反應某件事該怎麼處理。這種傾向強烈到甚至可以說我是追求「手感」,手感這件事等同於我的快樂。

然而這樣的想法卻又有其狹隘之處,說到底我對快樂也具有依賴性,只不過依賴的角度和常人不同。不過也就是這類水平線夾臂的角度有著些許的變異,使得我可以非常自然地理解叔本華這套批判。以更表面的角度來說的話就是,我在成長的過程中發現你只要追求某個不像是快樂的東西,你可以獲得作為副產品的快樂,同時這種快樂對我而言更加持久。

我認為第一次看到這種理論的人可以先咀嚼一下「inborn error」,我認為這是很重的一個字,從這種沈重感出發,可以更容易進入叔本華的世界。

The ethics of care

我於 PhilosophizeThis - Introduction to an Ethics of Care 得知這個概念,Carol Gilligan 從她老師 Lawrence Kohlberg 的 moral stage development 的批判出發,延伸出這些研究對女性道德面發展的欠缺與狹隘理解,推導出人們廣泛運用「Justice」的標的來評斷道德,卻疏忽了「Care」為主體的道德。

這個哲學觀使我對於道德的理解更深厚了一層,也讓我在評估事物時有了更寬闊的視野。

可被證偽性

2022 年中開始閱讀卡爾波普的《開放社會及其敵人》1,在延伸的註腳及其他的閱讀材料中理解到他所說的「可被證偽性」,而可被證偽性則為一個科學實驗或是假說的重要前提。換句話說,科學的每個行動都在找到可以被證偽的事物,然後推動整體前進。

這點讓我重新理解到科學的價值及其獨特之處,並開始將這種概念應用到生活之中,我發現這件事意外地吻合我的生活觀:所有的嘗試都具備其證偽的可能性而預先存在價值。

2022 年的失落與斬獲

寫作

2022 年年初看了 Larry McEnerney - The Craft of Writing Effectively 深受打擊與鼓舞,他讓我重新理解到我寫作的局限,過去寫作時我都太在意自己的思考脈絡,每一筆都在想著如何讓這些脈絡順暢地流進文字間。其結果是我和讀者的意念正交,縱使閱讀我的作品或多或少能獲得什麼,那也被複雜的思緒、沒有整理好的段落以及不連貫的閱讀體驗所打斷。

Larry 提到兩個結構,一個他稱為樂觀疊加主義,這種族群認為知識是累加的,過去的知識不會移動,唯有不斷找到新的知識才能推動群體前進。另外一種結構則與社群有關,所謂「知識」以及對知識的判斷長期被社群所掌握,這群人會移動,其知識的界線也會變化。Larry 認為後者才是現況,一群「我說的算」的人掌握了知識的疆界與定義,但這不是種邪惡,也不是他想要批判的景況。他想要指出的是,任何一個有野心的作者為了推動整個世界前進,他所要做的不是樂觀地把自身的知識疊加上來,而是找到當前社群錯認的事物,或是不夠優化的知識,進而推動社群移動。

這個概念大幅度影響我撰寫文章的方式,我越來越少寫描述自身體驗與思緒的文章,而把時間挪移到我稱為「認真系列」的文章們,講述我認為當前社會欠缺的事物,以及背後的解決方法。

這個變化套用我之前常用的比喻是,我越來越能在每個主題中找到搭建火車月台的方式,而列車停車時列車門與月台門之間的誤差也越來越小 2。以 Larry 的說法而言則是,你越來越知道每個社群在討論價值時使用的 code,並能更有效率地傳遞價值。

創業

2022 年完成了許多事物,看似穩定地創造背後卻只是最終兩三個月帶來的錯覺。美其名為探索,但是深究其底可以發現的是我始終處於某種程度的焦躁之中,頻頻詢問自己未來究竟要投入哪個產品,我心中有什麼點子是既可以結合我所學所專精,同時具備商業價值可供萃取?

那無疑是非常煎熬的半年,我跟好友頻頻聊起對當前前端框架的失望,於是起心動念想要做出自己的框架,以 React 為基底我倆開始研究如何從零打造一個 Virtual Dom Framework,卻只持續不到一個月就告終,隨後我重新返回到自身熟悉的場域,「對廣泛資訊的統整」,諸如生產力工具或是文件陳列工具的的範疇,重新思考這個場域目前欠缺的是什麼?

在過程中,我首先把重點放在目前 SaaS 的文件上,我認為當前這類軟體的說明文件都過於複雜,且不夠有彈性,以這些想法為基礎我寫出了 Why is the documentation of tech products so hard to use? (In the user’s point of view) 的文章,它成為了我眾多思考的起點。

在撰寫這篇文章的過程我同時查閱眾多過去曾被做過的題目,以及現行的競品,付費如 GitBook,開源如 Docusaurus,以及種種如 Payload, Ghost, Strapi 等 CMS 服務。我忽然發現他們的追求都集中在單向的管理,例如一間公司管理他們的文件等內容。如果把這件事放進社群裡面時,它會難以成立,因為社群不只需要單向的維護(例如 Reddit 的 MOD 文化)更需要雙向的貢獻,換句話說,當前沒有軟體是專供社群維護他們的知識。

於是 Curioucity 3 的構想慢慢成形,一個 API 優先,提供社群雙向維護的開源知識平台。它的任務在於創造出一個系統,讓人們探索有別於條列式等傳統的資訊陳列方式。

Invent on Principle

Bret Victor 在這個影片4中解釋了與以「技能為定錨」不同的生命走向,他提出「以原則為定錨」的生活方式。例如 Bret 自身的「The creator need to see immediately what they are creating. Be able to try ideas as you think of them.」以及 Larry Tesler 的「Don’t mode me in」。他們以這些原則去思考這個世界上還有哪裡可以強化,可以讓人們過得夠好,Bret 後來開創了 Dynamicland 5, Larry 創造出了我們目前習以為常的打字介面。

這些都對他們以及隨後的世代產生了巨大的影響。Bret 的這個理念也對我產生的巨大的影響,我開始思考對我而言,我的原則究竟是什麼。

每月新體驗

這是今年年初與愛人開始的互動,我們交互決定那個月要體驗什麼新的體驗,這個體驗的限制是全域有效的,也就是說如果上個月我們決定以吃某間餐廳作為新的體驗,「去某間餐廳吃飯」這件事就再也無法成為下個月的新體驗。

乍看之下新體驗這個企劃很容易遇到想不到做什麼的瓶頸,然而實際執行後發現,生活中有很多可以嘗試的事物,它們被隱藏在日常生活的平凡之中,舉例來說,煮飯是一件稀鬆平常的事,但是與愛人各自煮兩道菜一起分享就可以成為一個月的新體驗。

因為這個新的互動,我們探詢了許多過去未曾想見的經驗,「體驗」這個字眼也在我們的生活中生根,甚至連金錢的花費也慢慢趨向於購買體驗而不是購買物件。最重要的是,由於每個月都需要思考一個新的內容,我們有了更多的話題、方向與回憶的方式。這無疑是我 2022 年做得最有價值的決定,也謝謝愛人毫無質疑地投入、相伴。

2023 展望

2023 年對我而言將會是更沉潛的一年,深耕自身程式與寫作的能力,打磨 Curiouticy 的功能以及方向,提升身體質量,細火慢焙與愛人的關係。我列下了幾個目標。

Curioucity

  • 完成 Curioucity 核心功能:Slack, Discord Bot & API Endpoint with backend
  • 成長 Curioucity 星星數到 1000

寫作

  • 養成每日寫作的習慣
  • 撰寫更多認真系列文章,今年的重點將放在需要廣泛研究的命題上,它們不能只是我的思緒,更應該放入需要投入大量時間的研究工作。
  • 撰寫更多技術性的文章,尤其是深入某個主題,好好解決人們問題的文章(例如之前所寫的 Playwright tips)
  • 持續發展統一語言裝置的世界

身體質量

  • 養成固定運動的習慣
  • 規劃適合自己的重訓課表
  • 持續獲得營養學的知識
  • 將體脂肪減為 15% 以下
  • 持續維持 16/8 進食窗口

程式設計

  • 學習艱難的知識,尤其與基礎電腦科學有關
  • 深耕 Rust 語言,放大這部分的能力
  • 將自己培養成全端工程師,能力不受限於任何一方
  • 利用 instill 的經驗學習 Devops

我衷心感謝每一個在我生命中出現的人事物,因此明年還有一個重要項目是成為其他人生命中值得感謝的事物,我會開始提供程式、寫作業師的機會,如果對這兩件事有興趣的話,歡迎寄信和我討論。

email: summerbud.chiu@gmail.com

致謝

謝謝晏如閱讀這篇文章的初稿。

Footnotes

  1. Karl Popper’s The Open Society and Its Enemies https://en.wikipedia.org/wiki/The_Open_Society_and_Its_Enemies

  2. 關於火車月台的比喻我寫於 關於創作、撰寫程式與火車月台

  3. Curioucity 為開源軟體 EiffelFly/curioucity

  4. Bret Victor - Inventing on Principle

  5. Our mission is to incubate a humane dynamic medium whose full power is accessible to all people. dynamicland

bud

archive