他一怒之下刪除11行程式碼 互聯網遭殃
我們想讓你知道的是
刪除短短11行程式碼,竟然會令Facebook、Reddit、Netflix及Spotify等大型網站出現錯誤?早前互聯網的一次意外,揭露了不少網站的弱點。
現時每個網站都是一個龐大架構,技術人員建站時不可能獨力寫出全部程式碼,通常會使用其他人寫好的套件,而這些套件又很可能用到另一些人的套件。不少程式員都會在網絡上開放源碼,讓世界各地的程式員能夠使用其成果,互相協助。
一層又一層的程式碼,令不少開發人員容易忽略其網站依賴一些不由他們控制的套件,一旦這些套件發生問題,可能會造成骨牌效應,使網站出錯。近日一名程式員就因為刪去11行程式碼,使數以千計的開發人員、管理人員從記錄中發現錯誤訊息。
共享小工具
這場網絡小意外的成因之一,是JavaScript模組庫npm。npm讓使用程式語言JavaScript的開發人員,能夠輕鬆分享他們所寫的程式碼,並再日後重用。這些程式碼多數只為解決特定問題,像一些方便的小工具般,當有人「發明」了後所有人都能直接使用,通常稱為包(package)或模組(module)。
因此npm既是模組管理系統,也是一個模組庫,負責管理模組庫的是npm公司,創辦人之一是npm的創造者Isaac Z. Schlueter。npm公司容許任何人以開放源碼方式,把他們的模組上載至npm的公開庫中,讓其他人自由使用。
名字的爭拗
造成是次意外的主角、來自加州奧克蘭的程式員Azer Koçulu,原本非常擁抱及支持npm,不但在npm上發佈了273個模組,更會大力宣揚npm。他早前開始設計一件小工具,並把這項計劃以“kik”之名註冊到npm。然而開發流動通訊軟件Kik Messenger的公司Kik Interactive卻認為,Koçulu佔用了該公司的名字。
3月11日,Kik公司聘請的專利代理人Bob Stratton傳電郵給Koçulu,指該公司將會發佈一個重要的軟件包,名字同樣叫做“Kik”,希望他能夠把其計劃易名,以免用戶混淆兩者。Koçulu迅速回絕︰「抱歉,我正建立的開源計劃使用這個名字。」
Stratton表示他們無意冒犯,但那是個註冊商標。然後態度漸趨強硬,語帶威脅地指如果Koçulu堅持使用該名字,他們的律師會以上門、取下其帳戶等手段來保護其商標。最後Stratton希望雙方能夠妥協,不用律師來解決問題。
Koçulu回覆︰「哈哈,你確實冒犯了我。所以,(略去),別再回覆。」但Stratton再一次懇求Koçulu改名,因此他開出3萬美元的條件。
撤出npm
這個時候,Kik及Stratton向npm的支援團隊求助。Schlueter嘗試以溝通解決爭拗不果,最終npm認為一個有足夠知識的用家輸入「npm install kik」時,會預期安裝的東西跟Kik(通訊軟件)有關,因此根據其政策決定把模組的名字給予Kik公司。
Koçulu不接受這個決定。他對Schleuter說︰「我認識你多年,不曾想像你會站在企業專利律師的一方,來威脅開放源碼計劃的貢獻者。」失望的Koçulu更要求npm刪除其帳戶,以及他上載的所有模組︰「我不願再成為npm的一份子,如果你不刪除的話,讓我知道如何刪除,我應該有權刪除自己在npm的所有東西。」
Koçulu在網誌上解釋,事件令他意識到npm屬於私人領域,在這領域中企業比人民更有權力。但他參與開放源碼的計劃是因為他相信「權力歸於人民」,故決定刪除模組。Schleuter給了他一個指令,可以一次過把他在npm的所有東西刪除。他輸入指令,把在npm上註冊的273個模組悉數刪除——雖然有部份仍可在GitHub上找到。
重要的11行
在刪除模組之前,Koçulu未有警告其他使用者——特別是那些用上其模組的開發人員。在那273個模組當中,有一個稱為left-pad,只有11行程式碼︰
module.exports = leftpad;
function leftpad (str, len, ch) {
str = String(str);
var i = -1;
if (!ch && ch !== 0) ch = ' ';
len = len - str.length;
while (++i < len) {
str = ch + str;
}
return str;
}
這個模組的工作非常簡單︰把一個字串的開頭補上字符,使其長度符合要求。假如程式員希望所有字串都是5個字元,不夠長的話都用0補上,使用left-pad就能把「369」變成「00369」。
如此簡單的left-pad很受歡迎——根據npm統計數據,在過去一個月有超過200萬次下載。很多開發人員也許未曾聽過left-pad,但在不經意的情況下用到這個模組——可能是他們使用的模組用到left-pad,可能是他們使用的模組所使用的模組……如此類推。
一子錯,滿盤皆落索
當left-pad在3月23日上午5時30分(香港、台灣時間)於npm模組庫上消失後,npm技術團隊觀察到每分鐘有數以百計的故障訊息。其中一個受影響的大型軟件包是JavaScript編譯器Babel︰Babel用上一個稱為“line-numbers”的模組,而line-numbers使用到left-pad。Facebook、Netflix、Reddit及Spotify等都使用Babel來優化其程式碼,因此也受到left-pad的消失所影響。
不足10分鐘內,程式員Cameron Westland嘗試解決問題,他發佈了功能相同的模組,並命名為“left-pad”——因為Koçulu已刪除他的模組,Westland可使用相同名字,而且Koçulu原本的程式碼以開源方式發佈,任何人均可自由使用。
零死角網路訊號為質感居家設計風格加分!入主空間設計師陳琬婷體現剛柔美學的現代輕奢宅
我們想讓你知道的是
現代人生活離不開網路,路由器為居家必備的3C設備用品,然而對於重視生活風格的人來說,天線、線路、塑膠殼色彩等視覺外觀往往不盡人意,是空間設計中經常必須為現實面、實用面妥協的物件,此時不妨以 TP-Link 作為你的空間最佳解答,也讓空間設計師為你解析美感與實用性的平衡!
剛柔兼具的空間美學
作品《大隱水岸(Grand Waterside Retreat)》甫獲得德國 iF DESIGN AWARD、擁有多年空間設計經驗的舒杰室內裝修設計總監陳琬婷 Debby,無論是浪漫新古典、極簡線條、大器沈穩風格全都難不了她,其位於北部的最新老宅改造作品,以現代輕奢風格來為生活鋪陳詮釋,「所謂輕奢其實有幾個元素,首先在空間中主要會創造明亮、清新的感受,藉由俐落的線條塑造現代性,並透過金屬元素提亮細節,為居家帶來一點儀式感。」因此在色彩哲學上,Debby 提出 tone on tone 的策略,大面積選用軟調的米白、木質暖色以及些許的金屬光澤,形塑雅緻氛圍。擁有空間風格一致性的同時,透過材質搭配、比例拿捏的變化,創造不失層次的視覺豐富感受。
而 Debby 最為擅長的「剛柔美學」也可在此見得,「每種材料都有不同的表情,色彩冷調深沈的石紋與筆直的線條,或者鍍鈦的金屬高質感全都比較剛強,我通常會再加上弧線語彙來軟化空間質感。」在整體看來較為輕盈柔和的空間裡,Debby 透過小面積的剛性,為空間質感再升級,帶來剛剛好的舒適氣息,而這恰好便是一種平衡的哲學 ,「剛與柔就像陰與陽、理性與感性,彼此之間得以相互調和,我希望所有人走進空間時都能感受到舒適自在,身心靈皆可以擁有正能量。」這也是 Debby 設計時的中心思想。
使用者先決的設計原則
「從使用者的角度出發比空間設計師呈現什麼風格來得重要。」作為一名空間設計師,Debby 認為設計仍須以使用者為主,「在住宅設計裡,人是空間主角,而非要將個人縮小來適應空間的風格。」因此當美感與實用性互斥時,Debby 毫不猶豫地將實用性擺在前面,但仍有其兼容美感的解決之道。「空間裡如果有一個龐然大物,或者物體的顏色、形體過於突兀時,下意識還是會影響使用者的生活感受,在空間設計的全盤思考下,我會透過與屋主溝通產品的使用頻率、性質與必要性等細節,調整擺設位置或設計專屬空間來達成與視覺的平衡。」就如按摩椅,設計師便推薦放置於如臥房的私人空間,較不影響客廳的整體開闊性,而掃地機器人也通常會預留專屬的充電空間,屋內原有的電表也經常客製化提出巧妙設計。
產品設計給予空間設計師助力
「好的工業設計、產品設計基本上來說就是個藝術品,而藝術確實能夠帶來療癒人心的作用,懂得從人性角度去思考而設計出來的產品,絕對會對空間設計有幫助。」Debby 以 TP-Link 全新推出的 AX3000 雙頻 Wi-Fi 6 Archer Air R5 路由器與 AX3000 雙頻 Wi-Fi 6 Archer Air E5訊號延伸器為例,簡約輕薄的美型設計,顛覆性地跳脫設備的外觀印象,不只外型輕薄不佔空間、色調百搭,更可以固定於牆上或櫃體平面,融入各式風格空間設計近乎無難度,因此對於設計師來說,得以更無顧慮地自由發揮空間創意魔法,無需為隱藏路由器卻無訊號而傷腦筋。且 AX3000 雙頻 Wi-Fi 6 Archer Air R5 路由器與AX3000 雙頻 Wi-Fi 6 Archer Air E5 訊號延伸器皆可使用 3M 黏合劑及隨附支架便可輕鬆黏貼於壁面,且外型更比插座還薄,只有8 mm厚度,輕巧便利的設計,Debby 更突發奇想提出將其固定於餐桌底下接地插的做法,使朋友來家中聚餐、聚會的訊號不斷線。
TP-Link Air 系列內外兼具,質感生活風格零犧牲
除了美觀之外,TP-Link 可沒在最重要的功能性少下功夫,在一貫的空間風格調性裡, AX3000 雙頻 Wi-Fi 6 Archer Air R5 路由器搭配 AX3000 雙頻 Wi-Fi 6 Archer Air E5 訊號延伸器,可以提供穩定的網路訊號覆蓋,讓家中網路訊號零死角。值得一提的是,TP-Link AX3000 雙頻 Wi-Fi 6 Archer Air R5 路由器本就能夠覆蓋 40坪左右的訊號面積,對於都會住宅坪數而言得以一個抵全空間使用。這個實用性也讓 Debby 感到驚喜與方便,「就算沒有預留路由器與訊號延伸器的線路與位置,住宅皆有離地 30 公分的電器插座,AX3000 雙頻 Wi-Fi 6 Archer Air R5 路由器與 AX3000 雙頻 Wi-Fi 6 Archer Air E5 訊號延伸器置於這種插座旁也非常順眼不違和。」也恰好印證了「設計的無形」——讓人無察覺異狀、感受到「理應如此」的順暢使用體驗。
而且若有房內收訊不佳的情況,也無需再費大周章拉網路線,仰賴 TP-Link AX3000 雙頻 Wi-Fi 6 Archer Air E5 訊號延伸器的協助,就能穩定於居家內所有空間延伸訊號,且只要使用一個 Wifi 名稱無須再更換WiFi信號。
輕鬆設定,靈活打造全家的Wifi
乘著智能家電的風潮,無論是設計師與屋主,皆不需擔憂複雜的設定問題,TP-Link AX3000 雙頻 Wi-Fi 6 Archer Air R5 路由器與 AX3000 雙頻 Archer Air E5 訊號延伸器的設定操作簡易,前者只要接上電源與網路線便可順暢運作,而後者則是一條電源即可。
通電後,透過 TP-Link Tether App 設定與快速管理居家網路,使用一個 Wifi 名稱,便可連結64台的設備,不用像以往路由器從客廳走到房間時還要更改不同的Wifi名稱才會維持穩定的訊號,可讓全家成員使用各式聯網產品或移動到各處都不受干擾又便利。而其中內建的 HomeShield 家庭網路保護套組服務,得以識別所有智慧聯網設備,每當有新設備連接 App 時,將會以訊號通知,如有疑慮甚至可以選擇封鎖陌生連結,免於 Io T 設備遭受攻擊,保護家中網路環境,居家上網更安心。
輕鬆享受輕奢風格設計,也以 TP-Link 打造訊號零死角的智慧居家,證明了擁抱質感生活美學與享有當代科技,兩者並非單選題的雙贏局面!
■ Wi-Fi 6 Archer Air R5 路由器 購買網址:https://bit.ly/3Un8TpH
■ Wi-Fi 6 Archer Air E5訊號延伸器 購買網址:https://bit.ly/3UoSVLO