Random Tech Thoughts

The title above is not random

计算理论似乎很有意思

到学校以后再开始看 SICP,现在终于看到第四章了,不过习题只做到了第二章的八皇后问题,其他的问题都只是看了看而已。这本书真的是很有意思,第一次在看计算机的书里面看到了哲学问题,才感觉到哲学似乎是在我们的生活的方方面面都有体现。

这本书的第三章里构建具有通用型操作的系统中看到了多继承出现的理由,也理解了面向对象的根本的难题。而第四章延时求值技术来构建流真是让人打开眼界,更让人惊讶的就是流对系统因为时间导致的复杂性的解决办法。当然环境求值模型也是很让人映像深刻的。不过前一段时间坚持每天看至少十页,想早点看完,导致有些内容理解不够。

昨天上编译原理的第二次课,讲了一些形式化语言和正则文法之类的东西。一个好的理论体系的确让人感觉很漂亮!开始对理论感兴趣了,可我知道我自己是不适合搞研究的。我可以知道不少东西,但是却不能深入某样事物,这个是我的弱点吧。

Update 2008-06-27: 为了以后做研究,我必须要克服这个弱点!

借了本《计算理论导引》,又是 MIT 的人写的。国内的计算机教育跟国外比究竟有多大的差距呢?看了导引和自动机和语言的一部分,感觉作者把这些东西都讲的很清楚简单,不是那么吓人。书一共分三部分,自动机,可计算性,还有计算复杂性,虽然很想都看一下,不过现在恐怕没有那么多时间。而且看这些书遇到问题基本上都没有人可以请教,只能孤军奋战。虽然这些理论性的东西以后可能不会用到,但是他们对我加深对计算机的理解无疑有非常大的好处!

Arch安装使用中的一些笔记

  • 我使用的速度比较快的源(软件包仓库)
  • http://arch.os-zen.net/mirror/ 这个源东西很多,也比较新。我使用电信的2M adsl可以达到200K/s的速度,谢谢这些作镜像的好人了!
  • 普通用户没有权限使用声音设备
  • 将该用户加入audio组。
  • 无线网卡
  • Arch base里面就有wireless tools,内核也已经配置好,不过没有firmware的话无线网卡还是用不起来的。用pacman就可以了。
    pacman -S ipw2200-fw
    (Gentoo里面叫ipw2200-firmware,一开始怎么也找不到)如果你用的是其他intel的网卡换其他的名字。非intel的要用nids,不过只有以前在suse上帮别人弄过,现在已经忘了。
  • 重新启动以后没有声音
  • /etc/rc.conf里的DEAMONS中把alsa添上。
  • 笔记本cpu降频
  • 我习惯用cpufreqd。
    pacman -S cpufrequtils
    (名字跟Gentoo里面又不一样了,Gentoo里面叫cpufreq-utils) 使用的时候先要加载cpufreq-*和其他一些模块才能指定governer。可以在/etc/rc.conf里面添加,这样启动的时候自动会加了。
  • FVWM窗口标题的中文显示
  • 这个是FVWM的bug,看这里,要自己改一下源代码才行。
  • cups
  • 终于用上这个东东了,很不错啊!启动服务以后在浏览器里面输入localhost:631就可以对打印机进行管理了。另外装一个cpus-pdf就可以用虚拟打印机把所有能打印的东西全部输出成pdf了!(想到Windows下的PDFCreator了。)

用LiveCD修复Linux系统的一个办法

无论使用LiveCD还是从别的UNIX like系统安装Gentoo的过程中都需要chroot来切换系统,这个办法也可以用来修复某些误操作造成的系统崩溃。

首先你得有一张LiveCD。我使用的是Gentoo的LiveCD,其他的只要有chroot和mount命令,并可以引导你的电脑都可以。

用LiveCD从光驱引导以后进入shell,挂载要修复系统所在的分区,然后挂载/dev和/proc到挂载的系统下的dev和proc目录下(挂载dev和proc是可选的,但是如果有程序需要使用设备信息的话一定要挂载。比如安装grub等。)

# mount /dev/hda2 /mnt/gentoo
# mount -o bind /dev/ /mnt/gentoo/dev
# mount -t proc none /mnt/gentoo/proc
# mount -t sysfs none /mnt/gentoo/sys

之后就是chroot切换系统了,并且更新shell的环境变量。

# chroot /mnt/gentoo /bin/bash
# source /etc/profile

