硬核老王 发布的文章

按:本文来自硬核老王在 LLUG 2023 上海线下沙龙的演讲《高效开源(个人篇)》。

我要开源!

今天,我在这里与大家探讨一个我内心深处热爱的话题——开源。无论出于理想主义还是实用性的目的,我坚信开源的力量。它不仅代表着崇高的思想追求,更为个人和职业发展提供了巨大的机遇。

首先,开源与我们对协作和分享的天性相契合。开源的理念源于这样一种信念:知识应该为所有人所共享,通过携手合作,我们可以取得伟大的成就。这种高尚的理念与我们在教育和成长过程中所受的教育价值观完美契合。拥抱开源不仅仅是关乎技术,它反映了对世界的更广阔理解,以及我们在其中的定位。

此外,积极参与开源对我们的职业发展有着重要的影响。越来越明显的是,许多大型公司强调他们对开源的承诺。通过积极参与开源项目,我们不仅为社区做出贡献,还能提升我们的职业形象。在简历中写上自己的开源参与经历不仅仅令人印象深刻,还展示了我们的奉献精神、主动性和团队协作能力。这向我们的简历增添了一份很“酷”的感觉,使我们在竞争激烈的就业市场中与众不同。

总而言之,我对开源的热爱既源于其崇高的理念,也源于其潜力能够推动个人的成长。通过拥抱开源的理念并积极参与其中,我们可以开启知识和机遇的无限大海。让我们一同踏上开源之旅,发现无尽的可能。

每个人都可以爱开源

无论你是一个懂编码的人,还是一个具备艺术素养的人;无论你是一个善于社交的社交达人,还是一个擅长文字表达的人;又或者,你只是希望多一种新的体验。开源欢迎每一个人的参与。

如果你懂编码,无论是初学者还是经验丰富的开发者,你都可以贡献你的代码。参与开源项目,你可以帮助解决问题,改进功能,甚至发起自己的项目。你的代码将被广泛使用和赞赏,为开源社区做出重要贡献。

如果你有艺术素养,你可以参与开源项目的用户界面设计、图标设计等方面,为项目增添美感和易用性。你的创意和设计可以改善用户体验,为项目赋予独特的视觉风格。

如果你善于社交,开源社区需要你的贡献。你可以参与讨论、解答问题,提供支持和指引给其他开发者。通过分享你的经验和知识,你可以帮助其他人成长,构建一个更加友善和协作的开源社区。

如果你擅长文字表达,你可以成为开源项目的文档贡献者或博客作者。通过撰写清晰准确的文档和文章,你帮助他人理解和使用开源项目,推动项目的传播和发展。

最重要的是,如果你只是想多一种全新的体验,开源将成为你的理想选择。加入开源社区,你将结识志同道合的人,不断学习和成长,分享和接触到创新的思想和技术。

无论你是谁,无论你的技能和背景如何,开源都为你敞开大门。让我们一同参与开源,共同创造一个更加开放、协作和进步的世界。

你的第一步

让我们来讲讲你参与开源之前的第一步。

首先,了解开源是什么。开源不仅仅是一种软件许可证,它更是一种思想和文化。它鼓励知识的分享和合作,追求透明和开放的工作方式。同时,开源也是一种行为模式,要求贡献者共同协作、审查代码、提出改进,并为改进和发展项目做出贡献。

接下来,你需要找到适合你的“社区”。开源是一种群体行为,它由一群以特定方式组合起来的人构成。通过寻找相应的开源社区,你可以与志同道合的人共同工作,相互学习和支持。参与开源社区需要你积极参与讨论和互动,遵守社区准则和规范,以及尊重其他成员的意见和贡献。

最后,你需要知道如何加入。加入开源社区并不是一蹴而就的过程,而是一种渐进的参与。你可以开始通过报告问题或提出改进建议来参与,这样你可以逐渐熟悉项目的工作方式和社区的文化。随着你的参与和贡献增加,你可以逐渐获得更多的权限和责任,成为项目的核心成员之一。

参与开源需要耐心和热情,但它也为你带来了巨大的回报。通过参与开源,你将学习到新的技能,扩展你的专业网络,以及与全球范围内的人一同协作,共同推动项目的发展。

