我为比尔盖茨熬夜加班的那个晚上

TSMaster二次开发实战:如何用Python搞定CAN/CANFD事件回调(附完整代码) 本文详细介绍了如何利用Python进行TSMaster二次开发,实现CAN/CANFD事件回调功能。通过实战代码演示,讲解了预发送与后处理回调的核心区别、注册流程、资源管理及性能优化技巧,帮助工程师高效构建自动化测试与数据监控应用。 阅读详情

见字如面,我是军哥!

今天来篇新颖的文章。

现在是凌晨 5 点,距离 Bill Gates 的演示会议还有 5 个小时。 

我的眼睛又红又肿,有点儿神志不清。

我已经有快 24 小时没有睡觉了, 我刚刚重新编译了代码,它看起来已经可以工作了。 

给 Bill Gates 做演示是一件令人生畏的事情,而这次汇报将会决定我们这个项目的生死,不过我还有 2~3 小时,可以在桌子下面睡一会儿,然后把演示盘交给PM。 

时间回到 2001 年,我在微软 NLG 组工作,NLG 表示自然语言处理组。 

ca2c8fe9be2d790768c237fd427d262a.png

我们这个组负责微软 Office 中所有的拼写检查和语法检查,那个时候我们开发了一个叫做“上下文拼写检查器”,这个东西查出来的既不是单词拼写错误(红色波浪线),也不是语法错误(绿色波浪线)。

举个例子,你在邮件中写了两个单词 Deer Carlos, 你的本意很有可能是 Dear (亲爱的),而不是 Deer (鹿),但是拼写检查是找不到这个错误的,因为deer这个词是正确的。 

语法检查也查不出来,因为语法上也没问题。 

31760ce8d9703dcf2915594898000001.png

我们要对 Bill Gates 做的就是这个原型的演示,Bill Gates会决定这个特性是否值得投钱投人,把它做出来。

我们已经开发了一个 DLL,可是还没有集成到 Word 中去, 所以我们的演示是非常寒酸的: 

在 Word 之外的命令行工具上调用 DLL, 然后输入一些句子,它会输出有没有“上下文拼写错误”。 

很明显,这样的演示缺乏在 Word 中那种可视化的波浪线带来的视觉冲击力。 

作为一个工程师,我觉得这样的演示太平淡无奇了。为什么不把它集成到Word 中来演示呢?哪怕是 Debug 版本也好啊。 

于是我把 Office 那海量的代码下载到我本地,把我们的 DLL 加进去,做了一个 Build, 然后设置断点开始调试。 

我先找到了Word显示红色波浪线和绿色波浪线的代码,把它们 Copy出来,然后试图用蓝色波浪线来展示“上下文拼写错误”。

我发现 Word 给我们的 DLL 发了一个指针,指向一个让人费解的数据结构,那里不仅仅保存着 Word 的文本,还有格式信息,外加一个巨大的Undo缓冲区,这样 Ctrl-Z 才可以工作。

上下文拼写检查需要理解这个数据结构,在其中导航,提取出问题,然后进行检查。 

问题是这里有太多的边界情况了!我也找不到任何文档。

如果用户只是敲入了文本会怎么样?

如果加粗了一个单词,斜体另外一个单词会如何?

当你改变字体又会怎么样?

高亮一个单词呢?

删除替换一个单词呢?

......

我花了几个小时来理解这个数据结构是怎么工作的,然后终于把蓝色的波浪线给显示出来了!

这非常让人兴奋!

不过,2 分钟以后,Word 崩溃了。 a969d65db8f90fdeb92bb35ce96b743f.png

那一天我都在不停地调试,直到快下班的时候。

我的朋友武石正准备下班回家,路过我的办公室的时候给我打了个招呼,我给他展示了一下新的、老是崩溃的 Demo。 

他原来一直在 Word 部门工作,对 Codebase 非常了解,他决定呆一会儿,帮我瞅瞅这些边界条件,看看为啥老是崩溃。 

没想到这一呆就是好几个小时,我们看着这世界上最丑陋的 C++ 代码,笑着、骂着、把其余的事情都抛在脑后。 

每隔一个小时,武石的妻子就给他打一个电话,让他马上回家,每次他都会表示歉意,然后说:快了,快了。 

