Monthly Archives: July 2007

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是不是要装服务器,希望老婆不会再放我鸽子了。轻松一天,后天再战吧。