所以,准备好了吗?让我们踏出第一步,开始你的开源之旅吧!

0.0.1

现在,让我们一起来探索版本号 0.0.1,代表你参与开源的初步尝试。

首先,你需要寻求加入的方式。在开源社区中,你可以通过多种途径找到加入的机会,如GitHub、邮件列表、论坛和聚会。这些平台不仅提供了项目的代码和文档,还是交流和互动的重要渠道。通过参与这些平台,你可以与项目的贡献者和其他社区成员进行交流,并了解他们的工作方式和社区文化。

作为一个初学者,你可以先做一个观察者。入乡随俗,了解并尊重项目的规范和准则。学习项目的代码风格、开发流程和沟通方式。这样你将更好地融入社区,并有效地与其他成员进行交流。逐渐举手发言,提出你的观点、问题或建议。

接下来,重要的是踩下你的第一个脚印。你可以通过多种途径贡献自己的力量。你可以报告错误、提出功能请求或修补建议,帮助项目变得更好。你还可以贡献文档、进行本地化工作、提供艺术素材,从而提高用户体验。如果你具备编程技能,你可以提交代码补丁并参与技术讨论,为项目的发展和改进贡献你的一份力量。

切记,第一步并不需要完美。关键是积极参与和贡献,哪怕是小小的一步也能为开源社区带来积极的影响。通过持续的努力和学习,你将逐渐提升自己的技能,获得更多的机会和责任,成为开源社区的重要一员。

0.0.1 可能只是一个小小的版本号,但它标志着你在开源世界里踏出了重要的一步。让我们一同迈向开源之路,共同推动项目的发展和进步。

实践胜过理论

既然说到了开源,那何不将开源精神践行到这篇演讲中呢?因此,我们开发了一个网站,可以让大家用开源的方式来学习和实践开源。

这个网址也很好记:

https://opensource.pragmatic.guide/

这是一个用于实践上面的 0.0.1 版本的试验场,大家不但可以看到这份演讲稿,而且还可以对这份演讲稿进行贡献。

你可以对这份演讲稿的内容进行完善,也可以对它的演示内容和注释进行勘误。亦或,你还可以提供更具象征意义的插图和设计,甚至可以对这个网站的代码和框架进行修改。当然,我们也非常有计划将它翻译为各种语言,因此,如果你擅长其它语言,那更是我们所欢迎的。

通过在这个试验场的实践,你不但可以亲自体验如何进行开源贡献,而且你的每一点贡献都会给后来的贡献者提供帮助。

0.1.0

让我们迈向版本号 0.1.0,这一阶段鼓励你创建自己的“玩具”项目,真正体验动手创作的乐趣和分享的乐趣。

首先,制作你的第一个“玩具”。选择你喜欢的主题,运用你所学的知识和技能来实现它。你可以使用你喜欢的编程语言和开发工具,或者实现你所见到的有趣的功能。就像爱因斯坦的那个“丑陋小板凳”一样,重要的是你的创作过程和体验,而不仅仅是最终的成果。

在这一阶段,许可证并不是必需品。更重要的是展示你的作品,让大家喜欢。许可证可以回头再考虑,在你有了一个更严肃的项目时再去探讨。现在,专注于让你的“玩具”项目更有趣、更吸引人。

然后,让更多人知道你的项目。积极地与别人分享、宣传。告诉尽量多的人,吸引更多的人来一起玩耍。你的“玩具”项目是你开源旅程的第一个里程碑,分享它能够获得鼓励和反馈,也能够吸引其他人的兴趣和参与。

版本号 0.1.0 代表了你在开源世界中迈出的重要一步。通过制作你的“玩具”项目,你能够真正体验到创作和分享的乐趣。坚持下去,继续成长和学习,不断追求更高的版本号,你将不仅在技术上成长,还会体会到开源社区的温暖和互助的力量。

0.2.0

现在,我们来到版本号 0.2.0,你已经有了自己的“玩具”开源项目,可以考虑加入更大的项目,参与贡献。但是在这过程中,你会遇到各种困难和困扰,就像从乡下来到城市被那里的车水马龙吓到,不小心还可能被汽车撞到。但是,除了谨慎之外,千万不要灰心。

