人生几何

这两天一直睡不好,心情也不太好。看多了负面的事情,容易让人消极起来。

水母joke的罗思文是第一个让我有这种感觉的,一个在bbs上混迹多年,为大家奉献了无数个笑话这样一个开朗的人,突然得了重病。这给我前所未有的震撼,难道人真得这么脆弱吗?

刚才在sohu上看到肥肥病重,不惜花1200万买一个设备延命,我在想,人在自然规律面前,是多么的苍白无力。就算你是王侯将相,就算你是腰缠万贯,还是逃不了生老病死。

看到一条新闻,一个大学生车祸撞“丢”记忆 母爱唤出高智商。一个孩子,在母亲的照顾下恢复起来,最让我感动的是母亲那种爱子之情,永不言弃之情,让我觉得似曾相识。母亲,是游子心中世界上最温暖的港湾。

现在的年纪已经不会再多愁善感了,人总要面对现实的。二十多岁的人,已然走过了人生的三分之一,一个人能给自己留下什么?给别人留下什么?即使留下了什么,哪有什么用,地球也许会毁灭,人类也许会像恐龙一样灭绝。用永恒来考虑非永恒,很多答案会被颠覆。

很多事情我不知道答案,也不愿去想。

WSRF

很早以前,在写GoSafe的时候,就遇到过一个问题:客户端使用Web Service调用服务器端的服务,例如登录,然后注销。但是服务器端却不能完成发现客户端连接超时并将其注销。也就是说,服务器段只能通过method驱动进行处理,而不能保留客户端的状态。这是一个问题,当时CSDN上有人说可以用session解决,不过我始终没有试过。

这两天smile让我看WSRF,看来这个东西就是解决Web Service这个缺陷的。Web Service本身没有规定是否保存状态,但是大多数情况下是无状态(stateless)的,而The Open Grid Services Architecture (OGSA)需要保存状态(stateful services)。所以,The Web Services Resource Framework(WSRF)就出现了。下面的图说明了三者的关系。

OGSA, WSRF, and Web Services关系

OGSA 需要有状态的WS,WSRF 定义了有状态的WS的特性,而有状态的WS则是WS的一个扩展。基本上就是这样了。具体的我还要再看,今天就说这个概念,呵呵。

scim pinyin?

一直在gnome和kde之间徘徊,换了KDE之后,输入法从scim改成了skim,发现每次KDE启动必挂,需要重启一下kdm,这样的日子过不下去了。上网看了一下,换了scim-bridge,估计是类似于适配器中间搭个桥之类的东东吧。发现用是还可以能用,但是我可爱的智能拼音不见了,输入法列表中没有找到。ft,没有pinyin我用scim干什么?不想用小企鹅,还是习惯scim。

于是这两天只能一边用笔记本干活,一边用台式机写东西。基本上比基本上的中文工作都是只读的……

baidu一下(有时候不知道为什么试了半天才记起用baidu和google),也没说出一个所以然来。一个哥们实在郁闷了,说不行就删除~/.scim吧,没想到我删了一下,重启kdm居然ok了……

scim,skim,scim-bridge,suzhe为啥弄了那么多BT的东西?不管你了,终于可以用笔记本写blog了,oh yeah。

Set up GT4

Damn scim, I can not input Chinese with pinyin, sigh.

OK, today Smile let me set up the GT4 environment and study WSRF programming. I need to do the former thing at first.

First I have to install the GT4 binaries, it goes well.

Second, configure the system, refer http://www.globus.org/toolkit/docs/4.0/admin/docbook/quickstart.html#q-first.

In most of the part it seems correct, but there are some exceptions:

1 postgresql:

root@choate:~# vim /var/lib/postgres/postmaster.conf
root@choate:~# grep POSTMASTER /var/lib/postgres/postmaster.conf
POSTMASTER_OPTIONS=”-i”
root@choate:~# vim /var/lib/postgres/data/pg_hba.conf
root@choate:~# grep rftDatabase /etc/postgresql/pg_hba.conf
host rftDatabase “globus” “140.221.8.31” 255.255.255.255 md5

This is not true in Debian sid. The former file postmaster.conf doesn’t exist and the latter file pg_hba.conf is /etc/postgresql/8.2/main/pg_hba.conf.

2 When I start globus, the log shows some error:
Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

I googled it, and found the answer:

