自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈皓专栏 【空谷幽兰,心如皓月】

芝兰生于深谷,不以无人而不芳;君子修道立德,不为困穷而改节。

  • 博客(141)
  • 收藏
  • 关注

原创 简单实用的Code Review工具

另一文章请参看:《Code Review中的几个提示》CSDN, 酷壳 Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法。由此,我们可以审查代码的风格、逻辑、思路……,找出问题,以及改进代码。因为这是代码刚刚出炉的时候,所以,这也是代码重构,代码调整,代码修改的最佳时候。所

2009-08-21 11:48:00 100534 10

原创 BT雷人的程序语言

原文:http://cocre.com/?p=1142  酷壳 这个世界从来都不会缺少另类的东西,人类自然世界如此,计算机世界也一样。编程语言方面,看过本站《6个变态的C语言Hello World程序》的朋友们一定对BT和另类不会陌生,但那都是些小儿科,真正的BT和另类要是从语言级上来完成。让我们来看看其中一个比较另类的语言BrainFuck。看到这个程序语言的名字,请不要以为这是一个搞笑

2009-07-13 10:26:00 19194 26

原创 Java构造时成员初始化的陷阱

原文:http://cocre.com/?p=1106   酷壳  让我们先来看两个类:Base和Derived类。注意其中的whenAmISet成员变量,和方法preProcess()1. public class Base 2. { 3.      Base() { 4.          preProcess(); 5.      } 6.

2009-07-03 17:11:00 14730 132

原创 十个糟糕的程序员的行为

原文:http://cocre.com/?p=1081 之前本站发表过《优秀程序员的十个习惯》以及《程序员需要具备的基本技能》,那是我们需要去学习和培养的。这里,我们主要讨论十个糟糕程序员的特征,主要是需要让我们去避免和小心的。1) 情绪化的思维如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。情绪化的思维或态度很有可能会把自己变成一个怪物。相信你

2009-06-25 10:13:00 22845 98

转载 如何在Java中避免equals方法的隐藏陷阱

如何在Java中避免equals方法的隐藏陷阱译者:赵锟zhaokun.km (at)gmail.com  转自:http://cocre.com/?p=1051 酷壳译者注 :你可能会觉得Java很简单,Object的equals实现也会非常简单,但是事实并不是你想象的这样,耐心的读完本文,你会发现你对Java了解的是如此的少。如果这篇文章是一份Java程序员的入

2009-06-19 11:00:00 10562 20

翻译 Unix 40年:Unix年鉴

今年是Unix 40年的生日,这篇文章,主要是一个Unix的年鉴,其记录了40年来所有和Unix有关的里程碑事件。如果你想知道Unix的一些故事,你可以查看下面这些文章:《Unix40年:昨天,今天和明天》 《Unix传奇》上篇,下篇 《Unix的现状与未来》 1956美国司法部颁布法令责成AT&T公司不得从事除了公共承运人提供的通信服务以外的一切商业活动。19

2009-06-15 11:08:00 5422 2

翻译 Unix 40年:操作系统革命的昨天,今天和明天

经历了四个十年,操作系统的未来充满了变数,但传奇将会是永久的 原文:链接–Computerworld 作者:Gary Anthes时间:2009年6月4日美国东部时间凌晨12:01 译者:陈皓(haoel(at)hotmail.com)时间:2009年6月11日北京时间晚上10:22 译者前言 今年是Unix40岁的生日。很早就看到这篇文章了,一直想转到中文社区。但

2009-06-11 22:21:00 7262 2

原创 编程十诫

原文:http://cocre.com/?p=1007 (酷壳)1.- DRY: Don’t repeat yourself.DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法

2009-06-08 11:13:00 22491 48

翻译 22条经典的编程引言

原文:http://cocre.com/?p=808 - 酷壳  下面的这些经典的引言来自英文,也许有些我翻译的是不很好,所以,我提供了中英对照,如果有问题,请大家指正。 过早的优化是万恶之源。Premature optimization is the root of all evil!- Donald Knuth 在水里行走和以一个需求规格进行软件开发,有一点是相同的

2009-06-01 16:43:00 16873 33

原创 C语言的谜题

