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

基于STM32F407与AD9910/AD9959的高频可调DDS信号源设计与实战 本文详细介绍了基于STM32F407微控制器与AD9910/AD9959高性能DDS芯片的高频可调信号源设计与实现。文章从DDS原理入手,阐述了双芯片方案的优势,并重点分享了高频电路设计中的电源、PCB布局布线等关键硬件设计技巧与避坑指南。同时,提供了通过SPI配置DDS芯片及利用Matlab生成任意波形的软件驱动方法,旨在帮助开发者打造一个覆盖10Hz至4200MHz的实用信号发生器。 阅读详情

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。

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

芒果YOLO11改进172:ARConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea ARConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea 阅读详情

相关推荐

ADS2023实战:2.4GHz超外差接收机从设计到链路预算全流程解析

本文以ADS 2023软件为平台,详细解析了2.4GHz超外差接收机从核心指标定义、架构原理到完整链路搭建与仿真的全流程。通过实战演练,重点阐述了如何利用ADS进行谐波平衡仿真和链路预算分析,以量化评估系统增益、噪声系数等关键性能,为射频工程师提供了一套从理论到仿真的系统级设计方法。

herb5的博客 819

复工第一事:换掉 Notepad++

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

程序猿DD 1358

以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。 MAC和PHY结构 从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意: 上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑到芯片面积及模拟/数字混合架构的原因,**将MAC集成进CPU而将PHY留在片外,这种...

sternlycore的博客 13万+

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

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

海盗Sharp的博客 371

电路方案分析(十二)USB Type-C PD 移动电源参考设计方案

TPD8S300为USB Type-C连接器的CC1,CC2,SBU1和SBU2引脚集成了四个通道的20v短到vbus和过压保护。TPD8S300集成了八个IEC61000-4-2ESD保护通道,用于USB Type-C连接器的CC1、CC2、SBU1、SBU2、DP_T (顶侧D-) 、DM_T (顶侧D-) 、DP_B (底侧D-) 引脚。当电源组是接收器并为其自身的电池充电时,该芯片会对电池充电,而在电源模式期间,该芯片充当DC-DC转换器以生成VBUS。

小幽余生不加糖 2万+

GPS卫星轨道的理论和计算笔记分享

广义相对论预测,对比在时空弯曲度较大的地面上的原子钟,运行于时空弯曲度较小的卫星原子钟在地面上看起来更快,每天快约45us;反过来,当电压施加在晶体上时,晶体形状会扭曲(比如说伸长),而当晶体被施加上反向电压后,它将做相反的变形运动(比如缩短)。X轴:指向参考子午面与地球赤道的一个交点;从北黄极上方观察,地球北极在空间的运动轨迹是一个近似于以北黄极为中心的顺时针方向旋转的圆周,圆周半径等于。从上万年周期看,地球北极绕北黄极做大圆周运动,而从几年的短期来看,北极又在某一点处做局部的小幅椭圆运动。

m0_57139844的博客 2004

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

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

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

超详细 VMware Horizon 虚拟桌面VDI安装步骤

主要的目的是模拟生产环境中的共享存储。自动桌面相当于共享电脑,大家使用同一个虚拟机,对虚拟机的修改都放在用户的配置文件中,RDS桌面池相当于共享的服务器,可以多人同时连接到服务器上。1:之前已经建立好了NFS的存储,这部分配置好后,以后的虚拟机可以安装到NFS的存储中。2: 使用Composer发布系统可以解决SID,机器名冲突的问题,更重要的可以节约磁盘空间,发布的所有系统可以访问一块磁盘。26: 域选择我们之前建立的域,用户名我输入的是管理员,可以在AD域新建用户点击查找,我这里用的是管理员。

vv12345的博客 1万+

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

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

海盗Sharp的博客 414

优秀的 Verilog/FPGA开源项目介绍(二十六)- ISP (图像信号处理)

介绍查看《ISP算法及架构分析介绍》今天项目的顺序就是先介绍几个关于ISP算法架构的项目,包括python、matlab、c等高级语言实现的ISP算法架构,最后介绍一个FPGA实现ISP的项目。openISPhttps://github.com/cruxopen/openISP项目介绍用python实现的ISP架构,该架构涉及到的知识如下:下图是最新实现的模块:主要模块如...

OpenFPGA的博客 4950

【AI智能体】Codex AI 辅助编程高级技能实战操作详解

Codex AI 辅助编程高级技能实战操作详解

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值