2009年05月05日

原创 博客搬迁

从这里搬走了,有了自己的家,估计没人订阅我这里的博客,Google Reader上只有我自己。 新地址为 http://www.onlymarshall.com阅读全文>

发表于 @ 2009年05月05日 00:07:00|评论(loading...)|举报|收藏

2009年03月04日

原创 Firefox实现text-overflow:ellipsis

用ExtJS做UI层的确很好看,在IE7(我们抛弃了IE6), Chrome, Safari下运行都挺好,但Firefox总有点问题,都是关于Grid的。昨天碰到的问题是GridPanel(就是表格),当某列的内容超出了预设的宽度的时候,会把这一行撑爆,结果列就无法对齐,很难看。用Firebug + IEDevBar看了半天(IE是好的,Chrome还没有可用的调试器),才发现问题在于Firefox对text-overflow:ellipsis这个CSS3的属性不支持。Google了一番,这里推荐了两个方法,第一个方法更优雅一些,使用了mozilla的扩展属性-moz-binding,直接用上了XUL和XBL。第二种牵涉到了Javascript,感觉不是很好。这里有一个代码的下载,一开始我自己拷贝代码下来捣持了半天也没搞定,直接下代码就OK。 今天又碰到一个ExtJS在Firefox下显示的问题。有关于GroupingView的GridPanel的。不改了,应该没人会注意到吧。 阅读全文>

发表于 @ 2009年03月04日 22:20:00|评论(loading...)|举报|收藏

2009年02月22日

原创 Hibernate里的重复记录



  前几天APIS爆出了个奇怪的BUG:某个小组关闭任务后,任务自动被duplicate,然后子任务也丢失了。手工查看数据库,发现数据库里居然只有一条Task记录,Hibernate却返回两条。findById(id为主键)居然会返回两条记录,这就奇了怪了。
   用Firebug看记录,发现抛出了异常。"More than one row with the given identifier was found"。可是数据库里明明只有一条记录啊。二话不说google发现了这个post,顿时想起来由于关联(association)而产生万恶的outer join。排查了几个关联(出问题的那个类偏偏是最heavily-associated),终于在一个与Part类上发现了问题。虽然是关联,却发现另外一方(Part)存在重复的记录,直接影响到Task类。找到原因,assign给Part类的责任人,问题解决。阅读全文>

发表于 @ 2009年02月22日 13:51:00|评论(loading...)|举报|收藏

2009年01月18日

原创 打算写一个简单的数据库迁移工具



    之前做项目一直被数据库schema改动折腾得不行,找了不少工具,比如migrate4j,dbmigrate和liquibase之类的,感觉都不是很满意。其实我的需求很简单,不需要数据库的DSL(比如migrate4j或者db:migrate的那种用Java/Ruby描述DDL),只需要纯的SQL(也就是db:migrate生成的SQL),只需要前向操纵(即不需要回滚),有Eclipse的插件。
    现有的migration工具,都是使用分开的文件作为不同版本的内容,这带来了很大的灵活性。但是我的打算是对现有的开发模式有最小的影响。比如现在项目的开发方式是使用一个schema文件外加几个基础数据文件。于是我打算直接使用SVN作为数据库版本的保存工具,利用SVN的特性做版本化。最直接使用的就是SVN的版本号。不过这样的问题在于基本无法做rollback,除非使用两个文件,一个construction,一个destruction,但这要求两个文件一起提交,带来了不少复杂性。现有项目的schema不需要做rollback,正好这么做。工阅读全文>

发表于 @ 2009年01月18日 00:27:00|评论(loading...)|举报|收藏

2008年10月02日

原创 使用Cache-Control和gzip提升tomcat应用性能(整理)


    这个其实应该是常识,只不过以前做的J2EE应用大部分是内网里跑的东西,所以性能上没什么问题。这次APIS由于有在外面用的可能,加上使用了一些比较大的javascript框架(Ext),所以性能问题瞬间窜了上来。
