重構英文:第 3 個月
一句話總結
我第一次在 Kickstarter 上募資
重點整理
- 我啟動了我的第一個 Kickstarter 專案,發現 Kickstarter 出乎意料地簡單順暢。
- 目前大致朝著達成 Kickstarter 目標前進,但要募到最後三分之二還得想些創意方法。
- 我正在徵求建議,想在我的 4x ARM CPU/24 GB 雲端伺服器上跑一些有趣的服務。
目標成績
每個月月初,我都會宣布當月想完成的事。以下是本月目標的達成情況:
完成 Refactoring English(《重構英文》)的部落格寫作章節
- 成果:我決定改為專注於commit message 章節,並準時完成了。
- 成績:A
在撰寫部落格章節到一半時,我想到可以改寫 commit 訊息,這會是很適合分享到 Hacker News、/r/programming 和 Lobsters 這類開發者導向社群的好章節。
可惜這篇文章在 Hacker News 上反應冷淡,在 /r/programming 和 Lobsters 上也沒什麼迴響,雖然令人失望,但我也料到有可能發生。
開始為《重構英文》進行預購銷售
- 成果:在 Kickstarter 上開始預購
- 成績:A
Kickstarter:出乎意料的順利
我決定在Kickstarter 上為《重構英文》進行預購。這是我第一次使用 Kickstarter,本來已經做好會是一場痛苦經驗的心理準備。
我對這類「創作者平台」的典型經驗是,它們往往不是幫助我的專案,而是透過各種加價推銷來賺我的錢。
很開心可以報告,我在 Kickstarter 上啟動第一個專案的過程出乎意料地輕鬆。他們完全沒有要求我付任何費用。他們在誘因設計上做得很好,靠協助專案募資來賺錢,而不是透過加價推銷來壓榨創作者。
總體來說,我在 Kickstarter 上花了六到八小時填寫文件、驗證銀行資訊,以及製作對外公開的文字、影片和圖片。
我喜歡 Kickstarter 這個模式用在這個專案上。如果是一般的預購,當我做到三個月後發現客戶不夠時,就會陷入尷尬的處境——即使已經投入三個月的心力,還是得把錢全退給大家。我很欣賞 Kickstarter 明確告知贊助者,他們付錢支持的是一趟旅程。創作者應該盡力交付成果,但贊助者也接受事情可能不如預期的可能性。
我也喜歡可以設定目標、採取全有或全無的模式。我把目標設為 5,000 美元,因為我覺得這既有挑戰性又可達成,而且如果達標,出版後還有希望再賺 10,000 到 20,000 美元。如果沒達標而一無所獲,我會失望,但也能從中得到一個明確的「否」作為回應。
唯一的缺點就是 Kickstarter 上的垃圾訊息……
Kickstarter 唯一的缺點就是垃圾訊息。一大堆垃圾訊息發送者一定都在盯著 Kickstarter,因為我每天會收到大約三封電子郵件,用各種可疑的手法說要幫我的募資成功。他們一開始會假裝(而且假得很拙劣)成感興趣的顧客,然後把話題轉向他們那個我應該付費請來的朋友。

垃圾訊息發送者一開始會傳來看似無害、假裝對你的產品感興趣的訊息。

……然後把話題轉向他們那位提供付費 Kickstarter 宣傳服務的「朋友」。
募資進度:目前情況
截至今天,我的 Kickstarter 專案已獲得 1,585 美元的承諾贊助,達成目標的 31%。

在我的 Kickstarter 專案募資期間已過 24% 時,我已達成營收目標的 31%。
我在週五啟動專案,募資到月底結束,所以現在是募資期第 6 天,共 25 天(已完成 24%)。
在僅過 24% 的時間就達成 31% 的目標,聽起來不錯,但問題是我已經打出最好的牌了。我已經向本書的電子報名單、社群媒體,以及部落格底部的自製小廣告宣傳了 Kickstarter。
那麼,我還能做什麼?
我想到還有兩張牌可以打。
第一張是登上 Hacker News 首頁。這通常很難做到,但我號稱是這方面的專家。我有信心至少能成功一次,希望在月底前能成功兩到三次。我有幾個貼文點子,基本上就像是「觸擊短打」。它們不會是衝上第一名的全壘打貼文,但我大概花五小時就能寫完,並落在 Hacker News 排名第 10 到 20 名左右。
我的第二個想法是聯繫那些大力投資公開寫作的公司,看看他們是否有興趣贊助這個專案。我從沒看過有企業贊助的書,所以這或許是個爛主意,但感覺有可能行得通。
閒暇專案:我的興趣用雲端伺服器該跑什麼?
我最近免費取得了一台4x ARM CPU/24 GB RAM 的 Oracle Cloud 伺服器。問題是,這台效能相當不錯的伺服器有約 99% 的時間都閒置著:

