Weekly Issue 第 12 期:Bear 修改授權條款

通常開源專案需要面對長期維護的問題,而長期維護需要人力(開發者)物力(伺服器與基礎建設),個人開發者來說是個負擔。有些專案會有企業贊助,有些專案則是替用戶提供顧問與服務來收費維持。

這期選了 Bear 修改授權的新聞,也因為這則新聞,順道看了 Sentry 的授權模式。我們都希望擁有健康的開發生態,而授權條款很大程度左右了這點。


🗞️ 熱門新聞

Bear changes license to Elastic License

Blog 平台工具 Bear 修改授權,原本是 MIT,現在改用 Elastic License。

看開發者的說法,原因是有人搭便車,fork 完直接部署成服務賣錢。開源不是免費勞工,這樣確實有點過分。Elastic License 的差別是不准以託管方式提供服務,算是補上這個洞。

相對 AGPL 來講,有時這種個人開發的小型專案,也不追求產業影響力,直接用 EL 省事多了。拿人家的成果去賣錢真的說不過去。

Introducing the Functional Source License: Freedom without Free-riding

看了 Sentry 說明他們如何選擇授權,很有啟發。

開源授權最麻煩的,是如何解決搭便車問題。有些對專案沒有貢獻的人,直接拿你的專案去賺錢,這會讓開發者不願意開源,破壞開源的可持續性。Sentry 的 FSL 是兩年內不得用於競爭用途,兩年後會自動轉換成 Apache 或 MIT。

意思是 Sentry 同意你拿專案去賺錢,但要等兩年,給開發者留下合理的經濟空間。

Linux Foundation Welcomes DocumentDB to Advance Open, Developer-First NoSQL Innovation

DocumentDB 在今年稍早開源,現在進入 Linux 基金會,還有 AWS 的 DocumentDB 總監幫忙背書。

沒想到底層也是 PostgreSQL,雖然這個 DocumentDB 跟 AWS 的(應該)是不同東西,但前幾年 HN 上也是有人在猜 AWS 是不是用 PostgreSQL 當底,加上 AWS 也有貢獻該專案,也許還是有點關係?

是說我也曾經想把 mongodb 轉到 AWS DocumentDB 上呀。


✨ 科技觀點

Death by a thousand Substacks

beehiiv 的 CEO 發了篇長文〈Substack 式的凌遲〉,副標題是核心概念:「如果你不是負責賺錢的,那你就是酵母。」

本質上是批評 Substack 的商業模式,認為它們不具可持續性。Substack 多數收入都來自頭部創作者,因為他們是收抽成,這無異於逼頭部創作者跟平台談判--如果不能拿到降低抽成,至少也拿個專人服務(我曾跟朋友開玩笑:這是唯恐別人不來跟你吵架);與此同時,對營收沒有貢獻的長尾內容,意義在於強化品牌形象。

裡面的一些舉例有打到我,我在用他們家的產品確實會有點卡卡的,特別是 UX 與自主性,當時我解釋成「工程能力不到位」與「可能沒那麼優先」,但是拉高視角,問題會變成「那什麼是優先的事情呢?」

我對 Substack 的定位還是一個階段(跟 Medium 類似),當剛起步,需要驗證你的模式是否可行,Substack 是個好選擇,可是最好設個門檻,等營收達到後就要規劃下一步。

Thoughts on (Amazonian) Leadership

AWS 是少數我見過非常在意 Leadership Principles 的公司。

有時候我不確定,這些原則會被如何解釋。相對有把握的是,應該跟作者講的不同。

例如 Kiro,我覺得是個很有趣的產品,可是它不算是基礎元件,從基礎元件的角度來解釋「顧客至上」,聽起來跟其他公司的「顧客至上」也沒太大差別了--當你要跟人吵架時,就說是因為顧客至上。

我猜他們的顧客至上還是比較偏電商文化?

Are people's bosses really making them use AI?

在 HN 看到一則「強迫導入」AI 的經驗分享。

儘管看起來都是個案,但也可以從個案中看到一些共同的,該說焦慮嗎?例如為什麼全公司要用同一個 ChatGPT 帳號呢?買個 Cursor 或直接用 GitHub Copilot 不好嗎?或者用資遣來推行 AI,可是公司有沒有跟 AI 顧問合作,讓導入更順利呢?