modify postgresql.conf as follows:

56 listen_addresses = ‘*’
57 #listen_addresses = ‘localhost’ # what IP address(es) to listen on;
58 # comma-separated list of addresses;
59 # defaults to ‘localhost’, ‘*’ = all
60 # (change requires restart)

改路由

这几天关于学校对紫丁香社区改路由的说法越演越烈,看来不是空穴来风。现在校园网里面的用户上lilac都很卡,有人说tracert的结果发现是到北京绕了一圈回来的。

虽然不知道具体的情况,考虑到很多人也在看着这里,我也不好多说,lanslot 说开发之后会写出来,我想大家到时候再看就心里有数了。

看着网友的声讨,想起了一句话:水至清则无鱼,人至贱则无敌。

kbs on debian

都是逼出来的,.PASSWDS 的问题快要把人整疯了。干脆快点移植到KBS上算了。

等我有空了,再写一下KBS在debian上的安装吧。
现在比较详细的安装说明可以参考这里:http://www.newsmth.net/bbsanc.php?p=196-4-1-2-4-1

  • 关于.PASSWDS
  • .PASSWDS存放userec在smth1.2和KBS之间数据结构不同,所以是需要转换的。不过我比较了一下lilac版本和kbs的userec结构,大小一样,居然能够兼容,也就是说可以不加转换的使用。
    不过好事多磨,在kbs的登陆界面,输入marvel居然说错误用户,在水母求助无果。后来仔细一看,原来是kbs的MAXCLUB定义是256,而lilac定义是1024,所以结构体的大小变化了,也就无法载入用户信息了。
    修改这个定义,重新编译,done。发现marvel能够进入,但是marvela、marvelb等都无法进入,sigh。仔细一对比,原来是kbs的MAXUSERS才定义20000,而lilac定义为40000。所以很多用户都被截掉了。
    这次索性全部对照着修改define值,编译,启动,ok。

  • 关于十大
  • /*
    *本部分于2007.07.10添加。
    */

    前两天就发现无法添加十大,以为问题不大,所以就没放在心上,而且主体部分没有完成,所以打算以后处理。昨晚把东西弄得差不多了,今天准备看看十大。

    今天带实验的时候看这部分东西,发现不是那么简单的。poststat 这个东西比较 e,涉及到/etc/posts/day.0,还有共享内存的部分。查了半天,无果,逼我使用gdb。调试到最后,发现是writestat函数中的get_records_from_id每次都失败。
    不解,但是涉及到结构体的东西,就不好做了。(从这点上来说,相对于结构体串行化,我还是喜爱xml这种数据存储方式,简单明了,损坏易恢复)于是自己写了一个程序来读讨论区的.DIR文件。结果发现新发的帖子的id号突然变大,例如原来是2000,新发的帖子变成了200000。涉及到共享内存的东西我就郁闷了,不好调试。
    最后没有办法,停服务,清共享内存,覆盖.BOARDS文件,覆盖.DIR,世界清静了……

    这个解决了。但是诡异的事情在后面:

    KBS 对十大增加了不少功能,最特出的就是十大模式了,用户能够实时的读取十大信息。但是我怎么弄就是不行,告诉我当前没有十大信息,但是/etc/posts/day明明已经生成了,ft!
    没办法,这种情况下唯一的做法就是读代码。kbs 是将十大信息放在了全局的共享内存 public_data结构体 的top_header中。poststat 的时候读入,但是我猜程序启动的时候应该会读day.0载入。
    最后终于发现错误在哪里了。原来我在调试的时候增加了一个新版,但是后来覆盖.BOARDS文件的时候这个版消失了。但是day.0文件依然存在,所以程序会加载旧的十大信息。不幸的是那个消失的版面的文章在十大第一,所以当程序处理到这里的时候,误认为十大的信息不存在。

    解决方法很简单,删除day.0,整个世界又安静了……

    刚刚收到lanslot的信,收到KCN的授权书了。可惜给我的信箱是基本上废弃的hit信箱……

    /*
    *本部分于2007.07.10添加完毕。
    */

  • 关于automake
  • /*
    *本部分于2007.07.12添加。
    */
    安装kbs的时候先要运行以下./autogen.sh。
    但是我运行之后出现错误:
    automake: bbs2www/phplib/Makefile.am: not supported: source file `../../src/lilacfuncs.c’ is in subdirectory
    automake: libBBS/Makefile.am: not supported: source file `$(top_builddir)/libBBS/site.c’ is in subdirectory
    automake: libBBS/Makefile.am: not supported: source file `$(top_builddir)/libBBS/default.c’ is in subdirectory

    查了一下,我的automake是1.4的,就是这个问题。解决方法很简单,到/usr/bin下面。
    apt-get automake1.8
    unlink automake
    ln -s automake-1.8 automake

    此外,还需要用同样的方法对aclocal进行处理,将其替换为1.8版本。
    /*
    *本部分于2007.07.10添加完毕。
    */

    /*
    *本部分于2007.07.19添加。
    */

  • 关于新用户注册
  • 本来都做好了,新用户需要邮箱激活。可是今天移植主站的时候发现没有起作用,ft。

    回头一看,原来我写的代码都在LILAC_REG_MARVEL定义里面,而lilac.h文件中由于版本问题,这个定义被覆盖了,所以一点我的代码都没有进去。

    添加#define LILAC_REG_MARVEL 1即可。

  • 关于用户自定义键
  • deem把这部分修改了,如果用户找不到自己home目录的definekey文件,则会使用默认的系统define.lilac文件。
    移植的时候没有考虑这个,而且测试的人员可能都自己定义了,所以这部分没有发现。今天按照deem的修改一下definekey.c,就ok了。
    /*
    *本部分于2007.07.19添加完毕。
    */

  • 关于bonline
  • /*
    *本部分于2007.07.21添加。
    */
    发现cron中的bonline运行有问题,输出是一长串的No database selected。
    错误很简单,就是没有找到数据库,修复方法如下:
    1,修改etc/sysconf.ini,添加:

    MYSQLHOST = “127.0.0.1”
    MYSQLUSER = “root”
    MYSQLPASSWORD = “xxxx”
    MYSQLSMSDATABASE = “dbxxxx”
    MYSQLPORT = “3306”
    其中xxxx就不说了。按一下”~”生效。

    2,修改mysql服务器的root密码为xxxx。
    3,建立数据库dbxxxx:
    mysql>create database dbxxxx;
    mysql>USE dbxxxx;
    mysql> CREATE TABLE bonline (
    id int(10) NOT NULL auto_increment,
    bname varchar(20) NOT NULL default ”,
    users int(11) NOT NULL default ‘0’,
    nowid int(11) NOT NULL default ‘0’,
    bdate date NOT NULL default ‘0000-00-00’,
    bhour int(2) NOT NULL default ‘0’,
    min int(2) NOT NULL default ‘0’,
    PRIMARY KEY (id),
    KEY bdate (bdate)
    ) TYPE=MyISAM COMMENT=’bonline’;
    现在就可以运行bonline了。

    //////////////////////////
    突然发现以上部分用处不大,因为紫丁香系统中没有NEWSSMTH的宏定义,所以post_brdlog没有用,所以上面的数据也没有用。
    相应的,紫丁香是用了usage来生成版面信息的。

    但是telnet和web的热门版面不一样,telnet是按照版面人数排序的,而web是按照平均在版面的时间来排序的。由于存在挂机的现象,可能版面只有一个人在,但是平均在线时间很高,所以我改了一下统计方式,让web也按照人数来排序。在此作为备忘录。

    /*
    *本部分于2007.07.19添加完毕。
    */

    Need 4 Speed

    进度,进度,赶进度!

    前天风风火火的找smile要前台和后台的接口,做了一个。昨天开个会,确定一下,smile晚上给了我文档。

    今天早上开始做,感觉我做的时候就是在赶时间,coding的时候可以听到风在呼呼呼呼的在我耳边呼啸而过,真的又一种开极品飞车的感觉。到下午的时候就做的差不多了,把能做的东西全部做完了。

    妈呀,没见过人的潜能能够发挥到这样的。大前天晚上看了一晚上的jsp入门,今天就把前端弄完了,我也许是安拉的秘密使者(伊斯兰的paper中说耶稣是安拉的使者尔撒圣人)来祝那个项目一臂之力的。

    可惜smile告诉我要回家一趟,过两天才能过来。看来最短路径又得增加了,明天看看lanslot是不是要装服务器,希望老婆不会再放我鸽子了。轻松一天,后天再战吧。