用脚投票

前一阵请julia和表弟在一个朝鲜饭馆吃饭, 结果这个饭店从菜品到服务无一不让人失望. 结账的时候julia坚持一定要批评店方, 我则主张悄无声息的结完账,以后再也不用来就是了. 后来回想, 我们这其实是两种不同的处世态度. 遇到不好的事, 有的人会据理力争,而有的人只会不声不响一走了之,用脚投票。 看过一个美国的统计资料, 当客户发现商家提供的服务不理想,只有2%会提出不满,其他98%只会静静离开。这样就会给一些商家以错误的信号, 误以为自己提供的服务不错, 迟迟不能找到自己的问题所在。

反映到政治投票上,最典型的就是在8×8的时候。当时广场上的学生举行过多次投票, 关于是不是还要坚持,每次得出的结果都是多数同意继续坚持。 这真是大家的愿望么?其实很多反对继续坚持的人,早就自己悄悄走掉了,投票的参与者都是继续坚持的人,结果也就不言而喻。 貌似民主的投票, 得出的结果却并不像人们想象的那样,能真正反映民意。

在设计意见反馈制度,设计团体或国家的民主制度时,这都是应该非常重视的问题。

大家一起做湿人

华夏诗坛这些年萎靡不振,鲜有佳作问世。 前些时候,国宝级赵姓女诗人一些作品问世,居然遭广大网友公然嘲笑, 中华诗坛之凋零可见一斑。遥想盛唐时期, 天才辈出,佳句频传的盛景,再看现在如一汪死水般的诗坛,令广大诗友掩面唏嘘不已。 就在大家已经完全死心,心如槁木之际, 2006年宇宙十大杰出青年之首的XiaoHui开发出惊天地泣鬼神的猎户星免费诗歌自动制作机, 一举挽狂澜于既倒,救诗坛于危倾。XiaoHui依靠自己开发出的诗词引擎2.0技术,彻底突破了诗歌创作的几大难关, 引导宇宙人民进入全民写诗的时代! 经国家部委组织专家鉴定, 已完全达到宇宙先进水平。

下面摘录几首广大人民群众用制作机创造的充满才情的诗歌, 这些诗歌热情奔放,充分反映了新时代青年的对生活的渴望,迷茫,颓废与慌张, 凸显了后现代解构主义对内心六次元空间与现实8维轴度交集的超时空表达。

著名江南山水田园诗人周游的作品:

《天空, 总是妖艳》

不是痛苦太多,
而是我们大山里的磁盘在飞奔;
不是风扇太少,
而是爱情不懂得无间道
痛苦时, 就去抚摸我的无间道;
开心时, 也去抚摸我的无间道;
天空, 总是妖艳.

下面是江南著名少妇湿人苏苏的作品:

银杏树下的孙萌
猫头鹰停止了吵闹
银杏树挂满了娇美的果
最后那一场大雾淋湿了挂花
噢, 亲爱的孙萌
他们说
护城河边的挂花喜欢听
我们的歌
噢, 亲爱的孙萌
今夜
你会不会坐在月下
靠着银杏树
听我唱
你我熟悉的
《我们的爱》
听我的歌
飞进银杏树林
飞越护城河
飞向那一轮圆月

面临这样的诗坛盛事,各地发来贺电, 到目前为止收到包括南极长城站在内的贺电123456封。 下面是一些著名人士对猎户星免费诗歌创作机的评价:

猎户星免费诗歌创作机向我们这个时代提出了一个严肃的问题,什么是诗歌?怎样让诗歌更贴近生活?猎户星的愤怒隐藏在麻木不仁和看似毫无意义的背后。孤独是诗人的墓志铭。--代年

猎户星免费诗歌创作机的诗歌有种飘飘欲仙的感觉,猎户星发现和捕捉到生活中像烟一样轻盈的那些东西,语言亦松弛到自在飘忽状态,内在的诗意却被悠然守定。——亮刘程

用了猎户星,诗好胃口就好,吃嘛嘛香,身体倍儿棒。 ---猪圈首席湿人Sam

上海的陈xx出事后, 房地产市场风雨飘摇。此时恰逢猎户星做诗机的问世,庞大的民间资金已将投资的目光移向了中国诗界。著名经济学家提出,做湿将是下一个产业热点, 温州炒诗团已协3000亿资金进入诗坛, 世界前10位的VC已有8个投资在了诗坛, 获得风险投资的湿人以达1080位,总资金额在100亿美元。

在贴血论坛,有人提出意淫强国已经不是时尚, 做湿强国才是华夏民族重新复兴的根本。

欢迎大家赶紧到http://www.dopoem.com 去创作属于自己的诗歌, 这样当你离开这个世界的时候,你可以毫无愧色的说: 我把人生全部献给了人类最伟大的事业,做湿事业!

测量了小区跑道长度

今天晚上无聊, 用GPS测量了一下小区环形跑道的长度。 居然有1.09公里, 不测不知道,一测吓一跳。现在差不多每天晚上都下去跑2-3圈,平均每圈6分半的时间. 体重暴涨8公斤后还能跑成这样,不算太差了 

 

9月23号的terry fox run, 和10月15号的北京马拉松就要到了, 要加紧练习了。 感兴趣的朋友可以在 http://www.beijing.gc.ca/beijing/ch/TFR.htmhttp://www.beijing-marathon.com/chinese/default.asp 获取进一步的资料。

未来应该会出现专门的数据存储冗灾服务提供商

最近看了很多关于存储的资料, 深raid, fc, sas, nas 一大堆名词扑面而来。 看的时候就一直在想一个问题, 如何能保证数据的安全性呢? 可以用raid, 可万一raid卡坏了怎么办? 那就用双机热备份, 可万一这个机房着火了怎么办, 那就只有在一个远离这个机房的地方再保存一个备份才能保证数据安全了。 大公司有这么做的, 北京政府甚至在昌平专门建有冗灾数据中心, 但这对广大的中小厂商来说有成本太高之嫌。这应该就是一个新的机会,IT业发展到现在需要有专业的第三方的廉价的数据存储冗灾公司。
下面设想一下这样的公司的实现细节,他应该有如下特点

  1. 这个公司有至少三个机房, 每个机房之间的直线距离, 至少超过1000公里, 其中至少有个机房, 和最远的机房有1万公里以上的直线距离。这样也保证了机房至少会在两个以上的国家分布。 这样自然灾害,战争同时威胁到所有机房的可能性近乎为0.
  2. 保证每个保存的数据都至少有三个拷贝, 每个拷贝在不同的机房。 这样3个拷贝同时坏掉的可能性微乎其微
  3. 为了降低成本,不用raid卡,不用nas。每个存储单元采用pc机, 每个pc机挂4个或更多1TB SATA硬盘, linux系统。 由主控机决定什么数据存储到哪个节点机
  4. 客户可以通过http或ftp访问, 或者专门的开放协议(提供给用户各种语言的sdk), 数据只能添加不能修改,删除(防止用户操作失误)。系统自动的将用户新添加的数据扩散到其他的机房。用户要读取数据时, 系统会自动给他选择一个最近的机房。
  5. 根据用户申请的存储空间收费和读的次数和数据量来收月费。可以推出针对个人的数据备份服务, 价位应该是1G/月 , 1块人民币的样子
  6. 整个数据备份的过程自动进行, 人们只是维护。 维护不需要调整bug, 只要发现哪里有问题,不用修,直接换掉
  7. 随着技术的发展, 硬盘容量的提高, 只要不停的换节点机, 交换器,申请更高的带宽即可

这些应该都没什么不可逾越的技术难度。 微软和google现在都在搞网络硬盘, 应该就有这个意思。设想的这种第三方数据冗灾服务应该不远了,没准早有了,只是我还不知道。

Subversion不完全安装笔记

昨天深夜开始安装Subversion,折腾了很久,终于搞定。 把过程写出来与大家分享,整个安装过程主要参考了 http://www.jlchannel.com/blog/?p=104http://www.newbooks.com.cn/info/52691.html

安装环境为

内核:Linux version 2.6.9-34.ELsmp
操作系统:Red Hat Enterprise Linux AS release 4 (Nahant Update 3)

