学习备忘录
u010947363
这个作者很懒,什么都没留下…
展开
-
开源让我兴奋
一直在设想自己设计一个java过程自动化的工具,但苦于经验、技术、理论的积累尚浅,无法形成具体的细节思路...今日发现http://www.open-open.com/index.htm,里面介绍了好多开源项目涉及工作流、项目管理,测试、代码优化、构建,其中不乏用web和eclipse为实现形式的,真是和我好久以来的想法产生强烈共鸣,让我兴奋不已。我要借此为基础,实现我的设想!...2007-01-08 11:47:11 · 91 阅读 · 0 评论 -
速度计算有偏差
团队有4个开发人员,3个测试人员,试行了4天的小迭代,完成的工作量是7个单位,我在下一个9天的迭代中加入了上次迭代未完成的19个单位工作量.令人意外的是,第一天就完成了其中的10个,是估算有误?不是,这次完成的10个单位所涉的两个任务都是在上次迭代中就开始的,这就意味着里面有"水份",或者叫"延迟效应".也许在上次迭代这10个单位中已经完成70%,换句话讲,上次迭代的速度应该是14/4,这次迭代的...2008-09-18 01:24:44 · 150 阅读 · 0 评论 -
任务板用起来了
好久就知道任务是个项目管理的好东西,可惜一直不知道怎么用.几个月前在InfoQ上看了硝烟中的Scrum和XP,其中对任务板的使用做了比较细致的讲解,当时就想用上来着,可惜时机一直不好.总算是在几周的需求分析结束之后,我在例会上鉴定的提出了使用任务板的建立,尽管遭遇了Boss的质疑,但我那对燃烧着激情的眼睛最后"征服"了他. 下图就是一个任务板的示意图.任务板有两个区: 事务跟踪区(这仅是个人命名...2008-09-25 00:53:17 · 356 阅读 · 0 评论 -
用例编写推荐守则
没有最佳的用例模板,格式和章节是为用例的内容服务的,它们仅仅帮助理解和分析,一旦你发现它们是一种累赘,或者可有可无,应该毫不犹豫的丢掉他们; 不谈界面,切忌在用例中描述了界面的细节,那往往容易掩盖需求的根源动机; 行文简明,不要以为越多的文章描述能够帮助用例的理解,这往往会提供更多误导信息; 系统是个黑盒子,不要描述系统的内部行为,这是设计应该干的事情; 突出参与者(Actor)的意图,把握...2008-10-08 07:52:06 · 122 阅读 · 0 评论 -
GWT与Spring集成实现
如题, 实现二者的集成的大体思路是: 由spring的DispatcherServlet拦截来之GWT client的请求,并委派给spring的bean.假设, 由服务接口RPCService, 实现类RPCServiceImpl. RPCService.javapublic interface RPCService extends RemoteService {...2008-11-30 03:51:37 · 609 阅读 · 0 评论 -
Failed to resolve artifact
使用GWT-Maven Archetype (maven-googlewebtoolkit2-archetype)创建项目的时候,可能出现如下错误提示: mvn 写道[INFO] Failed to resolve artifact. GroupId: com.totsp.gwt ArtifactId: maven-googlewebtoolkit2-archetype Version: ...2008-11-30 03:58:57 · 592 阅读 · 0 评论 -
GWT中RequestBuilder使用贴士
GET请求 String url = // 动态生成RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); //若url中包含无效字符(像空格等),需要进行编码builder.setCallback(new RequestCallback() { public void on...2008-12-09 13:35:41 · 882 阅读 · 0 评论 -
Lucene索引文件解析之“域”
引言 目前最新的Lucene的版本是2.4.0,但关于索引文件格式(Index File Format)的说明并未完全及时更新,所以后文是基于版本2.1.0展开的解析。解析内容并未涉及全面,更多详细准确的说明还请参见[1]。 在看下文之前,若熟悉Lucene的索引的基本概念和过程就会对后文的理解有很大帮助。 创建一个简单的索引 这里有一段代码,它将创建一个简单的索引段(Segmen...2008-12-12 00:42:28 · 259 阅读 · 0 评论 -
Mockito入门
简介 InfoQ-使用Mockito 1.5监视普通对象 写道Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。 更多信息请参考如下位置, 原文链...2008-12-17 18:35:05 · 127 阅读 · 0 评论 -
Lucene索引文件解析之“项”
接上文Lucene索引文件解析之“域”。 关于项(Term) .tis文件里记录的是域经过分析器(analyser)分析之后项的字典。还是来看文件内容: .tis 写道FF FF FF FE 00 00 00 00 00 00 0007 00 00 00 80 ?..........€00 00 00 10 00 05 63 6F 64 6572 00 01 00 00...2008-12-23 17:25:04 · 130 阅读 · 0 评论 -
从Erlang看高并发可容错系统设计原则
《面对软件错误构建可靠的分布系统》 写道Erlang 的世界观可以归纳为如下的一些观念: z 一切皆进程。 z 进程强隔离。 z 进程的生成和销毁都是轻量的操作。 z 消息传递是进程交互的唯一方式。 z 每个进程有其独有的名字。 z 你若知道进程的名字,你就可以给它发消息。 z 进程之间不共享资源。 z 错误处理非本地化。 z 进程要么好好跑,要么死翘翘 上文引之Erl...原创 2008-12-25 18:30:15 · 318 阅读 · 0 评论 -
使用Jencks实现Hibernate与Jackrabbit的分布式事务
前言这是一篇用Spring和Jencks实现的轻量级解决方案,不依赖于应用服务器。本文是方案实现的记录,不涉及理论探讨,有关理论资源请参见本文的《解读》和参考资料。有关多数据库的分布式事务的实践,请参见Spring JTA应用。 思路Jencks提供事务管理器(Transaction Manager)和连接管理器(Connection...2009-01-13 10:40:15 · 177 阅读 · 0 评论 -
解读《使用Jencks实现Hibernate与Jackrabbit的分布式事务》
前言 本文是针对《使用Jencks实现Hibernate与Jackrabbit的分布式事务》(以下简称《JHJ》)一文的理论分析。若只关心实现,请忽略此文点击这里跳转到实现的参考示例。 本文先简单介绍JTA和JCA的一些概念作为理论基础,之后再分析Jencks如何实现Hibernate与Jackrabbit的分布式事务的。有关JTAJTA全称为Java Transaction API,...2009-01-15 18:15:15 · 200 阅读 · 0 评论 -
netty应用中接收缓存覆写的陷阱
version : netty-3.2.1.finallocation : org.jboss.netty.channel.socket.nio.NioWorker.read(SelectionKey) 代码片段如下: ByteBuffer bb = recvBufferPool.acquire(predictedRecvBufSize); ...2010-08-17 13:31:55 · 355 阅读 · 0 评论 -
应用DirectBuffer提升系统性能
Java 2 SE 6 doc :Given a direct byte buffer, the Java virtual machine will make a best effort to perform native I/O operations directly upon it. That is, it will attempt to avoid copying the b...2010-08-19 13:01:45 · 298 阅读 · 0 评论 -
教练Marc Lammers语录
本文摘之InfoQ:世界顶尖运动队教练的成功秘诀 荷兰女子曲棍球队,在世界杯的历史上,这个团队是最成功的,曾获六次冠军.主教练Marc Lammers的成功秘诀是什么呢? 有效沟通 Marc Lammers提到: 在执教生涯的早期,我花了很多时间和精力,来让大家明白我的所作所为。所以,我会在冗长的演讲中,向团队阐述我那聪明透顶的执教理念。为了确保大家都能收到传递的信息,我会问:‘大家都明白了吗...2008-09-09 02:06:48 · 148 阅读 · 0 评论 -
关于Spring嵌套事务
不久前,为了避免事务的嵌套,刻意去修改以前的设计,导致各部分之间经常出现职责的混淆和重复,颇为头痛.今天在一篇名为《解惑 spring 嵌套事务》文章中找到了答案. 原因出在没有能够深刻理解事务声明中不同事务传播属性配置的的含义.原来想象是这样的(见下面示例代码),serviceA和ServiceB的所有方法都被配置声明事务,当serviceA的方法调用ServiceB的方法,我便"顺理成章"的认...2008-09-03 05:34:02 · 273 阅读 · 0 评论 -
Jackrabbit 索引配置说明
从1.4版本之后,jackrabbit开始支持节点的属性索引配置.换句话说,我们可以通过配置决定哪种类型节点的哪些属性应该建立索引.这样一来,我们就能对索引内容进行优化,使得搜索更为高效. 索引配置文件也是一个XML,默认名字为indexing_configuration.xml.默认情况下,jackrabbit不会有索引配置的存在,因此要想使用它就必须在repository.xml和worksp...2008-09-02 00:35:23 · 422 阅读 · 0 评论 -
eclipse安装位置的添加
《eclipse权威开发指南》(以下简称指南)6.5 使用Update Manager中描述到,使用Product Configuration对话框添加安装位置时,安装位置必须是一个名为eclipse的目录,在该目录中含有一个名为.eclipseproduct的标记文件,另外还含有features子目录和plugins子目录。若安装位置不符合这样三个要求,eclipse会提示安装位置不合适(见附件...2007-01-27 10:01:16 · 386 阅读 · 0 评论 -
随感SOA
为了满足需求的善变,为了无限制的砍掉成本,我们一直不遗余力思考着,“既然有,那又为什么要做呢?”复用,可以是一种代码的拷贝,也可以是函数库或开发工具包的调用,还可以是公用组件的集成......软件研发似乎由创造变成了集成!如果说SOA之前的复用是一种静态复用集成,那么SOA就是一种动态复用集成......SOA,就像躺在磁盘上的代码被唤醒成跑在内存中的进程,他们随时等待着请求的召唤,而完成他...原创 2007-02-01 11:55:47 · 100 阅读 · 0 评论 -
win2000+cvsnt2.5.3+Eclipse3.2
用eclipse连cvsnt完成《指南》练习5。本练习中需要用不同用户模拟并发冲突,在使用非管理员帐号提交更新时,提示如下错误: Error: Test123: cvs server: C:\WINNT\TEMP\cvs21C.tmp: No such file or directory Error: Test123: cvs [server aborted]: erro...2007-02-06 18:14:13 · 96 阅读 · 0 评论 -
win2003下搭建bugzilla
软件环境: win2003 sp1 apache2.24 mysql5.0.18 activePerl-5.8.8.819-mswin32 bugzilla2.20.4安装教程详见www.bugzilla.org/docs/win32install.html需要注意的是: mysql4.1或更高版本,需要在mysql客户端输入set pas...2007-02-12 21:41:11 · 102 阅读 · 0 评论 -
svn错误信息
错误信息 Malformed file svn: E:\svn\repository\conf\svnserve.conf:12: Option expected 原因:配置文件12行开头有空格 错误信息 Attempted to lock an already-locked dir svn: Working copy ...2007-02-12 21:44:12 · 116 阅读 · 0 评论 -
容易看到了往往不是真实的
“数据没有收到啊!”“不会呀,这边发了!”“我这边没有显示,你看。”“......”这两天来来回回就是这么几句话,问题处在哪?问题出在眼睛看到的,它是不是真的?数据收没收到是基于数据接收到在控制台的回显(打印输出),但很容易忽略的是有些数据是显示不出来的,如换行、回车、制表符等;另外,还有就是C/C++对字符串的处理其实是字符数组加‘\0’,因此字符串的函数都是'\0‘做为结束标识。...原创 2007-09-08 22:30:00 · 141 阅读 · 0 评论 -
StringBuilder与StringBuffer
通常对字符串的拼接操作,我们会选用最为简单的方式,如:java 代码 String cde = "cde"; System.out.println("abc" + cde); 这种方式适用于拼接操作很少,牵扯的数据很少.一旦拼接操作存在于循环语句中,涉及数据也比较大时,这种方式的效率就会很低了.因为其拼接操作背...2007-09-08 22:34:53 · 87 阅读 · 0 评论 -
RMI的意外用法--shutdow服务进程
很早,就知道像Tomcat、JBoss这样的服务器系统可以通过startup.bat启动,而之后可以用shutdown.bat关闭。 项目初始,我也希望像这样实现,startup容易,可shutdown难。在网上搜了好久都没有关于这样的实现方法的线索。 倒是有个这样的实现: java 代码 Runtime.getRuntime().addShutdownHook(new T...2007-09-24 22:50:28 · 150 阅读 · 0 评论 -
Java GUI事件响应处理编程
根据观察者模式(或监听器模式),让我明白的认识到事件响应处理是发生在观察者与被观察者之间的游戏。这样的游戏在GUI的开发中最为常见,也应用最多。如果GUI仅仅只是堆叠图形组件的话,那么GUI开发是我认为最轻松的活(用可视化的工具,一切都是那么轻松惬意)。但事实总是与理想有很大差距的,就好像我和一美女正享受着马尔代夫怡人的海风时,此时她野兽般的男友出现在你面前,接下来一切变得复杂而无法收场?在享...2007-10-09 13:56:34 · 251 阅读 · 0 评论 -
结构模式应用总结
从正式接触设计模式到现在有一年了,一直以来都只是在一些技术文章中零零散散认知到一些设计模式,不知道是不是自己懒的缘故,就是没有好好系统的学习一下。这次借着做系统设计的机会,好好在此结合设计模式的理论总结一下。我现在做的项目中有个子系统是专门负责设备管理的。既然是管理设备,自然就无外乎添加、删除、启动、停止四种功能。这里的设备有很多种,如感应器(用来采集数据信息),又或者是输出设备(打印机)。下...2007-10-28 20:50:16 · 103 阅读 · 0 评论 -
发现XFire1.2.6两个bug
这两个bug是在调试ALE接口中define方法时发现,BUG1步骤: WS调用define方法,定义一个ECSpec 现象: 抛出异常信息,说某类的属性没有“写方法”(setter),见如下异常堆栈信息: [handler.DefaultFaultHandler]-[INFO] Fault occurred!org.codehaus.xfire.faul...2007-11-19 20:22:38 · 255 阅读 · 0 评论 -
Ubuntu 7.10 中文输入法问题解决
首先确保系统的语言支持选择的是Chinese。问题现象: firefox地址栏和搜索栏,使用快捷键无法激活输入法 文本编辑器中通过快捷键同样无法激活输入法,但右键单击后可选择inputmethod -> scim inputmethod,默认是X inputmethod。解决方法: 终端命令 $sudo gedit /etc/X11/xinit/xi...2007-12-04 11:34:01 · 141 阅读 · 0 评论 -
GWT应用经验小结
1. pendingSrc问题描述:Image的setUrl方法在第二次使用的时候,会出现“pendingSrc”的问题,导致图片无法显示。原因分析:可能是GWT的bug,具体原因不详。解决办法:通过DOM.setElementProperty()来设置src的值。2.内存泄露问题描述:刷新页面容易导致复杂的ui出现内容泄露。原因分析:编码实现中很容易是的对象间出现循环引用...2009-03-16 18:29:59 · 201 阅读 · 0 评论 -
对象的创建和销毁
考虑用静态工厂方法代替构造器 静态工厂方法的名字使得调用者更容易明白构造的意图, 静态工厂方法可以控制实例的创建数量,以提升性能. 代码示例:public static Boolean valueOf(boolean b) {return b ? Boolean.TRUE : Boolean.FALSE;}当构造参数很多的时候考虑使用建造者(模式)建造者使得构造的代码...2008-08-31 05:23:48 · 123 阅读 · 0 评论 -
回收DirectByteBuffer
为避免GC的负效应, 使用DirectByteBuffer管理原始(Raw)数据会为高负载的系统带来性能的提升. DirectByteBuffer默认是由GC来回收的, 这通常能够满足需求, 若要想自己控制回收的时机, 可以使用这段代码. import java.lang.reflect.Method;import java.nio.ByteBuffer;import jav...2011-03-03 10:33:53 · 254 阅读 · 0 评论