Author Archive

第 5 页,共 16 页« 最新...3456710...最旧 »

Eclipse加速技巧一则

网上摘来,不需要安装任何软件,简单易学,而且效果显著:

编辑eclipse.ini文件(在Eclipse安装目录下)

修改如下:

-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
-vmargs
-Xverify:none
-XX:PermSize=128M
-Xms256m
-Xmx384m

主要是以修改Eclipse内存占用来实现的加速,我4G内存,除去1G RamDisk,将最后一行改为768M,效果非常明显,原来至少20多秒的启动时间,瞬间缩短到数秒。

金山词霸2009

金山词霸,相信90%以上的电脑用户对其有所了解,这个中国最老牌的翻译软件今天发布了最近的2009版。很久以前也是词霸的用户(当然是盗版用户),最近几年就再没用过,一直用灵格斯作为替代品,不可否认,灵格斯也是相当优秀的软件,但也有一些很不方便的地方,但由于是免费软件,也一直用了下来。

在看过网上对09版词霸的介绍后,一个感觉就是很像之前推出的谷歌合作版。09版词霸分为三个版本,专业版、牛津版、企业版。企业版就不说了,牛津版和专业版主要区别在于前者包含牛津授权的6本字典。

对这个新版的UI我是相当的满意,简洁而不简单。再看了看价格,牛津版优惠期¥210,还在能接受的价位,于是立马在线购买了一套。其实翻译软件我一向用得很少,倒不是我英文好,反而是因为英文不好,所以基本上不看英文资料或者使用英文版软件。购买更多的原因是想支持国产优秀软件,另外觉得虽然现在用不到,以后总有用到的时候,有备无患。

支持正版,人人有责,尤其是支持国产软件。不反对使用盗版,毕竟目前国人收入有限,但在经济能力允许的情况下,希望大家都能支持国产软件。

PS:金山还是很厚道的,无意购买专业版,或者觉得专业版体积太大的,可以移步下载词霸谷歌合作版

利用SVN Hooks实现快速方便的代码管理/发布方式

三宝殿项目的开发中,一直使用SVN进行版本控制,但线上代码的更新方式,仍一直使用传统的FTP更新方式,由于经常更改了大量散布的代码,发布更新时却又不能很好的一一上传,因此一般在发布更新时,都是将整个项目代码全部提交,费时费力。而且由于发布更新的繁琐,很早就搭建的测试环境一直没有利用。

最近把服务器的目录结构做了一下整理,也萌发了将测试环境重新利用上的想法,但传统的FTP更新方式势必要淘汰。在和蓝色的讨论中了解了SVN的Hooks,简单说Hooks就是在进行SVN相关操作时,可以自定义一些前置或后置操作,可以实现代码提交时发送邮件,自定义目录权限验证等等。

经过两天的部署,最终实现方案如下:

SVNs.jpg

当开发人员提交代码到SVN,利用SVN的hooks,自动将代码更新到测试环境,这样可以实现测试环境永远是最近的代码版本,便于及时发现问题。

生产环境不使用hooks更新,因为提交到SVN的代码仍然存在大量Bug,目前采用的方式是通过登陆SSH手工update。计划今后通过PHP脚本diff代码仓库和工作副本的区别,通过Web页面进行选择性更新。

通过这种方式,完全抛弃了原来FTP的更新方式,不但节省了发布更新的时间,也最大限度的保证了代码的完整性。

DotProject乱码处理

由于项目需要,最近在需找一个比较顺手的ProjectManagement工具,但因为硬件限制,只能基于LAMP平台,对比了几个产品后,最后敲定DotProject

但很郁闷的是,在DotProject中输入的部分中文存入数据库后会变成乱码,解决的方法也很简单,SET NAMES UTF8:

编辑includes/db_adodb.php,找到下面这行代码:

   $ADODB_FETCH_MODE=ADODB_FETCH_BOTH;

在其之前添加一行:

   $db->Execute("SET NAMES UTF8");

轻量级表单验证插件 jQuery.Validation

表单验证是Web开发中最常见的流程,一般分为前端js验证,和后端服务器脚本验证两部分。前端js验证不是必须,但为了加强用户体验,却又往往是必不可少。但很多重复的表单验证却花去了开发人员大量宝贵时间,这个Validation插件已经做了一个月了,投入项目使用效果不错,特放上来与大家分享

