开发了世界上最流行的软件,竟然被人追杀,开源太可怕了...

阿里悄悄干了件大事:程序员加班的最后一盏灯终于灭了 凌晨三点的写字楼里,突然传来一声怪叫。实习生小王盯着屏幕上的代码,手指微微发抖——他刚刚见证了一场堪比’键盘消失术’的魔幻场景。事情要从半个月前说起。那天阿里云突然宣布,把刚刚开源的DeepSeek-R1满血版,直接装进了程序员的饭碗IDEA里。这个叫通义灵码的插件,正在掀起一场静悄悄的办公室革命。 阅读详情

见字如面,我是军哥!

今天给大家聊个神奇的程序员—丹尼尔,瑞典程序员丹尼尔花了28年时间,开发了世界上最流行的软件:cURL。

4898ce6dcc0ca86b599eee640dc85911.png

cURL提供了一个库(liburl)和一个命令行工具,让大家可以轻松地来传输数据。

它支持几乎所有的传输协议,除了最知名的HTTP、HTTPS之外,还支持 FTP, FTPS, Gopher IMAP, Kerberos, LDAP, MQTT, POP3, RTSP,  SCP, SMTP, SMB。

可以说,在数据传输领域,只有你想不到,没有它做不到。

正是由于这个特点,它被广泛地安装在这些设备和软件中:

Linux、Windows、iOS、Android、MacOS 等主流操作系统。

8aa07ea650295edf408a2efbc0c1547c.png

Nintendo Switch, Xbox and Sony PS5等游戏机。

06ccc60fae686a7d54e7a7f02e629dcc.png

几乎所有现有的物联网设备如智能厨房和医疗设备、打印机、智能手表、智能汽车。

dd54229962674df235b70b0471e2bcc8.png

丹尼尔自己估计,curl以及liburl被安装于全球超过200亿台设备中!

1281181980c0d0e500f3af6d0a9e11af.png

但是,开发了世界上最流行的软件,丹尼尔却收到了死亡威胁:

60e965b4793750a168d2f68c91eff856.png

这是怎么回事呢?

2024年,在FOSDEM会议上,丹尼尔讲述了cURL的发展历程,在过去的28年里,他是如何把一个不起眼的小工具,打磨成世界上最流行的软件的,中间的酸甜苦辣,投入与坚持,非常值得一看。

01

从小项目开始

cURL也是从一个不知名的小项目开始的。

3d16665c7d9c53d31d74803f269f57df.png

在最早的时候,丹尼尔就是想从一个网站上自动下载汇率数据,像大家一样,他一开始先在网上找了一个开源的项目叫httpget,用得不亦乐乎。

但和大多数人不同的是,他后来成为了httpget的维护者,开始进一步扩展功能,增加了对Gopher和FTP的支持。

这时候再叫做httpget已经不合适了,丹尼尔把它改名为cURL。

1998年,软件仅有300次下载,但丹尼尔觉得这已经很酷了,因为这已经比自己的朋友数多多了!

9f38251b0840cf7eb29b041a82500554.png

丹尼尔没有什么野心,他觉得2年有300用户,那再过20年,岂不就有3000个用户了?

(这不由得让我想起了我刚写公众号的时候,我当时想,一年内有一万粉丝就行,没想到后来一年就达到了10万。)

02

坚持和努力

很少有项目能立刻取得成功,这世界上不缺开源软件,不缺好创意,市面上有成千上万的同类型软件,你有什么特殊的?成功的凭什么是你呢?

20d24e501095a1983ac7255fa97f683e.png

当cURL获得巨大成功后,很多人问丹尼尔究竟做了什么,丹尼尔说:我投入了更多的时间。

每个人都有自己的家庭和生活,在开源软件上投入了更多时间,那势必要减少其他方面的时间。

比如丹尼尔从来不玩儿电脑游戏,他把节省的时间都花在了cURL上。

在cURL还不出名的时候,大部分时间只有丹尼尔一个人在默默地开发,如同在黑夜中独自走路一样,孤独不可避免。

70d903dcbca0439b29dd562911a85f7f.png

为了“增加人气”,他甚至假装其他用户,对自己的项目做pull request,期待有其他用户来评论,但大部分时间都无人问津,丹尼尔也只好默默合并请求,然后继续前进。

(这有点儿像早期的QQ,马化腾假扮美女陪人聊天)

开源软件开发没什么灵丹妙药,你要做的就是忍受孤独,努力工作。

03

安全和责任