首先,找到一个大型项目或社区。这就像从乡下走向城市,你会面临新的挑战和复杂的环境。不要害怕“被车撞到”,这意味着你会遇到难题和困难。但是请记住,每个人都有从头开始的时候,坚持和努力,你会逐渐适应并超越。

接下来,找到一个贡献的方向。了解项目的现状,看看别人做了什么。从你能力范围内的领域开始,尽力去做那些你能做到的事情。参与讨论,寻求指导和建议,逐渐扩展你的影响力和贡献范围。

然后,发起一个拉取请求(PR)或合并请求(MR)。这是你贡献的重要一步。第一个贡献被接纳是一种意外收获,但也可能需要等待和再次尝试。不要灰心,持续改进你的贡献,与项目的核心成员保持沟通,继续努力。

在这个过程中,要保持谦虚和学习的心态。大型项目和社区往往拥有繁忙的开发进程和复杂的治理结构。了解并尊重项目的规则和准则,虚心接受反馈和指导,与其他贡献者和核心成员建立联系,逐渐构建你在项目中的地位和影响力。

版本号 0.2.0 代表了你进一步融入开源社区的一步。不论在面对困难时遇到多少坎坷,始终要保持积极的态度和勇气。你的贡献和成长将不仅仅为你自己带来收益,同时也为开源社区和整个技术世界带来积极的影响。

1、2、3……

现在,我们进入了版本号 1、2、3……,这时你需要评估你的开源之旅。你可以思考这是否是你真正想要的,它给你带来了什么样的收获?你之后会将这看作一种过往的经历,还是继续投入开源,将其作为生活中不可或缺的一部分?

首先,你需要思考这是否是你想要的。回顾一下你经历过的一切,你喜欢这样的参与和贡献吗?有没有让你感到失望或不满意的地方?你是否愿意继续为之付出?这是一个重要的自我评估过程,需要考虑你的兴趣、目标以及与其他生活方面的协调。

接下来,思考开源带给了你哪些收获。盘点一下你在这个过程中获得的成长、技能和人际关系。思考开源为你带来了什么样的价值和意义。这将为你自己决定是否继续投入提供参考。

最后,你需要决定是继续浅尝辄止还是将开源作为一种生活方式。这是一个个人选择,没有对错之分。或许你在开源中找到了快乐和成就感,愿意继续贡献。或者你可能决定尝试其他领域和兴趣,将开源作为一段美好的经历留在回忆中。无论你做出什么选择,重要的是要保持心怀感激和对开源社区的尊重。

版本号 1、2、3……代表你在开源世界迈出的更大的步伐。无论你选择何去何从,这段经历将成为你的宝贵财富。感谢你的参与和努力,无论你的未来道路如何,愿你在其中找到快乐和成长。

结语

开源是一种工作和生活的方式。你也许喜欢,也许不喜欢。

(本文得到了 ChatGPT 帮助,插图由 MJ 生成)

社区批评 Meta 滥用“开源”来称呼其新大语言模型

Meta AI 宣称:“Llama 2 是我们的下一代开源 LLM,可用于研究和商业用途”。但事实上 Llama 2 并没有使用 OSI(开源计划)批准的许可证,也不符合 OSD(开源定义)。其社区协议禁止使用 Llama 2 训练其他语言模型;如果在月活用户超过 7 亿的应用程序或服务中使用该技术,比如那些大公司,则需要获得 Meta 的特殊许可。对于程序员来说,可能是否“开源”并不要紧,他们能够用它来搭建和研究就够了。对于 Meta 高层来说,“开源”被他们当成了一个营销用语,但是这显然会让人对“开源”一词产生混淆。

消息来源:The Register
老王点评:我不觉得 Meta 不知道什么是“开源”,但是这种草率编写的许可协议,显然代表了 Meta 既想借开源的模式打狼,又担心开源反而赔了孩子。这种首鼠两端的想法最后不会有好结果。

人工智能公司承诺将为人工智能生成内容打上水印

