[導讀]關注星標公眾號,不錯過精彩內(nèi)容來源|?機器之心2009年,F(xiàn)acebook推出了一份改變世界的代碼——點「贊」按鈕?!纲潯故前↙eahPearlman和JustinRosenstein在內(nèi)的數(shù)名程序員和設計師的創(chuàng)意。他們認為Facebook用戶經(jīng)常太忙而無法在朋友的帖子上發(fā)表評...
關注 星標公眾號,不錯過精彩內(nèi)容
來源 | 機器之心
2009 年,F(xiàn)acebook 推出了一份改變世界的代碼——點「贊」按鈕?!纲潯故前?Leah Pearlman 和 Justin Rosenstein 在內(nèi)的數(shù)名程序員和設計師的創(chuàng)意。他們認為 Facebook 用戶經(jīng)常太忙而無法在朋友的帖子上發(fā)表評論,但是如果有一個簡單的按鈕可以使用,那一定會大受歡迎?!概笥褌兛梢愿l繁、更輕松地相互點贊互動」,Pearlman 說。
這個按鈕奏效了,甚至有點超乎想象。到 2012 年,「贊」這個按鈕已經(jīng)有了超過 1 萬億次的點擊。但它也產(chǎn)生了副作用。我們發(fā)布一張照片后,會坐立不安地刷新頁面,等待更多的「贊」。我們想知道為什么別人的贊越來越多。因此,我們開始在社交網(wǎng)絡中「暗暗發(fā)力」:變得更有趣、更犀利、更迷人、更極端。
代碼重構(gòu)了我們的生活。正如風險資本家 Marc Andreessen 寫的那樣,「軟件正在吞噬整個世界」,不過說軟件正在消化這個世界可能更準確。
因此,美國 Slate 雜志做了這樣一個調(diào)查。為了厘清改變世界的那些軟件,編輯們對計算機科學家、軟件開發(fā)人員、歷史學家、政界人士和新聞工作者進行了民意調(diào)查。他們需要選擇:哪些代碼有巨大影響力?哪些改變了我們的生活?有 75 位人士提出了自己的想法,Slate 選擇了其中 36 位(譯文有刪減)。這并不是一個完整的清單,因為有影響力的代碼太多。該清單旨在激發(fā)思想——幫助我們重新思考代碼如何影響我們的生活以及程序員的決策如何影響未來。
二進制穿孔卡片(1975 年)
第一種代碼
二進制編程出現(xiàn)時間比計算機都早。Basile Bouchon 是第一個在紙上打孔并用它來控制機器的人:1725 年,他發(fā)明了一種織機,該織機根據(jù)所送入的穿孔紙編織出不同圖案。打孔是「1」,沒有打孔是「0」。此后機器發(fā)生了很多變化,但基本的代碼組成并沒有改變。——Elena Botella, Slate 執(zhí)行的第一個現(xiàn)代代碼(1948 年)
引領了計算機代碼的使用和核災難計算機模型的出現(xiàn),為冷戰(zhàn)時期的軍備競賽打下了基礎
電子數(shù)字積分計算機是第一臺可編程電子計算機。它于 1945 年完成,通過在許多組件之間進行連接來為每個新問題進行配置。當一項任務(例如加法)完成時,一個脈沖會觸發(fā)下一項任務。但是幾年后,馮·諾依曼(Von Neumann)和 Los Alamos 的科學家 Nicholas Metropolis 改進了 ENIAC,運行了在計算機上執(zhí)行的第一條現(xiàn)代代碼:從可尋址的只讀存儲器(ENIAC 的功能表開關)執(zhí)行數(shù)百條數(shù)字指令。他們使用蒙特卡洛技術(shù)模擬了在新墨西哥州的洛斯阿拉莫斯國家實驗室提出的幾種原子彈設計的爆炸過程,通過這種方法逐步模擬了復雜系統(tǒng),繪制了可能結(jié)果的概率分布。馮·諾依曼和梅特羅波利斯向洛斯阿拉莫斯的核科學家發(fā)送了 20,000 多張卡片,通過引爆彈頭追蹤了模擬中子的過程。如今,此代碼的后續(xù)版本仍在洛斯阿拉莫斯使用?!猅homas Haigh,《ENIAC in Action: Making and Remaking the Modern Computer》合著者
GRACE HOPPER 的編譯器(1952 年)
使計算機處理單詞成為可能
Grace Hopper 在對一臺早期計算機編程時,為了簡化整個過程決定將編程語言植根于人類語言?;翮辏℉opper)在第二次世界大戰(zhàn)期間加入了美國海軍預備役。她知道,像她的軍事上司一樣,人們都在努力理解二進制代碼。如果編程語言可以是基于英語的,那么這項工作就不會那么容易出錯,并且對于那些不是數(shù)學博士的人來說也更容易理解。
一些人對此想法不以為然,但到了 1950 年代初,她設計了一個編譯器,即一組指令,將一種更易懂的代碼轉(zhuǎn)換為機器直接處理的低級代碼。她和她的實驗室使用該工具開發(fā)了 FLOW-MATIC,這是第一種將英文單詞融入該過程的編程語言?!狹olly Olmstead, Slate
太空戰(zhàn)爭!(1961 年)
第一個分布式視頻游戲(Spacewar)
電子郵件的起源(1965 年)
Come on,電子郵件來了!
阿波羅 11 號登月艙救援代碼(1969 年)
防止登月艙計算機在太空中空間耗盡的代碼
Hello, World!(1972 年或更早)
引領一代又一代人打開編程大門的代碼
當你坐下來學習一種新的編程語言時,教程要求你做的第一件事就是讓計算機顯示「Hello,world!」。也許最著名的早期示例來自貝爾實驗室的「C—A 編程教程」。該教程寫于 1974 年,盡管在 1972 年的手冊中也發(fā)現(xiàn)了另一種更早的語言 B。
「Hello,world!」這是極好的教學方法。這是一項小的、可實現(xiàn)的任務,能夠使學生有成就感。這是一個標準,有助于說明不同編程語言之間的差異。這也是高級程序員確保安裝新環(huán)境后一切正常的一種快速簡便的方法。(有時程序員使用「到'hello world'的時間」比較語言和環(huán)境的速度。)也許最重要的是,「Hello,world!」能幫你打開編程的大門,它告訴你這就是新世界?!狢hris Noessel,IBM AI 設計主管。
以空字符結(jié)尾的字符串(1972 年)
計算史上最大的災難性設計錯誤
1972 年,Dennis Ritchie 做出了一個重大決定:用一種名為「空字符結(jié)尾字符串」(null-terminated string)的新語言來表示文本。這個概念早就出現(xiàn)了,但是他把其寫進了他稱為 C 的新語言中,這個決定就一直影響我們到現(xiàn)在。
編程語言代表一段文本的主要方式有兩種:一是具有固定、顯式長度——「只包含 10 個字符,不能再多了」或者可以以空值結(jié)尾——「這里有一串字符,繼續(xù)努力,直到看到零字節(jié)為止!」
C 代碼中有一個非常常見的錯誤,在將一個長字符串復制到一個較短的字符串中時,會出現(xiàn)結(jié)尾溢出,即你破壞了剛好在附近的其他數(shù)據(jù)。就像在白板的邊緣上亂涂亂畫一樣。
除了僅使程序出現(xiàn)故障外,還可以利用此類錯誤來改變程序行為,方法是使用經(jīng)過精心設計的特定數(shù)據(jù)覆蓋某些內(nèi)容。這些就是緩沖區(qū)溢出攻擊。你聽說過的幾乎所有安全漏洞都從 1988 年的 Morris Worm 開始。
你必須在 C 語言中仔細編碼以避免此類錯誤,但是此類錯誤仍然容易發(fā)生。從路由器到「智能」燈泡,幾乎每種現(xiàn)代語言都避開了空字符結(jié)尾字符串,但是 C 和 C 仍然在語言界有支配地位。因此,近 50 年后的現(xiàn)在,我們還在「飽受折磨」?!狫amie Zawinski,Netscape 開發(fā)人員、Mozilla.org 創(chuàng)始人
溫哥華股票交易所的交易錯誤(1982 年)
不起眼的小數(shù)誤差造成極大損失
1982 年初,溫哥華證券交易所推出了一種電子股票指數(shù),該指數(shù)最初定為 1000 點。在兩年內(nèi),它跌了一半,這在 1980 年代初期的牛市中似乎匪夷所思。一項調(diào)查顯示,使用 floor() 而非 round(),會造成對索引的計算錯誤。該命令意味著該值會被直接截止而不是四舍五 入到小數(shù)點后三位。(數(shù)字計算機必須具有有限的分辨率,因此需要四舍五入或直接截止。)因此,如果索引計算為 532.7528,則會被存儲為 532.752,而不是四舍五入為 532.753。在每天數(shù)千次計算的過程中,這種看似很小的差異——每次必須四舍五入時未進行四舍五入——導致了巨大損失。這個編程錯誤最終在 1983 年 11 月得到解決,當時周五的收盤指數(shù)在 500 點左右。問題解決后,該股票于周一重新開盤,指數(shù)就超過了 1,000 美元,損失的價值得以恢復?!狶av Varshney,伊利諾伊大學香檳分校助理教授
THERAC-25(1985-1987 年)
過度自信是致命的
當真相浮出水面時,各大媒體的頭版頭條就對機器現(xiàn)代化發(fā)出了警告。《洛杉磯時報》宣稱:「在這個復雜時代,軟件漏洞變得致命?!挂慌_用于治療癌癥的機器在幾家醫(yī)療機構(gòu)中對六名患者進行了大劑量過量輻射,造成至少三人死亡。
研究人員發(fā)現(xiàn),Therac-25 的代碼可能帶來致命的錯誤。該機器提供低功率和高功率治療,后者需要一個金屬設備來過濾光束。但是由于軟件中的錯誤,操作員可能會在沒有金屬設備的情況下意外觸發(fā)高功率模式。
Therac-25 被設計為 Therac-20 的「改進」,設計時被認為是萬無一失的,不需要外部安全檢查。結(jié)果:幾起死亡歸咎于過度自信的工程師,他們沒有考慮到失誤的可能性?!狹olly Olmstead
互聯(lián)網(wǎng)中繼聊天(1988 年)
最初的在線掛機
莫里斯蠕蟲病毒(1988 年)
驚覺互聯(lián)網(wǎng)已經(jīng)如此龐大
羅伯特·莫里斯(Robert Morris)和互聯(lián)網(wǎng)本身都還年輕。當時 23 歲的康奈爾大學研究生 Morris 發(fā)布了「莫里斯蠕蟲病毒(Morris Worm)」,這是所謂的「互聯(lián)網(wǎng)上的首次重大攻擊」。近 60,000 臺連接到互聯(lián)網(wǎng)的計算機中有 10%遭到破壞,造成數(shù)百萬美元的損失,該事件導致《紐約時報》首次刊登了「互聯(lián)網(wǎng)」一詞。即使是精通技術(shù)的人也會吃驚于蠕蟲病毒的影響范圍之廣。Morris 說,他從未想過有如此大的損失,他成為根據(jù)《計算機欺詐和濫用法》被起訴的第一人。在被判處三年緩刑后,他成為著名的創(chuàng)業(yè)孵化器 Y Combinator 的共同創(chuàng)始人和麻省理工學院的計算機科學助理教授?!狤lena Botella
只有一行代碼的病毒(日期:90 年代)
單行代碼的功能以及計算機驚人的脆弱
上圖展示的是一種名為「fork 炸彈」的單行病毒。它需要一些特定的條件才能被觸發(fā)(包括較舊、易受影響的 Unix 操作系統(tǒng)副本)。如果在 Bash 中鍵入此命令,它將一遍又一遍地復制自己,直到耗盡計算機中的所有可用內(nèi)存并導致崩潰。
它之所以有名不是因為它相對于其大小所表現(xiàn)的危險性,而是它使用冒號作為函數(shù)名稱。大多數(shù)函數(shù)(可重復使用的代碼行)都以描述性方式命名,例如「Print」或「isThisEmailValid」,但并沒有規(guī)定必須如此。在大多數(shù)計算語言中,不能使用冒號作為函數(shù)名稱,但在 Bash 中可以。
2002 年,我在德國法蘭克福的 Angewandte Kunst 博物館第一次看到作為展品的這行代碼。博物館中沒有展示多少代碼?!狢hris Noessel
HTML 超鏈接(1990 年)
連接一切的工具
JPEG(1992 年)
改變了我們與攝影的關系
Mosaic 瀏覽器(1993 年)
第一個獲普遍使用且能夠顯示圖片的網(wǎng)頁瀏覽器
跟蹤像素(1993 年)
現(xiàn)代數(shù)據(jù)收集始于這些看不見的圖像。
通過跟蹤像素下載,他們會了解了你的身份和位置,并觸發(fā)一個 cookie 下載到你的瀏覽器中。該 cookie 使廣告商可以在多個網(wǎng)站上跟蹤你。
像素跟蹤的成功直接導致了 Facebook 的點「贊」按鈕出現(xiàn),該按鈕可在每個嵌入的網(wǎng)站上進行跟蹤。大量的數(shù)據(jù)收集實現(xiàn)了高度定向,也使 Facebook 廣告大獲成功,最終 Facebook 從媒體公司口袋里賺到數(shù)十億美元。
Robots.txt(1994 年)
一個對搜索及其他應用均具有重大意義的小工具
維基(1994 年)
為維基百科鋪平了道路
第一個彈出廣告(90 年代中期)
互聯(lián)網(wǎng)的「害群之馬」
Google 的 PageRank 算法(1996 年)
革新我們組織知識的方式
在 PageRank 之前,搜索引擎根據(jù)我們的查詢詞是否與文檔中的詞匹配來查找信息。但是對于 PageRank,拉里·佩奇和謝爾蓋·布林提出了一個絕妙的主意:知識是社會性的,搜索也應該是。他們創(chuàng)建了一種算法,通過網(wǎng)絡浩瀚的超鏈接關系來確定一個頁面的等級。一個頁面的 PageRank 是由所有鏈向它的頁面的重要性經(jīng)過遞歸算法得到的,一個有較多鏈入的頁面會有較高的等級。正是兩位這種獨具慧眼的洞察力造就了 Google 的當今地位。——Clive Thompson
失聯(lián)的火星氣候軌道飛行器(1999 年)
因數(shù)學錯誤而失敗的任務
1999 年 9 月 23 日,NASA 的科學家與耗資 1.25 億美元的「火星氣候軌道飛行器」失聯(lián)。后來的調(diào)查確定了原因:承包商使用英制單位為軌道飛行器編寫了程序,這在美國是標準的,但是 NASA 的軟件使用了公制。兩段代碼之間一次簡單的通訊錯誤使軌道飛行器飛向了未知的地方。
人們很容易把這種度量錯誤看做偶然,但這表明當下這個互聯(lián)軟件的世界多么脆弱。所有互聯(lián)的技術(shù)(電話、航天器、機器人榨汁機等等)都依賴于定義與他人進行通信的方式的接口。極小的差異也會導致混亂。——Charles Duan
比特幣(2008 年)
激發(fā)人們對某種貨幣的信心的代碼
點贊按鈕(2009 年)
它催化了監(jiān)視經(jīng)濟。
Facebook 設計的點「贊」按鈕,使我們可以向世界展示我們的喜歡《辛普森一家》或炸薯條。但實際上,它利用了我們的認知偏見和設計的力量,誘使我們分享更多的信息。它們利用上面提到的跟蹤像素在互聯(lián)網(wǎng)上跟蹤我們,收集有關我們?yōu)g覽習慣的數(shù)據(jù)。然后,F(xiàn)acebook 利用該信息,并將其行為定位算法賣給廣告商。如果一家戶外用品公司想要做廣告,那么 Facebook 可以鎖定那些「點贊」遠足信息、訪問露營網(wǎng)站以及有戶外朋友的人。當這些用戶給公司的廣告點贊時,該信息就會反饋到定位算法中。因此,監(jiān)視和商業(yè)操縱會形成循環(huán)。都是因為一個小小的藍色豎起大拇指。——Ari Ezra Waldman,紐約法學院教授
波音 737 Max(2017 年)
軟件錯誤加上公司貪婪,導致數(shù)百人喪生,大批飛機停飛
2018 年 10 月,獅航 610 航班起飛后不久就墜入海中。波音向公眾保證飛機是安全的,并表示需要更多的飛行員訓練和「軟件升級」。但是僅僅四個月后,埃塞俄比亞航空又有一架飛機失事。飛行員努力將機頭抬起 20 次,但飛機的自動系統(tǒng)卻將機頭往下拉。起飛后幾分鐘內(nèi),就機毀人亡。全球航空當局當即將飛機停飛。調(diào)查顯示,墜機事故是由 737 Max 的設計引起的,尤其是那些鮮為人知的軟件,可能迫使飛機不斷俯沖?!狹ar Hicks,技術(shù)史學家,《Programmed Inequality (http://www.amazon.com/dp/0262535181/?tag=slatmaga-20)》作者。
原文鏈接:https://slate.com/technology/2019/10/consequential-computer-code-software-history.html
聲明:本文素材來源網(wǎng)絡,版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我聯(lián)系刪除。
------------ END ------------
本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關鍵字:
驅(qū)動電源
在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。
關鍵字:
工業(yè)電機
驅(qū)動電源
LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...
關鍵字:
驅(qū)動電源
照明系統(tǒng)
散熱
根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。
關鍵字:
LED
設計
驅(qū)動電源
電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...
關鍵字:
電動汽車
新能源
驅(qū)動電源
在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...
關鍵字:
發(fā)光二極管
驅(qū)動電源
LED
在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...
關鍵字:
LED照明技術(shù)
電磁干擾
驅(qū)動電源
開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源
關鍵字:
LED
驅(qū)動電源
開關電源
LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關鍵字:
LED
隧道燈
驅(qū)動電源
LED驅(qū)動電源在LED照明系統(tǒng)中扮演著至關重要的角色。由于LED具有節(jié)能、環(huán)保、長壽命等優(yōu)點,使得LED照明在各個領域得到廣泛應用。然而,LED的電流、電壓特性需要特定的驅(qū)動電源才能正常工作。本文將介紹常用的LED驅(qū)動電...
關鍵字:
LED驅(qū)動電源
led照明
LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電源轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關鍵字:
LED
驅(qū)動電源
高壓工頻交流
崧盛股份9日發(fā)布投資者關系活動記錄表,就植物照明發(fā)展趨勢、行業(yè)壁壘等問題進行分享。植物照明未來市場需求廣闊崧盛股份指出,植物照明將會走向長期產(chǎn)業(yè)領域。主要原因有三:第一,LED植物照明賦能終端種植更具有經(jīng)濟價值。由于LE...
關鍵字:
崧盛股份
驅(qū)動電源
在當今高度發(fā)展的技術(shù)中,電子產(chǎn)品的升級越來越快,LED燈技術(shù)也在不斷發(fā)展,這使我們的城市變得豐富多彩。 LED驅(qū)動電源將電源轉(zhuǎn)換為特定的電壓和電流,以驅(qū)動LED發(fā)光。通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流電(即...
關鍵字:
LED
驅(qū)動電源
高壓直流
人類社會的進步離不開社會上各行各業(yè)的努力,各種各樣的電子產(chǎn)品的更新?lián)Q代離不開我們的設計者的努力,其實很多人并不會去了解電子產(chǎn)品的組成,比如LED電源。
關鍵字:
LED
驅(qū)動電源
低壓直流
隨著科學技術(shù)的發(fā)展,LED技術(shù)也在不斷發(fā)展,為我們的生活帶來各種便利,為我們提供各種各樣生活信息,造福著我們?nèi)祟?。LED驅(qū)動電源實際上是一種電源,但是它是一種特定的電源,用于驅(qū)動LED發(fā)射帶有電壓或電流的光。 因此,LE...
關鍵字:
LED
驅(qū)動電源
電流
LED燈作為一種新型節(jié)能和無污染光源,由于其特有的發(fā)光照明特性,在現(xiàn)代照明應用中發(fā)揮著革命性的作用。作為 LED 照明產(chǎn)業(yè)鏈中最為核心的部件之一,LED 驅(qū)動電源的驅(qū)動控制技術(shù)所存在的可靠性低、成本高等典型問題一直制約著...
關鍵字:
多路
LED
驅(qū)動電源
隨著社會的快速發(fā)展,LED技術(shù)也在飛速發(fā)展,為我們的城市的燈光煥發(fā)光彩,讓我們的生活越來越有趣,那么你知道LED需要LED驅(qū)動電源嗎?那么你知道什么是LED驅(qū)動電源嗎?
關鍵字:
LED
開關電源
驅(qū)動電源
早前有新聞稱,Cree在2018年開始宣布轉(zhuǎn)型高科技半導體領域,并一邊逐漸脫離照明與LED相關業(yè)務,一邊持續(xù)投資半導體。在今日,Cree宣布與SMART Global Holdings, Inc.達成最終協(xié)議,擬將LED...
關鍵字:
cree
led照明