任何软件都有漏洞,尤其对一个安装量达到200亿次的软件来说,出现了安全漏洞可能对用户造成非常糟糕的影响。

丹尼尔说严重的漏洞出现时,他晚上都难以入睡,但是没有办法,这是属于自己的软件,自己必须承担责任。

4b825efc375ecf4e81838e6896374e8c.png

每个人都会犯错,但是如何应对这些错误是最重要的事情,丹尼尔能做的事情就是:

(1)编写可读的代码

(2)编写良好的文档

(3)进行大量的测试

(4)用各种工具进行代码分析

(5)模糊测试

(6)漏洞赏金 :用真金白银对漏洞发现者进行奖励

04

人比代码更难

c33b72371ebaa85bcbeac84006c6362c.png

写代码很容易,你可以随意修改,调试,换个算法重写。

但是和人打交道那真是一件极具挑战的难事儿,在开源中工作的时间越长,你遇到的挑战就越大。

林子大了,什么鸟都有。

他们会说你选择了错误的编程语言(无论哪种语言都可能是错误的),选择了错误的技术(太老太笨太烂),无法解决他们的问题(即使cURL根本不是为他的问题设计的,或者他还不了解如何有效使用cURL)。

只要有让他不满意、不同意的地方,他们就会以咄咄逼人的方式进行挑战。

为了能维护一个友好的合作氛围,丹尼尔在回复时比较小心,努力用一种平和的语气,保持友好和礼貌。

“当你回复时,做个深呼吸,如果仍然感觉不安,暂时不要回复。”

开源就是这样,只要一切正常,不会有人说一句夸奖的话。

一旦出现一个小错误,特别是比较愚蠢的Bug出现时,马上就有人疯狂抱怨。

作为一名开源项目维护者,你必须变得坚强,才能忍受相当多的批评。

绝大部分人都是使用者,而非贡献者,cURL有200亿次安装,但是只有1240名贡献者,并且很多贡献者都是修改一个注释中的拼写错误,提交以后再也不来了。

但是也有一些惊喜,一些开发者突然出现,带着一个惊人的补丁,这个补丁的背后是他对cURL架构和代码的完整而精确的理解,这实在太酷了。

05

有趣/可怕的事情

丹尼尔把自己的邮件地址留到了Copyright页面:

6cd64e4ebdd787868f26102cb7dbb04f.png

让人没有想到的是,由于cURL用途极其广泛,被用到了各种设备和软件当中,当用户在使用这些设备和软件出问题的时候,病急乱投医,翻到了cURL的 Copyright,看到了丹尼尔的邮件地址,立刻当成了救命稻草,各种奇葩的事情就发生了。

a9f4f21df1643bee4ddd3c17c4f3cbc2.png

1e68f677aab34ee2f1a517cb9d05750b.png

110ddc0851199baf4263b081d4040921.png

看到这些让人苦笑不得的求救,丹尼尔也大为感慨:Cool,没想到到cURL还用在Instagram,Spotify,宝马,卡罗拉中.....

cURL如此有用,也会被黑客利用来进行攻击,一些受害者会找到cURL的踪迹,就会向无辜的丹尼尔发出威胁。

最疯狂的一次,有人竟然要杀了他:

8eb575e38857ce2a0aff6f4596ad567c.png

这个人被黑客攻击,丢掉了价值数百万美元的项目,把怨气撒到了丹尼尔的头上。

丹尼尔感觉到了真正的威胁,只好报警.

几个月后,这个人才意识到了自己的错误,给丹尼尔发信道歉。

06

总结

f6f7b2db2fbdf508963e3592117bb262.png

丹尼尔认为自己并不是天才,他只是想开发一个互联网数据传输工具。

他在cURL上投入了大量的时间,打磨功能,建立社区,吸引用户,经常长期的努力达到了如今的成就。

我们很容易想到一个问题,一个人怎么可能“辛辛苦苦”在一个项目上做了28年呢?

答案非常简单,丹尼尔多次强调:Have Fun

Linux之父也告诉我们:Just for Fun

是的,一切源于兴趣。

参考资料

丹尼尔的演讲:

https://archive.fosdem.org/2024/schedule/event/fosdem-2024-1931-you-too-could-have-made-curl-/

全文完,觉得不错的话点个赞或者在看吧!

众所周知,最近这几年 IT 行业不太行, 不管是找工作跳槽还是内部晋升都费劲,那么问题来了,当下的技术人怎么办呢?如何破局呢?