Web Server: Apache 2.0 ( Web server必须是Apache 2.0以上,Subversion数据库才能通过http协议去访问)

  1. 先到http://subversion.tigris.org 下载最新的文件, 分别是subversion-1.4.0.tar.gz 和 subversion-deps-1.4.0.tar.gz
  2. 将文件包解压
    tar zxvf subversion-1.4.0.tar.gz
    tar zxvf subversion-deps-1.4.0.tar.gz
  3. 开始编译
    cd subversion-1.4.0
    ./congiure
    make
    make install在我用的系统里被安装到了 /usr/local/bin
  4. 编辑http.conf
    加入下面的两行
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    DAV svn
    SVNParentPath /data/svn //svn父目录

    Require valid-user //采用何种认证
    AuthType Basic //连接类型设置
    AuthName “Subversion repository” //连接框提示
    AuthzSVNAccessFile /data/svn/accessfile //权限配置文件
    AuthUserFile /data/svn/passwdfile //用户配置文件
  5. 创建数据目录
    cd /data
    mkdir svnsvnadmin create /data/svn/test //创建测试目录

    chown -R nobody /data/svn //很重要,否则从apache访问不了
  6. 管理用户
    htpasswd /data/svn/passwdfile admin //添加用户
  7. 权限设置
    编辑 /data/svn/accessfile
    加入
    [test:/] //这表示,仓库test的根目录下的访问权限
    admin = rw //test仓库admin用户具有读写权限
  8. 重起Apache
    /usr/local/apache/bin/apachectl restart
  9. 服务器端安装完毕
    从http://www.xxxx.com/svn/test 就能够访问了
  10. 安装客户端
    http://tortoisesvn.tigris.org/ 下载TortoiseSVN。一个WIndows资源管理器插件, 把Subversion客户端和资源管理器近乎完美的结合到了一起,现在就可以开始用了。 Let’s GO!

后记:

要注意的还有如下几点:

  1. 服务器端的运行方式除了通过http访问外,还可以是用svn自己的服务器运行,但没有尝试
  2. svn存储数据有两种方式,一种是文件,一种是berklydb, 但是没有让我选择。
  3. Subversion服务器端全靠字符界面来配置,自己手动写配置文件,很麻烦, 尤其是要对整个项目树进行精确的权限管理的时候。 有个Web界面的配置工具 SVNManager,应该能节省很多力气。可惜因为php5安装出现莫名奇妙的问题而没有尝试成功,如果有尝试成功的还请给出测试报告。

try{} catch(…){}

以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:


try
{
BYTE* pch ;
pch = ( BYTE* )00001234 ; //给予一个非法地址

*pch = 6 ; //对非法地址赋值,会造成Access Violation 异常
}
catch(…)
{
AfxMessageBox( “catched” ) ;
}


这段代码在debug下没有问题,异常会被捕获,会弹出”catched”的消息框。 但在Release方式下如果选择了编译器代码优化选项,则VC编译器会去搜索try块中的代码, 如果没有找到throw代码, 他就会认为try catch结构是多余的, 给优化掉。 这样造成在Release模式下,上述代码中的异常不能被捕获,从而迫使程序弹出错误提示框退出。

那么能否在release代码优化状态下捕获这个异常呢, 答案是有的。 就是__try, __except结构, 上述代码如果改成如下代码异常即可捕获。


__try
{
BYTE* pch ;
pch = ( BYTE* )00001234 ; //给予一个非法地址

*pch = 6 ; //对非法地址赋值,会造成Access Violation 异常
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
AfxMessageBox( “catched” ) ;
}

但是用__try, __except块还有问题, 就是这个不是C++标准, 而是Windows平台特有的扩展。 而且如果在使用过程中涉及局部对象析构函数的调用,则会出现C2712 的编译错误。 那么还有没有别的办法呢?

当然有, 就是仍然使用C++标准的try{}catch(..){}, 但在编译命令行中加入 /EHa 的参数。这样VC编译器不会把try catch模块给优化掉了。

找到一篇比较好的英文文章谈这个问题: http://members.cox.net/doug_web/eh.htm

用C++10 年多了 , 居然这么基础的问题都搞错, 真是汗颜。 要加紧学习啊, Stay Hungry, Stay Foolish!

recordhistory.org被封了

决定做的时候就料到的,只是没想到这么快

封的第一天,流量下降到原先的十分之一

当初做这个站只是为了自己历史方面的爱好, 也有借此熟悉wiki系统的意思。现在被封了,感觉很是失落。

对我们这个政府,……………………,实在没什么好说的了。

以后如果孩子们问为什么留给他们这么糟糕的国家的时候, 会告诉他自己曾尽了一个公民的责任去努力让它变好,可这个国家实在不是我们这种卑微草民能改变的。

https协议还可以访问, 谁要看的请点 https://www.recordhistory.org, 只是图片在https显示不出来。