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

零基础也能搞定!华为USG6000V防火墙WEB管理界面开启教程 本文详细介绍了华为USG6000V防火墙WEB管理界面的开启教程,从环境准备、网络配置到防火墙初始化,逐步指导用户完成图形化管理界面的搭建。特别适合零基础用户快速掌握企业级防火墙的可视化操作,提升安全管理效率。 阅读详情

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。

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

新手学习Vivado XDMA (1) - 配置详细分析 PCIe 在 Vivado XDMA 中的配置分析。 阅读详情

相关推荐

9 海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例

海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 7180

复工第一事:换掉 Notepad++

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

程序猿DD 1358

Cass三角网法土方计算优化技巧:如何根据地形特点调整边界采样间距

本文深入探讨了Cass软件中三角网法(DTM法)土方计算的优化技巧,核心在于如何根据地形的复杂程度动态调整边界采样间距。针对平坦、复杂及人工构造物等不同地形特征,提供了具体的间距调整策略与精度验证方法,旨在帮助工程师在计算精度与效率间找到最佳平衡,实现精细化土方计算。

weixin_29294975的博客 525

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

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

海盗Sharp的博客 371

Halcon形状模板匹配实战:inspect_shape_model参数优化指南

本文深入解析Halcon形状模板匹配中inspect_shape_model参数的优化技巧,涵盖NumLevels和Contrast参数的实战应用。通过具体案例展示如何平衡匹配速度与精度,帮助开发者高效调试形状模型,提升工业视觉检测的准确性和效率。

weixin_30342209的博客 618

免疫治疗新思路:用COMPASS算法挖掘单细胞数据中的代谢靶点(含差异分析技巧)

本文介绍了如何利用COMPASS算法从单细胞转录组数据中系统推断免疫细胞的代谢活性,为肿瘤免疫治疗提供新的靶点发现思路。文章详细阐述了COMPASS结合流平衡分析的核心原理,并提供了从差异分析到可成药性评估的完整转化路径,旨在帮助研究者精准定位代谢弱点,开发新型免疫代谢疗法。

weixin_29275257的博客 368

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

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

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

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

微软技术日报 11-08:Foundry 与 Entra 各挂一个 10.0 分漏洞,Foundry 接 fal 五款视频模型

这一周的动作可以分成两类。一类在收。Copilot 从电视上退场,搜索里的 AI 改成可选,云端漏洞只发通知不收补丁。共同点是承认铺得太开,代价比预期高。另一类在放。Foundry 一次摆上五个视频模型,容器版应用网关一个入口挂 64 个 MCP 服务器。共同点是把能力做成可组合的积木,让使用者按需挑。两个方向背后是同一个判断。把能力塞到每一个界面上,短期看覆盖率高,长期要解释为什么删不掉。新的做法是先给一个能关的开关,再谈覆盖。对每天写代码的人来说,今天有两样现成的东西可以试。

海盗Sharp的博客 414

绕过Google Play:获取Expo Go安卓APK的实用指南

本文为国内安卓开发者提供了绕过Google Play商店获取Expo Go APK的实用指南。针对无法访问Google Play的痛点,详细介绍了通过官方GitHub Releases、可信第三方网站(如APKMirror)及APK下载器等多种安全获取途径,并重点讲解了APK安装、安全验证(核对签名)及常见连接问题的排查方法,帮助开发者顺利开启React Native开发之旅。

weixin_29006701的博客 578

Buck电源设计常见的一些问题(一)半桥栅极驱动芯片共性失效问题

半桥驱动芯片主要用在器件可应用于电信,数据通信,便携式存储或更低电压系统中的电源转换器,半桥、全桥、推挽、同步降压,正激变换器和同步整流器等方面。当然难免会遇到不少问题。基本上我们在产品开发的过程中都遇到过栅极驱动芯片坏掉的情况,所以找了一些资料,学习学习。也查找查找原因。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值