
技术私语
文章平均质量分 59
edwardpro1
这个作者很懒,什么都没留下…
展开
-
Hibernate性能篇——Robbin讲座总结
Hibernate的性能问题一直是大家关注的,很多人都觉得Hibernate性能不行,其实我觉得没有,Hibernate性能其实非常不错,觉得不行主要就是没有用好,下面总结下Robbin说的内容:1 多表查询: cache 正确的反转控制,这两条是解决多表的性能问题的关键2 分页技术: 使用3.0的createFilter方法得到分页,Hibernate拥有非常好的分页实现3 分表: 采用更多的1...2007-04-19 14:12:18 · 112 阅读 · 0 评论 -
数据对象化的思考
以前曾经想利用json作为字段数据存储格式,这样当我们扩展表属性时可以不增加数据字段,只需要在逻辑端做一些改造即可完成比如 数据字段如下:{"name":"test","logo":"1234.jpg","desc":"test also"} 但这样的设计有个缺点,我称之为无法索引值,也就是说如果你想查找其中的某个值的时候就不行了,它只合适做单条数据的查询,并且数据量也要2009-06-13 07:51:17 · 567 阅读 · 0 评论 -
装箱操作需注意
近期在工作里发现一个代码bug,主要是装箱上的问题,我们知道在JDK5以后开始有了装箱所谓的装箱就是把普通类型装载成他的对象形式或者还原。实际上按照我的理解这就是java原来对于String的处理,考虑下面两者的不同点://这会在堆里生成一个空间String a = new String("aaa");//只生成在栈String b = "aaa"; 实际上String一直...2009-10-24 15:25:04 · 157 阅读 · 0 评论 -
lucene的前端集群思路
你的搜索可以集群吗(这里单指前端应用集群)?这是一个突然发来的问题。。。其实lucene说实话什么都好就是集群不方便。。。查看了些资料基本上做集群都是利用系统的集群文件系统等实现的,这个效率不会好。突然我觉得可以这样的结构来做集群:一台单机做索引,索引文件存在这台物理机上然后利用nfs将索引文件映射到多台前端子机,子机将nfs的内容用RAMDirectory读到内存索引中,然后子机各自使用web服...2008-04-17 10:52:07 · 321 阅读 · 0 评论 -
用json作为配置存储介质的讨论
为什么会考虑json:有没有这样的场景,当需要增加一个新配,假设配置存储在数据库中,会有什么问题?一般的做法大概就是增加一个字段,修改下映射,或者修改sql语句,然后需要回归所有功能同样在前端需要修改你的数据bean....一个浩大的工程似乎....那么我们进阶下,假设现在换一种思路我们把数据映射到hashmap,那么首先数据库层的变动逃不掉的,接下来bean可以逃掉,但是带来的问题就是没有了...2009-04-02 20:57:13 · 169 阅读 · 0 评论 -
在JTIDY中对于inline标签的这行问题
在一个项目中需要使用jtidy格式化页面,一开始感觉不错,但是上线后发现一些样式的问题,原因是inline的标签在折行以后会自动多个空格,如:<a href=""></a><a href=""></a><a href=""></a> 这样看到的标签之间就会有空格,一般2009-09-24 16:40:33 · 151 阅读 · 0 评论 -
lucene中的filter器群组及其缓存大盘点
lucene中的filter其实并不起眼,大家对其对性能的影响也不是很关注,但实际上filter是除了单纯搜索以外,其他搜索附加功能的必选组件,其性能很大程度上会直接影响搜索的性能,之前我一直认为filter的性能比query高,但事实说明并不完全如此(这里所说的负荷是指io消耗并不是cpu),实际上在lucene中充满着各种io流,也就是说很多东西都无法从根本上保存,这也给缓存带来了很大难度(这...2008-07-04 02:13:39 · 143 阅读 · 0 评论 -
自己写的lucene的高亮类
网上有很多高亮的类,但我觉得太负责了(也许他们觉得这样性能更高),我写了一个很简单采用je分词+正则解决高亮问题,实际使用下来还是不错的:java 代码 import java.util.Iterator; import java.util.List; /** * @author edwardpro * ...2007-08-10 16:03:21 · 70 阅读 · 0 评论 -
lunece 用的高亮类
网上有很多高亮的类,但我觉得太负责了(也许他们觉得这样性能更高),我写了一个很简单采用je分词+正则解决高亮问题,实际使用下来还是不错的:java 代码import java.util.Iterator; import java.util.List; /** * @author edwardpro * */ public class HighlightPr...2007-08-10 10:12:24 · 109 阅读 · 0 评论 -
gson使用感受
google的东西向来以简洁唯美gson也是如此: private static Gson gson = new GsonBuilder().setDateFormat( "yyyy-MM-dd HH:mm:ss").disableHtmlEscaping().create(); 接下来: return gson.toJson(src);return...2009-06-13 08:27:02 · 118 阅读 · 0 评论 -
用SPRING AOP实现主动缓存
缓存的实现最简单的模式,我称作为get set invalid 法,这也是缓存中最常用的一种模式,以前实现缓存(特别是后加)一般都会写一大堆诸如: Object target = cache.get(KEY)if(target!=null){//do something}else{//do set} 这个其实很不好看,代码很不优雅.当然你可以使用一些设计模式去解决比...2009-06-21 13:05:30 · 277 阅读 · 0 评论 -
thrift-1-2-3
国庆前后玩了一下thrift,下面是一些入门级的体会和心得: 1 在linux 64位下的编译过程,之前已经写过一个文章了:http://edwardpro.iteye.com/blog/1172064 2 客户端体系结构: thrift在客户端中几个大的部分: TTransport -> TTProtocol -> {生成的业务代码} 这...原创 2011-10-07 20:24:00 · 221 阅读 · 0 评论 -
StringBuilder和String中的subString方法的细微差别
昨天改了一个很小的地方,但是在线上跑的时候突然感觉内存消耗差别很多,而代码中仅仅增加了这么一句话:int indexOfNocheck = linkBuffer.indexOf(NOCHECK_TAG);ret.append(linkBuffer.substring(0, indexOfNocheck)); ret也是一个Stringuilder,实际上我的直觉问题就应该出在...原创 2011-02-23 20:19:23 · 3351 阅读 · 0 评论 -
lexer html解析一个js过滤的改进
问题描述,使用htmlparser的lexer解析器进行页面解析时发现类似如下的页面会有问题: <script>for(i=0;i<a;i++){}</script>解析后代码变成了:<script>for(i=0;i<a;i++){}></script> 通过le...原创 2011-09-22 11:07:28 · 230 阅读 · 0 评论 -
在linux下删除大文件的好方法
上次在linux书上看到的,我们平时删除日志可能会用: rm -rf xxxxx 其实这个不好,有的比较傻的日志系统会生成不了文件的,所以比较好的做法应该是: cat xxxx > /dev/null 效果看到文件直接变成0字节了,对于当前在打的日志很好使的。...2011-09-16 09:36:04 · 239 阅读 · 0 评论 -
thrift 在ubuntu 11.04下的编译过程一两点心得
今天需要使用thrift于是随手下载下来了,下载过程很简单,但是编译工程有点血泪史,小分享一下,声明下问题不是我解决的,是同事帮助下搞定的。 一些先决条件: 1 java 的库需要装好ant2 c++版本需要装上boost库3 openssl要装上libssl-dev 环境ok了现在可以来编译了,首先./configure下,看看是不是ok的了? 接下来ma...2011-09-14 21:46:30 · 159 阅读 · 0 评论 -
JAVA7的不兼容表现
今天有时间玩一下JAVA7,却发现有点小问题:Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceConfig' defined in resource loader resource [/galaxy/biz/persisten...2009-09-06 17:49:57 · 227 阅读 · 0 评论 -
用枚举来作为配置
一个简单的需求需要自动抓取一些http request参数到上下文中,传统的做法就是写一堆过程,好一点加一个list或者map之类的容器,其实可以用枚举来做配置的: public enum RequestParam { V("v"), API("api"), PARAMS("data"), KEY("auth"), KEYTYPE("authType"), UA( ".2010-04-20 21:39:59 · 457 阅读 · 0 评论 -
JAVA学习笔记之泛型接口
应该是我很久没有好好学技术了,有时候想用的时候却发现不会写,比如今天遇到了泛型接口,所以要记录一下,这样才能更明白...在这里我并不想说泛型接口怎么写,这个很简单,后面会写的,只是想说我为什么要用.泛型接口的意图是什么?请看如下的问题:abstract class BaseBean{//略}Interface IA{public BaseBean doSomething();} 下...2009-02-02 22:58:22 · 166 阅读 · 0 评论 -
使用form dom要注意的小问题
几天调一个js遇到灵异问题:var s=$('sform');s.action="bb.html";<form action="a.html" id='sform'><input type="hidden" name="action" />...</form>js目标很简单,改变form上的action的值,结果却。。。alert出来 s.act2007-08-08 16:43:08 · 141 阅读 · 0 评论 -
ubuntu 7.04 下配置 ruby环境
其实这个环境配置很容易的应该 apt-get就可以得到了,但事实不是的,特别是在安装一切顺利的时候,但当安装到mongrel时出了点问题,系统总是提示没有mkmf.rb 然后抱了一大堆错误,实际上问题是没有apt-get ruby1.8-dev,这个东西折腾了很久。。。所以这边总结下安装的方法吧准备:sudo apt-get install build-essential sudo apt-get...2007-07-01 16:26:14 · 113 阅读 · 0 评论 -
prototype ajax 乱码的补遗
上次说过出去的乱码用apache解决,这样很方便因为apache规定了所有的header都是gbk的了,但这样有个严重的问题,比如你在这个apache下挂载了另外一个utf-8的业务怎么办?这是一个非常痛苦的问题,要解决的方法,我个人觉得还是利用服务器端解决比较好。比如在php里用header();解决头的问题,唯一的改动可能就是你把原来的文件名改成.php的就行了,这个占不了多少消耗的,而且这样...2007-05-09 08:14:15 · 84 阅读 · 0 评论 -
用innerHTML要小心了
昨天在家使用innerHTML时出现点小问题,调试了1个小时才明白:代码:js 代码 $('message').innerHTML+="<div id='abc'>"; $('message').innerHTML+="<div id='abc_child'>"; $('message').innerHTML+="<...2007-05-09 08:08:27 · 216 阅读 · 0 评论 -
prototype乱码的问题解决
问题描述,采用gbk页面传输中文到后台,后台显示乱码。经过查看原来是prototype把前台的gbk自作聪明变成了utf8(这是合理的方法哈),造成后台无法取得正确的编码。经过考虑还是用后台来解决乱码问题,网上找了几个urlencode的函数都不行,所以还是用php本身解决这个问题比较省心。如下的函数:iconv("UTF-8", "GBK//IGNORE",substr(Char_cv($pwu...2007-05-05 07:01:32 · 147 阅读 · 0 评论 -
原来css是有顺序的
终于解决了一个css的bug,发现原来css摆放是有顺序的,有覆盖行为,比如:a:link { font-size: 9pt; COLOR: #333333; TEXT-DECORATION: none;}a:visited { font-size: 9pt; COLOR: #333333; TEXT-DECORATION: none;}a:hover { font-size: 9pt; COLO...2007-05-04 23:47:28 · 195 阅读 · 0 评论 -
Timer的Class化还是失败了
深夜了,还在写tab切换的核心类,很想把timer集成进去,却不行。/*** @author edwardpro@hellodigi.com* @copyright hellodigi.com 2007~2008* @projectDescription provide with you a tabs changes function*/var tabCore=function(tabs,tabs...2007-04-28 19:10:26 · 143 阅读 · 0 评论 -
推荐一个js开发IDE
2007-04-28 15:17:04 · 539 阅读 · 0 评论 -
对于Hibernate的几点质疑
今天本来是一个好机会问Gavin不过自己的英语不行,估计一些复杂的表述很难描述清楚,不过我想还是在blog里聊聊吧。1 关于轻量级的开发什么叫轻量级?几个类几个表不需要太多扩展性能,这种平台显然不合适Hibernate,因为为了简单的dao操作需要付出很大的配置代价,而gavin对于ROR的简便是很suck的,因此Hibernate依然是一个中型以上使用的系统。这是Hibernate我认为的弱项。...2007-04-19 14:32:18 · 76 阅读 · 0 评论 -
Seam的感悟
老实说对于Seam如果不是今天听到还真不了解,因为我们身边不缺庞大的开发框架尤其是MVC框架,webwork tapestray structs等等,太多了。今天听了曹老师的介绍,对于seam有了一点了解,下面谈谈自己的想法:1 IOC的畅想,在spring中大家都知道,它的IOC是inject,但在Seam中这种观念得到了突破,它提出了一种叫做Backject的概念字面理解就是注回这是一个突破的...2007-04-19 14:22:52 · 101 阅读 · 0 评论 -
用apache Rewrite要注意
我在服务器上配置的rewrite始终不成功,那个郁闷啊,后来才发现原来是一个属性的问题导致引擎未能启动。请大家注意httpd.conf中有一个属性:AllowOverride 这个属性AllowOverride 指令说明确定允许存在于.htaccess文件中的指令类型语法AllowOverride All|None|directive-type [directive-type] ...默认值All...2007-05-10 00:41:33 · 76 阅读 · 0 评论 -
prototype1.5在firefox上的一个BUG
升级到1.5后发现 Ajax.Updater()不好用,在IEok,在Firefox不行,改用了Ajax.Request后就好了。2007-05-10 11:27:52 · 79 阅读 · 0 评论 -
在ruby中用编码控制搞定编码转型的问题
一般来说网站的编码是统一的不会出现问题的,不过有时候会有这样的编码需求出现,在ruby中需要怎么做呢?现在有这样一个例子:一个页面需要gbk 一个页面需要utf-8非常幸运在ruby中的默认就是utf-8即使你在html中怎么写编码比如:<meta http-equiv="content-type" content="text/html;charset=GBK" />其实没有太大作用,...2007-06-10 01:08:17 · 114 阅读 · 0 评论 -
ruby的文件读取
ruby里边有两套File函数本地的 File::open() 属于标准库远程的 open_uri 包中的 open函数 Tags - ruby , file , 文件读取2007-06-08 05:15:31 · 501 阅读 · 0 评论 -
rubyzip 初体验
非常讨厌看类文档,那些东西空洞无物,但是有时候是没有办法的,比如rubyzip,因为需要在项目中使用zip包,只能看类文档了。第一次使用这东西其实出了不少问题,下面先贴一段有问题的测试代码:require 'zip/zipfilesystem'Zip::ZipFile.open("E:\\moive\\c.zip") { #打开|zf|zf.dir.entries("").each do |ak|...2007-05-31 04:32:46 · 235 阅读 · 0 评论 -
Apache2.0 worker模式性能调试
花了整下午调试了下worker模式,一直想用,不过听说还不是太稳定,所以没有尝试,今天正好要重新编译服务器所以偷偷把MPM改成了worker模式,尝试下线程的魅力,下面说说自己调优的过程和效果服务器配置: 皓龙 1.8GHz×2 1G DDR 333 250G SATAII的硬盘软件环境Apache2.0.59+Mysql 5.0.18+PHP 5.2.1 + Rails 1.2.3谈谈体会,原来...2007-05-28 15:30:35 · 119 阅读 · 0 评论 -
ruby的正则循环查找
写了一个从html中提取图片的helper方法,不过不知道怎么让正则一个个匹配下去,似乎String.scan不能达到我的要求,所以还是用了递归方法,代码如下: def get_only_pic(cbody,result="") results=/<img (.*) src=\"(.*)\" (.*)\/>/i.match(cbody) if results ==...2007-05-27 17:38:27 · 303 阅读 · 0 评论 -
rails中递归的烦闷
因为要实现树展现,当然用非递归也可以的,不过考虑灵活性和维护简便还是用递归实现,以下的例子是在helper中使用的,不过rails的输出始终让我有点找不到北,毕竟在webwork中如果实在要输出依然可以通过response得到输入流的,但rails似乎没有,于是只能用如下如此愚蠢的方法实现了: protected @@body="" def build_tree(father_id=0,le...2007-05-24 10:08:15 · 176 阅读 · 0 评论 -
gems 2小时历险记
下午 update了下rails 升级到了1.2.3 但莫名其妙的突然rails链接不上数据库了,报了一个类型无法转换,百思不得其解过了两小时用gem update,发现gems自己又更新了,这次奇迹出现了,居然正常了。2小时历险记啊。...2007-05-20 11:45:50 · 108 阅读 · 0 评论 -
发现一个新的图片lib js库推荐大家
http://orangoo.com/labs/GreyBox/他的特点是比较容易实现 rel加入一个gl_imageset[]就行了,缺点也是太方便了不太灵活(看来万物都是两面的)修改源代码后终于灵活了:) 不过效果超级好大家try下吧。...2007-05-11 09:14:22 · 100 阅读 · 0 评论 -
Thread In Ruby
今日终于把原来留下来的ios notify给整了,由于用户数据的增加这个库显然力不从心,过程就不说了。这个东西原来是rails 3写的,APN发送也有现成的库用gem装下就能用了,关键在于原来的发送任务,由于rails 3中提供了一个基于redis的分布式任务系统,但这个东西自从我升级了redis后就再跑不起来,调试了几下也没有太多成果,时间来不及了,于是用了ruby下的Thread包。 ...原创 2011-11-02 00:24:03 · 183 阅读 · 0 评论