不知道。我可以理解焦慮,但把人丟到水裡,人還是不會游泳呀,組織變革也不是喊喊口號就能辦到的事。

我最喜欢的悖论

看到一則「辛普森悖論」:在分組數據中出現的趨勢,可能在合併後消失,甚至反轉。

意思是,同樣的東西,分開來看跟合起來看,會得到不同的結論。原文舉了幾個很有說服力的例子。例如 Youtube 的效能優化後,延遲時間反而增加。

看完後在想有沒有遇過類似的情境?要說的話,也是有 CDN 的 Hit Rate 拉高,但 Latency 反而變高的情況。當時的狀況是流量大增,雖然 Hit Rate 變高了,可是沒命中的流量反而變多,造成伺服器的壓力增加。這種問題真的麻煩,單純看指標不容易監測到。

Do the simplest thing that could possibly work

簡單是我很重要的一套工程原則,我對工藝的要求就是它需要簡單。

「就像許多技能一樣,真正的精通往往在於學會何時該少做,而不是多做。 」

舉個我的錯誤判斷,曾經有項任務是設計一套用戶幫助文件,我不贊成開發後端系統(這是對的),認為用個 Headless CMS 來管理,加上個自己開發的前端配上搜尋 API 應該夠用。我一直認為這是對的,直到前陣子看了 Anthropic 的方案,他們是用 Intercom。

Anthropic 的工程師不會設計系統嗎?當然不是,是因為維護 Intercom 要簡單得多,它也好用得多。但買一套方案就會讓人覺得不夠工程。

Great software design looks underwhelming

看到這段頗有感:「他說他不會讓這個候選人進入面試。在他看來,這份作業沒有展現出對各種高階語言特性的足夠理解。它太簡單了。 」

團隊在設計招募流程時,也在想是不是要找「更懂語言」的人選。以 Go 來說是問三色標示法或迭代器特性這類問題。只是那對我來說太奇怪了,有深度是一回事,熟悉很偏門的領域又是另一回事。

優秀的軟體設計應該要看起來簡單,產品設計也是。

You're Not Interviewing for the Job. You're Auditioning for the Job Title

最近在看分散式系統設計,跟朋友也聊到類似話題。

「接著,你在白板上畫滿方框、箭頭,以及至少一個多餘的 Kubernetes 叢集。無論是否需要,都加上一個訊息佇列——當然是 Kafka。 」

當時跟朋友講說,雖然我們花很多時間看 Kafka,但如果是自己的 Side Project,我只會用 Go channel 來達成類似的效果。畢竟我不用 Durable、不用處理分散式交易,我只是要開發個小工具讓我平常生活方便一點而已。


📌 工程實務

Building resilient multi-tenant systems with Amazon SQS fair queues

AWS 前陣子推出 fair queues,可以用來解決 SQS 的優先序問題。

這篇介紹寫得不錯,當某些生產者製造太多 message,會影響到同個 queue 的其他任務。通常為了解決這問題,需要替每個生產者配置一個 queue,但這樣會造成配置變得很複雜。

AWS 還有對應的指標跟 Dashboard,以後基礎建設的過渡可以更平滑了。先開 queue,再 fair queue,不行再多開新的 queue。

改天來想想其他 MQ 怎麼解同樣問題。

Everything I know about good API design

Goedecke 談他心中的優秀 API。

看完後的念頭是:「面試好像可以多問一題:你要怎麼設計 API 來防止別人惡意刷留言。」但想想現在到處是 AI,也不確定能擋到什麼程度。

以前學到一課,最好把開放 API 當成產品來看待,那跟直接給出 Internal API 是兩回事。從一家公司的 API 設計,大概也能看出他們的工程實踐到什麼程度。

當然這不代表他們的產品是成功的。反之亦然。

Permission Marketing

賽斯.高汀談「許可式行銷 」,看完有恍然大悟的感覺:

「僅僅因為我沒有抱怨,也不代表你獲得了許可。就算在你的隱私政策細則中寫明,同樣不代表那就是許可。」

以前常困惑產品行銷的界線在哪,什麼是合理的,能幫助產品成長的訊息,什麼是純粹自我感覺良好,在打擾使用者的訊息。這個原則很清楚了:只有通過明確許可的行銷訊息才是合理的(附帶個檢查方式:哪些 SaaS 會在沒有明確同意的情況下,替你打勾)。

