這裡記錄每週值得分享的科技內容,週五發佈。
本雜誌開源(GitHub: ruanyf/weekly),歡迎提交 issue,投稿或推薦科技內容。
週刊討論區的帖子《誰在招人?》,提供大量程序員就業信息,歡迎訪問或發佈工作/實習崗位。
封面圖

2021年世界自然攝影大賽,有一張神奇的得獎照片。一隊螞蟻過水塘,其中一隻趴在水面上作為橋樑,讓其他螞蟻踩在自己身上過河。(via)
本週話題:英國的名校簽證,伯克利的計算機教育
(一)
上週,我看到一條新聞,英國即將出臺"名校簽證"。世界頂尖大學的應屆本科生,可以直接申請該簽證,到英國找工作。

英國政府對"世界頂尖大學"的定義是,該大學在以下三個高校排行榜裡面,至少有兩個排名前50位。
- 泰晤士高等教育世界大學排名,
- QS 世界大學排名
- 世界大學學術排名
目前還不知道,這種簽證是否有國別限制,因為北大、清華、香港大學、香港中文大學都符合條件。如果真的對中國人開放,以後北大清華的本科生就可以選擇,直接去國外就業了。
我第一個感覺是,名校的價值在這裡體現出來了。相比普通大學, 名校最大的價值,不在於教育質量,而在於能為學生提供更多的機會。 北大清華的畢業生,未必強於其他學校,但一定擁有比其他學校更多的機會。
去年,北京和上海都出臺了政策,部分985高校的本科畢業生可以直接落戶這兩個城市。英國的"名校簽證"簡直就是這個政策的國際版。
我的第二個感想是,就業的選擇越來越廣,以後的學生可以在全世界範圍找工作。這意味著,學生應該用世界眼光看待問題,思考人生道路。
英國是老牌的資本主義發達國家,連它都在全世界搶人才,願意給工作簽證。那些不如它的國家,簽證就更不成問題了,就看你願不願意去了。
(二)
查看世界大學排行榜的時候,我無意中點進了加州大學伯克利分校的官網。

伯克利是一所非常有名的大學,單單在計算機領域,就湧現了眾多的發明(比如 Unix BSD 系統)和傑出人物。
但是,我在計算機系(全名為電氣工程與計算機科學系,Electrical Engineering and Computer Sciences)的網頁上,看到了一個難以想象的數字:去年的2021屆,伯克利應屆計算機系本科畢業生有1300多人!

一個系一年有1300多個畢業生,這也太多了吧。怎麼培養呢?
小班課就算40個人一個班,那也要幾十個班,系裡需要多少老師啊。大班課在階梯教室上課,最多坐200個人,再多就只能去禮堂上課了。大家都知道,班級規模越大,教學效果越差。

上圖是網上找到的圖片,伯克利最大的報告廳可以坐1098人,但是上編程入門課 CS61A 時,還坐不下,來晚了都得站著聽。
伯克利是這樣培養學生嗎?我把疑惑發在社交媒體上面,網友的回覆比我想象的還糟。網友說,現在很多都是在線課程,老師事先錄好,一千多人看視頻上課,光是 TA(學生助教)可能就有四五十個。
我在網上一查,似乎找到了原因。伯克利是公立大學,十年前的2011屆,計算機系只有300多個畢業生。後來由於撥款減少,教學經費越來越緊張,不得不多招學生,尤其是學費很貴的國際學生。這才導致了十年間,學生規模膨脹了三倍。
到了今年,它還要擴招,連法官都看不下去了,命令全校縮招5100個學生。不過,州長最後沒同意,如果真要縮招,學校財政會出問題。

我還看到了一位伯克利計算機系老師的公開信。他公開說,計算機系學生太多、學校給的經費太少,人員不足,處於崩潰邊緣。(the department is still in danger of shattering just due to demand.)他對現狀感到絕望,宣佈辭職,並且在可預見的未來,不願意再次在伯克利任教。
真是令人感嘆,一個名校怎麼會變成這種樣子,美國公立大學的教育質量真的是下滑得厲害。
作為比較,清華大學信息學院的本科生規模,維基百科說是2600多人,那麼一屆也就650人左右,而教工有500多人。我覺得,一個計算機系的師資和教學資源,如果數量上沒有超過清華,就不應該招更多的本科生了。歡迎大家說說,你所知道的大學信息學院的學生規模。
研發協同工具 Apipost
週刊一直以來,都在推廣國產軟件和開源軟件,向大家介紹好用的工具。今天的主角就是一款國產的研發協同工具 Apipost。