OpenAI、Alphabet、Meta、亚马逊和微软等七家主要的美国人工智能公司,承诺开发一个系统来 “标记” 文本、图像、音频、视频等所有形式的人工智能生成的内容,这样用户就能知道什么时候使用了这项技术。这种以技术方式嵌入内容的水印,会让用户更容易发现深度伪造的图像或音频。他们还承诺在发布新的人工智能系统前进行彻底地测试,并分享诸如如何降低风险等信息。

消息来源:路透社
老王点评:这真的能做到到么?或者说,这种水印能被其它人工智能系统去掉吧。更不要说还有开源的人工智能系统。

Cerebras 推出人工智能超级计算机网络

Cerebras 公司推出了 Condor Galaxy 项目,这是一个由九台相互连接的超级计算机组成的网络,专为人工智能模型训练而设计,总性能达到 36 FP16 ExaFLOP。其中第一台超级计算机 CG-1 是由 64 台 Cerebras CS-2 系统整合而成,有 5400 万个内核,能够为人工智能训练提供 4 ExaFLOP 的算力。它支持多达 6000 亿个参数的模型,其配置可扩展至支持多达 100 万亿个参数。其它几台将陆续建设。该公司 CEO 称,“许多云计算公司都宣布了耗资数十亿美元建造的大规模 GPU 集群,但这些集群却极难使用。将一个模型分布到数千个微小的 GPU 上,需要数十名具有罕见专业知识的人员花费数月的时间。CG-1 消除了这一挑战。建立一个生成式人工智能模型只需要几分钟,而不是几个月,而且一个人就能完成。”

消息来源:Anand Tech
老王点评:算力不是问题,将来的人工智能系统才是问题。这样大量训练出来的人工智能系统,真的能按照人们最善良的愿望去发展吗?

IMAX 电影播放仍然需要一台 21 年前的掌上电脑

在《奥本海默》上映之前,IMAX TikTok 官方账号发布的一段视频中,有一个小小的蓝银色 Palm 设备。它是在另一台设备上运行的 Palm Pilot 模拟器,安装在放置卷轴的机器旁边的白色柱子上。这个仿真的设备是 Palm m130,于 2002 年发布。它有一个两英寸的 160x160 显示屏,采用 33MHz 的摩托罗拉处理器,运行 Palm OS 4.1 系统。在 IMAX 影院中,该掌上电脑的工作是控制快转卷轴装置,多年来,在大多数 IMAX 影院里,似乎都有一个实体 m130。IMAX 为什么还要在 21 年前的设备上运行其系统?又为什么会选择在一台蹩脚的 Windows 平板电脑上简单地模拟这台 21 年前的设备呢?因为,放映员们已经习惯了它的存在。

消息来源:The Verge
老王点评:2000 年时,我用过早期 Palm,却没想到在二十几年后 Palm 仍然在用。

特斯拉开始生产可以媲美超算榜首的 Dojo 超级计算机

特斯拉在 2023 年第二季度财报中概述了大规模解决车辆自动驾驶问题所需的四大技术支柱:超大型真实世界数据集、神经网络训练、车辆硬件和车辆软件。特斯拉表示,它已经开始生产用于训练其自动驾驶车队的 Dojo 超级计算机,该计算机宣布于 2019 年。特斯拉已经拥有一台基于英伟达 GPU 的大型超级计算机,它是世界上最强大的超级计算机之一,但新的 Dojo 定制计算机使用的是特斯拉设计的芯片。此前,马斯克曾宣称,Dojo 的运算能力将达到 1 ExaFLOP。目前,据公开披露的信息,美国橡树岭国家实验室的超级计算机 Frontier 是全球首台达到 ExaFLOP 级别的计算机,也是唯一一台。

消息来源:The Verge
老王点评:虽然可能还需要一年时间,但是特斯拉能从芯片到贴片、托盘、机架,乃至于构成一个集群,其计算实力不容小觑。

AMI 固件中发现影响数百万计算机的严重漏洞