我准备在本周六晚上 21 点做一个分享,主题是:《当下环境差,技术人如何破局?》,解决技术人成长慢,对未来渺茫,技术人35岁危机等等重大问题,当然也欢迎带着你的问题来直播间,我们不见不散呀~

近期爆文:

程序员打工和创业到底有什么不一样?!

国央企创新负责人如何通过平台提升技术需求挖掘与资源配置的精准性?.docx 国央企创新负责人如何通过平台提升技术需求挖掘与资源配置的精准性? 立即下载

相关推荐

科技中介服务机构在协助企业对接科研成果时,如何提升服务响应速度与专业化水平.docx

科技中介服务机构在协助企业对接科研成果时,如何提升服务响应速度与专业化水平

程序员的 13 种噩梦,你遇到过哪些?

来源:JOBBOLE    原文:http://www.csm.co.at/13-nightmares-for-programmers/ 译文:http://blog.jobbole.com/90116/译者: 胡西瓜 对绝大多数人来说,都是些老生常谈的东西使他们噩梦连连:幽灵、蜘蛛,被戴着冰球面具的杀人狂追杀……但对另一些人来说,他们最害怕的东西就没那么常

闲云孤鹤 716

国央企创新负责人在推动内部技术成果转化与外部协同创新时,如何实现资源的高效整合与协同联动?.docx

国央企创新负责人在推动内部技术成果转化与外部协同创新时,如何实现资源的高效整合与协同联动?

程序员的噩梦,我的漏洞伤害了他人

对绝大多数人来说,都是些老生常谈的东西使他们噩梦连连:幽灵、蜘蛛,被戴着冰球面具的杀人狂追杀……但对另一些人来说,他们最害怕的东西就没那么常见了。

JunTang2015的博客 707

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文介绍了“两路半桥LLC谐振变换器软开关Simulink仿真”资源包,重点在于基于Simulink平台对两路半桥LLC谐振变换器进行高精度建模与动态仿真,特别考虑了谐振参数不一致及分裂电容等非理想工况对系统性能的影响。该仿真模型不仅涵盖了主电路拓扑、软开关实现机制与谐振网络设计,还深入分析了不同参数配置下系统的启动特性、稳态效率、动态响应及软开关条件的满足情况。通过参数扫描与对比仿真,帮助用户掌握LLC变换器的关键设计要素与优化方法,具备较强的工程指导价值和科研教学意义。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频开关电源、新能源变换器、车载充电机等领域的研发工程师和技术人员。; 使用场景及目标:① 掌握两路并联半桥LLC谐振变换器的建模与仿真方法;② 理解软开关技术在提升变换器效率与降低EMI方面的关键作用;③ 分析谐振参数偏差与分裂电容结构对系统均流特性、增益曲线及软开关范围的影响;④ 支持科研项目中的拓扑验证、控制策略开发与故障工况分析; 阅读建议:建议结合Simulink仿真模型与配套说明文档进行学习,重点关注谐振腔参数设置、驱动时序设计及软开关波形观测;可通过调整谐振电感、电容值或引入参数失配,观察系统行为变化,深入理解LLC变换器的稳定边界与优化设计原则。

双向全桥CLLC谐振变换器仿真模型(Simulink仿真实现)

内容概要:本文系统介绍了双向全桥CLLC谐振变换器的Simulink仿真模型,重点阐述了变频控制、闭环仿真及其与多种电力电子拓扑(如维也纳整流器、DAB变换器、图腾柱PFC等)的联合仿真设计。资源包涵盖2.5kW双向全桥LLC、V2G电动汽车充放电系统、三相PFC、多相交错LLC等多种变换器的仿真案例,并深入展示了三电平VIENNA整流器在双闭环PI控制与SVPWM调制策略下,结合上下电容电压差值补偿实现中点电位平衡的先进控制方法。通过仿真验证,该策略不仅有效维持了800V直流母线电压的稳定,还在动态工况下显著提升了电容电压的均衡度,同时保持了较低的输入电流THD,充分体现了SVPWM与中点平衡控制协同优化的技术优势。; 适合人群:具备电力电子与自动控制理论基础,从事新能源发电、电动汽车、工业电源、微电网等领域的研究生、工程师及科研人员。; 使用场景及目标:① 学习并构建高频谐振变换器(如LLC、CLLC)的Simulink仿真模型,掌握其变频与混合控制策略;② 深入理解并应用中点电位平衡、双闭环PI控制、SVPWM调制等核心技术于VIENNA等三电平变换器中;③ 复现高水平期刊论文中的控制算法,服务于科研项目申报、学术论文撰写或工程产品开发。; 阅读建议:该资源为综合性仿真资料库,建议使用者结合自身研究方向(如电动汽车充电、新能源并网)选择对应案例进行精学,重点关注控制策略的设计逻辑、仿真参数的整定方法以及SVPWM与中点平衡的协同机制,并充分利用附带的计算书和参考文献深化理解,以实现从仿真模型到实际工程应用的顺利转化。

