一个程序员的副业项目,被微软“白嫖“30年,拯救了无数人的电脑!

Unity游戏开发实战:用Flow Field实现RTS百人军团流畅寻路(附完整代码) 本文深入探讨了在Unity中利用流场寻路技术解决RTS游戏大规模单位移动性能瓶颈的实战方案。通过解析从Dijkstra算法生成成本场、积分场到最终向量场的核心原理,并结合分块、缓存及与DOTS/ECS架构集成的优化策略,实现了百人军团的流畅群体寻路。文章提供了完整的代码示例,助力开发者构建高性能的RTS寻路系统。 阅读详情

CPU 100%,风扇开始狂响,Windows资源耗尽,系统濒临崩溃。

在这么一个危急的时刻,你只剩下一招可以保命:

召唤任务管理器(Task Manager),找到那个惹祸的程序,无情地把它杀掉。

很少人知道,这么一个可靠、有用的小工具竟然是一个程序员在家里做的副业项目,也是他写的第一个Windows程序。

01

被一本书“骗”进微软

戴夫·普拉默出生在加拿大,11岁就接触了电脑,并且开始学习编程,他很喜欢开发各种系统工具和游戏,比如用于磁盘加速的HyperCache,这一点也将彻底改变他的命运。

大学期间戴夫是Unix的粉丝,自然有点儿瞧不上微软,因为90年代微软虽然已经是PC软件的霸主,但是行事粗鲁而霸道,成了行业公敌。

某一天戴夫在书店中闲逛的时候,发现了一本关于微软的书:

这本书叫做《硬盘:比尔·盖茨与微软帝国的缔造》,讲述了微软内部的各种项目,以及微软那些各种聪明的人。

戴夫看得激情澎湃,彻底被打动了。

他决定去微软实习,见识下这帮人,于是给HR投递简历。

不出意外,简历杳无音讯,微软实在是太热门了,应聘者太多了。

他决定独辟蹊径,想起了自己开发过一个叫做HyperCache 的系统工具,在没有互联网的时候,用户需要在纸质卡片上填写自己的信息,以便获得软件更新和通知。

戴夫在一大堆卡片中找到了一个带有microsoft.com邮箱地址的人,直接给那个人发信。

没想到,他真的获得了面试的机会。

90年代微软的面试是出了名的难,先是HR面试,然后5轮编程面试,需要在白板前写C语言和汇编代码,面试官会不断地逼迫你,直到你被难倒甚至崩溃,每一轮面试只有大部分人都表示可以录用时,你才能进入下一环节,整个面试会持续一整天。

这种地狱面试筛选出来的都是符合他们要求的编程牛人。

(微软园区的X型办公楼,让每个房间都有光线)

戴夫通过了面试,拿到了暑期实习机会。

1994年,戴夫大学毕业,又经历一系列严格的面试,顺利拿到了微软的Offer,年薪3.5万美元。

这个薪水并不高,后来戴夫得知那些罢工的UPS司机的年薪都比他高50%!

但是戴夫并不在意,因为还有个叫做“股票期权”的东西,微软的股票期权在90年代可是太值钱了,十年涨了10倍!

戴夫移民到了美国,开始了白天上班写代码,晚上下班搞副业的日子。

02

深夜灵感

戴夫非常幸运,他参与的是操作系统天神Dave Culter领衔的Windows NT项目。

这个项目对微软来说极其重要,简单来说,我们今天使用的每一款 Windows 系统,其血脉都源自于 Windows NT。

某个深夜,当戴夫在书房鼓捣软件的时候,突然想到:Unix上有ps,top这样查看进程的工具,为什么Windows NT上没有呢?

其实在Windows NT的内部已经具备这样的能力(内核对象、计数器、API),现在缺乏的就是一个可以展示的“仪表盘”而已。

戴夫立刻决定自己写一个程序,让程序员们可以“看见Windows NT系统内部到底发生了什么”。

那些程序在运行,占用了多少内存,哪些资源空闲,哪些资源空着.....

很快,一个粗糙的任务管理器就出炉了,戴夫把它带到了公司。

当时的微软有着强烈的“吃自己的狗粮”的文化,他们在开发Windows NT的时候,也在自己的电脑上运行中每天编译的最新版本。

