I am LAZY bones?
AN ancient AND boring SITE

模拟一唯随机游动

今天,无意中看到了这个blog里面的一篇有意思的文章.对里面的那个随机游动问题产生了一点兴趣:
原文中说: 1维和2维的随机游动是常返的,也就是说会无穷多次回到起点(但回来的平均时间期望是无穷的),而3维以上的随机游动是非常返的。因此对于2维的某个坐标,此物体会无穷多次经过,但是不会无穷多次经过原点。对一个完全没有方向感的人,在平面上不会迷路,但在宇宙中是会迷路的。
而且,还有个题目,说 一个物体从原点出发,每一秒以概率1/2向左走,1/2向右走,第一次回到原点的期望时间 比 一只猴子,每秒种随便按键盘上的一个键,第一次打出”Beijing Welcomes You”的期望时间 还要久,因为前者的期望是无穷大.
就有点奇怪了,顺手写了个程序验证一下,图方便,用了python,代码如下:

这个代码会输出Nmax个样本里面,一维随机游走问题的各个秒数次数.
在Nmax样本数为10000的时候,如果运气好的话,可以在3秒内跑完,但是如果运气不好的话,就难说了,我最多的一次跑了45分钟,最大的一个样本,用了1679075437个循环,才跳回来…嘿嘿.看来那个无穷的期望是真的…
这个试验也告诉我们,即使在没有作弊的情况下,赌博输掉的人想要回本,也许要等到下辈子的下辈子的下辈子…..

键盘快捷键问题

gentoo和ubuntu共用/home,又发现新问题了:在ubuntu下设置了音量大小和静音的快捷键以后,到了gentoo下就不能用了,同样,gentoo下设置好以后,ubuntu下也不能用.
仔细看了键盘快捷键的设置界面,发现ubuntu下设置的是类似 XF86AudioMute/XF86AudioRaiseVolume/XF86AudioLowerVolume 之类的字符串,而gentoo下则是 0x**的键值,很明显是gentoo没有给键值定义名称,于是用 xev把几个键的键值都记下以后,写了一个 /etc/X11/Xmodmap 文件,我的内容如下(不同型号的硬解应该不一样):

keycode 160 = XF86AudioMute
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume

然后重启X,就两边都正常了,娃哈哈…

升级了ubuntu后,gentoo的gnome启动不了问题

昨天,刚把ubuntu升级成了8.10,就一整天用的都是ubuntu,也觉得挺好的.
今天又想用gentoo了,把menu.lst恢复(一早就知道ubuntu会覆盖这文件的,所以早有准备)以后,启动到也正常.到了gdm,输完用户名和密码以后,傻住了,splash都没出来…
到tty1下面看了一下 .xsession-errors 文件,发现在启动什么seahorse组件的时候,报没有 libgail-gnome ,可能是ubuntu下的gnome更新以后,多启动的东西吧,但是这东西gentoo下还没安装,于是马上eix了一下,gentoo下也有现成的包,emerge了一个,就又正常了~
所以遇到问题,多看看日志输出,还是很有好处的…

升级到 ubuntu 8.10

大家都知道,ubuntu已经于上周发布了8.10的版本.
我刻意避开了这几天的升级高峰期,到今天才给我的ubuntu升级,因为以往的经验告诉我,在高峰期升级,源的速度基本上是不可忍受的,呵呵.
升级步骤也和以往一样,sed了一下源列表,然后就放那apt-get去了,这样边干活边处理一些偶尔的选项,2个小时也就搞定了,中间也出了一些小问题,但都比较容易搞定,呵呵.

至于这个版本的改进,相信很多网站上也都介绍了,我就不罗嗦了,反正细节上,舒服了不少,嘿嘿.
纳闷的是,之前听说OOo3.0是不会集成在这版本里面的啊,但是我这打开却赫然跳出3.0的字样,难道是CD上没用,源里这几天更新了?
还有一个纳闷的地方就是之前刚研究过的徽标问题,又和以前不一样了, certified 这个徽标,现在叫做 jockey-certified 了,图片也变成一朵小红花了,路径在 /usr/share/icons/hicolor/scalable/emblems/jockey-certified.svg ,要兼容以前的数据的话,又得自己建个符号链接了~~

谁启动了我的eth0

我的gentoo系统,之前一直存在着一个小问题: 系统启动的时候,都会去尝试启动eth0,然后尝试去DHCP,即使网口根本没插网线也是如此,于是乎这时候DHCP就肯定不成功了,每次都等个10多秒钟,超时了,才能继续后续步骤.结果启动过程就无缘无故地多了10多妙,嘿嘿.
也看过rc-update的结果,也没有多出什么东西来.那是谁启动了我的eth0呢?
后来在irc上问了wd老兄,终于知道了,这个是openrc启动的,而且貌似和udev有关系.
解决方法就是在 /etc/rc.conf 里面的rc_plug_services一项修改为:
rc_plug_services=”!net.eth* !net.wlan*”
这样就不在启动的时候初始化我的网络了,而是到了登录gnome以后,由我的NetworkManager来选择连到什么网络,哈哈,这才是我需要的.
另外, /etc/rc.conf 里面还有一项比较有意思的,就是 rc_parallel=”YES” 可以开启并行启动特性,理论上也可以提高一点启动速度.做完这些后,我的本本从grub到gdm可以输用户名,大概是25s.不是很快,内核里面应该还有一些可以优化的,呵呵.

使用SSL登录irc(注:仅支持OFTC)

SSL登录irc的好处:
1.对收发的数据进行加密.
2.可以不用密码自动identify.

