Evan's Blog

Java, software development and others.

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  28 随笔 :: 0 文章 :: 73 评论 :: 0 Trackbacks

2006年3月11日 #

最近一个项目需要考虑多语言的用户,自然就想采用utf-8编码,所有JSP页面都修改完毕,一切运行正常,由于一直使用FF来检测浏览器兼容性,今天不知怎的决定用IE来跑一下,发现所有表单提交的页面都提示JS错误,查了一下,发现是一个验证身份证的方法中有一个数组的初始化中保存了各个省市的名字,类似于:var area=['上海','北京']之类的形式。一般情况下,JS错误我都是在FF中用FireBug调试的,可偏偏在FF中一切正常,这下就傻眼了,注释掉这个语句自然没问题,可怎么也想不出这么正常的一个赋值怎么会弄出个浏览器兼容的问题出来。折腾了一个下午,突然想到,是不是编码的问题啊,将这个JS用utf-8编码另存,一切ok。

另外,采用utf-8编码之后,用WinMerge比较文件时,就会出来Information lost to encoding errors:之类的提示,心想,这个指定个编码就可以了吧。在编辑=>选项中,果然看到代码页的指定,如是选择指定代码页,输入utf-8,点击确定,被提示请输入一个整数,估计这时候大多数人和我一样傻眼,utf-8的代码页是多少?好在有Google,调整不同的关键字,终于找到清炒苦瓜的一篇文章中提到utf-8的代码页是65001,并且也是为了解决WinMerge的乱码问题,可是改完之后,并没有起作用,这次没有去怀疑这个代码页是不是正确,再仔细看一下那篇文章,嗯,人家明明说用的是2.6.8嘛,检查一下自己的版本,2.6.0,是不是版本问题呢?来到WinMerge的网站,发现竟然已经是2.6.12了,于是下载最新版本,然后将代码页改成65001,嗯,这下所有的中文注释都乖乖出来了。
posted @ 2008-01-05 21:41 Evan 阅读(2826) | 评论 (1)编辑 收藏

     摘要: Apache反向代理设置  阅读全文
posted @ 2008-01-04 21:13 Evan 阅读(5946) | 评论 (2)编辑 收藏

     摘要: 这个Blog,就象我久未清理的书桌,已经落了厚厚的一层灰尘,在这个新年的第一天,决定用这样一个够噱头的标题,以一篇够水的日志,来告诉自己,已经是2008年了......  阅读全文
posted @ 2008-01-01 13:22 Evan 阅读(314) | 评论 (0)编辑 收藏

     摘要: 不要假装我们是一个文明古国了,传统早已割裂,我们是个无根的民族,精神一片荒芜,伪造出的传统只加剧了我们的虚伪,凸显了我们的空洞与脆弱。  阅读全文
posted @ 2007-08-31 21:28 Evan 阅读(219) | 评论 (0)编辑 收藏

     摘要: 你是不是从svn 1.2甚至更早的版本就开始用Subversion了?是不是在用svnserve做服务器?是不是很认真的读了svn自带的文档?那么,很有可能,你也象我一样,被它小小的忽悠了一把:)。  阅读全文
posted @ 2007-04-01 14:33 Evan 阅读(3266) | 评论 (1)编辑 收藏

     摘要: 在网上兜到一篇文章,从讲述一个译者和一家出版社之间的纠纷,引申出了一些待人处世的道理,主要是关于一个人碰到不公平的事情的时候,应该怎样办,觉得颇有道理。什么样的人才是有力量的人呢,也许是那些能合理处理不合理的事情,甚至能让不合理的事情最终转化为多赢局面的人吧。人生要真能达到这样一种境界,该是怎样一副海阔凭鱼跃(管它波涛汹涌还是风平浪净),天高任鸟飞(管它乌云闭日还是阳光普照)的从容画面。  阅读全文
posted @ 2006-12-30 19:48 Evan 阅读(1069) | 评论 (1)编辑 收藏

好久没有更新Blog了,看到还有人在关注这个Blog,很是惭愧。发现还是有人在使用Polarion的SVN Web Client,并且碰到了一些小问题,尽管我工作中几乎不用这个客户端,但当初安装的版本依然还在,所以决定稍微研究一下,但愿能给喜好这款软件的人一些帮助。

1. 为什么老是提示“Your credentials are not correct. Please check them and try again. ”?
这个多半是svn初学者常碰到的问题,尤其在使用HTTP协议的时候。一开始大家都用svnserve来做svn的服务器,自然配置的是conf中的passwd。但如果采用HTTP协议的话,就得使用Basci HTTP Authentication了,需要用Apache提供的htpasswd来管理用户和口令。这个的配置在svn自带的帮助文件中第6章“httpd, the Apache HTTP Server”一节中有比较详细的解释。但如果你没有通篇看完,在Apache中没有加上Require valid-user指令的话,那是允许匿名操作的。我想,你不愿意留下这样的安全漏洞吧。