这样就已经进入到你的硬盘上的系统了,就好像是系统正常启动一样。区别是现在使用的内核和驱动是LiveCD上的,而不是你原来的系统的。你现在甚至可以启动kdm进入kde或是gnome。如果你知道系统问题出在那里的话就可以进行修复了。

Arch, a Lovely Linux Distro for Me :-)

在LinuxSir上发帖问FreeBSD的ADSL的问题的时候,发现以前搜到的那篇关于ADSL配置的文章的作者用过Gentoo,现在是Arch,还在说要重装Gentoo但是因为用了Arch变懒了。于是看了看Arch究竟是个什么样的发行版,马上觉得这个可能就是我要找的发行版。像FreeBSD同时提供二进制包和源代码编译2种方式安装软件是最吸引我的,当然还有就是可以按照自己的意愿构建小而干净的系统(甚至连/usr/share/doc和info都省掉了,够精简了!)

一兴奋马上就开始行动。下ISO,刻盘(家里最后一张刻录盘了),安装。呵呵,装过Gentoo和Debian以后那样的安装程序真是没有什么障碍了,简洁干净又快速。很喜欢这个安装程序,既有装Gentoo时自己在终端下敲命令做事,也有Debian的那种文本菜单的方式,又因为是二进制包,所以速度跟Debian一样快。

基本系统安装完以后重启,一切顺利,然后按照这篇帖子再装了一些软件,呵呵真是快阿,除了下载用了点时间而已。xorg.conf的配置的时候遇到了点问题。我的显示器开始的时候每次只要启动Xorg马上就失去输入,一开始怎么也不明白为什么,但是Ubuntu在这里肯定是可以用的。想到Ubuntu里面包含Nvidia的驱动的,马上装Nvidia的驱动,又是一条命令就搞定,而且很快。用Nvidia提供的工具生成了一个xorg.conf文件,X起来了!没想到第一次在一个我还不是很熟悉的发行版上装Nvidia的显卡驱动竟然这么顺利。这下kde就能用了,firefox、scim和scim-pinyin,acroread,jdk……一切都很顺利。现在这篇文章就是在Arch下写的。还有一点就是Arch的速度非常快,在用kde的情况下感觉也不比我的512M内存的笔记本上的Gentoo慢多少(我在那里只使用fvwm-crystal),启动和关机也非常快,甚至感觉比Gentoo都快。

现在对Arch还不是很熟悉,有些我喜欢的软件在它的仓库中还没有找到(amarok,openoffice, emacs-23等,前2个在unsupported里面有,不过还不知道怎么装),也有些是没有吧。不过真的是已经喜欢上这个发行版了!再用一段时间等熟悉以后,找到所有必要的软件以后想把笔记本上的Gentoo换成Arch了,这样就不用在忍受大软件的编译时间了:–) 不过还是会有点舍不得吧,所以还是慢慢看再说。

分区还是建议用fdisk!

这里的fdisk指的是Linux下的fdisk。

以前装Debian和Ubuntu时对安装程序发现的唯一的问题就是分区编辑器。有好几次它都莫名其妙的弄出几个只有一个柱面的分区,而且那个柱面还是其他分区里面已经使用的了。因为这个我每次安装Linux之前都是先用cfdisk分区,不过今年五一之前试装FreeBSD失败以后把分区改回来的时候因为cfdisk的问题导致我丢了2个分区,然后就只能使用fdisk了。

以前不用fdisk主要是觉得它不直观,用起来不方便。不过真的用过一次以后就发现它非常好用,极其灵活,有些用其他分区工具做不到的事它都可以做到。比如要把扩展分区里的第一个逻辑分区变为主分区用fdisk很方便就可以做到,另外分区表顺序和磁盘上柱面顺序不同是也可以用fdisk方便的改回来。(我不知道不同的话是不是会有什么问题,但是我喜欢顺序一致。)而且用fdisk的过程中对硬盘分区也懂的更多。其实我们所谓修改硬盘分区改的就是一张分区表,这张分区表记录了每个分区的号码,每个分区的起始柱面和结束号码。还有另外一些信息,比如分区类型,是否可引导。至于扩展分区本身就是一个主分区,而逻辑分区是在扩展分区里面的“子分区”,所以对扩展分区也可以修改它的起始柱面和结束柱面来修改它的大小。(对FreeBSD的话还有label,我不太了解它究竟是什么,FreeBSD的ADSL上网问题使我到现在都没有办法去体验她)分区表本身也是保存在硬盘上的(我想应该是在硬盘的比较靠前的柱面吧),不过它和文件系统是分开的。所以如果你修改了分区表,但是只要分区的起始和结束柱面不变的话那么文件系统是不会受影响的。利用这一点就可以从扩展分区里划一些分区到主分区,也可以把一些主分区变为逻辑分区而不损坏分区内的文件系统;修改分区表的顺序也是利用的这一点。

