2008年1月18日 星期五

屁股决定脑袋

"屁股决定脑袋"

http://forum.ubuntu.org.cn/viewtopic.php?t=101624
前几天听到这句话, 望文生义地以为是骂人的话. 后来才知道并非如此.

http://zhidao.baidu.com/question/21710008.html?fr=qrl3

一般说“屁股决定脑袋”,单位领导讲将这个。什么意思,很简单,(屁股)“坐”什么位置(职位),(脑袋)就“想“什么事,在其位谋其政。


http://news.xinhuanet.com/society/2006-07/18/content_4848964.htm
利益之争的抉择:屁股决定脑袋
2006年07月18日 10:46:33  来源:中国经济时报

人本性中的缺陷总是难以避免,比如屁股决定脑袋。

当我步行经过十字路口,我很讨厌那些与我抢行、甚至按着喇叭、扬长而去的汽车。作为一个弱势的行人,我理直气壮地要求绝对保证行人的权利,限制汽车的自由。这时候,我很能理解,为什么有那么多人,在明明是行人违规造成交通事故的情况下,也谴责无过错的机动车司机了。

但是,在我开车时,立场会自然转变。我会强调与行人同样的通行权,在因行人不守规矩而频踩刹车之时暗自寻思,撞了白撞(指在机动车司机毫无责任的情况下),或许不无道理。

瞧瞧,个人的立场永远会决定我们看待事物的角度和评判标准,绝对的公平和中立恐怕只存在于想像中。上纲上线点儿说,这或许就是不同的利益集团产生与存在的原因。

人人都会有自己的利益,每个人都会为自己的利益而争取而辩护。这样的本性,使得在人制定的制度中,必然存在天然缺陷,它会不由自主甚至不知不觉地有所倾向。

有几个很热闹的新闻,对其追根溯源,就能看到“屁股决定脑袋”在一些政府决策中的影响力。

争论已久的“90平方米”政策终于尘埃落定。建设部正式对外公布了《关于落实新建住房结构比例要求的若干意见》。《意见》规定,90平方米套型建筑面积,明确为单套住房的建筑面积,而70%比例,将针对各城市年度新审批、新开工的商品住房总面积。消息一传出,广州不少发展商终于松了口气。业内人士分析,该政策向市场发出了一个重要信息:房地产仍然是国民经济的重要支柱,政府不会让房价出现暴跌(《信息时报》7月13日)。

像以前很多次一样,指望政府调控措施控制房价的消费者,此时又要失望了。70%限制的是房地产项目的总面积,而非单个项目的面积,咬文嚼字之中,又是几家欢喜几家愁。

我想,制定政策的官员,多半不受房价高涨之苦;而作为一个与房地产商有着密切关联的政府部门,站在集团利益的立场上发言,也不足为怪——人家制定条例规章的目的,从来都不是为了打击房地产业。

屁股所在的位置,决定着脑袋里的规章制度和游戏规则。

像评选超女一样,短信评选干部,最近很流行。

比如,吉林省舒兰市就在通过短信平台,对144名重点岗位中层干部进行评定,发1条信息付费1元(《中国青年报》7月13日)。

不像超女们的“粉丝”人人拥有手机,舒兰市是吉林省东部的一个经济并不发达的县级市,手机用户并不多。统计显示,参与投票的市民不过3万多人,不到当地人口的4.5%。

其实此前,湖南省永州市就曾短信评选“十大杰出政法干警”,部分候选人为评上“十佳”,想方设法进行拉票,一些单位甚至动用公款参与投票。

我方唱罢你登场。不知如此闹剧还会在何处接着上演。你说游戏规则的制定者趁机圈钱、哗众取宠,我看不尽然。他们不过是以“自己之心度他人之腹”。估计舒兰市的公务员们,都享受着手机的便利。他们会想当然地以为手机投票,是最便捷、最迅速、最普遍的方式。他们可能压根儿就没想到,在经济不发达县,有多少人没有手机,更不会想到由于规则漏洞而导致的种种隐患。这种拍拍脑袋就是所谓创新的运作方式,即使不能说最有利于自己,但也绝对不会给自己带来麻烦。

将这个自己扩大,就变成了部门利益、集团利益。那些坐在利益之上的屁股,指挥着脑袋作出抉择。

一个社会,如果仅仅是少数利益集团说了算,那么,基于“屁股决定脑袋”的缺陷,必然存在公平与公正缺失的问题。人人都想追求利益最大化,问题是,如何让人人都有权利这样做,并且在各自利益的追求中,达到一种妥协和平衡。(冯雪梅)

在这里先向被误警告的猛将兄道歉, 另外谢谢他教会我这句话的意思.

