虽然没有西安热,但北京的气温显然也升了不少。
从公司打车回家,竟然发现这片社区有了少许变化。打开门,进了房,感觉有点陌生一样,挂在客厅与卧室之间的风铃还是会碰着我的头而发出悦耳的声响。
整个四月,好像在家里停留不超过10个晚上,虽然躲过了沙尘暴,但其实还是很想见识一下下土是什么样。
第一次五一长假留在北京... ...
夜深,回到酒店已经很晚了... ...
早上刚到西安的时候,这里下着小雨,很清凉。一过晌午,清新散尽,i hate big sun.
小时候生在雨水较多的江边城市,气候与我一直向往的江南有七分相似。于是儿时的很多记忆都是在下雨的季节和那时的某些片断情节。但那时似乎并不珍惜这些雨水,而是在心里埋怨为什么在放假时老下雨,而不能出去玩。
小学和初中离家比较近,下雨时,打伞就够了,不用雨衣。到了高中,学校很远了,我有了自己的车--自行车,如果早上下雨,我会有两个选择,要么打伞到三四公里外的车站等公交,要么穿上雨衣,依旧骑着我的爱骑在风雨中飘摇,那时很懵懂,不知读书是为了什么,只知道除了读书,我目前没有什么事可以做,好像就是这样。
直到高二的时候,开始对自己的未来有了些模糊的概念,因为学校老是宣传前几届的学长学姐们又有几个考上了清华,进了北大,或是保送出了国,我在想,我总也要混个大学毕业吧。学生永远是最容易被煽动的一群集体,在这种氛围下,大家不可能不好好学习,更何况我当时是在省重点中学,要实现这个目标似乎并不难,事实上也确实不难,因为那一年,大学也扩招了... ...
在大学里,如果下雨天,体育课就会改成是在体育馆里滑冰,也就是在滑冰馆,我第一次惊讶于我不知道姓名的女同学竟然能叫出我的名字,也不知这雨下的是好还是坏。
于是开始了第一次约会,但那时也是被约,而不敢主动去约,结果可想而知了,那时自己最爱的只是图书馆和自习室。如果现在再让我选,我会在爱情和奖学金之间选择前者。直到去了重庆求学,在那帮甘肃同学的开导下,才真正的开了窍,由于开窍比较晚,导致了我在感情上发育不良,而影响至今。
离开重庆的雨季,去了广州继续求学,广州冬天的雨非常的冷,我问当地的低年级的学弟们,广州冬天真这么冷吗,他们说不是,刚好今年比较冷... ...我在怀疑,这是不是“天将降大任与斯人也”。还好我是比较习惯这种长期低温多雨的冬季,而我的北京同学却一个劲的抱怨广州的冬天比北京还冷,这一点我一直很纳闷,直到后来到了北京,才亲身证实了这一点,这是后话了。
那年暑假呆在广州,一场大雨,也带了一场台风。
台风把学校外一排的电线杆全刮倒了,于是在学校,我在停电三天中,只靠蜡烛度过了三个晚上,无聊到都想啃蜡烛了。
后来去了北京,北京的雨是可遇不可求,非常的难求。雨在我的记忆中开始模糊了,淋淋雨也开始变成了一种奢望,而北京的雨也常常下的是非常不适当。
还好,去了四次上海,有两次是下雨,另两次是刚下完雨。
去了两次杭州,一次是下雪,一次是下雨。
杭州的雨,让我不可救药的爱上了江南,嗯,不可救药的那一种。那里的感觉,淋雨穿越龙井村到钱唐江边,打着伞在杭州城内... ...
后来又冲动的去了一次青岛,也是下雨,知道我有多高兴吗,但好像当时只有我一个人高兴。
雨中的城市,让我会觉得非常的清新和自然。
看到msn,QQ中不少朋友都用“雨”做名字的后缀,有男有女,也让我有所想,在酒店的床上捧着本本留下这些话,就算是为自己的以前留个像征性的记忆吧,本还有些文字想写,但实在困了,草草收笔了,望谅:)
今天收信,有朋友来询问我前几周介绍的《Java Puzzlers 》一书的下载地址,由于我的blog空间无法上传太大的文件,所以在这里为大家提供一个可下载的链接:
《Java Puzzlers 》:http://www.itpub.net/attachment.php?s=&postid=3111977
如果上面的链接失效,大家可以留下email,我会以附件的方式发送。
目前还在西安出差,blog更新较慢,技术方面的文章也要在心静的时候才会有发表的欲望,见谅... ...
五一估计在北京好好休息了
著名的Proust Questionnaire(普鲁斯特问卷)由一系列问题组成,问题包括被提问者的生活、思想、价值观及人生经验等。因著作《追忆逝水年华》而闻名的Marcel Proust并不是这份问卷的始作俑者,但这份问卷因为他特别的答案而出名,并且在当年时髦的巴黎人沙龙中也颇为流行。因此后人将这份问卷命名为“Proust Questionnaire”。
·你认为最理想的快乐是怎样的?
·你最害怕的是什么?
·还在世的人中你最钦佩的是谁?
·你自己的哪个特点让你觉得最痛恨?
·你最痛恨别人的什么特点?
·你最奢侈的是什么?
·你认为哪种美德是被过高评估的?
·你对自己外表的哪一点最不满意?
·还在世的人中你最轻视的是谁?
·你过多使用的单词或短语是什么?
·你最伤痛的事是什么?
·你这一生中最爱的人或东西是什么?
·何时是你生命中最快乐的时刻?
·你最希望拥有哪种才华?
·你目前的心境怎样?
·你认为你最伟大的成就是什么?
·如果你能选择的话,你希望让什么重现?
·你最珍惜的财产是什么?
·你认为程度最浅的痛苦是什么?
·你最喜欢的职业是什么?
·你本身最显著的特点是什么?
·你最喜欢男性身上的什么品质?
·你最喜欢女性身上的什么品质?
·你最看重朋友的什么特点?
·你希望以什么样的方式死去?
·你的座右铭是什么?
谁想做一把呢?
这场雨终于下了。
雷阵雨... ...
上一次雷阵雨,还是在二年前的北京。和很多人一样,困在地铁的出口,等着雨停。
此时,雷鸣,闪电,雨声。
长沙,夜正深,未眠。
中午北京的同事听说我们去吃鱼了,问我们是不是去吃的武昌鱼。
然后我觉得有必要好好的和他探讨一下这个问题了:

