這裡記錄每週值得分享的科技內容,週五釋出。
封面圖
溫州江心嶼是甌江裡面的一個小島,最近完成了改造工程。(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]
往年回顧
(完)
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