目前有12种验证规则,分别为

required 必填
password 密码
loginname 登录名
email 电子邮件
phone 固话
cellphone 手机
zip 邮编
numeric 数字
idcard 身份证
match 是否匹配
unmatch 是否不匹配
$('input[@name=username]').validation({rule:'required'} , '登录名必填');
$('input[@name=cellphone]').validation({rule:'cellphone'} , '手机号码格式错误' , '格式:13912345678');
$('input[@name=email]').validation({rule:'email' , required:true} , 'EMail格式错误');
$('input[@name=password2]').validation({rule:'match' , el:'input[@name=password]'} , '两次密码不匹配');

demo及下载地址

值得纪念的一天

今天,公元2008年10月11日,一个可以载入周氏家族史册的一天。在今天这个伟大的日子里,我,炒出了20余载漫漫人生的第一个菜(之前十多年的蛋炒饭炒龄不算):超高难度且经济实惠且色香味俱全的蒜苗炒肉,另配一碗同样出色的周氏蛋炒饭。可惜的是,当我想起要把这一切记录下来的时候,除剩下一些因为蒜苗和肉数量搭配不当而没有吃完的肉以外,都以下肚。

当然,由于是第一次当大厨,虽然这盘周氏蒜苗炒肉做得很出色,但还是有改进空间的,饭后总结了一下,大致有以下几点:

首先,前面提到过,为避免肉剩下,以后蒜苗可以多放一点。
其次,肉可以再切小一点,这次体积上有点大,不过炒红烧肉正好。
再三,肉可以再炒久一点,避免再次出现肥肉不熟的现象。
最后,可以事先准备些面包、方便面等用于充饥的食品……

在由于家长不在,我带领锅碗瓢盆不但圆满的完成了党和人民交予的不能饿死的光荣任务,并超额剩下一堆剩肉,为明早的吃喝任务奠定下了坚实的物质基础。总的来说,这次任务完成得非常成功。

下次再接再厉。

ThinkVantage SystemeUpdate Session 目录转移

小黑的用户应该都用过SystemeUpdate(SU)和SoftwareInstall(SI),SU和SI的功能差不多,但是SU只能在线下载更新,而SI可以手工下载。照理说SU比SI更加方便,但无奈SU的下载速度那叫一个龟速,而且还默认下载在C盘,无疑大大浪费了C盘宝贵的空间。

51NB的兄弟多是在讨论如何清理session目录,或者是更新后吧Session目录移除,重装系统再拷回去。其实大可不必这样,完全可以利用junction来为session目录建立windows硬连接,吧Session目录转移到D盘。关于junction介绍可以看这里

这里提供junction和SU目录转移的批处理下载。使用方式如下:

1.确认不存在 C:Program FilesLenovoSystem Updatesession 目录,如果以安装过SU,则先备份此目录下的文件到 D:Program FilesLenovoSystem Updatesession(如果想自定义此路径,请自行修改SU.bat)后删除C盘的session目录。

2.运行SU.bat

此后所有对C盘session目录的访问都会自动转向到D盘的session目录,很方便吧。

注:junction和su.bat请放在同一目录下

文件下载

转战Eclipse

掰掰手指,从第一天接触PHP开始,少说有6,7年,期间开发工具换过不少,从最初的notepad、Dreamweaver到更为强大的UltraEdit,Zend Studio等深深体会到了一款优秀的开发工具对开发效率和质量的影响。

在此之前一直是ZDE,DW双枪作战,ZDE用来写PHP,DW用来写Html,Css,Js。这么多年倒也一直过来了。周末看新闻,ZendStudio6又发布了新版,相比之下,ZDE似乎有段时间没有更新过了,看来Zend有放弃ZDE,大举进军Eclipse的架势。看了看ZS6的相关介绍,核心也就是Eclipse+PDT,Eclipse和PDT都是免费的,但Zend整合的ZS6却是收费的(BS之)。虽然很容易在网上找到XX,但仍想自己动手整合一下,顺便熟悉熟悉Eclipse平台的Plugin机制,如果以后转Java的话,倒也能更快上手。