可惜目前试了一下,似乎只有OFTC对SSL提供支持,而因为freenode不支持,可能很多人都用不了.
不管如何,先记下步骤,也许以后freenode会支持呢?但愿如此吧~
以我常用的xchat客户端为例(xchat2.8以上才支持):
1.创建指纹:
openssl req -nodes -newkey rsa:2048 -keyout nick.key -x509 -out nick.cer
chmod 400 nick.key (保护起来,非必要)
cat nick.cer nick.key > OFTC.pem
chmod 400 OFTC.pem (保护起来,非必要)
2.得到 OFTC.pem 以后,放入 ~/.xchat2 目录,然后打开xchat的网络列表,选中OFTC,点”编辑”,在打开的页面勾上”在本网络的所有服务器使用SSL”和”接受无效的SSL证书”.
3.重新连到OFTC,用密码identify了以后,执行 /msg nickserv cert add 就把你的指纹和服务器关联上了,退出,重新打开xchat,登录OFTC以后,你就可以看到,你没输密码,也已经identify了…whois自己也能看到 * [bones7456] is connected via SSL (secure link) 这样的提示了.
终于可以把明文保存在 /.xchat2/servlist_.conf 的密码删掉了,嘿嘿.

其他客户端的设置和更多信息参见OFTC的英文帮助页.

GreaseMonkey脚本实现ubuntu论坛快速回复

在ubuntu论坛里面看到了这个帖子,想想也挺有趣的,就真的写了个.没想到我那被遗忘了多年的javascript,在几乎一行一次google的情况下,还能写出这脚本,嘿嘿…
其实 GreaseMonkey 真是个不错的扩展,只要有点js基础,就可以有很多有趣的应用哦~
提示:在firefox下先安装 GreaseMonkey 扩展.然后添加此脚本.

效果预览

Dimensions

Dimensions 算是一个科普的视频,介绍了部分地理/几何的知识,目的是让你对四维空间有个直观的认识,制作相当精美,讲解深入浅出,不可多得.视频是英语介绍,但有12国语言的字幕,包括简体中文,800*600分辨率的版本可以在这里下载,分9段,还有个预告片,可能会有 Dimensions II.

nautilus徽标研究

不知道广大gnome用户会不会经常用到nautilus的徽标功能.反正我是经常用徽标来表示某些文件的状态的,比如,经常下电影看,看过了要刻盘这么一件事.我会在下载电影前就建个目录,电影下好了,字幕什么的都调好了,就放个标记,说明可以看了,然后看完了,觉得有刻盘价值的也给个标记,不然就直接删了.等要刻盘的内容到了一张DVD的容量的时候,就会刻盘,然后再给个已经刻盘的标记,下次空间不够,就优先删了这些已经刻过的.
本来在ubuntu下,这样用一直好好的,但是由于最近转到gentoo,把用户目录挂过来以后,就发现不对了,一些文件原来有两个标记的,现在只有1个了.分析下原因,既然那个徽标能显示出来,那就说明gentoo的nautilus肯定支持徽标(废话),并且数据也是和ubuntu存在同一个地方的.那还有一个显示不出来,就肯定是gentoo支持的徽标种类和ubuntu的不一样,所以解决的思路就是找到这些徽标是放在哪里的,然后把ubuntu的和gentoo的同步一下.
于是我就找啊找啊,终于找到了这些图标原来藏在 /usr/share/icons/gnome/*/emblems 下面,而且我那个显示不出来的那个图标就是 /usr/share/icons/gnome/48×48/emblems/emblem-certified.png 同时还有一个 /usr/share/icons/gnome/48×48/emblems/emblem-certified.icon 文件,里面存的是各种语言的名称.
所以,解决方法就是把那两个文件复制到gentoo的相应目录,但是后来又发现gentoo下是没有 /usr/share/icons/gnome/48×48/emblems 这个没目录的,你可以自己建立此目录并且在 /usr/share/icons/gnome/index.theme 文件里面加入加入目录信息或者像我一样偷下懒,把文件放入 /usr/share/icons/gnome/scalable/emblems 目录下,虽然那png文件不是矢量的,但是事实证明不影响使用.
放好文件以后,如果不想重启的话,可以执行 sudo gtk-update-icon-cache /usr/share/icons/gnome 刷新图标缓存.然后到nautilus里面去看看,消失的徽标又回来了,哈哈.

PS1:文件也可以放入 ~/.icons/hicolor/48×48/emblems 这样的目录下,或者直接在nautilus的 编辑-背景和徽标 里面添加,但是这里居然只能添加不能删除….
PS2:哪个文件用了那些徽标的数据,在 ~/.nautilus/metafiles 目录下的,已加徽标文件的父目录对应的xml文件内.

read-edid这个包出错了

要emerge个lm_sensors,依赖了x11-misc/read-edid-1.4.1-r1这个包,而且编译当中出了点错,装不上了.

i686-pc-linux-gnu-gcc -O2 -march=pentium-m -pipe -fomit-frame-pointer -Wl,-O1 -o parse-edid parse-edid.o
lrmi.c: 在函数‘set_regs’中:
lrmi.c:305: 错误:‘IF_MASK’未声明(在此函数内第一次使用)
lrmi.c:305: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
lrmi.c:305: 错误:所在的函数内也只报告一次。)
lrmi.c:305: 错误:‘IOPL_MASK’未声明(在此函数内第一次使用)

这样一大串,我就不解了,后来在gentoo的bugs里面找到了这个bug,希望能早点解决,哈哈.
流水帐记录之.