善意提醒

如果您打开本站很慢,布局排版混乱,并且看不到图片,那么可能是因为您还没有掌握用科学的方法上网的本领。

2006-07-30

日记2006.07.30

Chapter One

研究基金研究得头昏脑胀,去睡午觉,没睡熟,满脑子都是基金的那些东西。看来有点走火入魔了。
听朋友说股票基金走位已经比较高了,随时有可能摔下来。看看广发小盘那接近 2 的净值,的确有点怕。大盘周五的表现也确实不怎么样,是调整还是下挫目前尚不清楚。
再看看了。大不了买货币基金了,就当存利息高点的活期。新发行的华夏回报二号准备去买一些,但是我想开聚合帐户,所以还要先办兴业的卡。

Chapter Two

世贸的 NIKE 货品居然比巴黎春天还贵。
在 Bench,一个快中年的女人买男式内裤,还说怎么不能试穿?都快要汗死了。
去山田的男装店逛了逛,发现有几件 T-Shirt 还蛮喜欢的,看来我的审美观在变。

Chapter Three

在光合看到有新游戏发售,Robocop,第一人称射击类,有汉化。决定去 down 来试试看。
看到一个 MM 带着 GG 来买游戏,MM 居然还比较主动,真是汗。不过长得一般,而且怎么弯腰驼背的。
看到一个 PPMM 翻人物传记翻得乐呵呵的,没敢凑过去看。
看到一个 MM 颇似公司一同事,多看了两眼,才发现只是比较像而已,还好没有贸然上去打招呼。

发现我原来上书店都是看 MM 来的。

Chapter Four

沃尔玛里面人真是多啊,后悔,不该周末晚上跑来。
今天的醋真是烂,最高的酸度也才 5.0,不过还是比上次最高只有 4.5 的好。拿了一瓶小的,剩下的日子应该够用了。
白糖是粗的好还是细的好?记得以前外婆跟我说过,可我给忘了。看在细的比较贵的份上,就它了。

一群十岁左右的小女生在超市里面大呼小叫地窜来窜去,穿的好像是演出服,操着成都腔。很可能是来参加合唱大赛的吧,呵呵。

Chapter Five

在麦当劳排队点餐。
前面的一对情侣就是烦,他们是有说有笑啊,有打有闹啊,就是不把我这电灯泡放在眼里,——不,就是不肯好好排队。
这不,旁边插进来三个男生。我拿眼睛瞪着他们,其中一个人知趣地提醒其他两个说,我们好像排错队了。然后乖乖跑后面排队去。
快到我了,前面那两位又开始了布朗运动。另一边插进来一个欧巴桑,带着个青年女子,居然跟我抢着要点餐。麦当劳店员都看不过去了,让她排队。欧巴桑用很难听的尖嗓子高叫说她一开始就是排这里的。
我火了。你要插队,给我个合适的理由,我不见得不会让你插。但是要在本人面前说谎、狡辩,no way!
她又说什么她有小孩子在等着,叫我让她插一个队,云云。又在说谎!你真有小孩?那干嘛不让那个青年女子照看着它?她见无效,就摆出很无赖的架势说,我现在就是叫你让我插队,你让不让,不让算了。废话,当然不让了,这话说给谁谁也不会让。真是白痴,年纪大了怎么越活越回去了?
她居然说:「那你去死吧」!
呵呵,素质啊!白吃了那么多年的饭,真是浪费国家的粮食哦。

站点再次转移

这是一条很旧的 Blog,导入自以前的 Drupal5 站点,讲述的事情与现在 Blogger 上的站点无关。

之前将博客站点的操作系统升级到 Red Hat Enterprise Linux AS 4.0 Update 3,冒着使用盗版的风险不说(好像还没过 30 天的评估期,嘿嘿),带来了什么好处?没有明显地感觉到,却因为 2.6 的内核导致了系统时钟不准,还自己写了个校时工具来辅助。系统的运行空间也涨到了接近 3 个 G。在这次橙色警报下作备份时,就明显感到了不方便。

因此启用了以前装好的一台备用的 Red Hat Linux 7.3 的服务器,升级了 libpng 和 PHP,并装上了 Zend Optimizer,配好了 Sendmail 服务,然后把博客站点转移到了这个服务器上。同时还意外地发现以前的服务器上 Sendmail 早就出问题了,因此有一封 xset 的注册邮件迟迟没有发出去。我手动发送了注册邮件,希望他能够收到,从日志看应该发送成功了。