很明显,戴夫这个粗糙的小工具在吃自己狗粮的时候非常有用,受到了同事的喜欢,开始在内部口口相传。

最后,这个工具被Dave Culter发现了,他也非常喜欢,亲自批准添加到Windows的源代码树当中,成为 Windows 内置工具。

Dave Culter想把任务管理器放到开始菜单的最顶端,这遭到了UI部门的强烈反对,这个工具完全太技术化,太极客化了,完全违反了让PC更简单的目标,这是对他们的严重挑衅!

最后,任务管理器被放入了系统工具中,大家才终于满意了。

想想也挺神奇的,没有复杂的流程审批,没有签订合同,一个人的业余爱好竟然进入了Windows的核心,成了接下来几个月的全职工作。

微软在1993年已经有1万多人,竟然还可以采用“简单粗暴”,“自由高效”的办法,真是“西部蛮荒”的时代。

03

从副业到产品

业余项目升级为正式产品,质量标准立刻飙升。

戴夫之前没有写过带UI的Windows程序,任务管理器是第一个,所以他特别谨慎小心,尽可能地遵守所有的规则。

因此,任务管理器是他写的最接近完美的Windows 应用,开发时主要搞定了3件事:

1.保持程序小巧

NT4 的任务管理器总大小只有80多K(包括图形和资源!),至今仍能在 Windows 11 上运行。

今天的任务管理器约 4MB,原版比现代版本小 50 倍。

2.动态调整UI大小,并且没有闪烁

戴夫不得不重写一些控件,给列表视图添加一些新方法,确保在一个巨大网格里如果只有一个单元格变化,只有那一个小矩形被重绘。

由于早期的版本是在家里写的,起名时很随意(缺乏想象力?),一些类都加上了Dave的前缀,例如Dave's frame window proc, Dave's group class,等到完成功能,有时间去改名时,系统已经进入Beta阶段,无法再做这些小修改,只好保留了下来。

3.稳健,准确,可靠

所有的进程都可以阻塞,挂起,不再响应,但是任务管理必须永远运行。

任务管理器必须精确无误,不允许有丝毫错误。

但是戴夫发现,有时候CPU的利用率偶尔会超过100%,他认为是内核统计有Bug,但是内核团队并不买账。

于是戴夫写了一个断言,在超过100%的时候触发警告,并且在断言中写下了家里的电话,以便测试人员可以在凌晨3点给他联系。

几周以后,终于在内核中抓到了这个Bug。

悲催的是,戴夫还没来得及删掉断言中的电话号码,微软的Build Team就做了一个Beta版本,并且分发到了合作伙伴和特定客户。

幸运的是,由于这个Bug已经被Fix,戴夫家的电话从来没被客户打过。

90年代微软的工作环境是非常疯狂的,产品发布时经常搞“死亡冲刺”。

更让人震撼的是,这些在产品发布阶段每天干16个小时,很多都是百万富翁,千万富翁(微软80年代上市,造就了上万名的百万富翁),这些家伙可以连续加班,不回家,就睡在工位下面,直到把Bug给找出来解决掉为止。

微软公司也愿意提供一切所需,咖啡,丰富的食物,甚至游戏!只要能把产品按期发布。

某个周日的凌晨5点,戴夫接到电话,说一个组件在Build中失败了,公司联系不上这个组件的正式负责人,只好找他这个备用联系人。

虽然只睡了几个小时,戴夫依然回到公司把这个组件修好,没有影响整体的Build。

经理非常感激,对戴夫的奖励也别具一格。

周一戴夫来到公司,发现了两张NBA贵宾票,是Dave Culter 的私人票!就在球场旁边!能听到球鞋摩擦声、球员喊声,是顶级 VIP 才能拿到的票。

04

副业变财富

除了任务管理器之外,戴夫在业余时间还开展了另外一个副业:ZipFolders。

在WinZip大行其道的时候,这个小软件可以在资源管理器当中直接查看Zip文件,不用解压,还是挺有用的。

戴夫把ZipFolders当做共享软件来发布,每天都能卖出10几份,是一门不错的生意。