用電子報來看的話,就是需要有 Double Opt-in 吧。

Read more

Weekly Issue 第 11 期:AI 代理人插件可能存在資安風險

Preplexity 跟 Anthropic 等公司開始讓瀏覽器 AI 代理化,資安領域專家 Simon Willison 指出這可能會導致眾多資安漏洞出現。我建議兩邊的意見都可以看看,Anthropic 為了防堵問題,也下過不少功夫,看完後你會比較知道該如何使用 AI 代理。 另外這期特別喜歡 Mike Sun 談台灣的產品經理遇到的挑戰,我現在不太建議新人直接在台灣當產品經理,舞台太小,成長空間有限,會影響日後發展。如果真的對產品很有興趣,可以先到其他地方建立起正確的產品觀後,再回到台灣發展。 🗞️ 熱門新聞 Piloting Claude for Chrome Anthropic 最近推出 Chrome 用的 Claude 插件,但是依照說明文件:「當我們在自主模式中加入安全防護機制後,成功將 23.6%的攻擊成功率降低至 11.2%。」 儘管 Anthropic 特地專文說明它們的防護措施,

By Ken Chen

Weekly Issue 第 10 期:AI 機器人正造成網站負擔

隨著 LLM 變成日常的一部分,它們也在改變原有的網路生態。Fastly 的報告顯示,AI 機器人每分鐘可對網站發起高達 39K 次請求,日後造訪網站的,可能大多是機器人,而不是真人。 🗞️ 熱門新聞 Fastly warns AI bots can hit sites 39K times per minute 繼上次 Codeberg 的新聞後,Fastly 出報告指出 AI 機器人正造成網站營運負擔。 大多觀點延續幾個月來的趨勢:「網站負載增長主要並非來自人類訪客,而是代表聊天機器人公司運作的自動爬蟲與抓取程式。 」值得注意的是,AI Fetcher 的數量也在增加中,我猜這多少暗示了用戶搜尋資料的行為正在變化。 Meta 占了所有 AI 流量的 52% 🙄 ,相對下 Anthropic 只佔 3.76%

By Ken Chen

Weekly Issue 第 9 期:Ghost 發布 6.0 版本

Ghost Release 新版了!距離上次大版號更新,已經過了 3 年多,這幾年來,創作者經濟變化得很快,Ghost 也嘗試讓創作者更容易經營自己的內容。 我會等 6.0 發布一陣子,穩定下來後才會更新。很期待他們下一步會是什麼。 🗞️ 熱門新聞 Ghost 6.0 Ghost Release 6.0。 兩個重量級更新:支援 ActivityPub,讓 Ghost 可以 Leverage 社群媒體分發渠道;以及內建 Analytics,支援流量分析。這剛好就是兩個我最想要的功能,Great Work。 常說經營內容的痛點在,不知道如何發佈內容,不知道訪客從哪來。當然這都可以用工具協助,例如設定 GA、或者使用 Postiz 等來經營社群,可是我覺得一個好的平台應該要替創作者處理掉這些事,Ghost

By Ken Chen

Weekly Issue 第 8 期:數位時代的遷徙自由

以前在開發內容平台產品時,常常想,如果有天我們的使用者要離開平台,他們擁有自由嗎?在現代,數位創作者有點像是佃農,替平台生產內容,可是因為數位落差,他們沒有移動的能力。 隨著時代進步,法規應該要與時俱進,這期選了數位部的公告草案,告訴我們科技與制度可以如何相輔相成。 另外,從本期開始,加入了目錄大綱,希望讓讀者閱讀時能更容易在不同議題間切換。 🗞️ 熱門新聞 社交資料可攜權與互通性 在唐鳳那看到這則消息,最近衛城出版編輯的帳號被無預警停權,引發討論,我自己也常常焦慮,當使用這些便利的平台服務時,我們是不是交出一些沒意識到的權利? 身為個人,可行的策略是,在發布內容到平台前,先保留一份在自己手中,但這其中的不平等顯而易見。《數位選擇法案》讓我理解到,創作者有機會在一個更好更平等的環境下創作。 我希望台灣也能有這樣的一天。 I gave the AI arms and legs – then it rejected me 在 HN 上看到的新聞,有名開發者發現自己的函式庫被用在 Claude

By Ken Chen