现在的系统减肥 1G,做全备方便多了。我打算以后每周至少做一次数据库和 Web 的备份,这样一旦挂掉损失也不会太大。根据目前的状况,这两个内容备一次的损耗应该在 10M 以内,如果我把 drupal 里面那些没有用上的主题给删掉,应该还会小不少。

2006-07-20

银行感言(一)

Chapter One

越来越多的银行用上了排队叫号系统。这应该是一种进步。在它面前,国人那乱插队的劣根性会稍稍地收敛一点。
然而,也常常有人不知道如何用它,因此,一名称职的保安或大堂经理是必须的。否则如果取号机和业务柜台离得比较远,那柜员就得费上一番口舌了。
我在想,在取号机的号码单上印上广告,应该是比较有效果的。百无聊赖地等待叫号的顾客,在坐在座位上呆呆地无事可做的时候,翻看手中那张小纸条是很正常的事情。进而地,在顾客位置的对面贴上广告,应该也是不错的选择。
退一步讲,在号码单上印上公益广告、名言警句,甚至一则小笑话,应该都会对客户关系起到很不错的效果。可惜,似乎没有人这样去想啊。
我想到了,可是我无意去落实。还是交给有心有力的人去完成吧。

Chapter Two

写叁,却不小心写成了参,被退回,好生脸红。
写圆,却被告知不必大写,元即可,别园就好。

Chapter Three

去中国银行打印存折,发现有两笔0.30的很奇怪的支出。想了半天,突然想起那杀千刀的「跨行查询手续费」。
细细想来,果然是它。我还以为是四大银行的ATM上查别人的卡会被收,没想到它们的卡拿到别人的机器上也会被收。是被抵制了吧?
我也要开始抵制了。仗着自己垄断胡作非为,多行不义必自毙。决定了以后不到万不得已不去办四大银行的卡了。

2006-07-19

RedHat Linux 7.3下编译libxml2 2.6.24遇到的问题和解决方法