2. 怎样配置多个repository
这个也是实际中需要的,当然,在它的readme中其实是说得很清楚的。但我们有些同志就是喜欢拿来就试,尤其是在有些类似于我这种其实语焉不详的文章时,更是就喜欢照葫芦画瓢,而不去看最权威最原始的英文文档了。要配置多个repository,以HTTP协议为例,在web.xml中要删掉RepositoryUrl、Username、Password这3个参数的设置,然后加上ParentRepositoryDirectory参数,值自然是指向svn仓库的父目录了,比如http://localhost/svn/,这个东西又是哪里来的呢?自然需要在Apache中配置,用SVNParentPath来指定svn仓库的父目录,Apache会自动解析其下所有的仓库的。这里要注意一下AuthzSVNAccessFile授权文件的写法,这里将配置所有仓库的存取权限,对于每个仓库,需要用[仓库名:/module]的方式来配置。

3. 怎样使用svn协议
前面我一直用http协议做例子,实在是因为我在其2.5.0下没有配置出来过svn协议:(。这次去其网站下载了个最新的nightly版本,发现其已经能够支持http, svn, svn+ssh, ssl和proxy等6种协议了。看看其代码结构,好象也发生了很大的变化,估计应该有比较大的改进。于是,用这个版本试了一把,呵呵,轻而易举就把svn协议给连通了,包括多仓库的情况。并且其还改进了原来设置父目录地址时一定要在最后添加/的要求,估计原来在这个地方卡壳的朋友也不少吧:)。不过,新版本还是不支持中文文件名,看我以前的帖子自己改吧。

Important: 由于svn webclient采用的javasvn(现已更名为svnkit)版本较低,用svn协议在提交老的文件时会失败,但添加新的文件时没有问题,所以,大家就不要再尝试svn协议了。如果不采用SVN协议,则其官方发布的版本就没什么问题了,已经有网友重新打包了一个解决了中文文件名的版本,到这里下载。(Updated: 2007.1.20)
posted @ 2006-12-27 13:04 Evan 阅读(3620) | 评论 (2)编辑 收藏

     摘要: 使用Jarkata FileUpload最新版本解决SVNWebClient提交中文文件名或注释时出错的问题。  阅读全文
posted @ 2006-05-14 20:11 Evan 阅读(4816) | 评论 (11)编辑 收藏

     摘要: 在我的“[推荐]两款好用的SVN Web Client”一文中曾经提及我所看好的sventon中文支持不好的问题,于是在其论坛中提了个问题,今天收到他们的邮件,称在其最新的代码中已经解决了中文的问题,今天下载更新后,发现的确解决了这个问题,呵呵,更新速度挺快的。  阅读全文
posted @ 2006-04-12 15:41 Evan 阅读(1626) | 评论 (3)编辑 收藏

     摘要:   Everything is meaningless...假设你突然死掉,世界将会怎样?世界将一样绚丽,地球转的一样快,太阳系每天在宇宙中换一个位置。大海还是大海,波涛还是波涛,一样的花开花落,潮起潮落。...你是多么可怜的小虫子,在活着的短暂岁月里,在最美好的青春里,都不曾快乐过,用尽心力去聚集一大堆外在和心灵没有关系的小东西,只是出于对未来的没有信心,小小的心灵在接近熄灭的一天还在发出那个愚蠢的声音,让你忙碌,让你忧虑的声音:我要,我还要。天底下充满了这样的小虫子,当一个离开了,又有一个来了,做着同样的事情,汹涌着同样的小小念头,受着同样的煎熬。于是上帝要感慨了:虚空的虚空,凡事都是虚空。已有的事,后必再有;已行的事,后必再行。日光之下,并无新事。
  ...
  不要忧虑“不要为明天忧虑,天上的飞鸟,不耕种也不收获,上天尚且要养活它,田野里的百合花,从不忧虑它能不能开花,是不是可以开得和其它一样美,但是它就自然的开花了,开得比所罗门皇冠上的珍珠还美。你呢,忧虑什么呢? 人比飞鸟和百合花贵重多了,上帝会弃你不顾吗?”  阅读全文
posted @ 2006-04-09 22:13 Evan 阅读(979) | 评论 (0)编辑 收藏

     摘要: 推荐两款纯Java的SVN Web Client软件。其安装使用均比ViewVC要好!  阅读全文
posted @ 2006-04-06 00:30 Evan 阅读(19251) | 评论 (21)编辑 收藏

     摘要: 前几天好奇,也刚好得了点空闲,然后就想看看ViewVC对Subversion的支持程度,于是就想装个玩玩。好死不死的,在我的VMWare Workstation上刚好有个Windows Server 2003,心想,就它吧,可就这么一偷懒,折腾了我好几天,最终还是只能算将就着把它给装上了。  阅读全文
posted @ 2006-04-05 00:28 Evan 阅读(7686) | 评论 (5)编辑 收藏

常常能从galeer(嘎荔儿)的网络日志里听到一些比较好听的歌曲,并且那些点评也不错。今天听到U2 - With or Withou You,首先,这首歌还真不错;其次,不知是这首歌原来就带的呢,还是galeer自己加上了这样几句诗:

我虽然行过死荫的幽谷,
也不怕遭害;
因为你与我同在;
你的杖,你的竿,都安慰我。

