本雜誌開源(GitHub: ruanyf/weekly),歡迎提交 issue,投稿或推薦科技內容。
週刊討論區的帖子《誰在招人?》,提供大量程式設計師就業資訊,歡迎訪問或釋出工作/實習崗位。
封面圖
上海的很多老小區,由於歷史原因,有很多密密麻麻的架空電線,非常影響美觀。江陰路今年的社群更新,嘗試將架空線包裹進入人造的綠色藤蔓。(via)
本週話題:網路收音機的設計
最近,我為家裡的老人買了一臺網路收音機。
老人的年紀很大(超過85歲),完全不懂網際網路,操作智慧手機會經常點錯地方,不知道怎麼恢復。平時唯一的消遣就是看電視,其實根本不愛看,但沒有別的娛樂。這樣的老人家在網際網路時代非常弱勢,但是人數還不少,我們國家搞不好有一兩個億。
我希望,找到一臺網路收音機,能夠接收網路節目,幫老人豐富生活、瞭解外界。我的要求是,操作越簡單越好,不懂網際網路的人也可以毫無困難地上手。
大家不妨想一想,如果你是設計師,會怎麼設計這個產品?下面這樣全觸控式的網路收音機,適合老人嗎?
我在網上還真的找到這樣一個產品,立刻下單。前幾天收到實物以後,發現比我想像的更好,基本上完全滿足了我的需求,忍不住要在這裡談一談。
下面不是為它做廣告,純粹只是以它為例,討論針對老年使用者的電子產品,應該怎麼設計。
我覺得,這個網路收音機真的是為老年人設計的,設計師用心了,把老年人不需要的功能都砍掉了,讓產品變得儘量簡單。
我特別讚賞的有三個地方。
(1)它直接連線喜馬拉雅的節目庫,不需要任何登陸或認證,開啟就直接播放,使用者感知不到喜馬拉雅的存在。
設想一下,如果需要切換網址或者節目源,老人能理解這種操作嗎?
(2)音量控制是旋鈕,而不是手機常用的按鍵。
這一點特別贊。旋鈕是機械裝置,容易壞,但是手感好、體積大、容易操作,符合直覺。如果能把電源開關也做進旋鈕,就更好了。
我在推特上發了照片以後,有個網友說,雖然"硬體的軟體化"是趨勢,但是對於老年使用者,"軟體功能的硬體化"才是正確方式。各種軟體設定做成硬體開關,一撥就開,一擰就關,對老年人更友好。
(3)這個機器不支援 WIFI,內建 4G SIM 卡,只能用無線流量上網。很多朋友認為這是缺點,我不這樣看,反而覺得這是很大的優點。
雖然多了 4G 的後期充值成本,需要小輩幫忙每年在手機上為老人買流量,但是相比 WIFI 還是簡單多了。選擇 WIFI 網路,輸入密碼,對老人並不容易,很多老人根本不理解 WIFI 是什麼。另外,如何為收音機提供 WIFI 密碼的輸入鍵盤,也是很大的難題。
預設使用 4G 訊號,上面的這些複雜性就都不存在了,網路節目就像電臺廣播一樣,開啟就能聽,走到哪裡都有訊號,室外也能用。
(4)當然,它也有可以改進的地方。比如,所有按鈕的說明文字,都應該是中文,而不像現在這樣,有的是中文,有的是英文,有的是圖示。
總之,這個網路收音機是一個很好的例子: 放棄次要功能,換來產品的簡單性,從而達到更好的使用者滿意度, 這就是軟體設計名言"less is more, worse is better"的意思吧。
《Vue、React 通用架構》公開課
現在大部分學習前端開發的同學,往往只對一個框架比較熟悉,Vue 和 React 裡面,選擇一個進行專研。
但是,應聘和實際工作中,很可能會遇到另一個框架。因為大廠內部的實際情況是,兩大框架都有大量應用,取決於不同團隊的技術選型。
如果你比較熟悉 Vue,卻遇到了 React 專案,或者說,你是程式碼庫的作者,需要同時支援 Vue 和 React。這時,有沒有一種簡單的方法,可以將一個框架的程式碼移植到另一個框架呢?
回答是有的,我們可以找到一種通用的程式碼架構,同時適應 Vue 和 React,實現最大程度的程式碼複用。
本週有一個公開課《React、Vue 架構和風格統一》,就是研究這個問題: Vue 和 React 之間如何實現程式碼的移植。 內容很適合擴寬思維,幫助一種框架的學習者,快速進入另一種框架。
講課時間是8月29日(本週日)晚上8點,有空的話,歡迎來聽課。主講老師為前阿里 P8 的全棧架構師,曾經主導開發過使用者過億的前端專案。他會重點講解下面的問題:
- Vue 和 React 只會一個,如何快速上手另一個?
- 如何做到 Vue 和 React 程式碼最大程度複用?
- 大廠同時使用 Vue 和 React,是如何統一標準按質交付的?
聽課的同學,還可以獲贈"開課吧"提供的另外兩門影片教程:《深入理解 Flutter 程式設計的 Dart 語言》和《P8 大牛帶你瞭解不同前端的薪資差異》,為跳槽加薪做準備。
微信掃描上方二維碼,就可以 0 元報名。週日晚上8點,歡迎來聽課。
科技動態
1、空中太陽能發電
地面的太陽能發電,會受到雲、霧、雨、雪的天氣影響,它們擋掉大部分太陽光,使得光照時間和光照強度大打折扣。科學家很早就設想,能不能把太陽能板架設到高空?
2021年6月,重慶大學等單位開始在重慶市建設一個空間太陽能實驗站,嘗試將太陽能板放在一個浮動平臺上,升到50~300米的空中,進行太陽能發電。如果實驗成功,下一步將把太陽能板架設到距離地面22公里的平流層。
根據設想,這個浮動平臺有多個半球面的聚光裝置,將太陽光彙集到一個聚光區,透過光伏電池產生直流電,隨後轉成微波,將能量傳輸回地面。
2、Facebook 虛擬會議軟體
Facebook 公司推出虛擬會議軟體 Horizon Workrooms,將虛擬會議提升到一個新的境界。
只要使用者戴上 VR 頭盔,開啟軟體,就會進入一間虛擬會議室。軟體會自動為你的分身配上臉部動作和表情,同時使用 VR 頭盔的攝像頭,捕捉你雙手的動作,讓軟體裡面的分身也做出同樣的動作。
比如,如果你在打字,虛擬空間裡面也會顯示你的分身在打字。
與會者可以在虛擬白板上進行協作,也可以共享照片、文件和電腦螢幕。Facebook 放出了馬克·祖克伯虛擬會議的演示影片,他的表情和雙手的動作,以及背後白板上的板書,令人印象深刻。
3、電子駕照
今年9月1日開始,公安部在全國28個城市,全面推行電子駕照,效力與紙質駕照完全相同。電子駕照透過"交管12123"APP發放,領取後只要攜帶手機,就不需要攜帶紙質駕照了。
電子駕照下方還有實時生成的二維碼和條形碼資訊,交警透過掃描二維碼,能夠快速獲取車主的身份證資訊和車輛登記資訊。
4、水稻生長週期減半
中國農業科學院植物工廠團隊宣佈,在室內環境中,水稻的生長週期可以縮短一半,從傳統大田環境下120天以上減少到60天左右。這意味著,每過兩個月,水稻就可以豐收一次。
目前,國內水稻普遍是每年生長1~2代,海南的熱帶環境可以生長3代。
本次實驗使用定製光譜的 LED 燈(發光二極體)為水稻提供光照,並用營養液供給養分,光照、溫度、溼度、CO2 濃度等都受到精準調控。
報導沒有透露,這種室內水稻的成本比傳統水稻高多少,普通人是否吃得起這種大米。
5、VR 透視頭盔
隨著頭戴顯示裝置越來越普及,逐漸浮現出一個問題。戴頭盔的人可以看到外部,但是外部的人無法看到戴頭盔者的臉,雙方無法進行面對面的交流。
Facebook 的研究人員想出了一個解決方法,就是在頭盔外部的眼睛位置,放置螢幕,實時展示戴頭盔者的眼部表情和動作。未來,人們有可能彼此戴著頭盔,當面交流。
6、線圈槍
一家美國公司宣佈,發售世界上第一把手持線圈槍。這種槍的子彈不依靠火藥引發的氣體爆炸獲得動能,而是透過電磁線圈的加速,將一顆小鐵丸加速到極高的速度,從而達到子彈的殺傷效果。
該槍的預售價格為 3,375.00 美元,充電器需要另外購置。
7、圖片驗證碼專利
最近,一家美國小公司聲稱,谷歌的圖片驗證碼系統 reCAPTCHA(下圖)侵犯了該公司的專利,任何使用該系統的網站必須向它繳納專利使用費。
這家公司說,早在2008年,它就為透過識別圖片、確認真實使用者這個想法申請了專利(下圖)。
拋開這個專利是否有效不談,這裡的關鍵問題是,單單一個概念或者一種用法,是否可以申請專利?如果有人為一個想法申請了專利,別人是否就不能再去實現這個想法了?
文章
1、電源管理晶片為什麼難造?(中文)
隨著充電協議越來越複雜,只要是電子產品,都需要電源管理晶片。本文介紹電源管理晶片市場目前的狀況,以及為什麼大部分市場份額都被國外幾家大公司掌握。
2、如何評價中國自主智慧財產權的".chn"域名?(中文)
這是知乎的一個討論帖,2019年一家中國公司宣佈,推出自主智慧財產權的".chn"頂級域名,根域名伺服器不再受制於人,並開放購買註冊。
但是,該域名沒有得到 ICANN、CNNIC 的承認,瀏覽器無法訪問,必須修改 hosts 檔案才可以。
3、man 命令的奇怪輸出(英文)
有人發現,如果在半夜 00:30 分執行man
命令,會得到一條奇怪的報錯資訊"gimme gimme gimme"。
他在網上提問:有人知道這是怎麼回事嗎?
4、CSS 檢測支援懸停的裝置(英文)
滑鼠有懸停(hover)事件,移動裝置由於不使用滑鼠,自然就沒有這個動作。因此就可以透過它判斷,使用者是否正在使用移動裝置。
本文介紹如何使用 CSS 來偵測支援懸停事件的裝置,並可以設定特殊的樣式。
5、SameSite cookie 的現狀(英文)
目前,所有主流瀏覽器都支援 cookie 的 SameSite 屬性,用來限制第三方 Cookie。但是,不同的瀏覽器對這個屬性的實現不一樣,導致這個屬性的行為有非常大的差異。
6、HTML 元素的 download 屬性(英文)
網頁的連結標籤(a 元素),有一個 download 屬性。只要設了這個屬性,點選後就會跳出下載對話方塊。本文演示了使用這個屬性,下載當前網頁。
7、如何在 Jest 中使用 test.todo()(英文)
本文介紹 JavaScript 測試框架 Jest 的 test.todo() 方法的用法。
8、CSS transform 屬性詳解(英文)
一篇寫得很好的 CSS 入門教程,介紹如何使用 transform 屬性,實現網頁元素的變形。文中有大量互動式示例。
工具
1、RAWGraphs
一個 Web 工具,只要把電子表格的資料複製貼上到網頁上,就可以轉成資料視覺化圖形,不需要編寫程式碼。
2、Cross Context Events
一個 JS 事件庫,允許在多個視窗、多個 iframe 之間共享事件。也就是說,使用它在一個瀏覽器視窗觸發事件,其它視窗也能收到。
3、obvious.js
一個國產的微前端框架,解決前端微應用的依賴管理、以及它們之間的通訊問題。舉例來說,它可以把 React 應用和 Vue 應用組合在一個網頁裡面。(@run-nan 投稿)
4、Web Captioner
一個網頁的語音轉文字工具,使用 Chrome 瀏覽器的 Web Speech API,支援中文,程式碼開源,這裡還有一篇介紹文章。(@jerrylususu 投稿)
5、Maestral
Dropbox 的非官方開源客戶端,支援 Mac 和 Linux,特點是資源佔用少,簡單易用。
6、padka
一個很有趣、非常有想象力的軟體,用來為 Zoom 視訊會議新增特效。它可以在老師直播講課時,根據老師的身體動作和語音,自動為影片配上動畫和背景音樂。
7、Mantine
一個 React 元件庫,特點是預設支援暗模式,可以對樣式的各個方面進行精細的定製。
8、react-class-to-fc
一個將 React 的 class 元件轉成 function 元件的命令列工具。(@yklydxtt 投稿)
9、FireCMS
一個基於 Firebase 的內容管理系統 CMS,資料存放在 Firebase,把這個工具架設在前端,就有了一個後臺資料的管理系統。
資源
1、StackOverflow 開發者調查 2021 版
StackOverflow 網站每年會進行一次開發者調查,瞭解全世界程式設計師的動態和狀況,這是今年的調查結果。其中的"技術"部分,可以瞭解當前的流行技術。
2、那些免費的磚
一個個人網站,收集並介紹各種免費的前端開發資源,分成設計、前端、應用三大類。(@weyman-git 投稿)
3、電鴨社群
國內最早的遠端工作社群,討論和分享遠端、外包、零活、兼職、駐場等工作機會。(@qrk12 投稿)
4、MetaNumbers
這個網站提供任一個正整數(最大到 9223372036854775807)的資訊,主要是該數的各種數論上的特性。
5、物聯網 IoT 初學者教程
微軟釋出的英文教程,詳細介紹什麼是物聯網,以及物聯網的應用。
圖片
1、人工智慧影像
人工智慧公司 OpenAI 最近推出了 CLIP 模型,經過訓練以後,可以根據使用者提供的文字描述,自動生成影像。
研究人員已經用它生成了許多非常酷的影像,有些堪稱是藝術傑作。如果不說明,你根本想象不到這是軟體生成的。
下面就是其中一些作品,標題就是給出的文字描述,影像是軟體返回的結果。
《城市的夜》
《起風了》
《山頂的暴風雪中有一個小木屋,黃昏時亮著一盞燈》
《午夜,山中的房子,飛舞的螢火蟲(使用吉卜力工作室的風格)》
文摘
1、門把手的設計
《設計心理學》(又名《日常生活的設計》)是一本著名的暢銷書,自從上個世紀80年代出版以來,一直經久不衰。
它研究怎樣才能做出好用的設計,給使用者帶來愉悅的體驗。
這本書認為,很多日常物品的設計,都有可以改進的地方。它舉了一個著名的例子,就是門把手的設計。
一扇門既可以向外拉,也可以向裡推,人們經常搞錯。應該怎麼設計門把手,才能使大家一眼就看出來,到底應該推還是拉,而不會搞錯?
一個最簡單的方法,就是在門上貼文字說明,寫明應該"拉"或"推"。
但是,這種方法需要使用者先看到文字標籤,而且對於外國使用者,或者不能理解說明的人就沒有用。那麼能不能不使用文字說明,只憑人類直覺來區分"推"和"拉"呢?
《設計心理學》的作者建議,為了解決這個問題,可以約定,豎的門把手錶示拉,橫的門把手錶示推。
或者,對於需要推的門,索性取消門把手,表示這個門只能推。
但是,作者也認為,這些設計都不是特別理想。門把手的推拉設計,是一個很難的問題,目前還沒有完美的解決方案。
他開玩笑說,有一回他用繩子當作家裡的門把手,表示這扇門只能拉,這個設計可能是最好的設計。
言論
1、
最好的程式設計師不是善於編寫複雜程式碼,而是有能力為複雜的問題提出簡單的解決方案。只有糟糕的程式設計師,才會對簡單的問題提出複雜的解決方案。
-- Hacker News 使用者
2、
世界上只有美國和厄利垂亞兩個國家,是根據公民身份而不是居住地徵稅。只要你是美國人,不管住在哪裡,都必須向美國政府交稅。其它國家的規定是,本國公民如果住在其它國家,則無需向本國政府交稅。
這導致大量的美國富豪放棄美國國籍,申請其它國家的公民。谷歌公司的創始人拉里佩奇就申請成為紐西蘭公民,前 CEO 埃裡克·施密特(Eric Schmidt)申請成為塞普勒斯公民。
-- 《為什麼富人放棄美國國籍》
3、
根據我的經驗,大多數程式設計師在新公司開始工作約 6-8 個月後,才能完全發揮自己的能力。等到在同一家公司工作2年到3年後,絕大多數人開始停滯不前,對工作不再那麼有興趣。
觀察到這一點後,我作為老闆真的不太在乎,自己的員工在工作2-3年後跳槽。長遠來看,只有極少數人會不斷進步,所以我不會特意留住員工,我認為這不是很值得。
-- Hacker News 讀者
4、
現在的城市都希望成為大都市,但是我們實際上需要的不是大都市,而是很多小城市密集地連線在一起。
較小的地理集中度,可以減少特定區域的住房需求和生活成本,使得人們可以擁有更多的個人空間,同時又能保持人口的均勻分佈和互聯性。
-- Hacker News 讀者
5、
你的程式碼應該是寫給下一個開發者的情書。
-- AgriWebb
歷史上的本週
2020年(第 122 期):談談網際網路公司的高估值
2019年(第 70 期):世界進入負利率時代,這意味什麼
2018年(第 19 期):電影《頭號玩家》描繪未來的虛擬世界
訂閱
這個週刊每週五發布,同步更新在阮一峰的網路日誌和微信公眾號。
微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。
(完)