这几天,本站推出了几篇关于C语言的文章如下所示: 语言的歧义 [酷壳链接] [CSDN链接]谁说C语言很简单? [酷壳链接] [CSDN链接]6个变态的C语言Hello World程序 [酷壳链接] [CSDN链接]如何加密/弄乱C源代码 [酷壳链接] [CSDN链接]C语言的谜题 [酷壳链接] [CSDN链接]我们可以看到很多C语言相关的一些东西。比如《语言的歧义

2009-06-01 10:05:00 15142 35

原创 如何加密/弄乱C源代码

 原文:http://cocre.com/?p=933 —— 酷壳 之前发表了《6个变态的C语言Hello World程序》[酷壳链接] [CSDN链接],主要是是像大家展示了一些C语言的变态玩法。也向大家展示了一下程序是可以写得让人看不懂的,在那篇文章中,可以看到很多人的留言,很多人都觉得很好玩,是的,那本来是用来供朋友们“消遣作乐”,供娱乐娱东而已,不必太过认真。  不过,

2009-05-30 15:23:00 14450 33

原创 谁说C语言很简单?

原文:http://cocre.com/?p=873 关于在回复里骂我的朋友们,无所谓哦,呵呵,大家有空可以看看我的另一篇文章《惹恼程序员的十件事》,我们可爱的程序员。如果你觉得文章有意思,你可以看看我的另一篇文章——《C语言的谜题》 前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东

2009-05-26 17:17:00 17483 115

原创 6个变态的C语言写的Hello World

原文:http://cocre.com/?p=914  —— 酷壳 本文仅供朋友们“消遣作乐”,能够看懂是为什么固然不错。看不懂也不必太过认真,如果你要觉得有意思的话,顶顶贴。如果你觉得没什么意思的话,一笑了之。仅供娱乐而已,不必太过认真。  下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码(加密源代码,嘿嘿)下面的

2009-05-26 15:52:00 27805 179

转载 语言的歧义

语言的歧义赵锟zhaokun.km (at)gmail.com原文:http://cocre.com/?p=830  语言是人与人相互沟通的途径,而计算机语言则是人和计算机沟通的途径。就算是任何再完美的自然语言都会有歧义,但是又是什么让人和计算计算机间产生了歧义呢?下面这篇文章来自Gowri Kumar的Puzzle C一文。我做了一些整理,挑选了其中的一些问题,并在之后配上相

2009-05-18 11:09:00 9186 16

翻译 Linux设备驱动Hello World程序介绍

本文由赵锟翻译,转载于“酷壳”:http://cocre.com/?p=566  by Valerie Henson07/05/2007(译者注:本文的例子是只能在linux的2.6内核下使用的,2.6以上的内核,译者没有做过实验,2.4是要修改make文件才能运行。)本文的出处:这里自古以来,学习一门新编程语言的第一步就是写一个打印“hello world”的程序(可以看

2009-04-29 00:00:00 15805 4

原创 程序员需要具备的基本技能

软件开发是一个跨度很大的技术工作,在语言方面,有C,C++,Java,Ruby等等等等,在环境方面,又分嵌入式,桌面系统,企业级,WEB,基础系统,或是科学研究。但是,不管是什么的情况,总是有一些通用的基本职业技能。这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯。很多程序新手也是因为缺少、达不到或是不熟悉在这些基本技能,所以,他们需要有老手带,需

2009-04-11 16:59:00 14138 5

翻译 程序员的八个级别

在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商

2009-04-06 23:10:00 24195 63

原创 惹恼程序员的十件事

程序员是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的。当然,既然是人,当然是会有性格的,也是会有脾气的。下面,让我来看看十件能把程序惹毛了的事情。一方面我们可以看看程序员的共性,另一方面我们也可以看看程序员的缺点。无论怎么样,我都希望他们对你的日常工作都是一种帮助。第十位 程序注释程序注释本来是一些比较好的习惯,当程序员老手带新手的时候,总是会告诉新手,一定

2009-04-06 23:08:00 18924 113

原创 深入浅出单实例Singleton设计模式

深入浅出单实例Singleton设计模式陈皓前序单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系统中只能出现一个实例。当然,作为一个技术负责人

2009-03-26 23:46:00 59458 24

转载 基于JVM的语言正在开始流行