2008年1月17日 星期四

LFS 6.3 with reiser4 and initrd

上周用了一周时间搞了 LFS 6.3, 用 reiser4 作根分区.
LFS 本身没什么, 细心看 LFS Book 应该就没问题了. 我就分享一下用 reiser4 的经验吧.

www.namesys.com 无法访问, 所以 reiser4 需要的东西可以从这里下载:
http://chichkin_i.zelnet.ru/namesys/

参考文章:
http://www.linuxfromscratch.org/hints/downloads/files/initrd.txt
http://www.linuxfromscratch.org/hints/downloads/files/reiser4-on-2.6.txt

需要的 mkinitrd 脚本:
http://www.linuxfromscratch.org/hints/downloads/files/ATTACHMENTS/initrd/

首先刚开始准备分区时要格式化成 reiser4 ( LiveCD 支持 reiser4 )
然后准备内核:

tar xfv linux-2.6.22.5.tar.bz2
cd linux-2.6.22.5
zcat path-to-patch/reiser4-for-2.6.22-2.patch.gz | patch -p1
cd ..
tar jcfv linux-2.6.22.5-patched.tar.bz2 linux-2.6.22.5
rm linux-2.6.22.5
以后用到内核源码就用这个 linux-2.6.22.5-patched.tar.bz2

然后到了 grub 那节, 跳过. 用grub 启动 reiser4 比较麻烦, 用 lilo 会方便点.

第六章安装完最后一个软件 vim 后, 就要安装 reiser4 的东西了
首先是 libaal
./configure --prefix=/usr --sbindir=/sbin --enable-libminimal --enable-static
make
make install

然后是reiser4progs
./configure --prefix=/usr --sbindir=/sbin --enable-libminimal --enable-full-static
make
make install

编译内核时文件系统选上 reiser4 就可以了

下面是 initrd 用的:

第八章编译内核时要注意这几个配置:
-> General setup -> Initial RAM filesystem and RAM disk (initramfs/initrd) support 选 y
-> Device Drivers -> Block devices -> RAM disk support 选 y
-> File systems -> Ext3 journalling file system support 选 y
然后编译内核.

initrd 需要 busybox 作 shell.
下载: http://www.busybox.net/downloads/busybox-1.01.tar.bz2 切勿贪新.
配置:
make defconfig
sed -r 's/^([^#=]+).+/# \1 is not set/g' -i .config # 配置全部选 n
make menuconfig

像这样配置
 General Configuration --->
[*] Support for devfs
NOTE - only if you using devfs
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
Coreutils --->
[*] echo (basic SUSv3 version taking no options
Linux Module Utilities --->
[*] insmod
[*] Support version 2.1.x to 2.4.x Linux kernels
NOTE - only if your using a 2.4 kernel
[*] Support version 2.6.x Linux kernels
NOTE - only if your using a 2.6 kernel
Another Bourne-like Shell --->
[*] Optimize for size instead of speed
[*] Enable alias support
(0) history size
Linux System Utilities --->
[*] pivot_root
[*] mount

然后编译安装:
make
cp busybox /bin/busybox.static


制作 initrd 镜像:
mkinitrd kernel_version=2.6.22.5 initrdfs=ext3 +module="piix libata ata_piix reiser4 ata_generic reiser4"

附加的 module 按需选择, 看一下 lsmod 是个好主意.

接着添加一个启动脚本, 在启动后清理 initrd :
#!/bin/sh
# Begin $rc_base/init.d/initrd

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
        if [ -e /initrd/dev/.devfsd ]
        then   
                umount /initrd/dev
        fi
       
        if [ -e /initrd/proc ]
        then   
                umount /initrd/proc
        fi
       
        if [ -e /initrd/sys ]
        then   
                umount /initrd/sys
        fi
       
        if [ -e /initrd/linuxrc ]
        then   
                umount /initrd
                echo "Clearing Initial RAM Disk..."
                blockdev --flushbufs /dev/ram0
                evaluate_retval
        fi
        ;;
        *)
        echo "Usage: $0 {start}"
        exit 1
        ;;
esac

# End $rc_base/init.d/initrd

保存为 /etc/rc.d/init.d/initrd, 然后在 /etc/rc.d/rcsysinit.d 建一个符号链接:
ln -sf ../init.d/initrd S41initrd


Reboot and enjoy !

2008年1月5日 星期六

震撼, 感慨.


真噁心..沒素質..竟然把這些東西丟在樓梯口

然後不知道誰寫啲字..哎..這年頭.....

給看不懂啲加嗰徬述

圖中爲兩張m巾+一個套..套裏面有xx.外面有血

其他啲自己想吧