我可憐的伺服器無聊透了。
目前我已經安裝了:
- Woodpecker CI,對於我在 Codeberg 上託管的專案很有幫助,因為目前還沒有商業 CI 支援 Codeberg
- Snowflake proxy,幫助人們突破網路審查
我正在徵求可以在伺服器上跑的有趣服務建議。我的條件是:
- 我希望它是那種有空時玩起來有趣,但不會變成必須投入時間的義務的服務。
- 我不想花時間管理論壇或聊天室之類的東西。
- 它可以是支持我認同理念的 volunteer computing(志願運算) 專案。
- 我本來想跑ArchiveTeam Warrior 來為 Internet Archive 備份網站,但他們不支援 ARM 架構。
- 對於志願運算的機會,我希望對操作者來說是有趣的,就像以前把運算資源捐給 SETI@home,看著它運行本身就很有趣那樣。
- 我希望它是開源的。
- 即使 Oracle 把我的伺服器收回,也不會對任何人造成影響。
- 也就是說,我不希望有人因為把資料存在我的伺服器上而遺失資料。
- 我不想挖加密貨幣。
endlessh-go 就是符合我需求的好例子,我打算加上它。
如果你對我的伺服器該跑什麼有趣的專案有建議,歡迎在留言區告訴我或直接寫信給我。
值得一看的連結
- 「撰寫 commit 訊息」,作者 Simon Tatham(西蒙·塔瑟姆)
- 在撰寫我的文章之前,我讀了很多關於 commit 訊息寫法的部落格文章,我覺得這篇是最好的。
- 更精確地說,其他文章都很糟,只有西蒙·塔瑟姆的這篇是好的。
- 其他文章都聚焦在不重要的風格細節(例如「標題必須用祈使語氣」),或是不加解釋地發號施令。
- 從網址和網站設計來看,我原本以為作者是個大學生,很驚訝他對 commit 訊息有如此深刻的見解。深入研究後,我才發現作者是 PuTTY SSH 客戶端的創作者,而且只是喜歡把所有東西都託管在朋友的伺服器上。
- 在撰寫我的文章之前,我讀了很多關於 commit 訊息寫法的部落格文章,我覺得這篇是最好的。
- 「不用指標來寫程式」,作者 Andrew Kelley(安德魯·凱利)
- Zig 創辦人安德魯·凱利表示,他透過創造一種名為 programming without pointers(不用指標來寫程式) 的風格,突破了程式設計能力的瓶頸。
- 凱利的風格是用單一的 struct 來表示應用程式的狀態,該 struct 包含應用程式所需的各種資料型別,但這些型別本身不能包含指標。最上層的 struct 可以包含陣列或 hashmap,但它們儲存的物件不能有指標。
- 他的 groovebasin 專案就是一個例子。
- 他以儲存字串為例。你不能儲存字串陣列,因為那會是指向指標的指標。相反地,他建立了一個自訂結構,將所有字串彙整到單一陣列中,然後維護一個指向該陣列的索引清單。
- 這種技巧的優點:
- 序列化和反序列化狀態變得極為簡單。序列化只需將 struct 的位元組傾印到檔案或網路插座;反序列化只需讀取整個檔案並映射回原始的 struct。
- 很容易在不同環境間共享狀態(例如 Zig 後端與 WASM 前端)。
- 記憶體管理也變得更簡單,因為你可以針對最上層 struct 的每個欄位釋放記憶體。你永遠不需要遍歷清單或走訪樹狀結構來釋放子物件的記憶體。
- 我覺得這項技巧令人驚訝,因為這些索引感覺上本質就是沒有編譯器支援的指標。如果這是隨便一個人提出的,我會不予理會,但因為我認為安德魯·凱利很聰明,所以我想試試看。
- 「復活舊款 Kindle Paperwhite 第 7 代」,作者 Hemant Kumar(赫曼特·庫馬)
- 我非常想在 eBay 上花 30 美元買一台舊電子閱讀器來做自己的儀表板,但還沒想到要顯示什麼內容。
- 「如果你曾在體育課上疊過杯子,怪我爸就對了」,作者 Kit Fox(基特·福克斯)
- 有天半夜兩點醒來後睡不著,我花了大約兩個小時讀這篇文章並觀看疊杯影片。
總結
完成了什麼?
- 在Kickstarter 上為《重構英文》啟動預購
- 發表了「如何撰寫實用的 Commit 訊息」
- 發表了〈我的 Zig VS Code 設定〉並建立了一個Zig dev flake
- 發表了我對 Never Pay The First Bill(《別急著付第一張帳單》) 的閱讀筆記
經驗教訓
- 在 Kickstarter 上募資出乎意料地輕鬆。
下個月的目標
- 為《重構英文》達成 5,000 美元的 Kickstarter 目標。
- 發表《重構英文》的部落格寫作章節。
- 在三月底前兩度登上 Hacker News 首頁。
徵求協助
- 如果你對我的 Kickstarter 專案有建議,而且你不是垃圾機器人,歡迎寫信給我。
隨機一篇部落格