Arch是个好发行版

扔了已经用了一个月的Fedora, 换了Arch.

arch_screenshot

今天这些发行版之间没有太多的差别, 基本就一个包管理工具不同, 再就是追新的狂热程度不同而已, 其他方面的同质化非常严重. 之前的Fedora 15用起来有些致命的问题: evince假死, Virtualbox假死, flash插件假死, kill都不好使, 几乎只能重启, 定制起来又不是很方便, 所以花了一天时间迁移到了Arch.

安装过程很简单, 用四个字概括就是: 一劳永逸.

细节上的定制也非常方便. 用yaourt换上了AUR里的
freetype2-ubuntu
fontconfig-ubuntu
libxft-ubuntu
cairo-ubuntu

四个被打了十全补丁的库以后, 再用Gnome Tweak Tool改一下hinting的细节, 字体渲染效果就相当不错了. Arch便捷集中的文本式配置, AUR/yaourt, 让我体会到了Ubuntu和Fedora都没能提供的前所未有的自由.

用了一会儿以后, 感觉命令行真的可以提高工作的效率, 就算有正事, 开了X以后, 有时也是迷茫的四处游荡, 一会开个网页, 一会开个播放器 ... Arch/gentoo这样的发行版注定是相对小众的, 但日趋式同的那些发行版又将去向何方?

为什么我们更倾向于GNOME3而非Unity?

同为触屏而生, 与Canonical力推的Unity相比, GNOME 3在口碑上似乎占了上风. 到底为什么会这样? 以下一段为zz:

二次世界大战后,色彩学理论有了长足的发展,对人的色彩好恶的研究手段逐步完善,使用的色调数目远远超过战前。

美国科学家F·培廉的研究发现,受乳期的婴儿喜爱饱和度高的明亮色彩,他们对色彩的好恶顺序是 (1) 红、(2) 黄、(3) 绿、(4) 蓝。对婴儿无法借助语言调查,只能观察婴儿目光对彩色物体的反应及用手拿取彩色物体的愿望程度。

培廉对儿童及成人进行调查后发现,儿童的色彩好恶顺序是 (1) 蓝、(2) 绿、(3) 紫、(4) 橙、(5) 黄;成年人的色彩好恶顺序是 (1) 蓝、(2) 红、(3) 绿、(4) 紫、(5) 黄。除红色外,儿童与成年人的色彩好恶顺序几乎没有差别。

—— 滝本孝雄/藤沢英昭 《色彩心理学》 pp. 57

ubuntu_unity

fedora_gnome3

假设人们对色彩的好恶在战后几十年间尚没有颠覆性的改变, 那么Canonical原来对土黄色和现在对紫色的选择可真是够糟糕的. 毕竟, 他们的目标用户群不是婴儿 ...

Ubuntu下使用icc/ifort/MKL编译R及性能实测

1 基本环境

  • Ubuntu 11.04 32-bit
  • R 32-bit 2.13.0
  • Intel Composer XE 2011.3.174(含icc/ifort/MKL)

MKL(Intel Math Kernel Library), 号称"provides extremely well-tuned BLAS and LAPACK implementations that deliver significant performance leadership over alternative math libraries". 在特定的计算情境下会带来一定的性能提升. 记得哪里看到过Revolution R和MATLAB就有用到MKL. 这里尝试用Intel提供的C和Fortran编译器结合其MKL库编译R, 以期尽量发挥现有硬件的性能. Intel的Composer XE中自带了MKL, 而且icc/ifort基本是傻瓜化安装, 这里不再赘述.

2 编译过程

假设icc/ifort/MKL安装在默认的 /opt/intel/composerxe-2011.3.174/ 目录下.

通常我们会这样简单编译安装:

wget http://ftp.ctex.org/mirrors/CRAN/src/base/R-2/R-2.13.0.tar.gz
tar -xf R-2.13.0.tar.gz
cd R-2.13.0
./configure
make
sudo make install

这次具体指定一下参数就好了.

继续阅读

Ubuntu 11.04和点点点点点的Unity

nattynarwhal

昨天在线直升了11.04, 重启一通卸载以后就算是升完了. Canonical在11.04中引入了自己基于Gnome 2.x开发的Unity, 总体上说, 这个界面可能更适合使用触摸屏和宽屏的用户. 问题是, 我用的不仅不是平板设备, 而且还是4:3的普屏. 于是这个悲剧侧边dock让屏幕的水平空间显得怪怪的; 原来点-滑-点就能找到并启动的程序, 现在在最坏情况下可能需要点-点-点-点-点-滑-点才能启动. 真是 ... 蛋__的设计 ... 还真不如更彻底地模仿OS X的dock了, 毕竟那个dock可能只需要点-点-滑-点就能启动一个程序. 表示从精神上支持Canonical, 只是你们需要再激进一些, 激进的方向选好一点就更好了.