我的朋友戈登,另一位 NLG 的工程师,在 8 点左右来了。我们俩都是夜猫子,经常工作到凌晨。 

在 90 年代,半夜时分的微软走廊里挤满了人是很平常的事。

他被我们俩正在折腾的东西吸引住了,也坐下来盯着屏幕给我们支招。 

我们不断尝试,每次 Word 崩溃我们就大骂,每次没崩溃我们就哈哈大笑。 

这其实并不是我们分内的工作,但是一想到要给世界上最富有的人展示我们的小功能,我们就动力十足。 

一个命令行的寒酸演示是绝对不够的,它必须很漂亮,它一定得在 Word中。而且它必须在明天上午 10 点之前工作起来!

午夜时分,我们煮了一壶新鲜的咖啡,四处寻找麦片和任何我们能找到的食物,因为我们一直在编程,根本没时间吃晚饭。

武石的妻子放弃了他——她在 10 点时候不再打电话,可能已经睡觉了。 

戈登和我是单身汉,没有这方面的“负担”,不介意长时间的工作。 

我们眼镜充满了血丝,有点晕乎乎的,但是离最终完美的演示很近了。 

凌晨 2 点,武石终于撑不住了,他的大脑已经停止工作。他不停地道歉,然后回到他的办公室,在他的桌子底下“睡死”过去。 

到了 5 点,戈登和我终于让演示工作了! 

这时候我才给项目经理发了一封信,告诉他我的想法:用真正的 Word 来演示!

我编译了代码,把可执行程序复制到一个软盘中(没错,是个软盘),放到他的桌子上,把闹钟设置到 9 点半,然后也沉沉睡去。

早上醒来的时候,我吃惊地发现软盘还在他的桌子上,PM 根本没有看到我的邮件!

我立刻抓起软盘,穿过半个微软园区,冲向 Bill Gates 办公室所在的 9 号楼。

我满头大汗,气喘吁吁,冲了进去。

“用这个程序!” 就在Bill Gates进门前的几分钟,我把软盘递了过去。 

我的 PM 疑惑地看着我,但还是决定冒险一试。 

他开始 Copy 程序,那进度条慢得真是让人抓狂。

终于 Copy 完了,他双击 Word,Word 的启动界面顺利显示,一个新的、空白文档展示出来,光标开始闪烁,我们都屏住了呼吸——关键时刻到来了。 

PM 敲入了一些句子,然后最漂亮的事情发生了:可爱的、蓝色的波浪线展示了出来!  屋子里的每个人都长长地出了一口气。

Bill Gates 很喜欢这个展示,项目也正式立项了。 

现在它是微软Word中的一个功能了,我想这可能和我彻夜不眠有很大关系。 06301713c38638cef460b3a9bf9c8df2.png

后来有个同事说,我们在演示中当场发现了 Bill Gates 发给 10 万员工的邮件中的错误,Bill Gates 难得的露出来笑脸。

我很喜欢这次经历, 它让你看到了我们那个团队中培养的激情和友情。

事实上,两个工程师几乎花了一个晚上坐在我后面,在Visual Studio中设置断点,调试世界上最丑陋的代码。 

只是因为我们不愿意满足于平庸:我们想有一个漂亮的演示,而不仅仅是一个说得过去的演示。

后记:本文的作者是 Carlos Arguelles,我把这篇文章翻译出来并且分享给大家,是因为读完后非常感慨:

微软当年能如此成功,绝对是因为有这样一批优秀的、充满激情的程序员,他们可以为了实现一个更好的演示,自发地通宵加班,并且乐在其中。 

更厉害的是,团队成员之间可以完全无私地合作,根本不考虑功利因素。软件开发可以是一件很美好的事情啊。

我不知道你是不是也在这样一家这样的公司,如果是的话,请告诉我,我要去投个简历。 

「关于作者:军哥,前饿了么、贝壳技术总监,目前是一名自由职业者兼公司顾问,乐于结交朋友,也欢迎加我微信与我做朋友(公号输入框回复“w”即可),朋友圈做个点头之交!

