280字編程挑戰:把一條推特長度的代碼玩出花

機器之心報道

推特與計算機能擦出什麼樣的火花呢?大多數人可能就想到在計算機上發推特唄。但是,有人就不這麼想。酷愛計算機演進史和推特的 Dominic Pajak 創建了 BBC Micro Bot,它能夠將一條 280 字符的推特經過模擬處理進而創建 3 秒時長的視頻。

280字編程挑戰:把一條推特長度的代碼玩出花


開源社區總是鼓勵人們分享代碼。近日,BBC 舉辦了這樣一個活動,名為 BBC Micro Bot。比賽要求參賽者在推特上 @BBC Micro Bot 這一賬號,賬號機器人會收集推特代碼,然後在類似於 80 年代的 BBC Microcomputer 上運行,並輸出一個 3 秒鐘的 gif 動畫,而這一微電腦是 Basic 語言運行的。

乍一聽並不覺得有什麼難度,但我們會發現,參賽者們在一篇推特所限制的字數(280 字)下,會盡可能的展示出他們令人吃驚的編程技巧。這些參賽者當中不乏有我們熟悉的大神,如 Raspberry Pi 的創始人 Ebon Upton 等。

該賬號的發起者 Dominic Pajak 表示,@bot 進行輸出的帖子在短短的幾周內達到了 1000 萬的訪問量,大約每一週運行 1000 餘個 Basic 程序。

280字編程挑戰:把一條推特長度的代碼玩出花

280字編程挑戰:把一條推特長度的代碼玩出花

280字編程挑戰:把一條推特長度的代碼玩出花

開發者的自動程序可以按照算法繪製不同的圖案。

Upton 為 BBC Micro Bot 的原始 CPU,即 6520(8 字節微處理器)編寫了 150 字節的數據和機器代碼。同時模擬器在處理時也非常全面。然後,他利用 Base64 Binary-to-text 編碼方案將二進制數據轉化為 tweetable 文本,並利用具有解碼功能的 Basic 小程序將數據封裝起來,進而啟動機器代碼。之後,人們一直想用更復雜的編碼方案來封裝更多數據。

280字編程挑戰:把一條推特長度的代碼玩出花


BBC Micro Bot 技術詳解及演化

BBC Micro Bot 的創建者 Pajak 是 Arduino 的商務拓展副總裁,他非常熱愛計算機演進史和推特,因此創建了這個項目。Pajak 表示,將計算機和推特二者結合起來的點子很不錯。此外,他選擇創建 Micro Bot 也有技術方面的理由,BBC Basic 主要是由 Sophie Wilson 開發的,這是目前為止最好的 Basic 實現,其中的一些特性使得代碼「縮小」成為可能。

280字編程挑戰:把一條推特長度的代碼玩出花

BBC Micro Bot 創建者 Dominic Pajak。

從技術層面具體來說,Bot 是由 Javascript 語言編寫的,並作為 JSbeed 模擬的前端。當 bot 發現一條推特,它會進行信息過濾,然後將文本添加至模擬的 BBC Micro 鍵盤緩衝區。經過 30 秒的模擬時間,bot 使用 ffmpeg(音視頻記錄、轉換和流處理的完整、跨平臺解決方案)創建 3 秒時長的視頻。需要注意的是,bot 最初是在樹莓派 4 上運行,之後遷移至了亞馬遜網絡服務(Amazon Web Service)上.

用戶對此有什麼樣的反饋呢?Pajak 表示自己收到了很多正面的反饋。人們對首次通過推特使用 BBC BASIC 非常好奇,也發現了其中的很多樂趣,拉丁美洲的用戶甚至創造出了很多口號和表情包。

與此同時,bot 程序的複雜程度也大幅提升,從簡單的 Basic 程序到 Upton《生命遊戲》的實現等等。隨著程序門檻不斷提升,Pajak 也在思考 280 字符的代碼是否真的能夠實現這些功能。因此,他轉向使用 Katie Anderson Windows 3.1 logo 的搞笑編碼(tongue-in-cheek encoding),以及 Paul Malin 經典彈力球 demo 的復現,後者通過特殊的編碼方式將 361 個 ASCII 字符代碼壓縮至 280 個 Unicode 字符的推特內容。

280字編程挑戰:把一條推特長度的代碼玩出花

Katie Anderson 的 Windows 3.1 logo 搞笑編碼。

280字編程挑戰:把一條推特長度的代碼玩出花

Paul Malin 經典彈力球 demo 復現。

如果有人想要在 Apple II 和 Commodore 計算機上創建類似的 Bot,Pajak 會給出指導建議。此外,Pajak 正考慮在實體 BBC Micro 上執行這些推文,並表示已經使用 Arduino MKR1010 將 BBC Micro 聯網了。

參考鏈接:https://spectrum.ieee.org/tech-talk/computing/software/show-the-world-you-can-write-a-cool-program-inside-a-single-tweet


分享到:


相關文章: