博文

目前显示的是 二月, 2007的博文

原来soff的真名叫陈寿福

同为80s,默哀一下
soff (职称至上啊...) 上站 [8693] 发文 [26019]
上次在 [2007-02-28 02:21] 从 [220.161.57.*] 访问本站
离线于 [2007-02-28 03:04] 信箱 [ ] 生命力 [666] 身份 [用户]
个人说明档如下:
珊瑚虫工作室[Coral Studio] Welcome to http://www.soff.net已注册的共享软件:Kaspersky Anti-Virus Personal Pro, Total Commander, WinRAR, CnStats, cFosSpeed,
PECompact, FlashFXP, MyBase, FTPRush, True Launch Bar, 梅花输入法, 巨硬输入法,
Treo 来电秀/防火墙/超级短信/手机定位, Super Miners, 2day, TAKEphONE, NextGrid,
Asprotect SKE, Babylon, Ad Muncher, ...计划注册的共享软件:no yet....相关新闻:
珊瑚虫版QQ被判侵权可能将停止更新

传统之背离

很多人大叫,emacs太庞大太复杂,背离了unix的传统。可是换个角度想,emacs的作者是Stallman,GNU的领袖。GNU之所以称为GNU,就是指GNU's Not Unix.Stallman要的就是背离。

相同的摘要,不同的标题

相同的摘要,不同的标题
换个title就四处发, 我以为只有中国人这么做呢。
@misc{ roberts00maximum,
author = "S. Roberts and R. Everson and I. Rezek",
title = "Maximum Certainty Data Partitioning",
text = "S.J. Roberts, R. Everson, and I. Rezek. Maximum Certainty Data Partitioning.
Pattern Recognition, 33(5):833--839, 2000.",
year = "2000",
url = "citeseer.ist.psu.edu/roberts99maximum.html" }
@misc{ roberts99minimum,
author = "S. Roberts and R. Everson and I. Rezek",
title = "Minimum entropy data partitioning",
text = "S.J. Roberts, R. Everson, and I. Rezek. Minimum entropy data partitioning.
Proc. of 9th International Conference on Articial Neural Networks, pages
844-849, 1999.",
year = "1999",
url = "citeseer.ist.psu.edu/roberts99minimum.html" }

今天又编译了一次firefox

Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.2) Gecko/20070226 Firefox/2.0.0.2

multitheading model是魔鬼

很多问题本来很简单,但是一旦引入多线程之后,复杂度就指数般的上升,而且,
mutex所带来的额外的同步开销,可能远远抵消掉了多线程所引来的并发量的提
升。1、一个基本原则:轻量级的任务不应使用new thread per request的方式执行。
e.g.基本tcp/ip服务,例如echo。原因是显而易见的,创建/销毁线程的开销远大于了执行的开销。采用threads
pool的方式能对此有所缓解,但是threads pool的设计又远增加了系统的实现的复
杂度。2、多线程环境增加了缓存的复杂度,降低了缓存的效率,还可额外增加缓存同步
的难度。一个典型的示例就是pentium4的HTT漏洞。本来好好的单核CPU,偏要用HTT技术伪装
双CPU,带来的问题就是上下文切换时L1/L2 cache内的数据的安全性无法得到保
证。(逻辑上是2个CPU,但是物理上确是1个cache。)如果采用真正的双CPU,则两
个CPU的cache之间的同步的问题便显得额外的重要和困难。同样的问题也发生在了多线程应用程序上。如何管理好全局/局部缓存,成了一个
核心问题。就我目前所遇到的问题而言。本来是一个很简单的查询/更改的应用。采用了sun
rpc接口,采用了berkeley db数据库做后端。本来没有什么问题,因为 sun rpc的
大部分server side functions都是MT unsafe的。我可以在启动的时候在server端
直接打开一个数据库句柄,然后服务停止的时候关闭它。但是solaris 8+的rpcgen增加了-A选项。使得server端也有了线程池。问题就变得
很为显著。最安全的做法是每次来一个新请求都重新打开数据库,但是这样性能会
大大降低。因为需要反复的文件映射,尽管操作系统会在虚拟内存上做优化,但是
还是要比以前慢很多。
次之的问题是,如果rpc请求在30秒之内得不到回应,原先的请求就会被重发。被
请求的函数将会被重复执行多次(至少2次)
而一般而言,没有良好的方式解决这个问题。
最好的方式是采用tcp来代替udp来传输(NFSv3,v4中的解决方案)。但是即便如
何,在极端情况下,tcp连接 也会被重置,请求也会被重新传输。再或者就在server端手动维护一个缓存池,对请求的参数和函数名进行缓存。如果
下次再有相同的应用,就把上次的请求的答案返回给他。但是,这里隐含一个条件
就是,server端…

loki库在移植性上实在欠佳

由于它并未采用autoconf的方式来检测系统类型,所以它是用判断是否定义了 _PTHREAD_H来分辨是posix系统还是win32偏不巧的是,freebsd下的pthread.h定义的是_PTHREAD_H_,而不是_PTHREAD_H。 我在想,倘若某天gcc也支持#param once这样的东西,那……可惜明天就要走了,patch等回来再做吧

red hat打不开

Site Maintenance
In order to provide you with a better experience on redhat.com we are
currently doing site maintenance and upgrading our systems. We apologize
for any inconvenience this may cause. Please come back in a few hours
for full access to our improved site.If you wish to place an order for Red Hat products, please call
1-888-REDHAT1.
To contact Red Hat Support please call
1-888-GO-REDHAT

反思ajax

显然,ajax已经越来越的被滥用,就像刚开始学js的时候滥用js一样。那么ajax究竟能为我们带来什么?需要对其一个全面的否定,然后慢慢反思。我期望ajax能带来的是,server side code和HTML的全面分离。server side的代 码不必再关心HTML,不必再关心数据如何被显示,它只管把json传递给客户端。而客户端依据ajax可以获得更少的刷新次数,更少的数据接收量。但是更重的js运 行负担。刚在ibm的网站看了几篇关于ajax web remoting的文章,包括如何用ajax访问soap web services。如果我要开发一个B/S, C/S双重架构的应用,这是一个不错的选 择。但是另一方面,我一直在犹豫服务器和客户端之间的数据传输究竟是采用js还是 xml

把lumaqq的swt换成了freebsd的3235

昨天和今天, 我机器上的lumaqq频繁死掉。死因也莫名其妙。(谁叫我不懂java
啊)
于是就折腾一下,装了个swt,然后把把lumaqq的swt换成了freebsd的3235
目前感觉良好。等待下一次crash中

盛大06年的业绩太让人跌破眼镜了

第一季度的纯利润是50万美元
第二季度1670万美元
第三季度1810万美元
第四季度居然达到了3080万美元!!!
这个幅度……???

不要总是把gcc当g++的用

尽管大部分时间都没问题,但是今天...栽了
$ gcc -o shm shm_test.cpp
/var/tmp//ccfbN5hm.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
"gxx" -> g++
然后一切就好了

有趣:为什么Freebsd下只有wheel组的用户才可以su?

"为什么Freebsd下只有wheel组的用户才可以su"?
这个疑问抱在我心里老久了,今天在网上翻手册的时候才发现一个有趣的答案:
这个问题应该是这样:
"为什么Linux下不是wheel组的用户也可以su,而Unix下只有wheel组的用户才可以
su"?
答案是:
From:
http://www.gnu.org/software/coreutils/manual/html\_node/coreutils\_149.html
by Richard Stallman:
Sometimes a few of the users try to hold total power over all the
rest. For example, in 1984, a few users at the MIT AI lab decided to
seize power by changing the operator password on the Twenex system and
keeping it secret from everyone else. (I was able to thwart this coup
and give power back to the users by patching the kernel, but I wouldn't
know how to do that in Unix.)
However, occasionally the rulers do tell someone. Under the usual su
mechanism, once someone learns the root password who sympathizes with
the ordinary users, he or she can tell the rest. The "wheel group"
feature would make this impossible, and thus cement the power of the
rulers.
I'm on the side of the masses, not that of the rulers. If you are used
to supporti…

我少写个return?

神啊~~~这样的错误gcc怎么不给个警告?
///反序列化后,数据依然是保存在dbt的data字段中的。
CDDocAttr unserializationCDF(DBT* dbt){
return unserializationCDF(dbt->data,dbt->size);
}
CDDocAttr unserializationCDF(void* p1,size_t len);
我少写了那个return,
我可是加了-Wmissing-noreturn编译的 啊。就为了这个return,害的我段错误。靠!

emacs的发布速度

今天在emacs.smth版上看见有人抱怨emacs更新的太慢,没有令人振奋的new
feathers。
我去gnu的网站查了下它的发布进度
Feb 6, 2005 - Emacs 21.4 released (fixing a security hole)
* March 24, 2003 - Emacs 21.3 released
* March 18, 2002 - Emacs 21.2 released
* October 28, 2001 - Emacs 21.1 released
*

perl版的oicq又可以用了

my god~
当初这个port是在我的怂恿下被从ports tree中的移除的,害的delphij又重新做
一次port.唉。。。。
http://bbs.chinaunix.net/viewthread.php?tid=897455

终于在freebsd/gnome下实现了分区的自动挂载

他会自动识别硬盘上的ntfs分区并挂载,自动挂载刚插上的移动存储设备、光盘
等。
这样用起来,的确方便多了。反正对于桌面机而言,方便是第一条,安全是其次。

机器内存泄露严重?

last pid: 58450; load averages: 1.44, 1.22, 1.22 up 0+05:04:01
15:19:25
157 processes: 2 running, 154 sleeping, 1 lock
CPU states: 94.0% user, 0.0% nice, 5.3% system, 0.8% interrupt, 0.0%
idle
Mem: 651M Active, 92M Inact, 177M Wired, 49M Cache, 111M Buf, 26M Free
这才开了5个小时,1G的内存都有些吃不住了。My god~~~~

gmail的好处:不拒收无域名的来源的邮件

我的sendmail终于不只是一个摆设了。
把crontab中的时间都从夜里凌晨改成白天
然后,打开/etc/mail/aliases,加入
root: me@sunchangming.com
然后sendmail -bi
然后每天就可以在gmail中接收到系统报告了

freebsd下生成《OpenSolarisDeveloper's Reference》

1、wget
http://dlc.sun.com/osol/docs/downloads/current/docs-20061220.tar.gz
2、解压
tar -zxvf docs-20061220.tar.gz
3、进入20061220/devref-xml/html
编辑Makefile,修改这两个变量的设置为
DOCBOOK=/usr/local/share/
XSLDIR=$(DOCBOOK)/xsl
4、编译
gmake -e

freebsd中下载open solaris代码

portinstall mercurial;hg clone
ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate
所幸用的是ssh,公司没有封这个端口。

传值与传常量引用

刚开始学C++的时候,N多本书上都讲到,在传递复杂的数据类型的时候,要尽量用常量引用来代替传值。
可是转过头来一想,这二者在多线程的环境下,差别是明显的。显然,传值的话,可以做到线程安全。而常量引用,就未必了。

让人无奈的bdb

这是berkekey db4中的示例代码:gsg/CXX/usingDbt.htmlchar *description = "Grocery bill."; 多么明显的错误啊,居然……居然置若罔闻。 std::stringf("1111"); Dbt key(f.c_str(),f.size()+1); 多么简单的代码,就是编译不过去。 难道非要用const_cast?在这里用const_cast是安全的吗?God knows!

bdb

bdb号称只有500k,但是编译起来真慢