基于JVM的语言正在开始流行赵锟总结:这是 Reuven Lerner在去年写的一篇博文,文章主要介绍了一些新兴的基于JVM的脚本语言。结合本文可以对Bruce的博文《C++和JAVA传统中积极的一面》有一个很好的理解。译者认为:语言始终都是一门工具,软件设计最重要的东西是来自于设计者的创造性,但是随着Java语言的出现,他的半动态的特性,ClassLoader,反射,动态

2009-03-26 11:46:00 7889

翻译 C++和Java传统中积极的一面

C++和Java传统中积极的一面作者:Bruce Eckel译者:赵锟、陈皓译者注:本文翻译自Bruce Eckel(《Thinking in C++》& 《Thinking in Java》作者)的博文,该博文于2009年03月14日发表于:http://www.artima.com/weblogs/viewpost.jsp?thread=252441本文的发表引起了

2009-03-22 21:31:00 8275 9

原创 优秀程序员的十个习惯

在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。经过一段时间后,这些人能够成为一个优秀的编码人员,他们非常熟悉如何用计算机语言来完成自己的工作。但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成为你的习惯,那

2009-03-22 11:35:00 21670 146

翻译 IBM收购Sun,这是一种什么样的精神?

《华尔街日报》3月18日报导有消息说IBM要以65亿美金收购Sun(原文),虽然消息未经证实,但已引起轩然大波。据Business Joural报道,周二,Sun的股票一下子涨了68%,从之前$4.97一下涨到了$8.36,但IBM的股价下跌4%到了$89.46。而网上的博主们都在狂写评论文章了。有持支持态度的,这篇博文表明IBM和Sun都是喜欢开源(Linux 和OpenSolaris)以及

2009-03-19 11:19:00 6109 1

原创 怎样做一个 Program Manager

我个人认为,这是一篇不错的文章,虽然我不是Program Mananger,但是我几乎在做着和这个职位很相似的工作。在这里,我把这篇文章推荐给所有的程序员,我相信,这篇文章会让你明白,只有技术是远远不够的,因为没有Program Manager这个角色,程序员们只不过一些手中拿着利器却不知所措的散兵游勇。我希望我的导读和原文能给所有的程序带来启示。(本文同步发布于:酷壳 cocre.com) 

2009-03-10 15:53:00 17154 6

原创 Fork 系统炸弹

这个炸弹很简单,就是一个命令行,如下所示::(){ :|:& };:在此,我严重警告你,请不要在你的Unix/Linux或Cygwin的Shell下执行这个命令。否则,这个命令会不停地fork子进程,直到你的整个系统无法响应。 再次警告你,请不要执行这个命令,除非你想重启你的系统。另外,对于Shell聪明的你,相信这个命令行的实际含义我就不用多说了。如果你不知道的话,那么就

2009-02-11 09:43:00 8243 9

原创 时间:1234567890

"At 11:31:30pm UTC on Feb 13, 2009, Unix time will reach 1,234,567,890. Where will you be at this momentous second?" - from Bell Labs 在下周五或周六的某一时间,计算机的时间戳(TimeStamp)为变成奇妙的1234567890,而这一天就是——格林威治时间:2

2009-02-08 22:13:00 6327

原创 结对编程的利与弊