话说我这个整合过程可是千辛万苦,走了一对弯路,期间几度放弃,却又几度重拾信心,最终花了两天时间终于搞定了这破玩意。

我选用的是PDT 1.0.3,在其网页上看到需要依赖XSD,GEF,DTP,WTP四个插件,就是在这四个插件上浪费了我一天的时间,由于页面上原有链接已经失效,只得自己再去找相关文件,结果不是却这就是少那,总是装不成功。最后才发现,PDT正真依赖的是WTP,其余的都是WTP依赖的插件,找到WTP2.0.2页面,下载页面中的依赖插件,终于才搞定这个Eclipse+PDT。

ZendFramework DB类库性能效率浅谈

在以往的开发中,我一直不太关注的程序运行效率的问题,但工作后不得不在开发中注意这些细节,需要采用一些新的技术或类库时,往往会亲自写一段测试代码来比较和原生代码的运行效率,用数据说话。

ZendFramework,相信广大PHPer都非常熟悉,即使没有用过,但至少听过ZF的大名(我姓名的缩写也是ZF,HOHO),在公司的前一个项目中,应需求使用了ZF来作为开发框架,对ZF的使用有了一些基本的了解,因此在接下来的项目中也有使用ZF的打算,但由于ZF库本身的体积过大,但类库之间的耦合性又比较低,因此打算只使用其中的DB库来实现数据库的操作。

在之前的开发中发现Zend_DB fetch返回的结果并不是常用的array,而是一个巨大的包括详细表、字段结构的object,因此对其性能一直抱怀疑的态度,在这次新项目上马之前,对其简单的做了性能测试。

首先新建了一个10字段的table,分别用原生的mysql_query和Zend_Db::insert循环插入1000条数据。

mysql_query 平均耗时0.3秒左右,Zend平均耗时1.5秒,性能相差5倍以上。

然后再取出之前插入的1000条数据

mysql_query平均耗时0.01秒,Zend平均耗时0.02秒,性能相差一倍多。

由以上测试可以看到Zend对Db封装后对性能的损耗是相当大的,并不是很适合并发量很高的互联网应用。

或许Zend本身有更好的机制去提高执行效率,欢迎交流。

入手Treo 680

上一个手机Nokia3230还是3,4年前买的,虽然一直用着没什么问题,但用了这么久,Symbian系统已经没有什么新鲜感了。而且,3230缓慢的速度也让人有点恼火。

很早前就一直在关注Palm的Treo系列,650的天线让我对其完全没有入手的欲望,而当时680刚刚上市,3,4K的价格也有些望而止步,因此对Treo的关注也就告一段落了。最近萌发了换手机的想法,当然我是非智能机不用的,WM,SB都没有新鲜感,于是又开始打上Palm的注意,650自然还是不在考虑范围内,新上市的Centro不太符合我的审美观,680也降到一个比较容易接受的价位,综合比较了一下,最终还是决定入手680,在taobao上转了好几天,最终于上周五收到商家送过来的机器。原装的车充没要,想必在680退役前,我还只能开两轮的车,用不上,换了一张2G的SD卡,机器很不错,大小正好,手感也不错。

玩了一个礼拜的680,因为WM和SB都是多任务系统,单任务的Palm多多少少还是有些不太习惯,不过想想3,4K的iPhone也是单任务,就平衡多了。或许这样的架构对于提高代码运行效率有很大的帮助。对于运行效率,和WM比起来很明显,绝对见不到WM标志性的Loading圈圈,大部分软件都是即点即开,速度很不错。而Palm的UI比起WM来说是相当简陋了,不过这种简单即是美的风格也相当复合我的喜好。

Palm的PIM的功能比起WM,SB等系统来说,强了不是一点点,尤其是短信方面,Palm独有的聊天模式让发短信成为了一种享受,在SB上,我也是一种用超级短信这个软件来模拟Palm的短信模式。

WM,SB的Desktop端仅仅能备份联系人,日程等PIM信息,而Palm则会将整个手机的配置、内容全部备份,即使硬起后,只要同步一次,就能完全恢复到上次同步的状态,这点也是其他智能机的Desktop不能比拟的。

总得来说,对680我还是比较满意,至少对得起它的价格。

第 5 页,共 16 页« 最新...3456710...最旧 »