程序员噩梦 13 种,你遇到过哪些?

对绝大多数人来说,都是些老生常谈的东西使他们噩梦连连:幽灵、蜘蛛,被杀人狂追杀……但对另一些人来说,他们最害怕的东西就没那么常见了。 软件开发者——如果你问他什么才是最可怕的噩梦,那么答案很可能跟大部分的噩梦没什么关系,真正的噩梦是关键的分号不起作用或者某个产品。在分析了各种各样程序员关注的论坛之后,我们在此列举出 13 种程序员们最苦恼的噩梦。 1.我能通过互联网解决问题 一些程序员论坛已成为软件开发者的工具箱中至关重要的工具。当然也还有很多其他程序员们寻求帮助的论坛。程序员最头疼的事,就是貌.

HUYA69的博客 583

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

阿里饿了么 P8 和喜马拉雅 P7 的 offer 怎么选?!

见字如面,我是军哥!看到一个后端 5 年的朋友在脉脉发了一个 offer 选择帖子,如下图,我觉得很有必要来分析一下,这种分析方式换其他公司也可以套用哦,那我们开始哈~一般来说,分析两个 offer 哪个更好?可以从这以下这 5 个最重要的纬度来思考,分别是公司平台大小、职级,薪资待遇、业务方向和领导因素。很明显,公司平台:饿了么比喜马拉雅强一些,就看一点饿了么市值百亿美金,而喜马拉雅市值 43...

chengjun_java的专栏 1818

虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型(simulink仿真实现)

内容概要:本文提供了“虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型”的Simulink仿真实现方法,系统阐述了如何通过仿真手段研究VSG在电力系统中的动态响应特性,重点聚焦于其惯量与阻尼的自适应控制策略。文中详细说明了模型构建流程,涵盖控制算法设计、参数调节、根轨迹分析等内容,并通过对比不同调节系数下的系统响应,深入探讨了控制参数对系统稳定性与动态性能的影响。该仿真模型有效复现了VSG模拟传统同步发电机惯性与阻尼特性的能力,对于提升新能源并网系统的频率稳定性和抗扰动能力具有重要研究价值。; 适合人群:具备电力系统、自动化或相关领域基础知识,从事新能源并网、微电网控制、电力电子与电力系统仿真研究的研究生、科研人员及工程师。; 使用场景及目标:①用于教学与科研中深入理解虚拟同步发电机的工作原理及其在现代电力系统中的应用;②为新能源发电系统接入电网时的稳定性分析与控制策略设计提供仿真验证平台;③支持对VSG控制参数进行优化,提升系统应对负荷波动和扰动的能力。; 阅读建议:建议读者结合Matlab/Simulink软件动手实践,按照文档结构逐步搭建仿真模型,重点关注控制环路设计与参数整定部分,同时参考提供的代码与仿真结果进行对比分析,以加深对VSG自适应控制机制的理解。

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文介绍了“两相交错并联Boost电路仿真模型(Simulink仿真实现)”的技术资源,属于电力电子变换器领域的仿真研究内容。该模型基于Simulink平台构建,旨在深入分析两相交错并联Boost电路的工作原理、动态响应特性及控制策略。交错并联结构通过错开各相开关管的导通时刻,有效降低输入电流纹波、提升系统效率与功率密度,适用于中高功率DC-DC变换应用场景。资源包含完整的主电路建模、PWM驱动信号生成、闭环控制器设计(如电压/电流双闭环控制)等关键模块,并可能涵盖软启动、均流控制等关键技术问题。整个仿真模型强调理论分析与工程实践的紧密结合,不仅有助于理解电路基本行为,也为优化控制算法提供验证平台,服务于科研与教学需求。; 适合人群:电气工程、自动化、电力电子及相关专业的高校本科生、研究生,以及从事电源系统研发的工程技术人员,具备一定的电路理论、自动控制原理和Simulink仿真基础者更佳。; 使用场景及目标:① 学习和掌握两相交错并联Boost电路的拓扑结构、工作机理及性能优势;② 利用Simulink进行电力电子电路的建模与仿真,深入理解PWM控制、闭环调节、均流控制等核心技术的应用;③ 为科研项目、课程设计或毕业设计提供可复用的仿真案例和技术支持,辅助开展中高功率电源系统的创新设计与优化研究。; 阅读建议:建议结合Simulink软件动手搭建并调试模型,通过调整占空比、开关频率、电感参数等变量,观察其对输入电流纹波、输出电压稳定性及动态响应的影响,以深化对电路特性的理解;同时可参考文中列出的其他相关资源(如LLC、PFC等仿真模型)进行横向对比学习,拓宽电力电子系统设计视野。

