自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 问答 (1)
  • 收藏
  • 关注

使用位图做整型ID去重的一种方法

什么是位图算法英文叫做bitmap,也有叫做bitset,Java SDK的util包中就包含一个BitSet的实现。《编程珠玑》中提到一个位图算法的例子:输入:一个文件,里面大约有1千万行数据,每个数据是7位整数,同时每个数是唯一的,即不允许有2个数相同,这些整数不与其他任何数产生关联。输出:将这个整数按升序排列,并生成到一文件中限制:能够使用内存为1M,但是附存足够大...

2012-01-29 11:54:15 221

Storm的第一份作业

去年在公司做一些实时数据分析的程序,基本上依靠的是分布式缓存系统(像我们公司的tair或者使用MongoDB这样的kv数据库),他们具备的原子递增功能可以用来作实时的计数。这种方式要是遇到复杂的统计规则,那么设计所需的key就变得异常困难。还有个最大的缺点,一旦分布式缓存系统发生异常或者重启的时候,你的计数就完全不准确了。很早开始关注storm了,本来想山寨一个。最近找了几个公司里比较关...

2012-01-29 11:52:50 151

原创 我的新博客地址

我的新博客地址http://xiaofengmetis.com

2012-01-19 22:04:29 220

用emacs的org-mode做时间管理