互聯網軟件現在主要採用 REST 模式(後端提供數據接口,前端消費接口),優點是前後端分離,可以各自獨立開發,缺點是項目越大,前後端協同越困難。
Apipost 的定位就是,基於協作的 API 研發協同工具,為開發者提供不止於 API 文檔、調試、Mock 等大量功能。你可以把它看成 Postman + Swagger + Mock 的集成體。

它在 Postman 的基礎上,加強團隊協作和項目管理。團隊的所有角色,都可以使用這個工具進行協同。
- 後端程序員:上線接口以後,來這裡構造 URL 進行調試;也可以先提供接口參數,讓 Apipost 生成 Mock 數據,供前端提前調用接口。
- 前端程序員:根據後端給出的接口、文檔和 Mock 數據進行開發;還可以使用代碼生成功能,自動生成常用語言的接口請求代碼。
- 測試人員:使用 Apipost 的接口自動測試。
- 產品經理:查看接口開發進度,掌握項目進展。
最新的6.0版提供了一些強大的特色功能。
(1)一鍵快速生成文檔。 接口文檔的撰寫非常麻煩,很多屬於重複工作,效率低下。接口參數填寫完畢後,只要在 Apipost 按下"分享文檔"按鈕(下圖),就會一鍵自動生成漂亮、規範的文檔,並且可以自定義分享有效期及權限。


(2)團隊成員間可實時協作。 針對團隊成員間協作不同步,數據保存有衝突,無法追溯變更記錄的情況,多人在線協作時,Apipost 支持數據實時同步,有衝突解決機制,並且可以追溯協作日誌。
(3)客戶端支持不登錄使用。 用戶處於局域網環境時(或者公司對網絡限制嚴格),Apipost 客戶端支持不登錄使用。
(4)客戶端支持離線脫機使用。 即使在拔掉網線的情況下,仍可以正常打開 Apipost 客戶端的進行大部分操作。
(5)參數庫描述。 很多接口往往具有大量相同名稱、相同意義的參數,每次手動重複錄入,非常耗時、低效。Apipost 通過自定義參數描述庫,可以將大量參數進行預註釋,並在輸入參數時支持自動填充描述,節省了我們不少重複錄入參數描述的時間。
Apipost 現提供跨平臺的客戶端和 Web 版。所有功能都免費使用,新建項目和接口不限數量。只有商業項目的團隊超過15人,或者需要私有部署時,才會收費。

歡迎大家試用,相信肯定會提高你的接口開發效率。進一步瞭解,可以訪問他們的問答社區,也可以加入微信群。
科技動態
1、會開槍的機器狗

美國最近舉行的一次陸軍武器展覽會上,出現了具有射擊能力的機器狗。它配備了30倍光學變焦的熱像儀,一旦發現紅外線發熱物體,可以1,200米以外射擊。
它是波士頓動力公司公開發售的機器狗,再配上一把自動瞄準的無人步槍。


可以預料,只要機器狗之類的智能行駛裝置出現,就一定會有人為它裝上武器。而且,這類無人武器將在未來的戰場得到大量應用,未來的戰爭很可能都是無人機、無人戰車、機器狗、機器士兵之類的裝置在打。

2、指紋破解

很多手機都使用指紋認證,美國的一個安全團隊展示了快速破解技術。他們可以提取出租車門、iPhone 屏幕、酒杯等處留下的指紋,甚至還可以從高分辨率照片上提取指紋。
拿到指紋後,先在 PhotoShop 裡面生成圖片。

接著,使用激光打印機將其打印到纖維紙上,打印機的碳粉會在紙上形成指紋的 3D 結構。

最後,將這些碳粉原樣粘在樹脂膠水上面,就可以還原他人的指紋了。


經過測試,這種方法的成功率非常高,能通過大多數設備的指紋認證,而且實施成本很低,只要5美元。
3、公路拉鏈

高速公路一般是左右各三個或四個車道,有時兩邊會不平衡,一邊很堵,一邊很空。為了解決這個問題,一家美國公司發明了"公路拉鏈"技術,可以動態調整車道。
這家公司使用特殊車輛,可以根據車流情況,自動收起和佈置車道之間的隔離塊,比如將四車道從"二上二下"變成"三上一下"。舊金山的金門大橋已經將它投入日常使用了。此外,它還可以快速佈置路障。


