java
iteye_16051
这个作者很懒,什么都没留下…
展开
-
What's New on Java 7 Phaser
1 Overview Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等。本文在Phaser自带的示例代码基础上进行一下简单的分析。 2 Glossary2.1 Registration Phaser支持通过register(...2011-08-02 16:20:21 · 54 阅读 · 0 评论 -
Membase in Action
这几天试用了一下Membase,在这里简单地冒个泡。作为一款分布式的key-value 数据存储,Membase完全兼容memcached(实际上Membase跟memcached也是颇有渊源)。 用于memcached的客户端也同样可以访问Membase,例如spymemcached和xmemcached等。 既然Membase跟memcached兼容,那么可能大多数人都会有...2011-08-02 16:20:26 · 61 阅读 · 0 评论 -
Sequantial Lock in Java
1 Overview Linux内核中常见的同步机制有Atomic Operation,Spin Locks,Semaphore,Mutex等。其中Spin Locks和Semaphore都支持读/写锁。此外,Linux内核还支持一种更轻量级的读/写锁定机制:Sequential Lock。跟其它读/写锁定机制相比,Sequential Lock有以下特点:在获取锁时偏...2011-08-02 16:20:31 · 73 阅读 · 0 评论 -
Linux Readling List
Linux in a NutshellLinux System ProgrammingLinux Kernel Development推荐这三本书。一不小心成了Robert Love的粉丝。2011-08-02 16:20:36 · 58 阅读 · 0 评论 -
DTCC 数据库技术大会归来
Meet people, learn stuff.2011-08-02 16:20:40 · 62 阅读 · 0 评论 -
Scenarios that could cause deadlocks in MySQL
1 Overview InnoDB自动检测死锁。如果死锁发生,那么InnoDB会回滚权重相对小的事务。实际上,InnoDB中存在以下两种类型的死锁:真正的事务间循环等待。在进行死锁检测的过程中,如果InnoDB认为检测的代价过大(例如需要递归检查超过200个事务等),那么InnoDB放弃死锁检测,并认为死锁发生。 本文中使用的MySQL版本: 5.1...2011-08-02 16:20:46 · 55 阅读 · 0 评论 -
Git vs SVN
1 Overview Git作为一种Distributed Version Control System,和传统的Contralized Version Control System(例如SVN,CVS)相比存在很多不同之处,以下笔者认为相对来说比较重要的区别。本文提到的SVN版本为1.5,Git版本为1.7.0。 2 Differences2.1 Data...2011-08-02 16:20:51 · 62 阅读 · 0 评论 -
Happy new year
It has been a long time that I didn't put down anything on my blog. I was busy implementing a client/server prototype using quickfix/J and Eclipse RCP. This reminds me a lot of things that I‘ve ...2011-08-02 16:20:55 · 63 阅读 · 0 评论 -
MySQL HandlerSocket in Action
1 Overview 最近一篇关于MySQL HandlerSocket的blog吸引了不少人的注意,甚至MySQL Performance Blog上也有关于HandlerSocket的性能评测。该blog中声称对于一个CPU bound而非IO bound的MySQL Server(即绝大部分的数据可以从缓存中取得,例如InnoDB Buffer Pool有接近100%...2011-08-02 16:21:00 · 42 阅读 · 0 评论 -
My Favourite Features of Scala
1 first class function.2 trait. 可以有方法的默认实现,可以限定被mixed into的类型,可以在语义上更精确地限定方法参数的类型等。3 variance. 相比Java Generic中有限的支持,Scala中的variance更加灵活。4 structural type. 基于反射的语法糖,有的时候会发现它非常便利。5 implici...2011-08-02 16:21:04 · 58 阅读 · 0 评论 -
Bloom Filter
1 Overview Bloom filter最早由 Burton Howard Bloom提出,是一种用于判断成员是否存在于某个集合中的数据结构。 Bloom filter的判断基于概率论:如果某个成员存在于集合中,那么Bloom filter不会返回假(即不存在),也就是说false negative是不可能的。如果某个成员实际上不存在于集合中,Bloom f...2011-08-02 16:21:08 · 79 阅读 · 0 评论 -
Python‘s Reading List
以下内容仅代表个人观点,绝无广告意图。Learning Python 3rd Edition. 尽管有些厚(英文版700多页),但是不失为Python入门的绝佳书籍之一。Dive into Python. Python进阶,内容比较全面。The Definitive Guide to Django Second Edition. Django入门书籍,内容浅显。 Pro...2011-08-02 16:21:13 · 61 阅读 · 0 评论 -
The goal is the journey itself
不到两周的时间内阅读了1000多页的英文文档,编写了300页的ppt,组织了近20小时的培训,平均每天睡眠4~5小时。How did I make it through!2011-08-02 16:21:17 · 65 阅读 · 0 评论 -
Rounding in Python
本文所有例子均基于Python 3.1.2 1 Overview 首先简单介绍几种常见的舍入模式:ROUND_CEILING : 向正无穷大(Infinity)方向舍入。ROUND_FLOOR : 向正无穷大(–Infinity)方向舍入。ROUND_UP : 向远离0的方向舍入。ROUND_DOWN : 向靠近0的方向舍入。ROUND_HAL...2011-08-02 16:21:21 · 177 阅读 · 0 评论 -
Lost and Found
今天突然发现很久以前在JavaEye上发表的Efftive J2ME系列的文章只剩下最后一篇,其余三篇莫名其妙的被失踪了。之前一直以为JavaEye是个保存技术文档的不错选择,现在看来也未必了。无奈只得在网上试试搜索一下,幸亏有别的网站转载了这几篇文章, 于是重新在JavaEye上发表一遍。在重新发表的时候,貌似知道了其中缘由:文档里含有中文BOMB字样(这是因为我写的一个游戏名...2011-08-02 16:21:26 · 89 阅读 · 0 评论 -
What's New on Java 7 Phaser
1 Overview Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等。本文在Phaser自带的示例代码基础上进行一下简单的分析。 2 Glossary2.1 Registration Phaser支持通过register(...2011-08-02 16:23:11 · 61 阅读 · 0 评论 -
Membase in Action
这几天试用了一下Membase,在这里简单地冒个泡。作为一款分布式的key-value 数据存储,Membase完全兼容memcached(实际上Membase跟memcached也是颇有渊源)。 用于memcached的客户端也同样可以访问Membase,例如spymemcached和xmemcached等。 既然Membase跟memcached兼容,那么可能大多数人都会有...2011-08-02 16:23:16 · 56 阅读 · 0 评论 -
Sequantial Lock in Java
1 Overview Linux内核中常见的同步机制有Atomic Operation,Spin Locks,Semaphore,Mutex等。其中Spin Locks和Semaphore都支持读/写锁。此外,Linux内核还支持一种更轻量级的读/写锁定机制:Sequential Lock。跟其它读/写锁定机制相比,Sequential Lock有以下特点:在获取锁时偏...2011-08-02 16:23:21 · 73 阅读 · 0 评论 -
Linux Readling List
Linux in a NutshellLinux System ProgrammingLinux Kernel Development推荐这三本书。一不小心成了Robert Love的粉丝。2011-08-02 16:23:25 · 57 阅读 · 0 评论 -
DTCC 数据库技术大会归来
Meet people, learn stuff.2011-08-02 16:23:29 · 59 阅读 · 0 评论 -
Scenarios that could cause deadlocks in MySQL
1 Overview InnoDB自动检测死锁。如果死锁发生,那么InnoDB会回滚权重相对小的事务。实际上,InnoDB中存在以下两种类型的死锁:真正的事务间循环等待。在进行死锁检测的过程中,如果InnoDB认为检测的代价过大(例如需要递归检查超过200个事务等),那么InnoDB放弃死锁检测,并认为死锁发生。 本文中使用的MySQL版本: 5.1...2011-08-02 16:23:34 · 57 阅读 · 0 评论 -
Git vs SVN
1 Overview Git作为一种Distributed Version Control System,和传统的Contralized Version Control System(例如SVN,CVS)相比存在很多不同之处,以下笔者认为相对来说比较重要的区别。本文提到的SVN版本为1.5,Git版本为1.7.0。 2 Differences2.1 Data...2011-08-02 16:23:38 · 59 阅读 · 0 评论 -
Happy new year
It has been a long time that I didn't put down anything on my blog. I was busy implementing a client/server prototype using quickfix/J and Eclipse RCP. This reminds me a lot of things that I‘ve ...2011-08-02 16:23:43 · 86 阅读 · 0 评论 -
MySQL HandlerSocket in Action
1 Overview 最近一篇关于MySQL HandlerSocket的blog吸引了不少人的注意,甚至MySQL Performance Blog上也有关于HandlerSocket的性能评测。该blog中声称对于一个CPU bound而非IO bound的MySQL Server(即绝大部分的数据可以从缓存中取得,例如InnoDB Buffer Pool有接近100%...2011-08-02 16:23:47 · 61 阅读 · 0 评论 -
My Favourite Features of Scala
1 first class function.2 trait. 可以有方法的默认实现,可以限定被mixed into的类型,可以在语义上更精确地限定方法参数的类型等。3 variance. 相比Java Generic中有限的支持,Scala中的variance更加灵活。4 structural type. 基于反射的语法糖,有的时候会发现它非常便利。5 implici...2011-08-02 16:23:52 · 65 阅读 · 0 评论 -
Bloom Filter
1 Overview Bloom filter最早由 Burton Howard Bloom提出,是一种用于判断成员是否存在于某个集合中的数据结构。 Bloom filter的判断基于概率论:如果某个成员存在于集合中,那么Bloom filter不会返回假(即不存在),也就是说false negative是不可能的。如果某个成员实际上不存在于集合中,Bloom f...2011-08-02 16:23:57 · 59 阅读 · 0 评论 -
Python‘s Reading List
以下内容仅代表个人观点,绝无广告意图。Learning Python 3rd Edition. 尽管有些厚(英文版700多页),但是不失为Python入门的绝佳书籍之一。Dive into Python. Python进阶,内容比较全面。The Definitive Guide to Django Second Edition. Django入门书籍,内容浅显。 Pro...2011-08-02 16:24:01 · 80 阅读 · 0 评论 -
The goal is the journey itself
不到两周的时间内阅读了1000多页的英文文档,编写了300页的ppt,组织了近20小时的培训,平均每天睡眠4~5小时。How did I make it through!2011-08-02 16:24:05 · 56 阅读 · 0 评论 -
Rounding in Python
本文所有例子均基于Python 3.1.2 1 Overview 首先简单介绍几种常见的舍入模式:ROUND_CEILING : 向正无穷大(Infinity)方向舍入。ROUND_FLOOR : 向正无穷大(–Infinity)方向舍入。ROUND_UP : 向远离0的方向舍入。ROUND_DOWN : 向靠近0的方向舍入。ROUND_HAL...2011-08-02 16:24:10 · 78 阅读 · 0 评论 -
Lost and Found
今天突然发现很久以前在JavaEye上发表的Efftive J2ME系列的文章只剩下最后一篇,其余三篇莫名其妙的被失踪了。之前一直以为JavaEye是个保存技术文档的不错选择,现在看来也未必了。无奈只得在网上试试搜索一下,幸亏有别的网站转载了这几篇文章, 于是重新在JavaEye上发表一遍。在重新发表的时候,貌似知道了其中缘由:文档里含有中文BOMB字样(这是因为我写的一个游戏名...2011-08-02 16:24:17 · 54 阅读 · 0 评论 -
Effective J2ME(4)
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。3 J2ME开发中的常见问题 由于J2ME相关资料比较少,所以在开发过程中经常会遇到现象诡异的问题。有些问题解决了,有些绕过了。以下总结了一些比较典型的问题和解决方法。3.1 按键响应迟钝 造成按键响应迟钝的最常见的原因是程序中的其它线程占用了绝大多数的CPU时间,从而导致负责事件转发的系...2011-08-02 16:25:59 · 63 阅读 · 0 评论 -
Effective J2ME(3)
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。2.2 规模 通常J2ME设备对Jar文件的大小进行了限制,例如Nokia6610允许最大的Jar大小为64K。因此在开发J2ME应用时,应该尽量编写精简的代码,使用具有可以接受效果的最小的图片。2.2.1 编写精简的代码 很多人都曾提出过在J2ME开发中减小代码大小的建议,例如减少类和方...2011-08-02 16:26:04 · 64 阅读 · 0 评论 -
Effective J2ME(2)
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。2 J2ME开发技巧2.1 性能 在模拟器上可以使用JProbe Profiler等分析工具来分析性能瓶颈。但是需要注意的是模拟器的瓶颈与实机中的瓶颈可能存在差别。2.1.1 设计可重用的对象 在Java程序中,对象的创建是个不小的开销。同时过多的无用对象也会导致耗时的垃圾回收。因此在...2011-08-02 16:26:08 · 64 阅读 · 0 评论 -
Effective J2ME(1)
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。1 J2ME开发基础1.1 计算几何在J2ME开发中的应用 由于支持J2ME的设备通常不支持浮点运算,所以对于某些特定的问题可以通过计算几何学的方法解决。例如判断两条线段是否相交的算法,在支持浮点运算的设备上可以通过联立方程组求解的方法解决。在不支持浮点运算的设备上则需要通过计算几何的向量运算来...2011-08-02 16:26:13 · 56 阅读 · 0 评论 -
Inside java.lang.Enum
1 Introduction to enum Java SE 5中引入了枚举,同时添加了一个新关键字enum。下面是个枚举的例子:public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES;} 枚举类型也是普通的Java类,继承自java.lang.Enum并默认实现了java.lang.Comparable接...2011-08-02 16:26:17 · 74 阅读 · 0 评论 -
Too much success can kill your business
Companies that can't scale their applications often fail completely. It is ironic, but ture: too much success can kill your business.2011-08-02 16:26:22 · 63 阅读 · 0 评论 -
Open Addressing
1 Overview Open addressing和Chaining是两种不同的解决hash冲突的策略。当多个不同的key被映射到相同的slot时,chaining方式采用链表保存所有的value。而Open addressing则尝试在该slot的邻近位置查找,直到找到对应的value或者空闲的slot, 这个过程被称作probing。常见的probing策略有Line...2011-08-02 16:26:26 · 438 阅读 · 0 评论 -
JLine
Overview JLine 是一个用来处理控制台输入的Java类库,目前最新的版本是0.9.94。其官方网址是http://jline.sourceforge.net。在介绍JLine之前,首先还是介绍一下Java 6中的Console类,以便进行对比。 2 Java Console 通过调用System.console()方法可以得到与当前虚拟机...2011-08-02 16:26:31 · 131 阅读 · 0 评论 -
ID Generator
关于ID Generator,想必大多数项目都有应用。跟按需生成ID相比,预生成一定数量的ID并加以缓存的方式更有助于提升性能。预生成ID的时机,通常是在发现缓存的ID用尽的时候。这种方式有个缺陷,即从调用者的角度来看每次取得ID所花费的时间可能并不均等。 如果应用要求每次取得ID时都要尽可能的快且时间均等,那么ID Generator可以在发现缓存的ID用尽之前进行预...2011-08-02 16:26:36 · 163 阅读 · 0 评论 -
The passion of software engineer
If I stop working so hard, would I live longer? No, I just feel longer. By the way, many thanks to Dawei, you named this blog.2011-08-02 16:26:40 · 62 阅读 · 0 评论