科技愛好者週刊#331:你可能是一個NPC

這裡記錄每週值得分享的科技內容,週五釋出。
本雜誌開源[1],歡迎投稿[2]。另有《誰在招人》[3]服務,釋出程式設計師招聘資訊。合作請郵件聯絡[4][email protected][5])。

封面圖

南京城北永珍匯商場,與紅山動物園合作,架設了一個38米高的長頸鹿。(via[6]

你可能是一個 NPC

最近,美國發生了一起轟動的大案,一家醫療保險公司的 CEO 當街被人擊殺[7]
嫌疑人很快抓到了,是一個26歲的青年,名為路易吉·曼吉奧內(Luigi Mangione)。
媒體紛紛挖掘這個青年的背景,發現他是一個作家[8]的粉絲。
就在幾個月前,他向作家打賞200美元,並進行了多次視訊通話。
媒體就去採訪作家,詢問兩人在通話中說了什麼。
作家詳細地回憶了他們的通話內容。其中有一段,我覺得很有意思,分享給大家。
曼吉奧內對作家說,他很喜歡作家的一篇文章《你可能是一個 NPC》[9]
NPC 指的是電子遊戲的“非玩家角色”,比如路人、門衛、警察等等,用來模擬現實環境,由程式控制,一舉一動都是設計好的,沒有自主意識。
作家的那篇文章提出,人類越來越像機器人,彷佛 NPC 那樣,行為邏輯都是預設好的
曼吉奧內高度認同這個觀點。他前不久去日本旅行,認為日本充滿了 NPC。他說了一件親身見聞。
一天早上,他在街上看到一名男子癲癇發作,倒在地上。他跑到最近的警察局求助,警察就跟著他去現場。
路上遇到了紅燈,警察立刻就停下來,堅持要等綠燈再過馬路,即使那時馬路上根本沒有汽車。
曼吉奧內很不理解,病人正在發病,神智不清,可能有生命危險,警察卻堅持遵守交通規則。救人難道不是更重要的事情嗎?
他由此認為,日本人“缺乏自由意志”,規則怎麼說就怎麼做,不會自主行事,就是活著的 NPC
他還觀察到,日本存在一種“隱蔽族”(hikikomori),他們不出門,一個人整天待在臥室裡,用電子遊戲、上網、影片來消磨時間。
曼吉奧內認為,這些人也是 NPC,他們失去了對生活的控制,無法參與社會生活,就選擇放棄,等於喪失了生活的自主權。
他觀察到,這種現象不僅存在於日本,正在向全世界蔓延,世界各地越來越多的人正在成為 NPC。他們要麼無法自主的生活,要麼無法選擇自己的行為,而是根據規則和指令來行事,就像被程式控制一樣。
科技公司推動和加劇了這種趨勢,網際網路使得人們越來越分心,把時間都花在網上膚淺的娛樂,不再集中注意力於自己的生活,把生活都交給程式,無法形成自主的意識和行為。
以上就是曼吉奧內的觀點,我認為是很真實的觀察。一方面,人工智慧使得機器人越來越像人類,另一方面,人類的自主性在消退,越來越像機器人。現實與遊戲、人類與機器人,越來越難以區分了。

AI 程式設計挑戰賽,即將報名截止

這幾期的週刊一直在介紹,正在舉行的全國 AI 程式設計挑戰賽。
它的報名馬上就要截止了。
(1)應用賽道的作品提交,到1月5日截止。如果你有好的創意,能用 AI 做出可執行的作品,就可以報名參加。
(2)如果你善於刷題,可以報名參加演算法賽道,用 AI 來解演算法題。
我是鼓勵大家參加。大賽有豐厚獎品,設了20萬的獎金池,獲獎者還有機會拿到崗位 offer。就算沒得獎,也是一個很好的鍛鍊,能夠動手程式設計、熟悉 AI。
大賽由豆包 MarsCode 和稀土掘金技術社群共同主辦。詳細介紹和報名方法,請看前兩期的週刊[10],或者點選這裡[11]

科技動態

1、觀鳥神器[12]
一個美國女子發明了一種觀鳥神器,在網上引起了轟動。
她在墨鏡上掛了一個托盤,上面灑了鳥食。小鳥就會停在上面,完全沒有意識到,就停在她的鼻子前面。
這種觀鳥神器,簡單又體驗獨特,怎麼以前沒人想到。
2、自豪版本規範[13]
一個開發者提出自豪版本規範(pride versioning),對軟體版本進行編號。
如果你對新功能感到非常自豪,就發一個大版本(遞增第一個版本號),否則就發一個小版本(遞增第二個版本號)。
如果你對某個地方感到尷尬和羞恥,就發一個補丁版本進行改正(遞增第三個版本號)。
3、能量收集電子賀卡[14]
一位國外的程式設計師,製作了一張可以收集能量的電子賀卡。
這張賀卡就是信用卡大小,上面有電路,但是不帶電池,透過收集周圍環境的能量,LED 燈會閃爍。
最簡單的方式,就是放在燈光下,它會收集光能。
你也可以用 USB 供電。
它甚至可以放在路由器或微波爐旁邊,吸收 WIFI 和微波的能量。
4、糖印表機[15]
你想過用糖來 3D 列印嗎?有人就真的做出了一臺糖印表機。
它用熱風槍,將白砂糖吹塑成型,打印出各種形狀。
下面是它列印的一顆釘子。
它可以打印出很複雜的形狀。
這些東西都可以食用,因此這種機器在食品行業應該很有用,在夜市可能也會很轟動。

文章

1、我的幾何人生[16](中文)
著名華人數學家丘成桐,回顧自己的成長道路。
2、程式設計十年的感悟[17](中文)
“程式碼寫多了才意識到,程式設計師的競爭力並不是寫程式碼,也並不是哪門語言或者框架, 其核心競爭力是透過技術解決問題的能力”。(@ramsayleung[18] 投稿)
3、我給部落格新增 dark mode[19](中文)
作者介紹他為部落格新增 dark mode 的處理方法和注意事項。(@Spike-Leung[20] 投稿)
4、七個最佳的生產力 Docker 映象[21](英文)
本文介紹七個可以自己用 Docker 映象架設的生產力服務。
5、不可變 Linux 發行版[22](英文)
越來越多的開發者開始使用不可變的 Linux 發行版(immutable Linux distro),即系統檔案在執行期間不可更改。這樣會讓系統更穩定,也更容易遷移和回滾。
6、macOS 命令列內建的工具程式[23](英文)
本文介紹 macOS 內建的一些命令列工具程式,比如 security、open、pbcopy、pbpaste 等。

工具

1、YunoHost[24]
一款虛擬機器軟體,內建了常見的雲服務,可以一鍵啟用,省去了安裝雲服務的麻煩,參見介紹文章[25]
2、MarkItDown[26]
微軟官方推出的工具,將各種格式的檔案(主要是 Office 檔案)轉成 Markdown 格式。標題是 GitHub 倉庫連結,下面是線上體驗[27]
3、愛幕[28]
線上字幕編輯器,支援音訊提取和字幕翻譯,免費使用,自己部署需付費。(@zhw2590582[29] 投稿)
4、Beautify Screenshots[30]
截圖美化工具。(@cxhello[31] 投稿)
5、單詞收藏助手[32]
Chrome 外掛 + 微信小程式,在網頁上收藏單詞,建立自己的詞庫,然後透過小程式加強記憶。(@yuuk[33] 投稿)
6、Free Open Graph Image Generator[34]
根據模版製作“網頁分享圖”(open graph)的線上工具。(@javayhu[35] 投稿)
7、Kyanos[36]
一個命令列的網路流量採集和分析工具,具有較強的資料過濾和分析能力。(@hengyoush[37] 投稿)
8、線上 Excel 協同編輯器[38]
一個開源的類 Excel 電子表格網頁應用,支援多人協同編輯。(@nusr[39] 投稿)
9、紅楓雲盤[40](maple-file)
一個多協議雲端檔案儲存的客戶端,支援安卓和 macOS,基於 Flutter + Go 開發。(@honmaple[41] 投稿)
10、GitHub Cards[42]
將 GitHub 使用者個人資料轉換成卡片圖。(@iAmCorey[43] 投稿)

AI 相關

1、GCOP[44]
基於 AI 的 Git 提交訊息生成和工作流程最佳化工具。(@Undertone0809[45] 投稿)
2、github-assistant[46]
該網站可以對 GitHub 程式碼庫提問,由 AI 來回答,比如“過去30天誰的提交次數最多”。
3、Liubai[47]
開源的微信機器人,在微信裡面同時呼叫三個 AI 模型,完成各種任務。(@yenche123[48] 投稿)
4、AI OCR[49]
線上免費 AI OCR(圖片文字識別)工具,所使用的前端程式碼和 AI 提示詞見這裡[50],靈感來自 llama-ocr[51]。(@ringcrl[52] 投稿)
5、Smart Alt Text Generator Generator[53]
上傳圖片,生成 SEO 友好的 alt 描述,支援多種語言。(@wang1309[54] 投稿)
6、AI 調色盤生成器[55]
該網站可以根據輸入的關鍵詞,生成對應的色彩組合。

資源

1、WebSpy.Site[56]
網站流量分析平臺,根據域名查詢網站流量情況。(@wincatcher[57] 投稿)
2、PNGFree.ai[58]
免費的百萬級 PNG 圖片庫。(@shawnlee000[59] 投稿)

圖片

1、無頭雞[60]
1945年,一個美國科羅拉多州的農民殺雞時,砍掉了一隻五個半月大的雞的大部分頭部。
但是沒有砍到頸靜脈,並且一隻耳朵和大部分腦幹完好無損。因此,這隻雞雖然沒有腦袋了,仍然可以保持平衡並笨拙地行走。
農民發現這隻雞沒有死,就決定繼續養它,用滴管給它餵食。
後來,這隻雞被巡迴展出,門票是25美分,每月為主人帶來4,500美元收入。
1947年3月,它死於巡迴展出途中。
2、Windows 3.1 時鐘[61]
市場上出現了 Windows 3.1 時鐘,鐘面就是 Windows 3.1 的桌面,看上去很有懷舊感。
注意,上圖的鐘面不是液晶屏,而是印刷上去的。它是石英鐘,使用一節五號電池。

文摘

1、長期軟體開發[62]
有些領域的軟體會持續執行幾十年,比如發電廠、起搏器、飛機、橋樑、重型機械的軟體。它們可能幾年都不會改動,然後推出一個新的大版本。
如果一個軟體的開發週期長達幾十年,需要長期維護,那麼最好做到下面幾點。
(1)儘量減少依賴。
軟體的依賴項越多,長期越難以維護。依賴包括開發時依賴和執行時依賴,都是越少越好。
現在,很多軟體在執行時會呼叫雲服務,這也不利於長期維護。
(2)完備的測試用例。
測試對於重構、刪除/新增功能,會提供極大的幫助。當你中斷3年後,重新開始開發,測試也會讓你快速瞭解系統。
(3)減少複雜性。
複雜性是軟體開發的頭號敵人,會讓最好的程式設計師和團隊都鎩羽而歸。
由於熵增定律和人類行為,除非你有意識地遏制,否則複雜性總是會增加。
因此,你需要養成嚴格的開發習慣:儘早和頻繁地重構,刪除不必要的或重複的程式碼,花時間簡化。
(4)編寫簡單無趣的程式碼。
程式碼越簡單越好,重點是程式碼的執行邏輯要顯而易見。你永遠不會後悔編寫了簡單的程式碼。
那些看上去很聰明、很高深的程式碼,會讓後期的除錯和理解變得複雜。特別注意那些高效能程式碼,只有當你正確理解它們時,它們才有效。
另外,那些眼下時髦、被熱炒的明星技術,如果沒有得到充分驗證,也需要規避。
你最好只使用至少有10年曆史的可靠技術。有一條規則是,某項技術的壽命與它們當前的年齡成正比,即存在越久的東西越可能繼續存在。
(5)日誌、遙測和文件
如果軟體不是持續更新,開發者的注意力就會轉到其他地方,不會立即跟進,所以需要有日誌和遙測,能把執行過程記錄下來。
文件則可以幫助我們理解幾年前、甚至十幾年前,編寫原始程式碼時的想法。可能的話,記錄所有事物,不僅僅是程式碼,還有理念、想法和為什麼。
(6)團隊
團隊人員變化是很常見的。在許多地方,在一個團隊呆三年,就已經很久了。雖然你可以用良好的文件和出色的測試,來抵消這種人員變化,但這很困難。
軟體長壽的最簡單辦法之一,就是讓開發成員長期穩定,保持工作十年。這意味著,你必須給你的程式設計師提供良好待遇,否則人們會離開。
在某些地方,軟體是外包公司或諮詢顧問寫的,他們將程式碼丟到你的系統中後離開。對於長期執行的軟體,這是非常糟糕的安排。
(7)開源
讓你的程式碼暴露在外界的眼光,是保持程式碼可靠的好方法。一個有趣的事實是,只有質量良好的程式碼,人們才願意對外分享,也就是說,如果不開源,人們會願意在組織內部接受質量更差的程式碼。
開原始碼有更高的標準、更多的測試,這是讓程式碼不過時的絕佳機制。

言論

1、
銀行的 API 特別難用,設計得也很奇怪。我在為銀行工作時,發現了原因。
API 不是銀行通訊的方式,檔案才是。銀行執行的指令,不是透過我們習慣的 API 傳送,而是透過檔案接收。
— 《為什麼軟體工程師與銀行整合如此痛苦?》[63]
2、
美國有很多問題,絕非理想的社會,但是第三世界國家的很多人,尤其是低收入人群,儘管對美國的真實情況一無所知,依然非常向往。
在他們心目中,美國有財富、空間、自由、人性化管理等等。這不是真實的美國,而是美國在他們心目中的投影,他們嚮往的其實是自己想象中的生活方式。
這是美國的一個很大的優勢,儘管自身的諸多問題,依然能夠對其他國家的人民產生吸引力。
— 《美國比歐洲好嗎?》[64]
3、
產品經理的職責就是三件事:(1)瞭解使用者需求;(2)提出解決方案;(3)安排任務執行。
— 《產品經理的 AI》[65]
4、
一個生物學家說過:“每個細菌的夢想都是變成兩個。” 這是生活的基本真理:你經歷的一切只是使自己更加重要的一種手段。
— Sean Carroll[66],進化生物學家
5、
我喜歡科學的一點是,無論你喜不喜歡,它都會讓你相信。
— 肖恩·卡羅爾[67],物理學家

往年回顧

AI 聊天有多強?(2022 #234)
(完)

References

[1]

 開源: 

https://github.com/ruanyf/weekly
[2]

 投稿: 

https://github.com/ruanyf/weekly/issues
[3]

 《誰在招人》: 

https://github.com/ruanyf/weekly/issues/5610
[4]

 郵件聯絡: 

mailto:[email protected]
[5]

mailto:[email protected]
[6]

 via: 

https://k.sina.cn/article_2645833223_p9db4360702701st94.html
[7]

 被人擊殺: 

https://finance.sina.com.cn/stock/usstock/c/2024-12-11/doc-inczawih7483083.shtml
[8]

 一個作家: 

https://www.gurwinder.blog/p/the-riddle-of-luigi-mangione
[9]

 《你可能是一個 NPC》: 

https://www.gurwinder.blog/p/why-you-are-probably-an-npc
[10]

 週刊: 

https://www.ruanyifeng.com/blog/2024/12/weekly-issue-329.html
[11]

 點選這裡: 

http://zjsms.com/iUNhdBEk/
[12]

 觀鳥神器: 

https://www.newsweek.com/woman-creates-wearable-contraption-watch-birds-close-1998391
[13]

 自豪版本規範: 

https://mastodon.online/@nikitonsky/113691789641950263
[14]

 能量收集電子賀卡: 

https://www.keacher.com/xmas24/
[15]

 糖印表機: 

https://candyfab.org
[16]

 我的幾何人生: 

http://paper.people.com.cn/rmrb/pc/content/202412/21/content_30047414.html
[17]

 程式設計十年的感悟: 

https://ramsayleung.github.io/zh/post/2024/程式設計十年的感悟/
[18]

 @ramsayleung: 

https://github.com/ruanyf/weekly/issues/5765
[19]

 我給部落格新增 dark mode: 

https://taxodium.ink/setup-blog-color-scheme.html
[20]

 @Spike-Leung: 

https://github.com/ruanyf/weekly/issues/5766
[21]

 七個最佳的生產力 Docker 映象: 

https://www.xda-developers.com/best-docker-containers-productivity/
[22]

 不可變 Linux 發行版: 

https://linuxblog.io/immutable-linux-distros-are-they-right-for-you-take-the-test/
[23]

 macOS 命令列內建的工具程式: 

https://weiyen.net/articles/useful-macos-cmd-line-utilities
[24]

 YunoHost: 

https://yunohost.org
[25]

 介紹文章: 

https://www.xda-developers.com/yunohost-guide/
[26]

 MarkItDown: 

https://github.com/microsoft/markitdown
[27]

 線上體驗: 

https://markitdown.pro
[28]

 愛幕: 

https://aimu.app
[29]

 @zhw2590582: 

https://github.com/ruanyf/weekly/issues/5759
[30]

 Beautify Screenshots: 

https://postspark.app
[31]

 @cxhello: 

https://github.com/ruanyf/weekly/issues/5752
[32]

 單詞收藏助手: 

https://chromewebstore.google.com/detail/單詞收藏助手-劃詞翻譯-收藏單詞/hlchmmedadpbeefeikleobfgjdieclho
[33]

 @yuuk: 

https://github.com/ruanyf/weekly/issues/5744
[34]

 Free Open Graph Image Generator: 

https://og.indiehub.best
[35]

 @javayhu: 

https://github.com/ruanyf/weekly/issues/5771
[36]

 Kyanos: 

https://github.com/hengyoush/kyanos/blob/main/README_CN.md
[37]

 @hengyoush: 

https://github.com/ruanyf/weekly/issues/5773
[38]

 線上 Excel 協同編輯器: 

https://github.com/nusr/excel
[39]

 @nusr: 

https://github.com/ruanyf/weekly/issues/5775
[40]

 紅楓雲盤: 

https://github.com/honmaple/maple-file
[41]

 @honmaple: 

https://github.com/ruanyf/weekly/issues/5781
[42]

 GitHub Cards: 

https://github.cards
[43]

 @iAmCorey: 

https://github.com/ruanyf/weekly/issues/5750
[44]

 GCOP: 

https://github.com/Undertone0809/gcop
[45]

 @Undertone0809: 

https://github.com/ruanyf/weekly/issues/5754
[46]

 github-assistant: 

https://github-assistant.com
[47]

 Liubai: 

https://github.com/yenche123/liubai
[48]

 @yenche123: 

https://github.com/ruanyf/weekly/issues/5761
[49]

 AI OCR: 

https://functions-ocr.edgeone.app
[50]

 這裡: 

https://github.com/TencentEdgeOne/pages-templates/blob/main/examples/functions-ocr/functions/ocr/index.js
[51]

 llama-ocr: 

https://github.com/Nutlope/llama-ocr
[52]

 @ringcrl: 

https://github.com/ruanyf/weekly/issues/5769
[53]

 Smart Alt Text Generator Generator: 

https://ai-alttext.com/
[54]

 @wang1309: 

https://github.com/ruanyf/weekly/issues/5762
[55]

 AI 調色盤生成器: 

https://colorify.rocks
[56]

 WebSpy.Site: 

https://webspy.site
[57]

 @wincatcher: 

https://github.com/ruanyf/weekly/issues/5757
[58]

 PNGFree.ai: 

https://pngfree.ai
[59]

 @shawnlee000: 

https://github.com/ruanyf/weekly/issues/5770
[60]

 無頭雞: 

https://en.wikipedia.org/wiki/Mike_the_Headless_Chicken
[61]

 Windows 3.1 時鐘: 

https://rmcretro.store/products/windows-3-1-style-clock
[62]

 長期軟體開發: 

https://berthub.eu/articles/posts/on-long-term-software-development/
[63]

 《為什麼軟體工程師與銀行整合如此痛苦?》: 

https://blog.svapnil.com/p/where-bank-apis-fall-short
[64]

 《美國比歐洲好嗎?》: 

https://walkingtheworld.substack.com/p/us-is-better-than-europe
[65]

 《產品經理的 AI》: 

https://productme.org/posts/ai-for-product-managers
[66]

 Sean Carroll: 

https://nautil.us/the-sean-carrolls-explain-the-universe-1171296/
[67]

 肖恩·卡羅爾: 

https://nautil.us/the-sean-carrolls-explain-the-universe-1171296/


相關文章