摘要: 编程十年 (16):后记本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/05/04/programming10years-16.html作者:Anders Liu也许您在看这个小文的时候,会觉得“这个家伙一直在跑题啊,和编程有毛关系啊”;而当您看到《宿命,程序员》的时候,可能会觉得终于回到正题了,要高潮了。但是,贱贱地我笑了,不,已经结束了。为了避免虎头蛇尾之嫌,并表明这是一次深思熟虑的犯贱,特撰后记一篇以示之。关于写作此文这些文字我写了将近四年。也就是说,从我刚走上程序员的岗位我就开始动笔了,一直到今天我站在了另一个十字路口。最初的起因是 阅读全文
posted @ 2011-05-04 17:40 Anders Liu 阅读(5890) 评论(61) 推荐(13) 编辑
摘要: 编程十年 (15):宿命,程序员本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/05/04/programming10years-15.html作者:Anders Liu慢慢地,讲课变得轻车熟路,富余的时间也越来越多。于是我开始“不务正业”。一开始是讲故事,给大家讲Windows历史、COM和.NET发展史、编译器大战等等,基本上都是从网上搜罗来的,不过经过我人为YY过之后,再绘声绘色地表达出来,那效果,“真就不一样”(注:引用微软正版推广广告词)。讲完故事还有时间的话,就讲自己的故事,就是吹牛逼,就是这一系列文章到这一部分之前的那些内容。 阅读全文
posted @ 2011-05-04 16:35 Anders Liu 阅读(6486) 评论(22) 推荐(12) 编辑
摘要: 编程十年 (14):毁人不倦2本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/05/04/programming10years-14.html作者:Anders Liu2005年底,我离开了CSDN,来到了E君推荐的公司,老板也是一名老牌MVP。这家公司位于西直门交通枢纽西北方,在一处商住两用楼里。我按照公司在网站上的地址,摸索着找到了办公地点,敲开大门后见到的是一位面容俊秀的女孩子,她的眼中明显透出了一种诧异。因为公司已经搬到12层了,而这里是老板的住所、原先的临时办公地点。没想到的是,这样文静的一个女孩竟然是这家公司的CTO,因为也负责 阅读全文
posted @ 2011-05-04 14:42 Anders Liu 阅读(4688) 评论(27) 推荐(12) 编辑
摘要: 编程十年 (13):毁人不倦1本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/05/03/programming10years-13.html作者:Anders Liu我的母亲是一名中学语文教师,从大学毕业一直到退休,足足干了30多年。而且其中20多年都在担任班主任和年级主任,正好覆盖了我从出生到结婚生子的整个时期。和其他老师一样,每当我犯错时,我的母亲都会拿出多年的教育经验对我进行谆谆教导。我对这种迅猛的攻势经历了畏惧、反感、不以为然、欣然接受的全部心理阶段。也许是骨子里流淌着教师的血液,也许是常年耳濡目染,我就好给别人讲个东西,而且永远 阅读全文
posted @ 2011-05-03 21:51 Anders Liu 阅读(6204) 评论(25) 推荐(12) 编辑
摘要: 编程十年 (12):阅尽天下.NET文章无数本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/05/02/programming10years-12.html作者:Anders Liu博客的出现让我的虚荣心又一次得以膨胀,那一段时间里,我极其热衷于守在一篇刚发布的博客前等待回复,并且耐心地回答回复中提到的每一个问题。即便是一个简单的“顶”,我也要... 阅读全文
posted @ 2011-05-02 22:24 Anders Liu 阅读(6731) 评论(35) 推荐(18) 编辑
摘要: 编程十年 (11):与文字的不解之缘本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/30/programming10years-11.html作者:Anders Liu在大二后期到大三的时候(大约2003年左右),宿舍的网络慢慢变得发达了。我们宿舍原来只有一台公用的台式机,而后来很快每个人就都拥有了自己的笔记本。学校的规定是每个宿舍只能有... 阅读全文
posted @ 2011-04-30 00:40 Anders Liu 阅读(5390) 评论(28) 推荐(18) 编辑
摘要: 编程十年 (10):我不是比尔•盖茨,我只是厌倦了本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/28/programming10years-10.html作者:Anders Liu从此以后,我将自己牢牢地拴在了微软的开发平台上,终日沉迷于.NET。与此同时,我还学习了SQL Server数据库。另外,还补习了HTML和少量的JavaSc... 阅读全文
posted @ 2011-04-28 22:05 Anders Liu 阅读(9595) 评论(122) 推荐(34) 编辑
摘要: 编程十年 (9):情系.NET本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/27/programming10years-09.html作者:Anders Liu靠着歪打正着借回来的一本“烂书”,我大概了解了C#的语法知识,也知道了这门语言只是.NET平台中的一个组成部分。之后我再次杀向图书馆,准备向这个新奇的领域进军。幸运的是,北工大的... 阅读全文
posted @ 2011-04-27 15:38 Anders Liu 阅读(6345) 评论(53) 推荐(14) 编辑
摘要: 编程十年 (8):歪打正着C#本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/26/programming10years-08.html作者:Anders Liu思路回来,接着混吧。2002年,大二。学校开设了面向对象和编译原理的课程。早在学习VB的时候,我就听说过面向对象的概念;而在大一的时候,也知道了编译器是一个神奇的玩意儿,能写出编... 阅读全文
posted @ 2011-04-26 22:50 Anders Liu 阅读(12361) 评论(59) 推荐(33) 编辑
摘要: 编程十年 (7):科班?自学?本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/25/programming10years-07.html作者:Anders Liu既然我对计算机这么感兴趣,而在当年,计算机又是热得不能再热的学科,所以父母没有理由不让我选择计算机专业。但是,计算机专业又是各个大学录取分数最高的专业,所以,慎重考虑下,我选择北... 阅读全文
posted @ 2011-04-25 21:18 Anders Liu 阅读(6727) 评论(19) 推荐(13) 编辑
摘要: 编程十年 (6):虚荣的C本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/24/programming10years-06.html作者:Anders Liu高二的暑假里,我带着自己写的一些程序跑到发小儿家里显摆。他家里也买了电脑,其实他家的经济状况还不如我家,但因为比我晚买了半年,所以价钱便宜了将近一千块钱!性能也提升了不少,我的机器是赛扬366的CPU,14寸球面显示器;而他买的电脑配的是PII450 CPU,显示器也是17寸纯平的。那是新世纪的开始,正是计算机飞速普及和疯狂贬值的年代。正是在他家里,我才第一次知道,虽然VB程序编 阅读全文
posted @ 2011-04-24 21:30 Anders Liu 阅读(5665) 评论(39) 推荐(7) 编辑
摘要: 编程十年 (5):站在网络边缘,却陷入信息孤岛本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/22/programming10years-05.html作者:Anders Liu高一结束后,已经进入1999年了。计算机课虽然结束了,但我和计算机并没有完全绝缘,因为这个时候一种新的行业正如雨后春笋般在我们的国家发展起来——网吧。我已经不记得是谁带着我第一次进入网吧了,不过记忆犹新的是,几乎每天晚自习的时候,我们几个闹将都要一起翘课跑到网吧里玩上一两个小时。我就读的高中比较特殊,每天晚上放学后,吃完晚饭还有晚自习,一直要上到夜里10、11 阅读全文
posted @ 2011-04-22 22:53 Anders Liu 阅读(5204) 评论(27) 推荐(4) 编辑
摘要: 编程十年 (4):步入编程殿堂本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/22/programming10years-04.html作者:Anders Liu1998年,上高中。因为迷恋电子制作而“玩物丧志”,从市重点降入区重点高中。按说这个结局会让我老爸对我玩电子制作这件事深恶痛绝,但没想到的是,假期开始的时候,我老爸甩手就给了我200块钱,让我随便买零件,随便折腾。这原是欲擒故纵之计——200块钱还没花掉一半,我就知道了自己原来不是玩硬件的料。于是放弃。就这样,高中的第一个学期基本上没有接触过任何计算机或是电子方面的东西,主要 阅读全文
posted @ 2011-04-22 00:19 Anders Liu 阅读(4901) 评论(14) 推荐(5) 编辑
摘要: 编程十年 (3):初识计算机本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/20/programming10years-03.html作者:Anders Liu1995年,上初中,凡是带电的玩意都喜欢。担任班里电教课代表,就是负责帮老师放放幻灯换换灯管什么的。1996年,初二。学校开了一门新鲜课——打字课。课程的内容是用英文机械打字机打字,教材也是针对机械打字机的。这门课本来是有上机实验部分的,但因为学校机器资源有限,所以一直没有安排上机,因此上课的内容就是背键位。学习英文打字不像学五笔那样有口诀,所以键位只能生背。还好书的封皮上画着 阅读全文
posted @ 2011-04-20 20:42 Anders Liu 阅读(4415) 评论(19) 推荐(7) 编辑
摘要: 编程十年 (2):前传2——哪有这么牛逼的游戏机?本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10years-02.html作者:Anders Liu你是不是已经发现了,在前面说了那么多关于电子产品的废话中,竟然少了最重要的一样——游戏机。虽然我不擅长电子游戏,虽然我直到25岁才拥有了一台自己的Wii(现在还贡献出去做某游戏店的演示机了),但我对于游戏机的记忆和所有80年代的朋友一样刻骨铭心。在上小学二三年级的时候,家属院对面的简易房,突然有一家玻璃上贴出了“电子游戏,开发智力”的广告语——我敢赌一千块 阅读全文
posted @ 2011-04-19 22:56 Anders Liu 阅读(5449) 评论(24) 推荐(6) 编辑
摘要: 编程十年 (1):前传1——记我家的电子产品本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10years.html-01作者:Anders Liu80年代出生的朋友们,在电子产品的阅历上一定是丰富的。我说说我碰到过的,您回忆回忆您接触过的。刚记事儿的时候家住农村,那时候家里有一台电子管收音机和一台12寸黑白电视机(当然,在80年代中后期这已经不是富裕的象征了,是标配)。我亲爱的爷爷给我上了电子产品的启蒙之课——拆收音机。我至今还能依稀记起第一步——用剪刀把电源线齐根剪断(至今不理解为什么这么做)和关键的一 阅读全文
posted @ 2011-04-19 01:04 Anders Liu 阅读(5426) 评论(23) 推荐(6) 编辑
摘要: 老刘连载:编程十年本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10years.html作者:Anders Liu谨以此文献给刘玎玎,希望将来无论你遇到什么挫折,都能保持乐观向上。并祝自己28岁生日快乐。什么是“编程”呢?我此刻的理解是,把自己头脑中的想法转变成计算机程序的过程。所以我这里写的“十年”,并不是我有十年的从业经验,也不是说我作为真正的程序员已经有十年了;而是,十年前,我可以把我的想法——而不是来自书本的示例、习题——写成程序了。十年,很多事情会被遗忘,况且又是写出来给大家看的东西,所以本文不 阅读全文
posted @ 2011-04-19 00:02 Anders Liu 阅读(9094) 评论(16) 推荐(10) 编辑
摘要: 两年前曾写过一篇《警惕常量陷阱》(http://www.cnblogs.com/AndersLiu/archive/2008/11/23/csharp-via-il-constant-a.html),时至今日,又遇到类似问题,在此做一些补充。内容包括使用枚举时的类似问题,以及关于使用常量的一些最佳实践。 阅读全文
posted @ 2010-10-28 17:59 Anders Liu 阅读(2385) 评论(7) 推荐(2) 编辑
摘要: 再次声明,本文纯水,发布首页是为了强力插入同志们的RSS。日后一定发布高水平技术文章弥补今日之过。 虽然已经开始上班了,但按照传统意义,年还没有过完,所以在这里赶紧给大家拜个晚年!作揖~ 春节都是很累的,比上班还累。不过今年春节最让我感动的就是,能够带着孩子一起给我的爷爷拜年,还留下了照片。 给大家介绍一下,最左边的是太爷,中间的是爷爷,爷爷腿上坐着的是少爷,最右边的是爷。 再来一张。 最后... 阅读全文
posted @ 2010-02-20 10:58 Anders Liu 阅读(2192) 评论(24) 推荐(2) 编辑
摘要: .NET/CLI的PE文件中广泛采用了一种整数压缩算法,这种算法可以将一个32位整数根据其大小的不同放置在1、2或4个字节中。当整数的值比较小时,这种算法能够有效地减少PE文件的大小。本文介绍了这种压缩算法,并给出了压缩/解压缩的参考实现。 阅读全文
posted @ 2010-02-09 19:20 Anders Liu 阅读(3017) 评论(13) 推荐(2) 编辑
摘要: Compressed Integer is widely used in .NET/CLI PE files; this algorithm can place a 32-bit integer into 1, 2, or 4 bytes base on its value. Compressed integer can save the size of a PE file effectively, especially when the integer value is small. This document introduces the compression algorithm for integer, and gives the reference implement of the algorithm. 阅读全文
posted @ 2010-02-09 17:00 Anders Liu 阅读(2579) 评论(5) 推荐(4) 编辑
摘要: 职场上有这么一种人,拿着一个公司的薪水,却将自己掌握的重要资料卖给另一个公司,从中牟取暴利。圈内人管这种人叫“老鼠”。 大型企业会建立一个类似于“安全合作部”这样的部门,专门监视员工,发现并消灭“老鼠”。但是,在大型企业中,“老鼠”是不可避免的,因为任何一家公司都需要了解竞争对手的机密情况,单纯地靠合法手段生存并壮大是不大现实的。有需必有供,所以“老鼠”的存在是必然并且有价值的。因此,“安全合作部”的目标并不是消灭所有的“老鼠”,而是保持一定的平衡。有的时候,为了自己的利益,“安全合作部”还需要养“老鼠”。 《监控》为我们讲述了一个“安全合作部经理”的成长故事。从最初的不适应,到学会小平衡(养养“老鼠”什么的),到学会大平衡(削弱甚至摆平自己的老板),再到对真正的平衡产生了思考(虽然胡哥是主人公何勇的好哥们,但他帮助何勇,也不一定只是出于友谊,而是为了实现自己的平衡)。 《监控》这部 阅读全文
posted @ 2010-02-05 11:33 Anders Liu 阅读(3648) 评论(18) 推荐(3) 编辑
摘要: 事先声明,本文纯属打水仗,盖因最近比较忙,博客数量人气骤降,遂寻晦气包子一骂,聊赚回帖耳。   我觉得你一开始的基调就错了——谁告诉你《程序员》是做给程序员看的杂志?你包子自诩“不按常理出牌”,难道别人就非得按常理出牌了? 我在2005年底离开的CSDN,那个时候的《程序员》已经开始转型,转型的首要目标就是——虽然杂志名字叫《程序员》,但不能只给程序员看,而且要更少地顾及程序员的感受... 阅读全文
posted @ 2009-11-11 10:38 Anders Liu 阅读(5437) 评论(158) 推荐(9) 编辑
摘要: 在读了别人的文章之后我深受启发,在此给出另外一个示例。这就是——文字旋转。 阅读全文
posted @ 2009-07-29 17:57 Anders Liu 阅读(7817) 评论(16) 推荐(10) 编辑
摘要: 《Windows高级调试》一书是讲解如何在Windows操作系统上进行高级调试的。其实“高级调试”不过是“另一种调试方法”而已,它也有自己的入门、进阶、精通等程度。而《AWD》一书,在老刘看来应该是属于“入门”和“进阶”这两个级别的,特别适合于掌握了一定的开发技术和基本调试技术,想学习高级调试的朋友。 阅读全文
posted @ 2009-07-04 19:47 Anders Liu 阅读(2390) 评论(4) 推荐(0) 编辑
摘要: 在操作MSMQ队列的权限时一定要小心,如果意外地删除了自己的访问权限,即便自己是管理员,也无法对队列进行操作,尤其是无法删除该队列。本文将介绍一种方法,可以绕过MSMQ的权限控制,只要自己是管理员,能够操作C:\Windows\System32中的文件,即可获得对任意队列的操作权。 阅读全文
posted @ 2009-06-25 14:42 Anders Liu 阅读(3996) 评论(7) 推荐(1) 编辑
摘要: 这里给出了一段可以搞死ILDASM的IL代码。 阅读全文
posted @ 2009-04-23 23:42 Anders Liu 阅读(3091) 评论(4) 推荐(0) 编辑
摘要: CliPeViewer是老刘编写的一个WinForm小程序,能够用来查看托管PE文件中的各种结构。目前有很多能够查看PE信息的程序,支持.NET的也有。不过,CliPeViewer与他们的最大区别在于,这个小程序更在意原汁原味地暴露一个PE文件中的内容,尤其是对于文件中的每个结构、每个字段,除了显示了它的值之外,还显示出了它在PE文件中的偏移量和原始数据。 阅读全文
posted @ 2009-04-18 11:25 Anders Liu 阅读(6813) 评论(33) 推荐(1) 编辑
摘要: 前两天发布了《隐藏接口实现 及 ReadOnlyDictionary》一文,有不少朋友提出疑问。其中一个主要问题就是,这样做真的可以实现“只读”吗?如果还有其他变量引用了ReadOnlyDictionary所包装的普通字典,依然可以通过另外这个变量来修改字典中的内容。有朋友甚至提到了,可以在创建ReadOnlyDictionary时,将原有字典中的内容复制出一份,来做到真正的“只读”。 其实,这些主要是因为我对这个类的应用场景没有介绍清楚的缘故。其实我这里提到的ReadOnlyDictionary也好,.NET提供的ReadOnlyCollection也罢,其目的并不是让整个字典(或集合)真的“只读”,而是希望某些具有字典(或集合)性质类成员,能够做到“在当前类中可读写,在类的外部只读”。 阅读全文
posted @ 2009-04-17 17:09 Anders Liu 阅读(3599) 评论(4) 推荐(0) 编辑
摘要: 本文介绍了如何从类型中隐藏掉接口的某个成员,并介绍了应用这种技巧实现的只读字典——ReadOnlyDictionary。 接口代表着一种契约。但有的时候,接口所达成的契约并不适用于全部的场景,或者说,接口可能定义得“太宽了”。这个时候,就有必要隐藏起某些接口成员。 然而,接口既然是一种“契约”,这就要求实现方必须为接口中的所有成员提供实现。所以,这里说到的“隐藏”,是指从对象的视角上隐藏。换言之,就是只有直接在对象上调用成员时,看不到某些接口成员,但如果将对象强制转换为接口类型,依然能看到所有的接口成员。 阅读全文
posted @ 2009-04-16 12:57 Anders Liu 阅读(4710) 评论(13) 推荐(0) 编辑