herb

我要靠谱→hello world!
随笔 - 14, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

2012年10月10日

一个合格的程序员该做的事情

     摘要: 程序员每天该做的事
1、总结自己一天任务的完成情况
最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多
2、考虑自己明天应该做的主要工作
把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作
3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法
出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢  阅读全文

posted @ 2012-10-10 13:18 herb 阅读(298) | 评论 (0)编辑 收藏

2012年6月26日

从Makefile向源代码传递宏定义

     摘要: 在编译程序过程中,往往需要动态传递一些现象,比如要区别程序DEBUG版本和release版本;比如svn中代码版本太多,为方便管理,在编译时加上被编译程序的版本号等。  阅读全文

posted @ 2012-06-26 20:28 herb 阅读(5972) | 评论 (0)编辑 收藏

2012年4月8日

跳表使用

     摘要: 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。

想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树

出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,

还要参考网上的代码,相当麻烦。

用跳表吧,跳表是一种随机化的数据结构,目前开源软件 Redis 和 LevelDB 都有用到它,

它的效率和红黑树以及 AVL 树不相上下,但跳表的原理相当简单,只要你能熟练操作链表,

就能轻松实现一个 SkipList。  阅读全文

posted @ 2012-04-08 17:58 herb 阅读(1404) | 评论 (0)编辑 收藏

2011年2月16日

Linux select()详解

     摘要: select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。

文件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file descriptor for the new socket is returned.”而man 2 open可以看到“open() and creat() return the new file descriptor”,其实文件句柄就是一个整数,看socket函数的声明就明白了:
  阅读全文

posted @ 2011-02-16 18:39 herb 阅读(721) | 评论 (0)编辑 收藏

2011年2月15日

使用extern常见问题

     摘要: 基本解释
  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
  另外,extern也可用来进行链接指定。
  阅读全文

posted @ 2011-02-15 15:29 herb 阅读(335) | 评论 (0)编辑 收藏

2011年1月21日

Java 后台服务程序设计

     摘要: 为什么需要后台服务程序?

在许多大型软件项目中,后台服务程序都扮演着极为重要的角色。它们无处不在,例如操作系统的内核程序处理各种对操作系统的内部调用;数据库系统的核心管理进程处理各种对数据库的读写操作和进程、资源的管理;大型 ERP 软件的内核管理程序要完成各种应用模块的资源、通讯管理等等。它们使系统的各种服务、资源与应用的表示之间形成了一个松耦合关系,这样就极大地增加了软件系统的稳定性和伸缩性。后台服务程序也就是相当于软件系统的管理调度中心,它是软件系统的中央处理器,是保证应用高效运行的内核程序。
  阅读全文

posted @ 2011-01-21 11:24 herb 阅读(901) | 评论 (0)编辑 收藏

2011年1月10日

HDFS简介

     摘要: HDFS全称是Hadoop Distributed System。HDFS是为以流的方式存取大文件而设计的。适用于几百MB,GB以及TB,并写一次读多次的场合。而对于低延时数据访问、大量小文件、同时写和任意的文件修改,则并不是十分适合。

目前HDFS支持的使用接口除了Java的还有,Thrift、C、FUSE、WebDAV、HTTP等。HDFS是以block-sized chunk组织其文件内容的,默认的block大小为64MB,对于不足64MB的文件,其会占用一个block,但实际上不用占用实际硬盘上的64MB,这可以说是HDFS是在文件系统之上架设的一个中间层。之所以将默认的block大小设置为64MB这么大,是因为block-sized对于文件定位很有帮助,同时大文件更使传输的时间远大于文件寻找的时间,这样可以最大化地减少文件定位的时间在整个文件获取总时间中的比例 。

  阅读全文

posted @ 2011-01-10 09:57 herb 阅读(1796) | 评论 (0)编辑 收藏

2010年12月8日

hadoop二次排序中对组合键,分区,分组的一点应用

     摘要:   阅读全文

posted @ 2010-12-08 11:13 herb 阅读(1763) | 评论 (0)编辑 收藏

2010年11月24日

[转载]用 Hadoop 进行分布式并行编程(三)

     摘要:   阅读全文

posted @ 2010-11-24 13:52 herb 阅读(553) | 评论 (0)编辑 收藏

[转载]用 Hadoop 进行分布式并行编程(二)

     摘要:   阅读全文

posted @ 2010-11-24 13:51 herb 阅读(455) | 评论 (0)编辑 收藏