(给程序员的那些事加星标)

转自:机器之心

【导读】:推特与计算机能擦出什么样的火花呢?大多数人可能就想到在计算机上发推特呗。但是,有人就不这么想。 酷爱计算机演进史和推特的 Dominic Pajak 创建了 BBC Micro Bot,它能够将一条 280 字符的推特经过模拟处理进而创建 3 秒时长的视频。

a9c88b17b671b7ef540b1a9083bec6b9.png

开源社区总是鼓励人们分享代码。近日,BBC 举办了这样一个活动,名为 BBC Micro Bot。比赛要求参赛者在推特上 @BBC Micro Bot 这一账号,账号机器人会收集推特代码,然后在类似于 80 年代的 BBC Microcomputer 上运行,并输出一个 3 秒钟的 gif 动画,而这一微电脑是 Basic 语言运行的。 乍一听并不觉得有什么难度,但我们会发现,参赛者们在一篇推特所限制的字数(280 字符)下,会尽可能的展示出他们令人吃惊的编程技巧。 这些参赛者当中不乏有我们熟悉的大神,如 Raspberry Pi 的创始人 Ebon Upton 等 。 该账号的发起者 Dominic Pajak 表示,@bot 进行输出的帖子在短短的几周内达到了 1000 万的访问量,大约每一周运行 1000 余个 Basic 程序。

49abcef9cdf8259d7eaf11d4a1c650ee.gif

7c905ca83d70250b1e819547e386404a.gif

12203997497ebc39f9c0af5152547a41.gif

开发者的自动程序可以按照算法绘制不同的图案。 Upton 为 BBC Micro Bot 的原始 CPU,即 6520(8 字节微处理器)编写了 150 字节的数据和机器代码。同时模拟器在处理时也非常全面。然后,他利用 Base64 Binary-to-text 编码方案将二进制数据转化为 tweetable 文本,并利用具有解码功能的 Basic 小程序将数据封装起来,进而启动机器代码。之后,人们一直想用更复杂的编码方案来封装更多数据。

7c07673ae0b6d452977b81e4296707d8.png

BBC Micro Bot 技术详解及演化 BBC Micro Bot 的创建者 Pajak 是 Arduino 的商务拓展副总裁,他非常热爱计算机演进史和推特,因此创建了这个项目。Pajak 表示,将计算机和推特二者结合起来的点子很不错。此外,他选择创建 Micro Bot 也有技术方面的理由,BBC Basic 主要是由 Sophie Wilson 开发的,这是目前为止最好的 Basic 实现,其中的一些特性使得代码「缩小」成为可能。

61a3c6795bc2e7521b2b3c93829ac833.png

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 字符的推特内容。

eb220057dafb38fbe7fe30b0b56bcb67.gif

Katie Anderson 的 Windows 3.1 logo 搞笑编码。

343a05f6958a64516f90f241d97e51bf.gif

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 推荐阅读   点击标题可跳转 微软放弃继续开发 Visual Basic ; 比尔·盖茨 1978 年写的 BASIC 古老程序曝光 ; 36 岁外企程序员的自述:把员工当人的企业还是有的

关注「程序员的那些事」加星标,不错过圈内事

ae59e85c1e034ce82c7845107ef3ed28.png

圈内事,我在看❤️

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