本文同时也发表于:酷壳(http://www.cocre.com/?p=77 ) 结对编程的利与弊  陈皓http://blog.csdn.net/haoel 结对编程(Pair-Programming)可能是近年来最为流行的编程方式。所谓结对编程,也就是两个人写一个程序,其中,一个人叫Driver,另一个人叫Observer,Driver在编程代码,而Ob

2009-02-08 01:08:00 12517 5

原创 Java书籍Top 10

 本文同时也发表于:酷壳(http://www.cocre.com/?p=67 )  Java 书籍 Top 10   陈皓 http://     blog.csdn.net/haoel 下面是Java Inside上推荐的十本Java书籍(文章来源),我把中文版的也列了出来。         1)Java Language Specification, Thir

2009-02-08 00:54:00 25584 8

原创 C++ 对象的内存布局(下)

   C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel  <<<点击这里查看上篇  重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是

2008-10-15 20:59:00 69033 59

原创 C++ 对象的内存布局(上)

C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel  点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非

2008-10-15 20:36:00 165711 83

原创 Java NIO 类库Selector机制解析(续)

Java NIO 类库Selector机制解析(续) 陈皓http://blog.csdn.net/haoel  在前些天的《Java NIO类库Selector机制解析》文章中,我们知道了下面的事情: 1)Sun的JVM在实现Selector上,在Linux和Windows平台下的细节。2)Selector类的wakeup()方法如何唤醒阻塞在select()

2008-05-04 10:55:00 21673 20

原创 用GDB 调试Java程序

用GDB 调试Java程序 陈皓http://blog.csdn.net/haoel  背景 想要使用GDB调试程序,就需要用GNU的编译器编译程序。如:用GCC编译的C/C++的程序,才能用GDB调试。对于Java程序也是一样的,如果想要用GDB调试,那么就需要用GNU的Java编译器——GCJ来编译Java程序。 目前,很多Linux都不会预装Sun的JVM

2008-04-13 21:39:00 34013 11

原创 Java NIO类库Selector机制解析(下)

 Java NIO类库Selector机制解析(下) 赵锟   陈皓http://blog.csdn.net/haoel 点此查看本文上篇五、  迷惑不解 : 为什么要自己消耗资源? 令人不解的是为什么我们的Java的New I/O要设计成这个样子?如果说老的I/O不能多路复用,如下图所示,要开N多的线程去挨个侦听每一个Channel (文件描述符) ,

2008-03-27 21:50:00 49083 43

原创 Java NIO类库Selector机制解析(上)

 Java NIO类库Selector机制解析(上) 赵锟   陈皓http://blog.csdn.net/haoel 一、  前言 自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时,也引入了多路复用的异步模式。NIO的包中主要包含了这样几种抽象数据类型:  Buffer:包含数据且

2008-03-27 21:44:00 86772 24

原创 C++ 虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2007-12-18 22:07:00 495472 523

原创 GPLv3:大教堂和集市的新一轮对抗

GPLv3:大教堂和集市的新一轮对抗 陈皓http://blog.csdn.net/haoel/  自从AT&T开始私有化原本以开源方式发布的Unix以来,众多老牌程序员和组织失去了修改和编写Unix的权利和乐趣。正当世界计算机软件文明开始陷入了黑暗的帝国的时代,整个计算机世界正在讨论关于“大教堂”(集权、封闭、受控、保密)和“集市”(分权、公开、精细的同僚复审)两种开发模式哪个更

2007-07-17 23:57:00 19062 6

原创 谈谈职业规划——CSDN对我的采访

职业规划就像软件工程        电信、银行等行业一直是许多人非常向往的工作单位,清差厚禄,旱涝保收,陈皓却不以此为然。所以当记者采访他的时候,他连用了两个“最”字来形容他离开银行的成就感。         陈皓毕业后的前两年就职于云南省工商银行,从事银行电信内全国性业务系统开发。后来在全球最大的网格计算/分布式平台软件公司从事研发工作,熟悉Unix系统以及C/C++语言,擅长大型系统软

2007-07-13 11:09:00 43775 40

原创 Unix现状与未来——CSDN对我的采访

       在去年美国《信息周刊》评选出的有史以来最伟大的12款软件中,Unix 操作系统排名首位。值得一提的是,Java语言排名第五,而微软的Excel电子表格和Google搜索分别列居第九和第十一位。Unix 操作系统的地位可见一斑。        的确,一直以来,Unix服务器凭借高性能、高可靠性及高可用性,每每在关键应用领域能够担当重任。然而,无可否认的是,近年来,随着企业IT成本的

2007-07-13 10:35:00 24367 8

原创 警惕UNIX下的LD_PRELOAD环境变量

 警惕UNIX下的LD_PRELOAD环境变量 陈皓 前言        也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。 在开始讲述为什么要当心LD_PRELOAD环境变量之前,请让我先说明一下程序的链接。所谓链接,也就

2007-05-09 17:40:00 58398 6

原创 Unix传奇 (下篇)

Unix传奇(下篇)陈皓   Unix传奇(上篇) Unix与黑客文化 黑客的文化和Unix的商业化存在着必然的联系。自从Unix出现,黑客文化就与之而来。 1993初,一个悲观的观察家撰文指出,已经有理由认为Unix的传奇故事连同他带有黑客文明将一同破产。许多人预测,从那时起Unix将在六月内死亡。他们很清楚,十年的Unix商业化,使自由跨平台

2007-03-27 09:40:00 26677 21

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除