另外军哥写了一些,关于个人如何快速成长、深度思考、程序员或产品经理能力模型、架构,OKR干货,技术管理等电子书资料,公号后台回复 “9”获取,不谢。」

以往热文推荐:

如何写好年终总结?及时雨来了!

我自由职业 2 年了!

45 岁程序员,精通各种技术,却没有面试机会?!

腾讯员工收入证明泄露,税后250万,真的么?


更多精彩,关注我公号,一起学习、成长

628301f18c5d6dede9783ab63611a5a6.png

硬件工程师提前批真题及答案解析2 我们需要考虑题目可能的简化假设,即输入电阻 Ri​ 可能是 rbe​ 和 βre​ 的组合,但题目可能简化为: Ri​≈rbe​+βre​。由于锗管的正向导通电压较小(0.2 V~0.3 V),而硅管的正向导通电压较大(0.6 V~0.7 V),因此-4.7 V的电压差不符合硅管的特性,而更接近锗管的特性。在三极管电路中,静态电位是指在无信号输入时,三极管各电极的直流电压。re​ 是动态发射极电阻,通常可以近似为 re​=IE​VT​​,但在题目中已经给出了 re​=300Ω,因此可以直接使用这个值。 阅读详情

相关推荐

SUMO从入门到精通:手把手教你用开源工具完成智能网联车仿真(附Python接口教程)

本文提供了一份SUMO开源交通仿真工具的完整实战指南,从环境搭建、基础仿真到Python接口TraCI的深度应用。重点讲解了如何利用SUMO的高度可定制性进行智能网联车仿真,包括实现动态信号优先等核心算法,并介绍了与网络仿真器集成以构建高保真车联网通信环境的方法。

weixin_28327051的博客 541

老码农的自我修养:程序员,你为什么总在加班?

我们整天在做什么? 作为程序员中的一员,我们整天在干什么?早早的起床赶地跌或者通过其它交通工具上班,然后匆匆的吃个早饭,然后呢? – 看看新闻,关心一下国家大事– 突然想起一个八卦,跟同事聊聊,培养一下感情– 有微信消息,看看是谁– 收到一个电邮,看看什么事,回复一下– 完成临时插入的任务, 因为非常紧迫– PC有即时消息,有同事咨询问题– 心里很烦,感觉四周全是噪音– 上网搜索资料,然后一路点下去– 快递小哥电话– 突然想起一件事情,上网查一下好吧,一上午已经过去了, 可是,可是,我还没开始编..

C语言C++学习俱乐部:765860056 341

什么是论文的创新点?公式化描述算是创新点吗?

写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。

加百力 的技术博客 1928

世上职业何其多 我做程序员N个理由

世上有那么多种职业,做个程序员有什么好处呢?有一天我苦思冥想了许久,终于找出了以下N个理由:  一、 获得电脑盲的敬仰。当你熟练地操作电脑,尤其是使用非windows操作系统(如AIX、OS/390)时,但见你随手输入几个莫名其妙的字符,屏幕上就显示出变化多端,神秘莫测的数据和画面,远在办公室数米乃至数千公里之外的计算机乖乖地听从你的指挥,此情此景,定会使得那些电脑盲美眉们“对你的敬仰之情犹如

630

PHP服务端 苹果支付(IAP)处理

公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。 首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。 先上图: 下面我详细的讲一下每...

山水的博客 1万+

【验证技能树】UVM 源码解读01 -- UVM本质上就是软件工程方法论在芯片验证领域的应用

文章摘要: UVM(通用验证方法学)是基于SystemVerilog的芯片验证框架,采用组件化、面向对象和事务级抽象设计。其核心在于职责分离与数据流,通过Driver、Monitor、Sequencer等模块协作实现高效验证。UVM强调复用性、可扩展性和可维护性,类似软件工程的模块化与低耦合原则。理解其体系结构比记忆API更重要,有助于灵活组合组件并提升验证效率。UVM不仅是工具,更融合了软件工程思维,推动验证工作向自动化、系统化发展。掌握UVM底层逻辑能优化验证环境设计,适用于从IP到SoC的多层级验证场

qq_45869788的博客 1043

工作不能一夜暴富,但可以一夜累丑