湖南长沙,并没有想像中的那么好,但与宜昌有几分神似。
在新华楼吃的早餐,就去了酒店,洗个澡和准备下午的交流会。
晚上被朋友带去吃口味牛蛙,嗯,味道真的不错。穿过步行街,不知不觉就到了浏阳河边。我几乎是在突然之间发现自己走到了浏阳河边,才发现浏阳河是如此之温柔,即使是在西湖边,我也没有这种感觉。
走在河边,淋着小雨,也是一种不错的feeling。终于又见到雨了... ...
北京降今春最严重浮尘 上风地带仍有沙尘暴(图) |
|---|
![]() 四月十七日晨,北京降下今春最严重的一次浮尘。图片来源:中国新闻网 记者:史利 ![]() 4月17日,市民正在擦掉爱车上的尘土。当日北京出现浮尘天气。图片来源:新华网 ![]() 4月17日清晨,北京出现扬尘黄土盖地,小区停车场的车辆被黄土覆盖。图片来源:China Foto Press 记者:李象凯
![]() 国家卫星气象中心的气象云图显示,北京的上风地带仍有扬尘和沙尘暴 中新网4月17日电 今早出门的不少北京市民发现,马路和露天停放了一夜的汽车都被蒙上了一层黄沙。空气亦如昨日被浮尘弄得甚为朦胧。今天白天,由于京城的上风地带仍有扬尘和沙尘暴,因此浮尘不会散去。 《京华时报》说,北京的春天总是和沙尘以及大风联系在一起的。今天多云以及浮尘的天气不大适合外出。同时,北京上空今日依然被云带占据,因此天气仍以多云为主,预计昼夜温度在6℃到21℃左右。这样的天气虽然不算冷,但空气质量比较差。 《北京晨报》说,京城明后两天还将迎来一次弱冷空气,四五级北风可能再次造成轻微的扬沙、浮尘天气。 媒体亦建议市民最好减少外出,尤其是有慢性呼吸道疾病的民众要注意保护健康,外出最好戴上口罩。 北京市气象台预计,受一股弱冷空气的影响,周五北京将有一次弱降雨过程。 |
早上拉开窗帘,今天是一个阴天。
手机里还留着昨晚的短讯,在手间似乎那还是热的。拉开冰箱,翻出昨晚剩下的面包,再烧点开水吧。
我一直觉得自己是个冷静的人,但唯一能让人变傻的,只有感情了。很可惜,我在这方面似乎没有什么天分,比较适合做情场炮灰。知道赤壁大战吧,就是瞬时灰飞烟灭的那一种。
但,突然之间不想飞... ...
Version | Description |
|---|---|
JavaScript 1.0 | 这是最早的版本,其中充斥着大量的bug,现在已经遗弃了。 实现在 Netscape 2上 |
JavaScript 1.1 | 引入了真正的数组对象; 修复了大多数的重要bug, 实现在 Netscape 3上 |
JavaScript 1.2 | 引入了 switch 语法, 正则表达示等一系列的改进. 已经非常接近ECMA v1版本了, 但还有少许的不兼容. 实现在Netscape 4上. |
JavaScript 1.3 | 解决了JavaScript 1.2的兼容问题. 实现在Netscape 4.5上. |
JavaScript 1.4 | 仅实现在Netscape的服务器端 |
JavaScript 1.5 | 引入了异常机制,已经接近ECMA v3. 现实在Mozilla 和Netscape 6上. |
JScript 1.0 | 大致与 JavaScript 1.0相当. 实现于 IE 3的早期发行版中. |
JScript 2.0 | 大致与JavaScript 1.1相当. 实现于IE 3的后期版本中. |
JScript 3.0 | 大致与JavaScript 1.3相当. 相当于ECMA v1了. 实现于IE 4中. |
JScript 4.0 | 流产了 |
JScript 5.0 | 支持异常处理. 部分的兼容了ECMA v3. 实现于IE 5中. |
JScript 5.5 | 大致相当于JavaScript 1.5.已经完全符合 ECMA v3. 实现于IE 5.5 和IE 6上. (IE 6实际上已经实现了 JScript 5.6, 但是 5.6与 5.5只是在服务器端不同 ) |
ECMA v1 | 这是第一个js的标准版本。它规范了JavaScript 1.1的基本特性还增加了一些新的功能。但没有对switch语法和正式表达示进行规范化,与之相应的是 JavaScript 1.3 和 JScript 3.0. |
ECMA v2 | 这只是前一个版本的完善,并无太多特性. |
ECMA v3 | 将switch 语法, 正则表达示,和 异常处理规范化. 与这相应的是JavaScript 1.5 和JScript 5.5. |
如果顺着右边的日历不断往前月翻,会停留在2004年4月9日的第一篇"第一次"。
刚刚把2004年到2005月1月的日志从旧备份的blog系统中恢复到现在的blog系统中了,有一种刚刚找到失去很久的珍贵东西一样,至少我的blog历史是完整的了:)
两年了,季节交替,人云浮游;忽然回头看一看两年前留下的文字,呵,更多的是一种开怀喜悦,春种秋实。
困了,要安静的睡去了... ...
我们来思考下面一个问题:
Tom 到一家零件商店购买一个火花塞(应该是用于汽车上的那种),这个东西是$1.10, Tom翻遍了钱包,终于找出了2美元,那么请问,他将被找回多少零钱?
public class Change { |
这还用问吗,当然应该是答案0.90了,这个我在小学时老师就教过我了。听起来好像是这么回事,但是,那时老师似乎并没有教过我们JAVA,可事实上上面的程序是无法得到0.90这个答案的,而是 0.8999999999999999。
如果你知道一些关于把double类型转换成字符串的规则(这些在JAVA的api文档里有说明),你就会知道这个程序是打印出的东西不会是我们想要的。
问题在于数1.1在double类型里是无法被精确表示,在double类型里,只能是最接近这个小数的一个double值。因为不是所有的十进制数都能精确的用二元浮点型(binary floating-point)来表示。如果你使用的是JAVA5.0或其以上版本,你可以用规范输出来解决这个问题:
// Poor solution - still uses binary floating-point! |
System.out.println((200 - 110) + " cents");//把美元换成美分,使用整型数据 |
import java.math.BigDecimal; |
《JAVA Puzzlers》是Joshua Bloch和他的老搭档Neal Gafter的新书。
可能很多学习JAVA的朋友对于Joshua Bloch这个名字一定不会陌生。从1996年加入Java开发组以来,他已经成为了Java平台的核心架构设计师,他设计了获奖的Java Collection,还设计了java.math,他还是那本经典的java名著《effective Java》的作者。如果可以把James Gosling称作Java之父的话,那么把Joshua Bloch称作Java的教父一点都不过分。目前这位杰出的Java设计师于05年7月离开了sun,来到了google,与他同时跳槽来到google还有他的死党Neal Gafter,看来google现在真的是人才济济了。
我手上的是英文的电子版,初看了目录和前几章,但现在已经喜欢上这本书了,虽然现在书店里已经有中文版的上架了,但我还是在这里摘要翻译一些给大家,就当是自己重新学习与大家分享joy of java。
这本书是按表达示,字符,循环,异常,类,库等出现的为大家所容易出错的一些问题进行分析和提出解决方案。ok,那我就开始了。
Puzzle 1: Oddity(奇数问题)
下面提供的方法是判断一个数是否是一个奇数。嗯,但它会正常工作吗?
public static boolean isOdd(int i) { |
奇数,就是被2除不尽的数,也就是说被2除完之后会有个余数1。表达示 i % 2 计算 i被2除后的余数, 这样看起来好像上面的isOdd(int)方法没有什么错. Unfortunately, 并不是这样,实际上会有1/4的机会得到的是错误值。
四分之一,为什么?因为在整数里,有一半是负数,而负数里的奇数是这一半的一半,就是四分之一了。但上面提供的判断奇数的方法,当参数是负数时,其返回值都是false。(问题出现了)
其实这问题是出在java对%运算符的处理过程上。在Java中,当i是一个负数时 i % 2 是等于 -1 而不是 1。
既然是这样,这问题就比较好解决了:
public static boolean isOdd(int i) { |
如果是出于对程序效率有较高的要求,我们有个更的解决方法,就是用关系表达示:
public static boolean isOdd(int i) { |
在RedHat AS里,是自带了vsftpd为系统提供了一个ftp服务,但在实际应用中根据自己的需要还是要做不少的配置。
as we know,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比较好的方法是用vsftpd的虚拟用户(virtual users)。
下面我就给大家介绍一下具体的操作方法,由于讲的时间比较长,大家自备板凳了... ...
大家通过ssh登录到linux系统上,在/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/目录上,看找到四个文件:README,logins.txt,vsftpd.conf,vsftpd.pam。
其中README是说明文件,但我在实际操作中,发现这个文档有些地方讲的很模糊,而且是E文的,所以大家参考一下就行了,我正面的操作过程是这个文档的一个扩充。
1) Create the virtual users database.(建立虚拟用户数据库)
大家看一下logins.txt文件的格式,它的内容是:
tom
foo
fred
bar
意思是说用户tom的密码是foo,用户fred的密码是bar,这就是虚拟用户的信息,大家可以按
<用户名>
<密 码>
的格式来建立自己的虚拟用户群。
然后以root用户登录系统,建立用户数据库:
db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
该命令会建立一个文件 /etc/vsftpd_login.db ,同时改变它的文件属性:
chmod 600 /etc/vsftpd_login.db
2) Create a PAM file which uses your new database.(建立PAM文件,告诉系统你要使用自己的数据库了)
看看另一个文件vsftpd.pam,它有两行内容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
这是告诉系统,我将用新的用户授权库了。ok,把这个文件copy到/etc/pam.d/ftp:
cp vsftpd.pam /etc/pam.d/ftp
3) Set up the location of the files for the virtual users(为虚拟用户建立文件夹)
useradd -d /home/ftpsite virtual
ls -ld /home/ftpsite
(会得到以下输出):
drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
然后:
cp /etc/hosts /home/ftpsite
chown virtual.virtual /home/ftpsite/hosts
4)修改vsftpd.conf文件
文件在/etc/vsftpd/vsftpd.conf,在后面加上:
anonymous_enable=NO
local_enable=YES
write_enable=NO (注:这里可按需求设置)
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf
5)建立用户的权限
先mkdir /etc/vsftpd_user_conf
//开放tom和fred的读权限
#echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/tom
#echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/fred
这样就可以用读权限了,能看到目录和文件。
6)重启vsftpd
service vsftpd restart
ok,用tom用户登录ftp看看,是不是已经可以了:)

| ||||||||||||||||||||||||||||||||||||||||||

受关注文章