以前做的J2EE应用没有使用上达500K的框架,最多就是几十K的Prototype,所以没什么问题。一个页面一般也就几十K最多了。但这次还在开发中的APIS,由于还在用debug版本的库,所以单单Ext就膨胀到了一个多M,加上不知道是Struts还是Tomcat默认写入Response的cache-control: no cache,在远程用起来就很慢,一般一个页面需要十多秒种甚至更久,实在无法忍受。前几天集中解决了问题。
    首先是Cache-Control的问题,Google了好一阵,没有什么直接配置的方法,只好自己抄了一个一个Filter,通过和web.xml里配置的配合勉强凑合着用。一般就是对*.do实施no-cache政策,其他需要缓存的img, js文件,统统加阅读全文>

发表于 @ 2008年10月02日 23:46:00|评论(loading...)|举报|收藏

2008年06月23日

原创 安装vsftpd, 设置虚拟用户

安装vsftpd, 设置虚拟用户阅读全文>

发表于 @ 2008年06月23日 16:40:00|评论(loading...)|举报|收藏

2008年06月15日

原创 xplanner部署错误

xplanner部署错误 TypeMismatchException异常阅读全文>

发表于 @ 2008年06月15日 15:54:00|评论(loading...)|举报|收藏

2008年06月06日

转载 ubuntu 8.04 flash 中文乱码

ubuntu 8.04 flash 中文乱码阅读全文>

发表于 @ 2008年06月06日 23:21:00|评论(loading...)|举报|收藏

2008年06月02日

原创 解决Ubuntu升级8.04 “未能计算更新”问题

解决Ubuntu升级8.04 “未能计算更新”问题阅读全文>

发表于 @ 2008年06月02日 21:14:00|评论(loading...)|举报|收藏

2008年05月30日

原创 Google TreasureHunt

Google悉尼一个寻找工程师的做题站点。现在还只有3题,一周更新一题。题目难度不大,但是还挺锻炼编程或者思考能力的(虽然robot那题比较火星,最新一题似乎用硬算的)
http://treasurehunt.appspot.com阅读全文>

发表于 @ 2008年05月30日 10:50:00|评论(loading...)|举报|收藏

2008年05月04日

翻译 Upgrading to Spring Security 2.0(zz)

Upgrading to Spring Security 2.0(zz) 原文:http://raibledesigns.com/rd/entry/upgrading_to_spring_security_2 就是appfuse作者的博客,做了一些精简阅读全文>

发表于 @ 2008年05月04日 18:43:00|评论(loading...)|举报|收藏

2008年04月17日

原创 java diff 及wiki相关

java diff 及wiki相关阅读全文>

发表于 @ 2008年04月17日 10:14:00|评论(loading...)|举报|收藏

2008年03月12日

原创 看来最好的代码阅读器还是IDE

这两天要研究下Acegi,给人做技术讲座,内容要求和Acegi有关。于是想找个代码阅读器来看代码。 第一个想到的就是SourceInsight,但考虑到SourceInsight还是收费软件,于是转向开源产品。搜了半天,找出一个Code Browser,没想到功能比Notepad++还差一些。于是无奈就用Eclispe看看代码。因为Acegi和Spring结合得很紧密,顺便把 Spring IDE的帮助看了一下,第一次用了起来,觉得很好用啊。这么多年开发Spring应用居然都没好好用Spring IDE,真是惭愧。 Attach上Source的Eclispe+Spring IDE看起Acegi代码果然非常方便,按住Ctrl进行智能导航,还有引用查找等。怪不得一直找不到合适的开源代码查看器,原来IDE就已经这么好用了。阅读全文>

发表于 @ 2008年03月12日 18:35:00|评论(loading...)|举报|收藏

2007年10月13日

翻译 web分页的设计原则

翻了一些小标题,全文见http://kurafire.net/log/archive/2007/06/22/pagination-101 1. 提供大面积的点击区域 2. 不要使用下划线 3. 明显地标识出当前页码 4. 格开各页的链接 5. 提供前一页和后一页 6. 使用第一页和最后一页的链接,当有必要时 7. 把第一页和最后一页的链接放在最外面,如下 « First ‹ Previous Current Next › Last »阅读全文>

发表于 @ 2007年10月13日 23:16:00|评论(loading...)|举报|收藏

2007年07月19日

原创 Validator原来不可以Render两次

Validator原来不可以Render两次阅读全文>

发表于 @ 2007年07月19日 22:58:00|评论(loading...)|举报|收藏

Csdn Blog version 3.1a
Copyright © Marshall