这些漏洞是在 AMI 为 BMC(底板管理控制器)制作的固件中发现的,BMC 是集成在服务器主板上的小型计算机,可以远程管理多台计算机。可以访问 Redfish 远程管理接口的本地或远程攻击者可以利用这些漏洞,导致未经授权的访问、远程代码执行和服务器的潜在物理损坏。这一漏洞使其能够在世界上一些最敏感的云环境中获得超级用户身份。在那里,攻击者可以安装勒索软件和间谍恶意软件,在受感染机器的最底层运行。成功的攻击者还可能对服务器造成物理损坏或无限期重启循环。

消息来源:Ars Technica
老王点评:在支持远程管理的固件上出现的安全漏洞,那才叫一个防不胜防。

现存最古老的发行版 Slackware 已经 30 岁了

本周,Slackware Linux 项目庆祝其成立 30 周年。Slackware 1.0 版本于 1993 年 7 月 16 日发布,它是目前仍在积极维护和开发的最古老的 Linux 发行版,虽然它不是第一个 Linux 发行版。最让人敬佩的是,其创始人至今仍在维护该项目。他说,“这真的是一段非凡的旅程,我在 1993 年开始时根本无法预料。”当前版本 Slackware 15 于 2021 年进入测试阶段,并于去年初发布。顺便说一句,MCC Interim Linux 可以说是第一个发行版,它的第一个候选版本 0.97 在 1991 年内核发布几个月后就出现了。Debian 比 Slackware 稍微年轻一点,是在 Slackware 发布两个月后发布的。

消息来源:The Register
老王点评:Slackware 是我用过的第一个 Linux 发行版,那应该是 1997 年或 1998 年。而我那时最喜欢的发行版是 Mandrake。

黑客之王凯文·米特尼克去世

凯文·米特尼克 Kevin Mitnick ,曾被称为 “世界头号通缉黑客”,于上周日去世,享年 59 岁。他曾因侵入和篡改公司计算机网络而入狱服刑,2000 年获释后开始了新的职业生涯,担任安全顾问、作家和公共演讲人。他最为人熟知的是 20 世纪 90 年代的疯狂犯罪,当时他从美国各地的电脑中窃取了成千上万的数据文件和信用卡号码。他利用自己的技能进入美国的电话和手机网络,破坏政府、企业和大学的计算机系统。1995 年,经过长达两年多的追捕,他被美国联邦调查局抓获。

消息来源:Engadget
老王点评:这是一个传奇,虽然是那种以破坏为目的的“黑客”,但依然是传奇的一生。

苹果正在开发自己的人工智能大模型

据报道,苹果正在开发自己的大语言模型以及类似 ChatGPT 的 AI 工具。苹果的大模型代号 “Ajax”,苹果还创建了一个聊天机器人服务,一些工程师称之为 “Apple GPT”。苹果有多个团队在 AI 项目上展开合作,它已成为苹果的一大重要工作。苹果员工表示这项工作基本上是对 Bard、ChatGPT 的复制,并不包含任何新功能或新技术。苹果正在积极改进模型,但目前没有向消费者发布的计划。

消息来源:彭博社
老王点评:苹果在这一点上已经大大落后,不知道什么时候它的 Siri 才可以变聪明。

Meta 发布新大语言模型,可免费商用,采用特别的“开源”方式

Meta 周二发布了 Llama 2:这是一套经过预训练和微调的基于文本的人工智能模型,有三种不同的规模,分别包含 70 亿、130 亿和 700 亿个参数。与之前的 LLaMA 模型不同的是,任何人都可以申请下载 Llama 2,开发人员可以用它来构建商业产品或服务,以及开展有趣的项目。Meta 表示,不会对访问或使用其开发的模型收费,而是通过向其他公司开放该技术,如与微软和亚马逊合作,在 Azure 和 AWS 上提供该模型。值得注意的是,Llama 2 采用了专门的 许可证,有一些独特的限制,因此不符合“开源”的定义。除了常见的免责声明外,开发人员不能利用其输出结果来改进其他类型的大型语言模型。以及,如果将 Llama 2 用于支持那些拥有超过 7 亿月活跃用户的应用程序的大公司,必须申请使用 Meta 技术的特殊许可。