4、人造閃電

閃電對人類至關重要。沒有閃電,植物就會因為缺少氮肥而無法生長。
因為閃電可以使空氣發生電離,將氮分子裂解成氮離子,再與氧結合形成二氧化氮,溶解於水中形成硝酸,最終在土壤裡面變成硝酸鹽,為植物施肥。

一家美國的創業公司,發明了一種容器,可以生成人工閃電,將氮氣變成硝酸鹽。它使用太陽能,因此很省電,可以部署在農田旁邊,方便農民就近施肥。美國政府已經決定推廣這項技術。
文章
1、淺談不規範使用漢字(中文)

國家新聞出版署最近開展了"不規範使用漢字問題專項整治工作"。本文給出了實例解釋,什麼叫做不規範使用漢字(比如上圖)。
2、如何架設一個石油鑽井平臺(中文)

本文使用大量圖片,介紹石油鑽井平臺如何架設在大陸架上。中國最深的鑽井平臺,距海底有3000多米,這是怎麼做到的。
3、芯片工廠是怎麼建設的(英文)

《紐約時報》的長篇圖文報道,通過英特爾公司在亞利桑那州的新工廠,介紹建設一個芯片工廠為什麼耗資巨大。
4、Telegram 如何繞過谷歌翻譯的 API(英文)
外部軟件調用谷歌翻譯需要付費,但是 Telegram 沒有付費就在使用它。Telegram 是開源的,有人就去看了代碼,它是怎麼做的,很有意思。
5、找出洩漏的 JavaScript 全局變量(英文)

本文給出了一種方法,可以用腳本自動列出所有洩露到全局的 JavaScript 變量。
6、HTTP 協議的 QUERY 方法提案(英文)
HTTP 的 GET 方法沒有數據體,查詢參數必須放在 URL。如果參數太多,URL 就非常混亂。這個提案建議增加一個 QUERY 方法,跟 GET 的唯一區別就是查詢參數都寫在數據體裡面。
7、POST 和 PUT 方法有什麼區別?(英文)
有的文檔說,HTTP 協議的 PUT 方法用於新建資源,POST 方法用於修改資源;另一些文檔說,應該反過來做。其實這兩種說法都不完全對。
8、Linux 信號知識(英文)

本文是一篇科普文章,介紹什麼是 Linux 信號,以及它的基本用法。(@lyhellcat 投稿)
工具
1、Lexical

臉書開源了最新的文本編輯器,目前臉書和 Instagram 官網用的都是它。它替代了臉書原來的 Draftjs,跟 Prosemirror 相比,更輕量、可配置性更高,缺點是文檔目前不全。

一種基於 Webkit 的新瀏覽器,只能用於 MacOS 和 iOS,但是能安裝 Chrome 的插件,目前還是測試版。據說體驗非常好,勝過 Safari。
3、密碼生成器

一個在線的隨機密碼生成器。

一個跨平臺的桌面軟件,可以監控本機的所有網絡通信。


這是一個 3D 地圖,實時顯示每一部地鐵列車的位置。它的源碼看這裡。

一個數據庫在線管理工具,通過上傳或在線連接,在網頁上進行數據庫管理和查詢,支持 SQLite、MySQL、PostgreSQL 等數據庫。
這個命令行工具可以將 Markdown 文檔裡面的 PUML 腳本,轉為圖片文件,再把圖片鏈接插回 Markdown 文檔。
8、HubFS

這個工具支持把 Git 倉庫掛載到文件系統,然後就能像常規目錄那樣訪問該倉庫,包括讀取各個分支和歷史提交。它同時支持 Windows、Mac 和 Linux。
9、cz-git

一款可以定製 Git 提交信息的工具。(@Zhengqbbb 投稿)
活動

抖音作為短視頻王者,如何處理音視頻?面對超大規模併發,如何滿足清晰、流暢、實時的核心要求,讓用戶即便在弱網環境、低端設備上,也能有滿意的觀看效果?
下週六(4月23日)抖音工程師跟大家見面,講講抖音的技術實現。這是字節跳動官方主辦,面向社區同學的技術沙龍。機會難得,現在已經可以報名。還有抽獎環節,贈送字節紀念品。
資源

這個網站可以查詢每個國家或地區的貿易數據,並用圖文進行通俗解釋。
2、Monorepo

