代码改变世界

关于调试,有一个真实的故事我要讲一讲

2017-11-15 17:08 by lixiong, 1096 阅读, 0 推荐, 收藏, 编辑
摘要:我的第一份工作是在微软中国做技术支持。主要工作就是远程帮助微软的客户解决微软平台上的研发问题,比如内存泄漏,崩溃和死锁之类的。遇上难题我们还会用工具直接连接到客户的环境中调试。在极少数情况下工程师也会到现场解决问题。 当时有一个特别的职位叫做CPR,全称是Critical Problem Resol 阅读全文

疑似CPU或者内存故障导致进程崩溃

2017-11-11 09:39 by lixiong, 1684 阅读, 1 推荐, 收藏, 编辑
摘要:我们有一个服务跑在微软云的所有宿主机上。最近发现某一台机器上该服务进程持续崩溃。崩溃原因是访问了一个无效指针,对应的代码如下 serviceListIniBuffer.AppendF("ServerList=%s\r\n", m_newServiceList.config->GetStringPar 阅读全文

Web服务的性能,和BCrypt性能问题的解决方法

2011-12-25 01:51 by lixiong, 4047 阅读, 0 推荐, 收藏, 编辑
摘要:在昨天的研究中,发现BCrypt最大的隐患在于性能。BCrypt的安全性是通过牺牲性能来获取的。BCrypt比传统hash+salt要安全一万倍,但是代价是使用BCrypt做认证对比密码和密文时候,性能也比hash+salt要慢一万倍。 所以,我得出一个结论。如果使用传统hash+salt需要N台认证服务器的话,那用BCrypt就需要添加10000*N台服务器才能达到同样的性能。比如一个邮件系统使用了2台服务器来专门作认证,那使用BCrypt的话就需要再购买2万台。当然,小的应用,如果使用一台服务器1%的性能就可以做完认证的话,使用BCrypt只需要100台服务器。 这个听起来比较吓人... 阅读全文

md5/sha1+salt和Bcrypt

2011-12-24 04:04 by lixiong, 28847 阅读, 11 推荐, 收藏, 编辑
摘要:今天在weibo.com上看到一则消息说, 用md5/sha1+salt的方法保存密码是不安全的. 文章中用连续9个Bcrypt加感叹号来强调, 保存密码一定要用Bcrypt. 这个消息非常应景, 因为csdn.net两天前把数据库弄丢了, 里面的密码是明文保存的. 我对密码和安全没有研究, 但是在我粗浅的记忆中, hash+salt是非常主流的方法. 如果说这样也不靠谱, 那我正好借这个机会复习一下. 我把密码安全分为两个等级, 黄色和红色. 当数据库丢失后, 能算出一个可以用来登陆的密码, 这个密码不一定是原文, 但是保证可以通过验证, 这个算达到黄色. 如果还能算出原文, 这个就达到.. 阅读全文

从Win8回顾微软平台的各种技术

2011-12-03 14:15 by lixiong, 13374 阅读, 39 推荐, 收藏, 编辑
摘要:我安装好Win8 CTP后做的第一件事情就是用调试器研究Win8各个组件的协作关系. 从我半天的研究结果看来, Win8真是一个让我爱不释手的产品. Win8里面涉及到的很多技术正好也是我的兴趣所在. 这篇文章简单回顾一下这些技术的变迁, 优缺点, 和对Win8的影响. 注意, 下面提到的对Win8的分析, 是基于公开的Win8 CTP来做的. 相信Win8面世的时候, 这些技术和细节, 都会发生重大改变. 所以这篇文章不具备实践上的指导价值. COM -Component Object Model 通用组件模型 COM是上个世纪中期设计出来的伟大产品. COM旨在解决软件复用的问题. ... 阅读全文

为什么EXE不能超过4GB

2010-07-13 10:32 by lixiong, 10078 阅读, 5 推荐, 收藏, 编辑
摘要:为什么EXE不能超过4GB前几天看到大家在讨论EXE装载的问题,很新奇。有的说PE装载受到进程空间的限制,有的说PE一定是整体装入,有的用ZIP自解压包来举例子。我当时大概想了一下,觉得PE不一定是要整体装入的。PE文件包含一个PE header,里面定义了各个段,比如代码,资源等等的偏移地址,装载的时候应该不会超出这个PE header的定义。也就是说,如果PE header里面定义了最远的段是... 阅读全文

其实.NET的确慢, 微软推的这一套的确不适合很多地方

2010-07-08 00:25 by lixiong, 1650 阅读, 0 推荐, 收藏, 编辑
摘要:微软的bing/msn等web平台系统都不是用c#的, 自己好像用c/c++重新搞了一套C#的速度也的确不能和C++什么的比好像对C#和CLR的性能提升在很久以前还讨论过, 后来放了一个beta版本的compiler SDK出来, 就不是重点方向了现在的重点方向是Azure不过我觉得这没什么值得义愤填膺的, 类似的话题以前VB5/C++5.0的时候就有了, 或许还能找到当时的VB5/VC5/BC/... 阅读全文

微软平台UI自动化(UIA)经验集

2010-05-20 20:30 by lixiong, 5483 阅读, 4 推荐, 收藏, 编辑
摘要:根据我UIA自动化测试的经验, 总结了下面代码集. 在这个代码集中, 包含了:1. 一个WPF的窗体程序2. 一个WinForm的窗体, 这个窗体作为Model Dialog被WPF主程序打开3. 针对这个WPF和WinForm的测试代码例子4. 针对Win7 Calc.exe的测试代码例子5. 一个简单的TestEngine这个代码集的作用是:1. 演示UIA中基本的概念, 比如Automati... 阅读全文

今天在InfoQ看到一个google关于test的演讲, 非常精彩

2010-04-10 21:54 by lixiong, 3625 阅读, 6 推荐, 收藏, 编辑
摘要:今天在InfoQ看到一个google关于test的演讲, 非常精彩http://www.infoq.com/cn/presentations/duannian-agile-test演讲人段念, 似乎也叫做关河, 网上的介绍在:http://www.qconbeijing.com/Speaker.aspx?Id=33个人网站在http://www.cnblogs.com/guanhe/没想到国内社区... 阅读全文

来来来, 我也来发发我大二时候的作品

2010-03-17 00:14 by lixiong, 3072 阅读, 3 推荐, 收藏, 编辑
摘要:今天看到了:12年前的作品──《美绿中国象棋》制作过程及算法简介http://www.cnblogs.com/miloyip/archive/2010/03/16/1687647.html不仅想到了我大二时候的作品, 让大家比较下墙内墙外的差距, 希望大家不要见笑, 再怎么样, 我这个好歹还是开源的.第一个也是棋类游戏, 五子棋. 当时qq上都还没有五子棋, 个别网站上的支... 阅读全文