--《诗篇第二十三篇第四节》

当然,一开始我不知道这是《旧约全书·诗篇》中的内容,于是就Google了一把,找到下面这篇文章《因为你与我同在》:


我去一个乡村教会讲道,在接待的弟兄家休息。看见弟兄的儿子学习很用功,很是喜爱。我请小朋友将他的语文课本借给我看。这是人教版小学四年级语文课本。当中有一篇文章吸引了我——

1989 年美国洛杉矶大地震,30万人在不到4分钟时间里受到不同程度的伤害。这其间一个小学的惨况让人心酸。多少孩子的父母因在地震中痛失爱子而哀声闻天,面对 地震后的学校废墟只能绝望离去。但一个父亲却在废墟中不断地挖掘寻找自己那才七岁的叫阿曼达的儿子。救火队长挡住他,“太危险了,随时可能发生大爆炸,请 你离开。”别的学生家长也劝说,“太晚了,没有希望了。”可这位父亲不顾这些劝阻,在废墟中不断地寻找。就在他挖了整整八个小时后,父亲听见瓦砾堆底下传 出他十分熟悉的声音,“爸爸,是你吗?”这时他发现有14个孩子在当中,因为这是在教室墙角的位置,当房顶塌下时架成大三角形,孩子们才没被砸着。“我告 诉同学们不要害怕,说只要我爸爸活着就一定会来救我,也能救大家。因为你说过,不论发生什么,你总会和我在一起!”孩子对爸爸说。“爸爸,先让我的同学出 去吧,我知道你会跟我在一起,我不怕。不论发生了什么,我知道你总会跟我在一起。”

14个孩子获救了!

我们不禁会问,如果因为大爆炸的危险而绝望地放弃,如果这个父亲和其他的家长一样绝望地离开,如果阿曼达没有“因为你与我同在”的信念,那结果又将如何?

我想说的是,绝望让生命失去,希望使生命存留。

诗人说,“因为你与我同在。”(诗篇23:3)这样的信心使诗人在人生的黑夜里依然有生命的曙光,在人生的冬天里可凭信宣告说,冬天来了,上帝的春天也不再遥远。

“因为我与你同在,要拯救你。这是耶和华说的。”(耶利米书1:8)

    阿曼达对父亲单纯的信念应一如我们对天上的父亲执著的信仰。



是啊,“绝望让生命失去,希望使生命存留”,不过呢,对于我这个不信教的人来说,大可抱着象故事中的小阿曼达相信他父亲只要活着就一定会来救他的希望一样,也不一定非要抱着耶和华会来救我们的希望的。不过,不管信什么教,基督也好,佛陀也好,其实所有经典中的智慧都是值得学习的;当然,如果你在这个浮躁的物质社会中实在找不到可以依赖的东西时,信个把教也未尝不可。
posted @ 2006-04-01 21:33 Evan 阅读(576) | 评论 (0)编辑 收藏

     摘要: SVN会取代CVS吗?这个虽然不是我们这种小程序员能决定的大事,但学学总无妨吧,这里有一些我搜集的资料。  阅读全文
posted @ 2006-03-23 23:55 Evan 阅读(3185) | 评论 (0)编辑 收藏

     摘要: 你是不是为了高的测试覆盖度而在为每个函数添加多个测试方法,甚至连getX()和setX()都不放过呢?或者,你一看到覆盖度达到100%的代码,景仰之心就开始“有如滔滔江水绵绵不绝,又有如黄河泛滥,一发不可收拾”了呢?那么,你应该读读Andrew Glover在最近的developerWorks上发表的这篇文章。  阅读全文
posted @ 2006-03-18 23:23 Evan 阅读(1199) | 评论 (0)编辑 收藏

     摘要: 《Java Threads》的第5章“Minimal Synchronization Techniques”,是这本书中到现在我认为最差的一章了,当然主要是我不喜欢JDK 1.5新推出的Atomic Class,而这一章却花了不少篇章来介绍,且牵强地改造打字程序,又语焉不详地指出这种改造的困难之处和可能带来的副作用,但却又不能从代码的实际运行中看到这种副作用,很有误导初学者的嫌疑。不过,我想,没有哪个初学者会冒风险为了用Atomic Class而将原本简单明了的算法改造得如此晦涩难懂,并且还有潜在的出错风险。所以,对于Atomic Class,我建议跳过不读,绝对没有什么损失。不过对于其中“5.1.3 Double-Checked Locking”和“5.3 Thread Local Variables”这两节倒要着重读一读,尤其是Thread Local,应该说是Java中一个比较重要的多线程工具。  阅读全文
posted @ 2006-03-11 23:11 Evan 阅读(1652) | 评论 (0)编辑 收藏

     摘要: 快来看“洋本山”怎样忽悠一个只想买一把锤子的人最后买了一个工具工厂的建造工厂的通用建造工厂。很别扭是吧,但如果你是个开发Web应用的Java程序员,你也许已经或者正在被忽悠。  阅读全文
posted @ 2006-03-11 17:04 Evan 阅读(5758) | 评论 (23)编辑 收藏