根据只管去做(GTD)的理念,你需要一个可靠的外部系统来接管所有可能扰乱你心绪的事情,而你的心中应该是无所牵挂,可以"只管去做"的。在这里,org-mode自然就是那个可靠的外部系统了,这在emacs23下是自带的,稍稍在.emacs下加点配置(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))(define-key global-ma...

2010-05-02 19:29:48 192

浏览器缓存机制

Cache-ControlCache-Control 是最重要的规则。这个字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令。这些指令指定用于阻止缓存对请求或响应造成不利干扰的行为。这些指令通常覆盖默认缓存算法。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同一个指令。 cache-control 定义是:Cache-Control = "Cache-Control"...

2010-03-02 15:06:36 103

原创 hibernate启动时的一个小问题

测试时报错但测试可正常运行javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.in...

2010-01-07 21:39:40 120

原创 Reconfiguring FreeBSD Ports

make rmconfig optionThe simplest one is type command make rmconfig. First login as root; go into the directory containing the port and type:# cd /usr/ports/www/apache22# make rmconfigOutput:...

2009-10-31 11:34:00 160

原创 使用Portsnap更新Freebsd port tree

portsnap从Freebsd 6.0之后成为ports的默认部分, 从效率上来说比cvsup要快的多,因为它是一次性下载压缩包.首先找个国内速度快的镜像 vi /etc/portsnap.confSERVERNAME=portsnap.cn.FreeBSD.org直接更新 portsnap fetch updateLooking up portsnap.hshh.o...

2009-10-31 10:29:15 168

原创 优化FreeBSD ports下载速度

使用axel来替换fetch来进行多线程下载FETCH_CMD=axelFETCH_BEFORE_ARGS= -aFETCH_AFTER_ARGS=DISABLE_SIZE=yes或者只写一行FETCH_CMD=axel -a 添加更快的port下载站点 在make.conf文件中使用配置MASTER_SITE_OVERRIDE参数,可自行增加软件镜像以...

2009-10-31 10:17:15 292

原创 Makefile学习教程

0 Makefile概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写mak...

2009-09-07 18:45:19 89

原创 四国程序员的比较

      最近以裁判的身份参加了公司举办的编程大赛,发现高手云集,对公司内部的程序员能力也有了更深入的了解。我觉得编程能力对程序员而言,虽然很重要,但并不是全部。那么作为一个程序员,到底应该具备什么样的能力呢?这个话题显然太大。不过我觉得可以看看其它国家的程序员,也许可以得到一些借鉴。我有幸和中国,美国,印度和日本四国程序员有比较深入的合作过。虽然他们不一定有代表性,但我觉得他们的共...

2009-08-26 14:03:48 98

原创 使用一行命令实现tree功能

使用ls, grep, and sed实现tree命令功能,如下:ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' 

2009-08-18 11:41:04 218

原创 Latex制作Slide的工作流程

这里简单介绍一下使用Beamer制作Slide的流程,以及制作Slide时一些要注意的问题。第0步:明确时间限制;按每分钟一张制作Slides第1步:给每个Slide建一个子目录,目录名以演讲的日期开头.这样便于排序和将属于同一个Slide的文件放到一个目录中。第2步:组织文字结构。使用\section和\subsection命令。如果内容比较多也可以分成几个部分(\part)。每一部分一般有2-...

2009-08-17 14:13:07 858

原创 emacs命令

emacs命令emacs中的每一个命令都有一个命令名,命令名就是该命令所对应的LISP函数的函数名。在emacs中,我们可以为这些命令配置快捷键,从而达到快速调用命令的目的。.使用emacs来执行命令的方法有两种:(1).使用Ctrl键 (2).使用Meta键。所有emacs命令都可以用Meta键表示出来,键盘上如果没有Meta键,则可以用Alt键或ESC键来代替。常用的emacs命令通...

2009-08-13 16:11:24 143

发布简陋版xweb

花业余时间捣鼓了一个pythonic web framework,目前我把它称为xweb,还比较简陋,欢迎大家和我一起探讨。 页面模板采用jinja2 ORM采用SQLAlchemy 在项目目录下 ./gen.py run #运行项目 ./gen.py syncdb #同步数据模型到数据库 ./gen.py app APP_NAME #创建一个应用  xweb的...

2009-05-24 13:32:32 133

原创 构架方面的一些Url

Flickr Architecturehttp WikiPedia 技术架构学习分享http://www.dbanotes.net/opensource/wikipedia_arch.htmlYouTube 的架构扩展http://www.dbanotes.net/opensource/youtube_web_arch.htmlInternet Archive 的海量存储浅析http://www....

2009-05-14 17:23:14 91

原创 代码量等于树叶量

我在上学期和清华的同学讨论了代码量的问题。 因为许多相似课程都有“代码量”的要求,就是说软件工程的项目选题如果没有到一定量的代码,就不能算合格的选题。  我对教学没什么经验,我认为 - 软件工程课上写的软件只要解决实际问题,就至少是及格的选题。我后来顺口胡诌了一段:清华园有两棵果树,春天长芽,抽条,夏天开花,秋天结果。清华软件科学试验班的同学去采摘,发现果树A 的果实比...

2009-05-07 17:03:16 121

原创 水煮互联网创业

鞋厂理论:世界上有无数家鞋厂,制造着各自的鞋子,销售给各自的客户。在网络上,当某个生意已经有人在做的时候,就想想皮鞋理论,你会发现:在大多数情况下,即使有很多人在做鞋子,也并不意味着你就不能再去做鞋子了,别人做了耐克,你可以做李宁,不行就做安踏啥的,即使不知名的杂牌也在三线城市卖的不错。如果其他的鞋厂都在赚钱,那么你也有机会在这个市场里分一杯羹;如果其他鞋厂都在亏钱,那么你要想办法把他们亏...

2009-05-05 09:30:53 121

原创 IPMItool简介

IntroductionIPMItool is a utility for managing and configuring devices that support the Intelligent Platform Management Interface (IPMI) version 1.5 and version 2.0 specifications. IPMI is an op...

2009-04-29 21:42:42 182

原创 Google Code支持Mercurial了

我也是在前段时间python开始使用Mercurial才开始关注这个版本控制系统,很多我们所熟悉的程序包括:AdiumPythonapp-engine-patch等都采用Mercurial进行版本控制。 支持向https://projectname.googlecode.com/hg发送pushing和pulling支持ema...

2009-04-26 10:45:28 125

JBoss目录结构说明

jboss-as 目录结构(Directory Structure)Directory Description bin Contains startup, shutdown and other system-specific scripts. Basically all the entry point JARs and start script...

2009-04-16 09:33:40 118

Python Expect模块

Python中有一个pExpect模块,和TCL中的expect命令差不多,通过expect可以使你的脚本和shell命令之间进行交互。下面python脚本,使用了expect与ssh和scp交互来完成任务。 #!/usr/bin/pythonimport pexpectimport sysimport timeimport osnow = time.strftime("%m...

2009-04-06 13:52:25 245

从GAE datastore联想到key-value database的应用

     随着google app engine的推广,google的bigtable越来越得到重用。当然使用GAE的时候是感觉不到bigtable的存在的,因为我们直接使用的是封装好的google.appengine.datastore。GAE的datastore使用起来很像大多数的orm,对于现在使用怪了orm的程序员来说非常的friendly(定义model and properties就可...

2009-03-31 18:06:38 112

wget very cool!!!

wget不仅能抓取某个页面,还能对网站做镜像,貌似很不错。这个不就是爬虫吗?而且速度也很快,用来抓取网页格式的文档是不错的。 让我们看这条命令:wget --mirror –w 2 –p --HTML-extension –-convert-links –P ~\wget_files\example1 http://www.yourdomain.com  --mirror(-m):指定要...

2009-03-26 10:31:52 83

原创 JRobin简介

      做过网络管理的人,对于MRTG应该不算陌生。MRTG可以不断收集来自SNMP的数据,保存这些数据,并且按照日、周、月、年的方式生成4幅图像及相关说明,很直观的显示出要检测数据的趋势信息。MRTG是比较早的技术了,后来又出现了RRD技术,是在MRTG技术的基础上发展起来的,更加灵活、更加方便。其应用也不在局限在主要监测网络数据上了。你可...

2009-03-20 10:49:56 102

原创 Java中assertion的使用

      assertion的使用是一个复杂的问题,因为这将涉及到程序的风格,assertion运用的目标,程序的性质等问题。通常来说,assertion用于检查一些关键的值,并且这些值对整个程序,或者局部功能的完成有很大的影响,并且这种错误不容易恢复的。assertion表达式应该短小、易懂,如果需要评估复杂的表达式,应该使用函数计算。以下是一些使用assertion的情况的例子,这些方式可以...

2009-03-18 16:06:23 310

原创 JVM调优总结

堆大小设置JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java -Xmx3550m -Xms3...

2009-03-03 10:40:12 67

JS代码的管理机制

问题随着AJAX的流行,JS在web应用中的比重越来越大。随之而来,对JS代码的维护和重用就需要有一套机制来管理。Java中除了对象、类这些概念外,还有一个灵活的包机制。众所周知,JS本身并没有内建这样的机制,所以像一些JS框架,如DOJO,就自己实现了一套。在我们当前的项目里,评估了几个JS框架,然后决定了采用Mootools,主要是因为它更加OO,更有利于重用。遗憾的是Mootools并...

2009-03-01 21:55:06 99

原创 jQuery和MooTools的真正区别

自己一直在用MooTools框架,偶然看见这篇文章,作者是MooToolsTeam的成员之一,讲解了jQuery和MooTools的一点点区别,主要是我觉得他写JavaScript代码和他的思维方式很值得学习。另外,对JavaScript的编程思想和对框架的选择都有很多很好的建议,对于犹豫在各种框架上的人有很好的指导作用,另外对于想深入对框架进行研究或者想自己开发框架的人也有很好的建议...

2009-02-25 15:33:07 388

企业级应用集成的几种方式

企业级应用集成简单的说就是将分散的应用程序集合到一起,提供一个统一的功能集合。一个企业中可能有很多个独立实现的应用程序,使用了不用的语言不同的平台。企业需要一个统一的方式来共享数据和处理过程。企业级集成主要有几个方式:文件传输(File Transfer):让每个应用都生成共享数据的文件供其他应用消费,同时也消费其他应用生成的文件。共享数据库(Shared Database):让每个应用...

2009-02-23 17:23:57 994

Java Reference的简单总结

介绍Java 2平台中引入java.lang.ref包(其中包含SoftReference、WeakReference、PhantomReference和ReferenceQueue类)。SoftReference、WeakReference、PhantomReference都是弱引用,他们的强弱程度依次是...

2009-02-18 10:45:49 88

Java5 Concurrent包中的锁机制

        JDK1.5以后加入了concurrent包,主要是为了提高多线程的开发效率,其中提供了很多支持并发的集合类,其中包括:ConcurrentHashMap。大家知道HashTable也是支持并发环境的,也就是说多线程安全的,那两者有什么区别呢?分析        其实简单的说是同步机制有区别,具体区别又在那里呢?        请看HashTable的put方法:/** ...

2009-02-16 16:19:24 99

更好的代码:使用单元测试

什么是单元测试      单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。      程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和期望的一致。为什么要使用单元测试      如果是编译没有通过的代码,没有任何人会...

2009-02-14 13:48:50 80

原创 程序员的十层楼(搞笑篇)

第一层:菜鸟 形如你我经常在Javaeye发贴提问的人。 第二层:大虾 经常在Javaeye上回帖的人。 第三层:牛人 Javaeye上解决难题的人。 第四层:大牛 Linus TorvaldsBill GatesDave WinerDavid H.Hansson第五层:专家Richard StallmanUdi ManberJohnathan Sachs第六层:学...

2009-02-09 10:59:54 142

原创 程序员的十层楼(1~3层)

自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级,...

2009-02-09 10:29:55 72

原创 该选择哪个Java Map对象?

HashMap, Hashtable, LinkedHashMap and TreeMap are all classesimplementing the Map interface. All of them will have keys and values.The keys are unique. To find out whether the keys are same, they m...

2009-01-04 16:48:36 81

原创 Java编码规范

1 介绍(Introduction)1.1 为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为重要,有以下几个原因:- 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发...

2008-12-08 11:21:02 80

安装和熟悉我们的开发环境

[b]1.安装Ubuntu linux操作系统[/b]安装ubuntu相当的简单,首先你可以从http://www.ubuntu.com.cn获取ubuntu的镜像文件。推荐下载x.04版的,如8.04。安装方式推荐通过刻录成光盘的方式安装,具体安装方法,可以看这篇文章http://wiki.ubuntu.org.cn/Newcomer安装设置请参考如下链接http://wiki....

2008-12-08 10:44:40 111

原创 学习软件设计指南--注重基础

相信对于很多程序员来说,架构师是他们为之努力的方向,他们希望有一天可以为一个大的系统来设计框架,架构。但在些之前,还需要付出许多,包括时间和精力,更重要的要知道自己的方向。与以前的程序员相比,现在的程序员无疑是幸福了很多,扑天盖地的资料,可以让人很容易得到自己所需要的内容,但是知道自己想要的内容,却成为另外一个难题。在下文中,希望能够结合我个人的一些学习经验来为大家解决一些学习上的问题。学...

2008-11-23 22:48:15 137

原创 Web 设计:实现干净代码的12条定律

漂亮的代码是漂亮网站的基础,优秀的 CSS 只存在与同样优秀的 HTML 之上,干净的,语义的 HTML 代码让一个网站更健壮。本文讲述了12个实现干净Web设计代码的定律,适合于任何从事Web设计的人。1. Strict DOCTYPE要做就做对的。不管是 HTML 4.01 还是 XHTML 1.0,它们都提供 Strict 模式,使用 Strict 模式可以保证我们的代码不隐...

2008-11-18 14:46:32 72

空空如也

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

TA关注的人

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