有一天,戴夫上班之前接到了一个微软经理的电话,说想要买下这个软件,内置到Windows当中,不知道戴夫是否愿意谈谈。

戴夫自然很乐意,他说:行啊,我可以顺便去你的办公室聊聊。

这把产品经理吓了一跳:你得和微软的旅行部门联系,得预约啥的.....

戴夫也很纳闷:我就在微软上班啊,为啥要飞到微软.....

经过一番沟通,对方才知道,戴夫就是微软的员工!

戴夫当然无法拒绝这份收购的邀约,因为他拒绝的话,微软就会自己做,他怎么能和自己的雇主竞争呢?

收购价格应该很不错,因为第二周戴夫就开着跑车来上班了:

如今,ZipFolders依然是Windows的一部分。

任务管理器和ZipFolders被收编以后,戴夫继续折腾各种工具软件(例如MemTurbo)并且在互联网上卖。

那时候是弹窗广告的“黄金时代”,戴夫通过买广告让销量竟然达到了每天1000份!

他下班后不得不花费大量时间去制作软件Copy,打印邮件,邮寄软件,还要回复邮件,处理退货,根本就忙不过来。

这严重影响到了他的主业:给微软写代码。

大度的微软给放了三个月的假,让他好好想想人生的方向。到底是老老实实地在微软干活儿, 还是自己去当老板?

戴夫选择了后者。

2003年,35岁的戴夫离开微软,创办了自己的公司SoftwareOnline LLC,后来他声称公司售出了数百万份适用于 Windows 的的软件。

不过戴夫的公司后来也因为营销过度,吃了官司,被华盛顿州罚了15万美元。

05

写在最后

戴夫后来说自己“喜欢看机器工作”,一个磁盘整理的动画,他可以看很久。

他甚至会去除洗衣机的安全机制,只为了打开盖子看看它工作的样子,这种对机器和电脑内部的好奇可能是戴夫编写工具类软件的原始动力。

也许正是这种近乎“痴迷”的好奇心,让戴夫在别人看不到问题的地方,发现了可以被工具化、可被改进的空间。

他写的诸多工具也给他带来了巨大的回报,HyperCache让他找到了进入微软工作的机会,任务管理器和ZipFolders影响了全球几十亿台电脑的日常运作,即使在退出微软后,各种工具依然帮他打下来一片天下。

2018年,戴夫开通了他的YouTube频道,在其中讲述计算机编程,以及他钟爱的汽车相关的内容,关注者超过百万,成了网络大V。

戴夫的这一辈子,过得真是非常精彩。

Sigrity Power Tree如何生成电源树操作指导 Sigrity Power Tree可以方便地生成电源树,仅需要网表文件就能将系统的电源树直观的显示出来,生成的电源树文件可以用Power DC,optimizePI进行直流和交流仿真,下面介绍如何生成电源树。Base on [Device_TYPE and VALUE]就是识别网表中器件的Device_TYPE作为power tree中的模型的名字。Allegro layout netlist file,就是从Allegro layout文件中输出的netlist第三方网表文件。如何生成电源树操作指导。 阅读详情

相关推荐

SQL2000在Win10上安装完整指南:兼容模式、SP4补丁与远程连接配置

数据库兼容性是老系统迁移与运维中绕不开的难题。当历史遗留的SQL Server 2000遭遇全新的Windows 10环境,安装程序常因系统版本检测失败而拒绝运行,这背后是旧版安装程序与NT内核版本间的识别错位。通过兼容模式模拟旧系统环境、以管理员身份运行安装程序,并处理注册表挂起与杀毒软件干扰,即可突破基础安装障碍。安装后的SP4补丁与TCP/IP端口配置,则是保障服务稳定与远程连接的关键。这一技术路径广泛适用于制造企业MES、进销存系统及医院HIS等仍依赖老旧数据库的场景,为IT运维与数据迁移测试提供了

weixin_29266679的博客 443

复工第一事:换掉 Notepad++

周知,Notepad++作者经常大量发表错误言论,且拒不认错,引发了广大程序员的强烈反对,很多人因此而弃用这款软件,纷纷改用其它文本编辑器。近日,Notepad++作妖,又被广大网友发现了! Notepad++作者发推称,如果用户不同意其政治观点,Notepad++将在用户源代码中添加随机字符。还大言不惭。。。作为一名来自中国台湾省的软件开发者,在软件发版上插入政治符号,借政治话题秀下限、蹭流量、...