Monorepo 指的是多個相關項目放在同一個代碼倉庫裡面。這個網站介紹了 Monorepo 的相關知識和工具。

長篇的學習筆記,介紹 Linux 系統管理入門操作。

Clojure 語言入門教程,提供了一個網頁執行環境。你跟著提示,動手在網頁輸入代碼,邊做邊學。
圖片
1、亞馬遜的球形溫室
亞馬遜公司的西雅圖總部園區內,有三個巨大的球形溫室,高達三四層樓(24米到29米),作為員工休息室和辦公區。



溫室裡面有各種熱帶植物,還設置了會議室和零售商店,每個球體可容納800人,主要供員工使用,每週固定時間免費開放給公眾參觀。



球形溫室於2015年正式動工。2018年1月29日落成,總共耗資40億美元。




文摘
2005年2月份,我們推出了谷歌地圖。到了夏天,我們加入了衛星圖像功能,取名為"衛星圖層",只要通過高層的審核,就可以發佈了。

這時,團隊內部發生了一場令人啼笑皆非的爭論。有人發現這些衛星照片,很多不是衛星拍攝的,而是在飛機上拍攝的,所以"衛星圖層"不是正確的名稱,他建議改為"航空攝影圖層"。
一些工程師不同意修改,誰會在乎呢,到底是從哪裡拍攝的?而且,"航空攝影圖層"作為一個名字,也太長了。另一些工程師認為不能撒謊,必須使用正確的名字。
雙方不能說服對方。發佈審查會之前,我們無法解決分歧,帶著一個未命名的功能,進入了會議室。
就像大家能預料的,每一位谷歌高管都開始興致勃勃地討論,應該使用哪個名字,有些人還提出了其它名字。谷歌創始人拉里和謝爾蓋都很喜歡討論瘋狂的想法。
最後,謝爾蓋拍板:"我們叫它'鳥兒模式'。"
我馬上想發言,但是謝爾蓋已經宣佈散會了。
我目瞪口呆,該功能剛才正式命名為"鳥兒模式",實在太瘋狂了。
接下來的幾天,工程師都嚇壞了。大家知道這個功能非常重要,可是"鳥兒模式"這個名字,讓衛星派與航空攝影派都感到很糟糕,但它是老闆決定的。
我們該怎麼辦?
最後,大家決定不用"鳥兒模式",就用"衛星"這個詞,反正我們編寫代碼,有控制權。事實證明,幾乎沒有高管注意到或記得這個變化。
從那以後,谷歌地圖就一直使用"衛星圖層"作為名字,但是照片大部分都不是衛星拍的。
言論
1、
當我們宣傳保護生物多樣性的時候,常常被問起,少了一個物種會怎麼樣?
對於這個問題,有一個精妙的比喻,中國有那麼多漢字,少了一個漢字會怎麼樣?
-- 周浙昆,植物學家
2、
初學者經常聽到兩件事,"八週可以學會編程"以及"你需要一個四年制的計算機學位"。實際上,普通人自學編程,並找到一份 IT 工作,所需的教育時間在這兩個時間之間。
如果你每天能夠花幾個小時學習編程,合理的估計是堅持6個月到2年之後,你可以找到第一份入門級工作!當然,在此之後,你還是需要堅持不斷學習。
-- 《如何成為一名程序員》
3、
對於大多數人來說,桌面計算機就等於 Mac 或 Windows 環境。如果我們用安卓系統開發桌面環境,正確的做法不是為安卓系統加一個桌面,而是應該讓它能夠與 Mac 和 Windows 連通,能夠通過虛擬機執行前兩者的應用程序。
4、
如果一家公司說可以在15分鐘內送貨上門,這意味著,他們的出貨地點需要設在社區裡面,這肯定會干擾當地居民的生活。
-- 阿姆斯特丹副市長,該市最近禁止了15分鐘內的快送服務
5、
作為軟件工程師,我覺得自己得了"冒名頂替綜合症",就是你覺得你沒有資格做你的工作,好像整天在假裝,不被周圍人看出來。
-- 《擁抱冒名頂替綜合症》
歷史上的本週
2021年(第 152 期):從北大到技校
2020年(第 100 期):零利率時代
2019年(第 49 期):學會有所不為
訂閱
這個週刊每週五發布,同步更新在阮一峰的網絡日誌和微信公眾號。
微信搜索"阮一峰的網絡日誌"或者掃描二維碼,即可訂閱。

(完)












