科技愛好者週刊#325:VSCode編輯器的下一站是Zed?

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

封面圖

溫州江心嶼是甌江裡面的一個小島,最近完成了改造工程。(via[6]

VS Code 編輯器的下一站是 Zed?

程式設計師離不開編輯器,眼下最流行的程式碼編輯器肯定是 VS Code。
VS Code 其他都好,但有一個很大的缺點:效能。
它執行在 Electron 的沙箱裡面,資源佔用多,速度慢。我現在呼叫某些外掛,就有明顯的延遲。
它還有點臃腫,安裝包 100MB,需要磁碟空間 500MB。
所以,當我聽說有一個新的編輯器 Zed[7],效能出眾,功能強大,就立刻安裝了,下面就是我的使用體會。
首先說一下,為什麼 Zed 吸引我?
(1)它的作者是原來的 Atom 編輯器的作者,以及 Tree-sitter 解析庫的作者。
(2)它基於 Rust 語言,充分利用多核 CPU 和 GPU,追求極致效能,速度極快。
(3)它內建了 VS Code 的很多外掛功能,比如 LSP(語言伺服器協議)、程式碼提示補全、多人即時編輯、AI 助手等。
(4)它的開發非常活躍,GitHub 倉庫的星星已經達到了 49K。
安裝後,我一開啟就覺得非常清爽,極簡主義的介面,佈局跟 VS Code 類似,沒有學習成本,可以直接上手。
它的速度真是快,不管什麼操作,一點即開。用久之後,再用 VS Code 都不習慣了。
程式設計需要的功能,大部分開箱即用。如果沒有的話,可以去外掛市場[8]找找。
有些功能,我覺得很實用。比如,它有一個大綱面板(下圖左),列出當前指令碼的所有函式,點選函式名可以跳轉到函式實現。
它還可以新增參與人(必須有 GitHub 賬號),讓你跟多人即時協作、聊天。
參與者的頭像顯示在視窗右上角。
雖然它有上面這些優點,但也有一些難以忽視的問題。
(1)它不是真的跨平臺,目前只有 Mac 版本最完善,Linux 版本我遇到了不少問題,Windows 版本官方暫未支援。
(2)很多地方還沒來得及做,你經常會遇到一些小功能缺失,找不到解決方法。
(3)它的設定就是一個大的 JSON 檔案,沒有圖形設定介面,動不動就要查文件。
(4)AI 助手只支援 OpenAI、Claude 和本地執行的 Ollama 模型。
我的結論是,它的表現非常出色,但沒有完全準備好,只適合那些看重效能、願意自己解決問題的程式設計師。
總的來說,Zed 是 VS Code 很好的替代品,奉行極簡主義,不臃腫,內建功能完備。明年的這個時候,它也許會讓 VS Code 不再那麼流行。

[本週軟體]302.AI

面對層出不窮的 AI 模型,你會不會有一種想法,如果存在一個統一的使用入口該多好?
事實上,真有這樣的產品。週刊以前介紹過一個網站 302.AI[9],就是這種思路。
它的定位是“AI 應用超市”,可以看作是一個適配層,適配了各種各樣的 AI 模型,讓你都能透過它來使用。
你可以直接使用各種模型,也可以使用“工具超市[10]”預置的30多種 AI 應用,比如下圖的“AI 學術論文搜尋[11]”。
它還提供 API 呼叫,透過它的伺服器,呼叫各種模型的 API。
它有試用額度,此後按照使用量收費,一般是底層模型原始價格的五折。
最後,它本週開源了,各種官網工具的原始碼都放出來了,倉庫地址 github.com/302ai[12]。他們用 Next.js,你可以用來開發自己的 AI 應用。

科技動態

1、34階魔方[13]
普通的魔方是3階的,即長寬高各3個色塊,但也有其他階的魔方。
上圖是2階、4階、5階的魔方。
最近,有人用 3D 印表機做了一個世界最高階的魔方,達到34階。
這麼大的魔方,轉動起來很不方便,已經不適合用來遊戲,而是適合擺弄許多奇特的造型。
隨著 3D 列印的普及,做出更高階的魔方也不是難事,但是缺乏實際意義。目前,量產的最高階魔方是17階。
2、Ping 時鐘[14]
ping 是一個命令列工具,用來顯示本機到伺服器的訊號傳輸時間。
一位國外程式設計師突發奇想,製作了一個 Ping 時鐘,在鐘面上顯示 ping 的耗時。
它的鐘面有兩根指標,長指標是每次 ping 的毫秒數,短指標是最長耗時。
鐘面下部是液晶顯示屏,顯示當前所在網路,以及目標伺服器。
每次只要執行 ping 命令,就能很直觀地看到,長指標不停地擺動,網速可視化了。
這個時鐘的原始碼,已經開源了,使用 ESP32 晶片、一個微型電機和定製的 PCB 電路板。有電路基礎的同學,完全可以自己動手製作。
3、麻雀的新用途[15]
麻雀有什麼用?澳大利亞科學家想出一個新用途。
澳大利亞是世界主要的鉛生產國,有28個鉛礦。鉛會造成人體中毒,對兒童影響尤其大。
科學家一直尋找監控方法,能夠測試環境的鉛洩漏。他們想到了麻雀。
麻雀比人類,更早攝入環境中的化學物質。只要抓住麻雀,測一下它們的血鉛,就能瞭解是否有鉛洩漏,從而可以早期發出報警(下圖)。
4、其他
(1)一位美國物理學家總結出貓的行為方程[16],已知貓的質量和疲勞係數,可以算出貓從 t0 到 t1 的位移,該公式的目的是“喚起非專業人士對經典力學的興趣”。
(2)CDN 服務商 bunny.net[17],推出邊緣函式功能,基於 Deno,可以備用。

文章

1、如何簡化 PATH 環境變數[18](英文)
Linux 系統有一個環境變數 PATH,指定可執行檔案的預設路徑。本文告訴你,怎麼簡化這個變數,更容易管理。
2、AppData 目錄的作用[19](英文)
一篇科普文章,Windows 11 有一個 AppData 目錄,它有什麼用。
3、藍牙版本的變化[20](英文)
本文介紹藍牙協議如何進化,每個版本的特點是什麼。
4、業務邏輯不要放入資料庫[21](英文)
本文提出,資料庫最好只用來存放資料,不要加入業務邏輯,讓應用程式處理業務邏輯。
5、SAML:技術入門[22](英文)
一篇長文,介紹企業用的登入協議 SAML。開頭部分是 SAML 簡介,寫得挺好,後面是技術細節,可以不看。
6、質能公式與光速[23](英文)
一篇物理學科普長文,談怎麼理解質能公式 E=mc^2,為什麼包含光速的平方。沒有數學,我覺得很有啟發。

工具

1、PasteBar[24]
開源的桌面軟體,用來管理剪貼簿,可以搜尋剪貼簿歷史,以及預設常用的貼上項(比如地址),支援 Windows 和 Mac 系統。
2、FastHTML[25]
一個 Python 的 Web 框架,Django 的替代品,用起來更簡單。
3、Kagi 翻譯[26]
搜尋引擎 Kagi 推出的翻譯服務,類似於谷歌翻譯。
4、Star[27]
一個 Web 應用,在手機開啟以後,它會利用手機的運動感測器,顯示某一顆你指定的衛星相對你的方位。
5、kkTerminal[28]
一個開源的網頁終端,在網頁上透過 SSH 連入遠端主機。(@zyyzyykk[29] 投稿)
6、ReactPress[30]
一個基於 Next.js 的部落格和 CMS 系統,檢視 demo 站點[31]。(@fecommunity[32] 投稿)
7、PDFMathTranslate[33]
開源的命令列工具,使用 AI 翻譯 PDF 檔案,完整保留排版。(@Byaidu[34] 投稿)
8、dimmer[35]
開源的 Chrome 瀏覽器外掛,暗黑模式一鍵切換。(@slc3a2[36] 投稿)
9、ThriveX[37]
一個開源的部落格系統,基於 Next14 + Spring Boot。連結是前端倉庫,另有後端[38]控制檯[39]。(@LiuYuYang01[40] 投稿)
10、Trayce[41]
這個工具攔截本地開發環境中 Docker 容器傳送和接收的 HTTP(S) 請求。
11、ngtop[42]
一個命令列工具,用來查詢 nginx 日誌。
12、InputShare[43]
電腦連線安卓裝置之後,這個工具可以把電腦的鍵鼠和剪貼簿,共享給安卓裝置,只支援 Windows。(@BHznJNs[44] 投稿)

資源

1、逆向工程教程[45](Reverse Engineering For Everyone)
面向初學者的逆向工程英文電子書,涵蓋了 x86 和 ARM 架構。
2、一站式 iframe 生成器[46]
HTML 的 iframe 元素有很多屬性,這個工具網站可以檢視所有屬性值,並生成最終程式碼。(@wincatcher[47] 投稿)
3、Chromium 的命令列開關[48]
這個網頁收集 Chromium(Chrome)瀏覽器的命令列開關,居然有1600多個。
4、Typst 介紹[49](英文)
Typst 是一種排版工具,可以生成論文、小冊子、表格等,功能類似於 LaTeX,但是寫法類似於 Markdown,用起來相對簡單。

圖片

1、犰狳化石[50]
一個阿根廷農民發現,路邊有四個奇怪的大土塊。
後來經過生物學家辨認,這居然是四個巨型犰狳的化石,這種動物已經在一萬年前滅絕了。
犰狳是一種看上去很像穿山甲的動物,外面披著一身鎧甲。下面就是現代小型犰狳的照片。
巨型犰狳的滅絕原因,有一種說法是跟人類有關,古人想要它們的鎧甲。
2、因紐特人的雪鏡[51]
雪地和冰面會強烈反射陽光,導致視力受損,這叫做“雪盲症”。因此,雪地活動都需要佩戴墨鏡或保護鏡。
因紐特人是美洲北極圈的原住民,已經在那裡定居了幾百年。他們在原始條件下,怎麼防止雪盲症呢?
原來他們使用各種材料(骨頭、木頭、鯨鬚)製作雪鏡,戴在眼睛前,只留出一條窄縫觀察外界。
這種眼鏡限制了進光量,保護了佩戴者的眼睛,也有助於提高視力。它就像針眼相機一樣,狹縫聚焦光線,使得遠處的物體看起來更清晰。

文摘

1、語音 UI(大多數情況下)很糟糕[52]
AI 的發展,使得語音可以成為使用者介面,這稱為“語音 UI”。
有人認為,語音 UI 將是終極 UI,因為當你可以直接說出命令,為什麼還要費心使用鍵盤和滑鼠呢?
我不相信語音會成為通用介面,原因有很多。
(1)聲音本質上無法表達抽象思想。很多時候,我們的大腦裡面只有零碎的意識,很難找到正確的詞語,將它們表達出來。
(2)語音讓很多事情變得更難而不是更容易。理論上,說出“叫一輛網約車去機場”似乎是完成任務的最簡單方法,但是如果你還有其他要求,比如指定車型和限價,口頭表達就會很麻煩。
(3)語音侵犯隱私。你說出指令的時候,願意被別人聽到嗎?
(4)視覺 UI 可以展示軟體的侷限性,語音 UI 就不行。很多事情,軟體無法做到,視覺 UI 可以幫助我們瞭解軟體的功能。如果沒有視覺 UI,你很難發現軟體不能做什麼事。
(5)使用者不喜歡一直說話。使用語音完成簡單的任務是可以的,但要完成所有事情很快就會變得煩人,難道你要一直說個不停嗎?
(6)語音無法解決現實世界中的歧義。語言表達可能存在大量歧義,無法透過純語音介面輕鬆解決。人工智慧可能無法正確理解你想要完成什麼。
當然,視覺 UI 也有歧義,但是這會更困難,因為你的操作有視覺反饋。

言論

1、
美國的線上教育公司 Chegg,業務是幫助完成家庭作業。學生輸入題目後,它會分發給印度的數千名承包商,讓他們提供答案。
ChatGPT 誕生後,學生不再使用這個服務了,而是直接問 ChatGPT。Chegg 的股價已經下降了99%。
— 《ChatGPT 如何擊垮線上教育巨頭》[53]
2、
大多數哲學的目的,都是強化你的身心,讓你學會,對於那些自己無法控制的事情要漠不關心、
— 《禁慾主義》[54]
3、
作為一個德國人,我每月支付的醫保費用是1000歐元左右,另外還要支付差不多金額的個人所得稅。但是,如果我停止工作,結婚並生1-2個孩子,我拿到的失業救濟金 + 生育補助,比我現在的稅後收入還要多。這完全是不可持續的,但政治家們沒人談論這些。
— Hacker News 讀者[55]
4、
經常有人問我,為什麼2019年決定將 Keras 庫合併到 TensorFlow。
這不是我的決定,而是 TensorFlow 團隊主管的決定。當時我是谷歌 L5 級員工,而他是 L8。如果我不同意這個決定,就需要從谷歌離職。
— 弗朗索瓦·喬萊[56](Francois Chollet),神經網路庫 Keras 的作者,本週宣佈從谷歌離職
5、
創業公司的最大風險不是失敗,而是一種不敢嘗試的文化。
— 《容忍失敗的領導者》[57]

往年回顧

棘手的 AI 版權(2023 #278)
(完)

References

[1]

 開源: 

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

 投稿: 

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

 《誰在招人》: 

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

 郵件聯絡: 

mailto:[email protected]
[5]

mailto:[email protected]
[6]

 via: 

http://4g.66wz.com/xw/system/2024/05/31/105637714.shtml
[7]

 Zed: 

https://zed.dev/
[8]

 外掛市場: 

https://zed.dev/extensions
[9]

 302.AI: 

https://302.ai
[10]

 工具超市: 

https://302.ai/tools/
[11]

 AI 學術論文搜尋: 

https://302.ai/tools/academic/
[12]

 github.com/302ai: 

https://github.com/302ai
[13]

 34階魔方: 

https://ruwix.com/blog/34x34x34-rubiks-cube-record/
[14]

 Ping 時鐘: 

https://github.com/turingbirds/ping-clock
[15]

 麻雀的新用途: 

https://www.abc.net.au/news/science/2024-07-18/sparrows-lead-poisoning-children-blood-levels-health-mining/104075894
[16]

 貓的行為方程: 

https://phys.org/news/2024-10-physicist-cat-reveal-equation-motion.html
[17]

 bunny.net: 

https://bunny.net/blog/introducing-bunny-edge-scripting-a-better-way-to-build-and-deploy-applications-at-the-edge/
[18]

 如何簡化 PATH 環境變數: 

https://blog.izissise.net/posts/env-path/
[19]

 AppData 目錄的作用: 

https://www.xda-developers.com/appdata/
[20]

 藍牙版本的變化: 

https://www.androidauthority.com/bluetooth-versions-3488170/
[21]

 業務邏輯不要放入資料庫: 

https://www.infoworld.com/article/2269523/put-business-logic-in-the-application-not-the-database.html
[22]

 SAML:技術入門: 

https://ssoready.com/docs/saml/saml-technical-primer
[23]

 質能公式與光速: 

https://profmattstrassler.com/2024/10/01/why-is-the-speed-of-light-so-fast-part-1/
[24]

 PasteBar: 

https://github.com/PasteBar/PasteBarApp
[25]

 FastHTML: 

https://fastht.ml/
[26]

 Kagi 翻譯: 

https://translate.kagi.com/
[27]

 Star: 

https://star.conor.link/
[28]

 kkTerminal: 

https://github.com/zyyzyykk/kkTerminal
[29]

 @zyyzyykk: 

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

 ReactPress: 

https://github.com/fecommunity/reactpress
[31]

 demo 站點: 

https://blog.gaoredu.com
[32]

 @fecommunity: 

https://github.com/ruanyf/weekly/issues/5524
[33]

 PDFMathTranslate: 

https://github.com/Byaidu/PDFMathTranslate
[34]

 @Byaidu: 

https://github.com/ruanyf/weekly/issues/5501
[35]

 dimmer: 

https://github.com/slc3a2/dimmer
[36]

 @slc3a2: 

https://github.com/ruanyf/weekly/issues/5496
[37]

 ThriveX: 

https://github.com/LiuYuYang01/ThriveX-Blog
[38]

 後端: 

https://github.com/LiuYuYang01/ThriveX-Service
[39]

 控制檯: 

https://github.com/LiuYuYang01/ThriveX-Admin
[40]

 @LiuYuYang01: 

https://github.com/ruanyf/weekly/issues/5491
[41]

 Trayce: 

https://trayce.dev/
[42]

 ngtop: 

https://github.com/facundoolano/ngtop
[43]

 InputShare: 

https://github.com/BHznJNs/InputShare
[44]

 @BHznJNs: 

https://github.com/ruanyf/weekly/issues/5545
[45]

 逆向工程教程: 

https://0xinfection.github.io/reversing/
[46]

 一站式 iframe 生成器: 

https://iframegenerator.top/
[47]

 @wincatcher: 

https://github.com/ruanyf/weekly/issues/5499
[48]

 Chromium 的命令列開關: 

https://peter.sh/experiments/chromium-command-line-switches/
[49]

 Typst 介紹: 

https://blog.jreyesr.com/posts/typst/
[50]

 犰狳化石: 

https://allthatsinteresting.com/glyptodon-fossils
[51]

 因紐特人的雪鏡: 

https://kottke.org/21/11/arctic-snow-goggles
[52]

 語音 UI(大多數情況下)很糟糕: 

https://shubhamjain.co/2024/04/16/voice-is-bad-ui/
[53]

 《ChatGPT 如何擊垮線上教育巨頭》: 

https://www.wsj.com/tech/ai/how-chatgpt-brought-down-an-online-education-giant-200b4ff2
[54]

 《禁慾主義》: 

https://www.rugu.dev/en/blog/linux-asceticism/
[55]

 Hacker News 讀者: 

https://news.ycombinator.com/item?id=42070430
[56]

 弗朗索瓦·喬萊: 

https://news.ycombinator.com/item?id=42130881
[57]

 《容忍失敗的領導者》: 

https://praachi.work/blog/failure-tolerant-leaders


相關文章