程序猿DD 1360

机器人强化学习入门学习笔记

如果你追求高精度动力学仿真、用于强化学习或机器人研究,MuJoCo 是一个非常优秀的选择。如果需要快速实验、使用真实机器人模型,PyBullet 或 Gazebo可能更合适;如果你追求大规模并行训练,Isaac Gym 或 BraX会更高效。legged gym底层是​编辑isaacgym,基于gpu训练可以多环境并行训练,收敛到一个稳定行走的策略快。本视频MuJoCo基于cpu训练很慢。

xiaomu_347的博客 1482

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 378

COMSOL+AI实战:5个超实用技巧让你的仿真效率翻倍(附Python代码)

本文详细介绍了如何将人工智能(AI)与COMSOL仿真软件结合,通过Python脚本实现五大实用技巧,包括自动化生成数据集、构建代理模型、集成AI优化算法、利用神经网络加速场量求解以及智能结果分析,从而显著提升多物理场仿真的效率和自动化水平。

weixin_29230865的博客 443

基于STM32F407的定时器以及定时器中断的实现

基于STM32F407的定时器以及定时器中断的实现

weixin_57941207的博客 5232

AI驱动数据处理的安全边界:行业现状、风险权衡与本地化实践路径

本文基于第三方数据,分析AI用于数据处理的安全议题。大模型应用加速普及,但伴随数据出境、影子AI、幻觉与成本失控等风险。行业共识指向“脚本复用”路径:将分析逻辑本地化固化,实现数据可控、结果可复现、成本可降。产品如数以轻舟提供本地处理、多模型接入与一次付费永久使用方案。建议企业从数据落点、可控性、可复现性与合规性四维度评估选型,推动AI在安全边界内释放价值。

数据矿工-数据化运营博客 320

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

weixin_45735391的博客 17万+

微软技术周报 11-02~11-09:VS Code 混装 Claude 与 Codex、EF Core 11 静默改行为、.NET 11 倒计时

11 月 6 日,Power Platform 通过消息中心通知管理员,Copilot Studio、Power Automate 和 Power Apps 里所有跑在 Anthropic Claude、xAI Grok 以及旧版 GPT 上的 prompt,12 月 2 日自动迁移到 GPT-6 系列,档位价格不变,模型选择收窄到一条产品线。效果是这样的:让 Claude 评审一个 Copilot chat 写出的方案,或者把同样的任务交给 Codex,两边并排跑在同一个会话里。更要紧的是下周的时间线。

海盗Sharp的博客 964

AIO-1126-JD4(RV1126)蓝牙通讯(BLE)

AIO-1126-JD4采用了正基科技推出的一款集成WiFi、蓝牙功能的模组AP6236,支持高速(HS)功能的蓝牙 4.0,集成了 1.5 类功率放大器(PA),并支持低功耗蓝牙(BLE)。提到正基就不得不提下博通。博通和正基是芯片技术与模块制造方面的合作关系,正基科技是中国台湾的公司,在无线通信模块领域有一定的市场份额,博通则是全球领先的有线和无线通信半导体公司。正基把包含博通关键IP的核心芯片和自家的射频部分等封装在一起,即SIP(System In Package)。

w1820020635的博客 1123

1、使用Spark SQL查询Databricks:全面指南

本博客全面介绍了如何使用Spark SQL在Databricks平台上进行高效的数据查询与分析。内容涵盖SQL基础操作、数据过滤、复杂查询技巧、简单与高级计算、数据聚合、日期处理等核心主题,适合数据分析师、开发人员及SQL学习者。通过逐步讲解和实用示例,帮助读者掌握从入门到高级的SQL技能,并提供学习路径建议和免费代码资源,助力实际数据分析工作。

redis7keeper的博客 91
上一篇: 一个程序员的副业项目,被微软“白嫖“30年,拯救了无数人的电脑!
下一篇: 一个程序员的副业项目,被微软“白嫖“30年,拯救了无数人的电脑!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值