15/02/05/09:42:08/Thursday

浮点误差的普遍性

$ ruby -e 'puts 0.1 + 0.2 - 0.3'
5.551115123125783e-17
$ python2 -c 'print 0.1 + 0.2 - 0.3'
5.55111512313e-17
$ perl -E 'say 0.1 + 0.2 - 0.3'
5.55111512312578e-17
printf("%.15e\n",0.1 + 0.2 +0.3); /* 5.551115123e-17 */

perl 6中将用分数来表示小数,进行的是精确的计算,无浮点误差。

stat查看文件的某个属性

ls 命令给出的文件信息有时不那么有可定制性,stat-c 选项则可以很方便地获取想要的信息(应该是stat(2)的一个接口吧)

$ stat -c "%a" a.txt
644

CUPS

自从去年设置好 Archlinux中通过Samba和CUPS连接Windows打印机 后,过了半年,就不能用了。现在有个任务还是去年七月份的,于是之后一直在 Win7 虚拟机里连打印机。

今天终于忍不住,又去Google上查了。

问题首先是 http://localhost:631 页面上的 Administration 里面,选择添加打印机的时候就会出现 Forbidden 错误。应该是权限不够,我试着用root用户打开浏览器,还是同样的错误。

然后先找到说 /etc/cupsd.conf 里的允许登录列表改成 Allow all ,先不管安全与否,这个方法不管用,我也没心思去看那么多选项,心想个打印机至于搞这么复杂吗。

然后还添加一个 lpadmin 组的。结果没什么效果,不过顺便复习了下创建组和添加用户到某个组。(这个是Archlinux中的,感觉不同的发行版中并不通用,有的是adduser,有的是useradd)

$ sudo groupadd lpadmin # 创建新的用户组lpadmin
$ sudo usrmod -G lpadmin bigeast # 添加用户bigeast到组lpadmin
$ newgrp # 更新组信息

最后找到了 这篇帖子,说要运行 enable 打印机名 。果然有个cupsenable,我试着运行了下:

$ cupsenable HP # 激活打印机HP

结果 lpq 就显示 HP is ready 啦!

奇怪之前怎么没有手动enable也能打印。

总之,又一个bug被不明不白地解决啦!虽然现在web页面里添加打印机还是Forbidden!应该是cups在哪次进行了较大的更新?我现在的版本是 cups 2.0.1

irssi

屏蔽登录、退出信息

/ignore  * joins parts quits
/ignore #firefox * joins parts quits
/save

移动

  • 窗口移动 Alt-[0-9] 。如果加入的频道多于9个,那么 Alt-[qwertyuio] 继续11到19个窗口,多于19个窗口,可以用 Alt-Up,Down 来移动。如果嫌不方便,可以自己绑定快捷键:

/bind meta-d chang_window 20

其中 meta 一般就是指 Alt 键。

Note: 其实如果打开的窗口过多,更加实用的方法是直接输入频道的名字跳转: /channel #some_channel

  • 屏幕移动 Alt-n,p 上、下滚屏。

搜索频道列表

/msg alis list social -topic social

也可以在一些 网站 上搜。可以看到Freenode上排名靠前的都是 开源软件/操作系统 相关的话题。开源软件的流行可能是在其他IRC网络都走向衰退的情况下,Freenode却能增长平稳扩张,成为现在 可能是最大的IRC网络 的原因吧。

Freenode虽然是最大,但最高同时在线人数也不超过十万,而且是全世界范围内的。而QQ都上亿了,差距不是一般的大。:)

warez(盗版软件)

我觉得IRC上一定有很多宝(la)藏(ji)有待发掘,或许这已经是历史的残留,但想起来却让人兴奋。

IRC机器人有什么作用?

channel前面一个和两个井号(hash) 有什么差别

为什么有时加入的是一个井号的channel,进去却有两个? 在#freenode上问了,其实Google "freenode channel naming" 就有 答案。概括来说就是,一个hash的表明这是某个软件或者项目的官方频道,而两个hash则是非官方频道,例如 ##linux ,只是为了让游客寻求关于linux的帮助的地方,并不是linux官方的频道。

cloak

等着 #freenode 上的管理员。 已经有了unafflicated的cloak。

15/02/09/23:46:09/Monday

《C程序性能优化》

  • gprof 可以读取 gcc -p 产生的程序,就像 gdb 能够读取 gcc -g 产生的程序一样。另外还有 Oprofile 也是用来做性能测试的。

  • SSE指令做SIMD计算。

  • 数组和缓存的有效利用。矩阵相乘,仅仅通过改变循环的次序,就可以使性能得到很大的提升。