昨天看到这个帖, 心中不禁感慨.
http://bbs.gz4u.net/read.php?tid=906404

致欲尝禁果的人, 凡事要三思!

2008年1月1日 星期二

不明白我说什么就忽视吧.

Writting :

Title: Narrowing the Gap between Rich and Poor

///////////////////////////////////////////////

若二次方程 f(x) = ax^2 + bx + c = x 无实根, 求证 f(f(x)) = x 无实根

A, B, C, D 4个球队进行主客场循环赛, 胜3平1负0, 忽略同分情况, 前两名出线.
若各球队都至少得3分, A队要得几分才能保证出线?
若无上一问的得分限制, 答案又是多少?

///////////////////////////////////////////////

一圆柱形条形磁铁投入一无限长的内径刚好符合磁铁外径的铜管, 磁铁运动情况如何(定性分析)

///////////////////////////////////////////////

喜欢什么科目?
选什么专业?
为什么选数学?
有考研或留学的打算吗?
(以下用英文提问和回答)
在学校时是否双语教学?
平时有说英语吗?
一些课程用英语教授, 你喜欢这样吗? 为什么?
(以下恢复到中文)
在月亮上同一个地方拍到一系列地球升起的照片, 鉴定照片真伪. 如果是假的应怎样修改才合理?
地铁车头形状是怎么样的, 为什么要做成平的而不是子弹头形状?
连续两次满月间月亮绕地球转了多少度?
地球一年自转多少周?

2007年12月23日 星期日

解决烦人的启动信息

Ubuntu 的 upstart 系统有个bug, 有时候登录提示符出了还在往屏上写启动信息. 虽然不影响功能, 但每次登录都要先 Enter 一下实在不爽.
这里找到解决方法, 看来是个老 bug.

To accomplish this task, edit /etc/event.d/tty1 and replace:
start on runlevel 2
with:
start on stopped rc2
With trivial modifications, it also works for runlevels other than 2 and for tty's other than 1. Note that those modifications should SOLVE the bug and should't be a workaround.
Cheers!

三年

1095日, 既漫长, 又短暂.
4 年前, 当我第一次遇见她, 我没想过自己会爱上她.
3 年前的那个下午, 我未曾幻想这段感情会延续到今天.
身边的人离离合合, 合合离离. 纯真的我们却从未改变.
快乐, 悲伤, 幸福, 失落...
是上天的眷顾, 是我们的幸运, 还是...
我们的信念不曾改变?
我不会后悔, 因为我是认真的;
我不介意结果, 因为我一直专心.
想念你是件快乐的事, 因为我的心始终依附着你.

很不容易, 我们走到今日.
未来的路, 却更漫长.
我不介意等, 只因有你与我一起, 去走这漫漫长路.
你要的礼物, 是我的承诺.
而我欠你的, 还有幸福.

三周年, 不是一个特别的日子. 每天对你的爱都不变.
时光流逝, 始终爱你.

2007年12月23日,夜


碎花纷飞 如形随影一切也为你
尽诉心意在这地
幸运是我这艳阳来得细腻
愿快乐快些赶走痛悲

碎花纷飞 柔情如你一切也是美
共你分享是趣味
就让俗世里你是唯一知己
让美丽记起心只得你

缘订今生 真心不会分离
命运给我好比一出好戏
缘份是我与你
同渡每日每天千亿世纪

在这一生 精彩得太新奇
大地给我呼吸清新空气
留下让爱永记
前望爱渐结果多么凄美

2007年11月16日 星期五

扩展的欧几里得辗转相除法

参考《算法艺术与信息学竞赛》219页
令 (a,b)=d, 且 a<=b, 存在 ax+by=d, 求 x,y 可以用扩展的欧几里得辗转相除法.

function extended_gcd(a,b : longint; var x,y:longint):longint;
var
t : longint;
begin
if b=0 then begin
extended_gcd:=a;
x:=1;
y:=0;
end
else begin
extended_gcd:=extended_gcd(b, a mod b, x,y);
t:=x;
x:=y;
y:=t-(a div b)*y;
end;
end;

原书第9行代码有误, 原书为 extended_gcd:=extended_gcd(b, a mod b); , 应为 extended_gcd:=extended_gcd(b, a mod b, x,y);


下面给出推导过程:


ax+by=d
(a,b)=d

a'=b
b'=a mod b

(a',b')=d
假设已求出
a'x'+b'y'=d 有解 x', y'
设 k=a div b, 则
a=ka'+b', b=a'
所以
(ka'+b')x+a'y=d
=> a'(kx+y)+b'x=d
所以可有
kx+y=x'
x=y'

x=y'
y=x'-kx=x'-(a' div b')y'

故算法正确