消息来源:The Register
老王点评:虽然不是规范定义的“开源”软件,但至少是开放的。值得注意但是,从 LLaMA 到 Llama 2,Meta 都采用了非同寻常的“开源”方式,这或许是 Meta 既想利用开源的优势,又有一些不确定的担忧。也许人工智能领域需要一种独特的开放许可证。

美国启动物联网安全标签计划

该计划的正式名称为《美国网络信任标识》,旨在帮助美国人确保他们购买的互联网连接设备具有强大的网络安全保护措施,可防范网络攻击。长期以来,物联网一直被认为是网络安全的薄弱环节。符合该标准的设备将要求具有唯一且强大的默认密码、保护存储和传输的数据、提供定期的安全更新以及具备事故检测能力等。

消息来源:Tech Crunch
老王点评:越来越多的物联网设备,其实是埋在信息社会底层的空洞,你不知道它什么时候就会导致塌陷。

印度大部分外包程序员将在两年内因人工智能而消失

Stability AI 公司的 CEO 表示,印度的大多数外包程序员将在未来一两年内失业。不过他认为,在法国等受《劳动法》保护较强的国家受到这种影响的可能性较小。他重申了他之前的说法,五年后将 “不再有程序员”,不过,他也说明,他指的是传统意义上的程序员。他说,“当你把编程这件事从错误测试、单元测试到构思进行解构时,人工智能可以做到这一点,而且做得更好。但这不是自动完成的,而是人工智能‘辅助驾驶’完成的。”

消息来源:CNBC
老王点评:其实也不用特别慌,就像计算器、计算机出现,并没有让原来的财务和文员失业一样,只是如果你掌握不了新工具,那这种“古典程序员”被淘汰也是自然的。

Wayland 正在成为 Linux 图形用户界面的首选方式

越来越多的证据表明,Wayland 显示服务器可能很快就会取代 X11,成为 Linux 上最常用的 GUI 方式。比如,为苹果芯片 Mac 开发 Linux 的团队表示,他们没有足够的人力来开发 X.org 支持。被许多 Linux 应用程序和桌面使用的 Gtk 工具包的开发者说,下一个版本可能会 放弃 对 X11 的支持。Budgie 桌面的下一个版本将只支持 Wayland。KDE 6 会话 默认使用 Wayland。甚至还有人尝试让 Wayland 在 OpenBSD 上运行,而它已经可以在 FreeBSD 上使用了。

消息来源:The Register
老王点评:再想想 X.org 多少年 没有 实际开发 在进行了,连 董事会选举 都差点凑不够人。所以,是时候全面转向 Wayland 了。当然,Wayland 自己还有一些问题需要解决。

安装量超百万的 WordPress 安全插件明文记录密码

All-In-One Security(AIOS)是一款安装量超过了百万的增强 WordPress 安全性的插件,在其 5 月发布的 v5.1.9 中引入了一个错误,用户登录使用 AIOS 的网站后会以明文方式记录其密码,并将其存储在管理员可访问数据库中。上周释出的 v5.2.0 修复了该问题,并从数据库里删除了相关数据。在公告中,他们还给出了一些安全建议,其中包括已被认为是糟糕的安全实践“定期修改密码”——因为这会事实上迫使用户使用弱密码。微软认为这种做法 “古老而过时”。

消息来源:Ars Technica
老王点评:无论如何,不用明文存储密码都是最起码的安全常识。从这一点和该插件开发方给出的安全建议看,他们或许并没有真正的安全意识。

网站建设公司提供创建整个网站的人工智能工具

Wix 是网站建设领域的老牌公司。该公司发布的新人工智能网站生成工具可以让 Wix 用户描述他们的意图,并生成一个包含主页、内页、文本和图片的网站,并可以包括活动、预订等特定业务板块。在一个类似聊天机器人的界面中,该工具会询问一系列有关网站和业务性质的问题,并尝试将其转化为定制的网站模板。Wix 认为客户不会特别在意花时间定制网站外观的方方面面。

消息来源:Tech Crunch
老王点评:很多年前,开发一个网站是一件艰巨的工作,而现在,通过新的工具,开发一个网站可能就像快餐一样简单。