本文系猎聘(ID: liepinwang)原创已授权转载每次看影视剧里的职场人都会让我产生一个深深的谜团:剧里那些或肤白貌美、或面俊朗挺拔的精英们都是如何修炼的?他们是如何做到工作多年,...

sinat_32849897的博客 279

基于投影法实现扫描文件的光学字符分割——Matlab实现

投影法是指将原图像沿着某个特定的方向进行投影,得到投影线上的像素点的个数或像素值总和,从而可以得到该方向上物体的轮廓信息。对于字符分割,我们可以将图像进行水平和垂直两个方向的投影,从而得到字符之间的分割线。在OCR技术中,字符分割是非常重要的一步骤,因为字符之间的分割对字符识别的准确性有很大的影响。通过对投影值的判断,可以求出字符之间的分割线,这里我们根据垂直方向上的投影值进行判断,选取一个阈值进行筛选即可。使用sum()函数分别计算出水平和垂直方向上的投影值,得到每一行和每一列的投影值。

TechGlide的博客 584

不是每个程序员都是适合创业,即使你工作了十年

前天晚上看吉日老师的博客,让我突然找到生命的动力了,熬夜看到3点左右(哥哥我一向都是十点钟睡觉的),最近有看到园子里一个关于程序员创业的文章,不免要浅谈一下自己的一点想法,欢迎各位拍砖,但是是请看完再拍,谢谢。 正文 为什么要创业? 原因: 1.给人打工只能解决温饱问题,不能实现国家领导人N前的提出的小康生活水平,感觉对不起党和人民,所以需要创业。 2.想挖一口属于自己的一口井,如果有一

编程小丫 4775

LightGBM之LGBMRegressor()参数详解以及调参

LightGBMLight Gradient Boosting Machine)是一种梯度提升框架,它使用决策树作为基学习器。LightGBM 可以说是在 XGBoost 上做的优化。LightGBM 为高效并行计算而生,它的 Light 体现在以下几个点上:更快的训练速度更低的内存使用支持单机多线程,多机并行计算,以及 GPU 训练能够处理大规模数据。

我走的每一步都算数 3753

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

程序员——世界上最好的职业之一

提起程序员,大家的第一印象是什么?  聪明?宅?忙?高收入?or  加班?  程序员这个职业给我的印象却是智商高,工作忙,待遇低,没背景,常加班,体质差,有点愤世嫉俗。当然,这只是我个人意见,也许你对其中的待遇低不太认同,也许你可以举出月薪几万甚至几十万的大牛,但我说的却是一般程

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1261

AD9613操作控制

输出250M时钟给AD9613,过FPGA ILA逻辑分析仪将AD9613采集的两个通道ADC数据250M数据显示出来。其中AD9613输出的是LVDS数据,通过select IO核转为并行数据。 一,搜索IP核:selectIO interface wizad ,并双击配置 配置为input,DDR模式,数据位宽为12bit,IO类型为差分,这里配置的是12对数据差分对。然后配置外部差分时钟。 将tap setting 设置为13,将时钟的边沿对准数据的中间,以免数据出错 二,

wangjie36的博客 4050

周立功专访:周立功和他的团队已经找到了属于自己的道路

人物介绍 周立功,男,生于1964年,著作等身的嵌入式技术专家,广州立功科技股份有限公司创始人/董事长/总经理,广东省电子学会副理事长,广州市半导体行业协会副会长,广州市软件行业协会副会长,曾撰写60余本技术专著。 ZLG立功科技创始人周立功 已经55岁的周立功,身边的人都亲切地称他为周工,腰杆笔直健步如飞神采奕奕,丝毫看不出经营企业所带来的重负。他说话声调高亢思路敏捷,带着湖南人特有的机智和直爽。他称现在的好状态都是因为健身,因此把健身推广到公司中。“工作的目的就是为了更好地生活,所以一定要打造

嵌入式与人工智能 4161

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

如何在不知所措的年纪用时间积累财富