程序员的噩梦,我的漏洞伤害了他人.......

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33753845的博客 115

区域电网含风光火压缩空气储能抽水蓄能以及电化学储能的联合调度,加入IEEE39系统,进行潮流计算,分析电能质量研究(Matlab代码实现)

内容概要:本文研究了包含风能、太阳能、火电以及压缩空气储能、抽水蓄能和电化学储能等多种能源形式的区域电网联合调度问题,通过将系统接入IEEE 39节点标准测试系统,利用Matlab平台开展潮流计算与电能质量分析,旨在提升高比例可再生能源接入背景下电网运行的稳定性与供电品质。研究重点涵盖多类型电源与多种储能系统的协调优化调度策略设计,深入探讨储能系统在削峰填谷、平滑新能源出力波动方面的关键作用,并对复杂运行工况下电压偏差、频率波动、谐波污染等电能质量问题进行评估与改善。通过构建完整的仿真模型,系统性地分析了联合调度对电网电能质量的影响机制,为现代电力系统中多能互补与协同控制提供了理论依据和技术参考。; 适合人群:具备电力系统分析、优化调度及电能质量相关基础知识,熟悉Matlab/Simulink仿真环境的研究生、科研人员及电力系统相关领域的工程师。; 使用场景及目标:①为含多种储能的区域电网联合调度研究提供完整的Matlab仿真案例与开源代码参考;②分析大规模新能源接入对IEEE 39系统潮流分布及电能质量的综合影响,并定量评估不同类型储能系统的调控效果;③为电力系统优化调度、电能质量综合治理、多能协同控制等学术研究与工程项目提供可复现的技术支撑与解决方案。; 阅读建议:本资源以Matlab代码实现为核心,读者应在掌握电力系统基本理论的基础上,重点关注联合调度的数学建模过程、储能系统充放电策略的制定逻辑以及电能质量各项评价指标的计算方法。建议在学习过程中动手调试仿真代码,尝试调整系统参数、优化目标权重或改变新能源渗透率,以深入理解系统动态行为与控制策略的有效性。

OSChina 周六乱弹 —— 能胖出腹肌来

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34090562的博客 299

从理论到实践:Zemax驱动下的离轴三反光学系统全流程构建

本文详细阐述了从理论推导到软件实现的离轴三反光学系统全流程设计方法。文章首先分析了离轴三反系统在空间遥感等领域的优势,然后手把手指导如何基于像差理论计算共轴三反的初始结构参数,包括曲率半径与圆锥系数。最后,重点介绍了在Zemax中完成从共轴建模、视场离轴设置到优化与性能评估的完整实战步骤,为光学工程师提供了宝贵的经验与避坑指南。

weixin_29205061的博客 240

Seurat 单细胞转录组测序数据分析教程(三)——python(scanpy)

文章参考至,做了一个更详细的解读。本教程探讨了 scanpy 的可视化可能性,分为三个部分:嵌入的散点图(例如 UMAP、t-SNE)使用已知标记基因鉴定簇差异表达基因的可视化在本教程中,我们将使用来自 10x 的数据集,其中包含来自PBMC的 68k 个细胞。Scanpy 在其分布中包括该数据集的简化样本,该数据集仅包含 700 个细胞和 765 个高度可变的基因。该数据集已经过预处理和 UMAP 计算。在本教程中,我们还将使用以下文献标记:B细胞:CD79A、MS4A1。

coffeeii的博客 5829
上一篇: 数字化转型成功,CTO被干掉了!
下一篇: 阿里饿了么 P8 和喜马拉雅 P7 的 offer 怎么选?!
军哥手记
军哥手记 业界专家认证 业界专家认证
博客等级 码龄21年 661粉丝 608原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值