不过在线升级倒是很成功, 没有出现重启进不去系统之类的重大悲剧. 除了有一些安装时手动配置过的程序的配置有丢失.

让我感到奇怪的是, 全局菜单有的程序不怎么行, 有的程序又可以, OS X里不是直接都可以的么 ...

Canonical任重而道远.

本月成功灌水9篇, 与09年12月初创时持平. 看来是真寂寞了.

Ubuntu下安装UMFPACK的MATLAB接口

求解大型稀疏矩阵线性方程组是一件很痛苦的事情,大型稀疏矩阵求逆是这个问题的特例。UMFPACK采用的是一种针对稀疏矩阵的LU分解方法,直接法,比较耗内存,提供了C/Fortran/MATLAB接口,如果内存够大,可以首先尝试一下,因为直接法较迭代法精度高一些。如果内存不够,一般首先进行预处理,然后选择一种迭代法进行求解,比方说基于Krylov子空间的方法。UMFPACK的Manual写得比较暧昧,下面记录一下其MATLAB接口的安装方式。虽然MATLAB这丫闭源,只叹人在江湖,身不由己 。。。不过这套SparseSuite倒是GPL的,要是真提供R接口就好了,和CSIE@UFL他家比较熟的童鞋,不妨建议一下 。。。

环境:Ubuntu 10.10 + MATLAB R2010b for UNIX

1. 从 http://www.cise.ufl.edu/research/sparse/

下好UMFPACK本身及其依赖包(均属于所谓的 SparseSuite),平行放置于一个目录。理论上这些就足够:

AMD
CAMD
CCOLAMD
CHOLMOD
COLAMD
UFconfig
UMFPACK

http://glaros.dtc.umn.edu/gkhome/metis/metis/download

下载metis-4.0,解压后同样放入上述目录。

2. 此时如果在MATLAB中进入UMFPACK/MATLAB目录执行 umfpack_make,会发现不能编译Mathworks他丫的MEX。提示:

Warning: You are using gcc version "4.4.4-14ubuntu5)".  The version currently supported with MEX is "4.3.4".

看来Ububtu 10.10自带的gcc版本太高,我们按照

https://help.ubuntu.com/community/MATLAB

的MEX function一节的1 - 3步先安装一个gcc 4.3.4 。。。

3. root启动MATLAB,执行

getenv('PATH')
setenv('PATH',sprintf('/home/%s/.matlab/bin:%s',getenv('USER'),getenv('PATH')));

再次 getenv('PATH') 发现环境变量已经修改成功,进入UMFPACK/MATLAB目录,执行 umfpack_make 即可。

要确认是否已经编译成功,执行 umfpack_demo 即可运行一个求解demo,还有一些对比内建浮点性能之类的信息,比较无聊。

 

另外,直接法还有一个求解器PARDISO可以选择,但是好像授权很不友好,academical也只能试用30天,简直是让人发指 。。。没有做更多的尝试。

Ubuntu安装icc简记

环境

Ubuntu 10.10 Maverick 32-bit

 

软件包

Intel C++ Composer XE for Linux 2011.3.174

 

准备工作

安装icc(ifort)时需要的库:

sudo apt-get install gcc
sudo apt-get install build-essential
sudo apt-get install g++

 

安装过程

 

1. 选择"非商业软件开发 BlahBlahBlah", 在下载时会直接给一个序列号, 而不是一个30天试用的licence, 然后开始下载.

2. 安装

解压tgz, cd至安装文件所在目录, 执行

sudo ./install.sh

选项保持默认即可, 不自定义组件的话默认还会装上MKL之类的一堆东西. ifort的安装完全一样

3. 环境变量

完成后在终端键入icc, icpc或ifort, 提示找不到命令, 因为没设环境变量.

sudo gedit ~/.bashrc

在.bashrc末尾加入icc变量

source /opt/intel/composerxe-2011.3.174/bin/iccvars.sh ia32

或加入ifort变量

source /opt/intel/composerxe-2011.3.174/bin/ifortvars.sh ia32

 

4. 启动

icc: 使用C和C库编译 默认是 -O2

icpc: 使用C++和C++库编译

5. 注意

安装第一步提示操作系统不支持, 无视即可. 环境变量中的 ia32 用以指定x86平台,amd64/emt64写 intel64 .

6. 卸载

/opt/intel/composerxe-2011.3.174/bin/uninstall.sh