在使用fdisk的时候记住上面所说的那一点的话就可以多分区做出很多灵活的修改操作了。不过这种事情总是有风险的,所以可能的话一定要备份!我是在丢失过很多资料以后才有了这样的体会,所以现在对系统和重要资料都会每个月作备份。

把Acer笔记本的电池电量显示搞定了:-)

Acer的笔记本用的Smart Battery System在Linux下电量的显示一直弄不起来。以前照着Gentoo论坛上的一篇文章试过,先要下载SBS的patch(在source-forge上),然后取得现在系统的dsdt,用什么Intel的iasl反编译,再用iasl编译然后包含进内核之类的,比较复杂,而且一直失败。(不知道别人是怎么成功的)

这次突发奇想,因为Ubuntu 6.06在我的机器上可以显示电量,那我为什么不试试看它的内核呢?于是下载了Ubuntu 6.06 dapper的内核源代码,用的2.6.17的版本。解压以后看到debian目录下面有个README-Ubuntu-External-Drivers说明中有SBS的驱动,在内核源代码的driver/acpi下面有一个文件acpi-sbs.c,应该就是这个使它能够显示Acer的电脑的电量吧。马上配置,搜索sbs发现是有这个选项的,在ACPI的Battery下面,但是很奇怪没有办法选上。马上Google,找到了这篇文章,原来是SBS依赖于I2C,搜索的时候因为依赖太多,I2C在最后面而没有注意到。选上I2C,然后就可以在Battery下看到SBS了。选上,然后就是编译安装了。重启以后modprobe acpi-sbs果然电池信息出来了 :–)

原来想不用Ubuntu的内核自己在做patch试一下,但是进行了一半就遇到了以前的问题。sbs的patch有失败,然后就是编译dsdt失败,懒得自己改了,估计改了最后也没有用,所以最后放弃了。不过Ubuntu的内核现在在启动的时候有一些异常信息,不知道是为什么,慢慢研究什么原因了。

最后还是要谢谢Ubuntu了!如果当初不是因为升级X Window出问题的话估计我也不一定会回到Gentoo,Ubuntu还是很好的。

Solidot and Slashdot

今天在Google cmake的信息时偶然发现了这么个网站http://solidot.org/,看名字就让我想起了Slashdot,一看果然很像Slashdot,不过是中文的。注册了一个帐号,开始浏览,呵呵,果然很好玩。浏览页面时一直会出现如“本页由一组竞技猴子为***生成“,很搞 :–)

Slashdot的主页副标题是”News for nerds. Stuff that matters.“,这个Solidot的是“奇客的资讯,重要的东西”,果然也很配对呢。不过目前还不知道它除了像Slashdot以外和Slashdot还有什么关系。不管怎么说,以后会常去看看的。

Free Linux CDs (Not Only Ubuntu!)

Solidot上看到的,地址是这个,免费获取Linux CD,不是指Ubuntu,而是各种各样的发行版。主页上面就有各个主要的发行版可以申请,如Debian, Gentoo, Mandria, SuSE等,没有的可以在Others里面申请。试了一下发现邮寄的地址有中国的,呵呵,以后有机会试试看。

teTeX Is No Longer Maintained

From this week’s Gentoo Weekly News I know that Thomas Esser will not make any further tetex releases. Though it’s a sad story and may cause problems to me, I still thank him and those who contributed to teTeX!

Sunrise: A Really Useful Software for My Palm

I use Plucker a lot on my Palm. When I am using Windows, I use Plucker Desktop to make plucker document. However, I can’t compile Plucker with gtk support on Gentoo and I really don’t want to understand those configuration files to use Plucker, a GUI would be much simple and fast for me. Luckily there is Sunrise :–) This software is written in Java using the SWT toolkit. It also has a firefox plugin which is contained in the source code. You can build it use ant and later install it to firefox manually. It looks nice and is also very easy to use. The only problem is that when I include too many pictures in my document, it will encounter an error saying that not enough memory for the JVM.

Just try it if you have Palm and use Plucker, I love them so much!