在这样的年纪,迷茫是常态 尚未配妥剑,转眼便江湖。 因为工作的原因,身边经常会听到刚毕业学生的吐槽。与其说是吐槽,不如说是一种无力。一种对于刚刚摆脱心灵乌托邦即将面临社会考验的无力感。 从毕业那一刻起,要开始一个人走向社会,那里没有整个城市最便宜的住宿,没有最安全干净价格低廉的食堂。走出去的一瞬间,你就要开始考虑一个非常严重的问题:生存。如果再加上个形容词,可能就是需要 体面的生存。...

232

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

才30岁,作为iOS开发工程师,就放弃努力了吗?

先来聊一聊30岁。 回想起大学刚毕业,那时候的我还经常烫发,也不近视, 没过几年便开始意识到自己的头发在慢慢的减少,从乌黑茂盛变成了草木稀疏。 也带起了眼镜,度数一天比一天高,公司组织的体检,很多项目干脆都不查了, 因为知道一定是一堆的毛病。 对于30岁的预警,可能身体的变化是明显的,慢慢开始养生了,喝茶了,不爱吃甜了,熬不了夜了。 30岁而立,但力不从心。 程序员,是一个有着明确年龄...

D_猿员的博客 672

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2016程序员你该爆发洪荒之力了!八招教你成功

你在白天的办公室里谈笑风生,我在黑夜的出租屋里敲出人生,不要问一个苦逼的程序员未来如何?只想说,我的梦想就像乔布斯一样“改变世界”,改变人生……从码农到成功创业者的宝贵经验,八条成功准则不得不看。 第一则: 梦想总是要有的,万一撞见鬼了呢? 小时候的梦想,希望能像微软创始人比尔盖茨一样成为世界...

191

为什么牛逼程序员都秃顶了....?

作为一名程序员必须知道的事情:英雄无用武之地那是非常悲惨的一件事!  近20年来Java程序员的工资一直是在稳中有升的状态,极端点的反例来说明,就算那些具有3~5年开发经验的中下水平(注意:中下,负能)的工程师,拥有年薪10万+元是很正常的一个薪酬水平。 眼界决定高度,技术有深度,更要有广度    如果将程序当做爱好,你会发觉跟20岁的年轻人精力差不多,熟练可靠,敏锐的捕捉到新技术的应用点。 ...

weixin_44037478的博客 6230

《梦断代码》01

《梦断代码》,早开始老师就把该文件的电子书版发了出来,我当时也把他拷在手机上,一直没什么时间看,在阅读《构建之法》后,翻看了这本书,老师早就介绍过这本书,大致讲的是一群世界顶尖的编程大牛开发一个项目,越到后面越难开发,最终导致了失败,这是大致的内容,这次我主要阅读了该书的第一章。 第一章,软件时间,文章的开头讲了作者有一段时间完全埋没在了自己的没日没夜的工作之中,一直写代码,通宵熬...

weixin_30416871的博客 113

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 303

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 527

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 355

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 332

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 563

Java 集合容器高频面试题全解:HashMap 树化阈值、1.7 死循环与 ConcurrentHashMap 演进(2026 招聘 JD 真题复盘)

HashMap 树化阈值 8 的泊松分布依据、退化阈值 6 的防抖设计、JDK 1.7 头插成环死循环的排查与修复、1.8 尾插后为何仍线程不安全、ConcurrentHashMap 放弃分段锁的原因与 ForwardingNode 协作扩容、computeIfAbsent 死锁陷阱、大集合找重复的场景题选型,附三层追问链自测。题目来源为 38 期公开招聘 JD 样本与字节、拼多多、建行、美团、快手公开面经。

蒙眼过河 422

spdlog 同步日志库使用详解

spdlog是一个轻量级 C++ 日志库,支持同步日志、异步日志、多线程日志、日志文件轮转和自定义日志格式。对于嵌入式 Linux 应用开发,我建议先使用。它可以帮我们完成:日志级别过滤。时间戳和线程 ID 输出。日志格式化。终端和文件输出。多线程安全写入。日志文件按大小或时间轮转。我们不需要自己实现互斥锁、文件写入、日志格式化和轮转等底层功能。

zengjiajun2006的博客 1121
上一篇: 国内最强数据中台架构,它排第一!
下一篇: 为什么 CTO 不写代码,还这么牛逼?
军哥手记
军哥手记 业界专家认证 业界专家认证
博客等级 码龄21年 661粉丝 608原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值