单位的测试服务器是很早以前装的RedHat Linux 7.3。说是「测试服务器」,但由于种种原因,在上面已经跑了很多应用,再也离不开了,所以也没有办法把操作系统更新成比较新的版本。
大概是昨天或今天早上的某个时候,这台机器被人重启了(或者是自己重启了),然后就死在了启动过程中。下午有人找我报告,才发现这个情况。再次重启之后,机器是没有问题了,但是又再一次体验了那满屏幕的问号。——老毛病了,每次自动启动的时候Apache+PHP的应用访问Oracle得到的多字节字符编码总是不对,重启一次Apache就好了。一直不知道是什么原因。
心念一动,正好趁这个机会把这台服务器上的Apache+PHP+MySQL,以及周边的那些,如OpenSSL、libpng、libiconv等等,给重新整理一遍,应用上最新(或者说可用的最新)版本。
OpenSSL、libiconv+gettext、libjpeg、libpng……,都很顺利。原本以为这些版本很新的东西会在不完全符合ANSI C++规范的2.96版GCC编译器上出问题,没想到居然一路绿灯。不过,好景不长,在libxml2-2.6.24上卡住了。
错误信息包含下面几句:
……
xmlIO.c: In function `xmlCheckFilename':
xmlIO.c:619: syntax error before `struct'
xmlIO.c:621: `stat_buffer' undeclared (first use in this function)
……
这种语法错误,不像是编译器版本的问题。我先试着跳过这一步,继续下面的安装。不过在编译PHP 5.1.4的时候,configure报告说需要libxml2的2.6.11以上版本,而我这台机器上以前的libxml2的版本只是2.6.7。显然,这个问题是无法回避了。
拿错误信息去查,只有FreeBSD的技术支持站点上有一条bug报告的记录。不过可喜的是,报告中也附上了修正方法。经测试,该方法对于我的RedHat Linux 7.3也同样有效。
以下转自该文:
Fix:
*** xmlIO.c.DIST Sat Apr 29 09:44:16 2006
--- xmlIO.c Sat Apr 29 09:44:35 2006
***************
*** 616,621 ****
--- 616,622 ----
}
#else
#ifdef HAVE_STAT
+ {
struct stat stat_buffer;
if (stat(path, &stat_buffer) == -1)
***************
*** 625,630 ****
--- 626,632 ----
if (S_ISDIR(stat_buffer.st_mode))
return 2;
#endif /* S_ISDIR */
+ }
#endif /* HAVE_STAT */
#endif /* WIN32 */
想要修复这个错误的朋友,若看不懂上面的意思,就注意那两行标了加号的地方。原来的xmlIO.c,是没有这两行的,找到它们的位置后把它们补上,就可以通过编译了。行号人家也标出来了,在原xmlIO.c文件的616~621行附近。
若看到这里还不明白,那就只好委屈了……

2006-07-14

单字符链接在某些手机上的问题

关于WAP浏览器的由来已久的一个问题,出现在Nokia 6260上。
我做了一个WAP网站,其中有些页面是类似这个样子:

标题1
标题2
标题3

1 2 3
返回上一页
返回首页

在公司的那台「测试机」N6260的WAP浏览器上,这下面的1、2、3这些翻页的链接,常常无法把输入焦点移到它们上面。屏幕在卷动,焦点就是不动。在我的QD上却不会这个样子。

测试了多种情况,最后发现是因为这些链接的字数太少的缘故。只有一个字符的时候,就有时候会出现这个怪毛病,特别是当这些单字符链接出现在接近滚屏的位置上时。我把链接的<a></a>标签中的内容加了一个「&#x20;」,即一个空格,就不会有上述问题发生了。

写在这里,作为一个疑难杂症的处理笔记。

2006-07-05

关于表格内文字换行的再研究

通常,搞Web开发的都会遇到这个问题,就是苦心设计的表格被讨厌的一连串英文字符给撑破了。最常见的是自己开发的论坛或留言板,如果有一个情绪激动的家伙打了百来个英文的感叹号,那往往就会出现内容在这些感叹号上不换行,结果让表格撑破,页面变得乱七八糟。

解决这个问题的办法,相信很多朋友都知道了。通过CSS中指定几个样式,可以比较满意地解决这个问题。一个是word-break:break-all,一个是word-wrap:break-word,表格中的文字则还有一个是table标签的table-layout:fixed样式。这三个样式给定之后,就不会再遇到表格被文字顶破的问题了。

稍稍解释一下上面三个样式。word-break:break-all是让英文单词中部的换行成为可能,比如
beau
tiful
word-break样式还有另外两个取值。一个是normal,就是通常默认的,对中文断字而对英文单词不断的情况。另一个是keep-all,是对中文,准确地说是亚洲文字也不断字。然而,和字面上的理解意思不同,keep-all并不能让一个英文句子不被换行。要做到这一点的方法,稍后我会谈到。

word-wrap:break-word是让连续的符号(如!号)之间进行断字成为可能。这是解决那种一大串感叹号造成的问题的一个关键。没有这个样式的话,对连续符号的断字不会发生。

另一个关键是table-layout:fixed。它指明说表格不要去试图自己计算宽度,就按照HTML中定义的宽度来显示就好。只有当table-layout:fixed和word-wrap:break-word同时指定时,针对连续符号的断字才会正确发生。缺少table-layout:fixed,断字不会发生,表格仍被撑大。缺少word-wrap:break-word,则表格不会被撑大,但断字不会发生,超过显示区域的内容将被hide。

好了,知道了如何让所有内容都断字换行之后,另一个问题来了:如何让所有内容都不断字换行?

我们知道,即使指定word-break:keep-all样式,也无法阻止一个英文句子在空格处不被换行。而且汉字中的某些标点符号,浏览器也会很「智能」地把它给换行掉(起码IE会,这就足够了)。然而,一个好消息是,虽然要求不断字的情况远比要求断字要少见,但它的实现方法却相当简单。你只要把内容用<nobr></nobr>标签对括起来就行。被<nobr></nobr>标签对括起来的内容,浏览器绝对不会对它进行换行。只要记住这一点就很好办了。

不过,想让内容不换行的同时,通常并不希望表格宽度因此而变得不确定。因此,常常也需要指定一个table-layout:fixed的样式。这样,就可以让表格宽度维持设计时的大小不变,或者通过指定相对宽度来维持一个固定的比率,而并不受单元格中内容的任何影响。在设计自适应屏幕宽度的标题列表表格时,这个技术也许会有些用处。