IBM X31安装Archlinux笔记

安装sudo:
1.root权限执行visudo,会打开一个配置文件
2.在打开的配置文件上加入新的一行USERNAME ALL=(ALL) ALL

安装声卡:
1.pacman -S alse-utils
2.gpasswd -a USERNAME audio 添加用户到audio用户组以支持声音
3.vi /etc/rc.conf (在/etc/rc.conf的DAEMONS中加入alsa)

为IBM X31安装ati驱动:

pacman -S xf86-video-ati
如果是其他显卡的话,google一下看看应该安装啥驱动。

安装gnome:
1.pacman -S gnome gdm hal
2.vi /etc/rc.conf (把hal和gdm加入/etc/rc.conf的义域:DAEMONS中)
3./etc/rc.d/hal start

4.startx (如果可以看到图形界面,说明已经成功了)
5.重启,不出意外应该可以进入gnome,出了意外请google

安装个苹果风格的linux:
参考:http://www.stchman.com/transform_osx.html
screenshot_003

配置hal的IBM X31鼠标中键:
需要在/etc/hal/fdi/policy/一个文件,如下:
cat /etc/hal/fdi/policy/use-multiple-layouts-with-mouse.fdi

[code=xml]
<?xml version="1.0" encoding="UTF-8"?>

<!--
Section "InputDevice"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
Option "ZAxisMapping" "4 5"

Option "Emulate3Buttons" "true"
EndSection
-->
<deviceinfo version="0.2">
<match key="info.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>

<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge>

<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>
</deviceinfo>
[/code]

有疑问请参考:http://www.linuxsir.org/bbs/thread341470.html

IBM X31其他配置:
参考:http://wiki.archlinux.org/index.php/IBM_ThinkPad_X31

安装中文输入法fcitx:
1.pacman -S fcitx
2.打开用户home目录下 .bashrc 文件,加入以下内容:

[code=c]
#setup XIM environment, needn't if use SCIM as gtk-immodules
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
export XMODIFIERS="@im=fcitx"
[/code]

假如不能输入文字,字已经出现,你可能要在/etc/profile中加入一行
export LC_CTYPE=zh_CN.utf8
如有问题,请参考: http://wiki.archlinux.org/index.php/Fcitx

安装yaourt:
1.从AUR上下载并安装,如果不会安装AUR包的,google之。

yaourt AUR下载地址:http://aur.archlinux.org/packages.php?ID=5863

安装软件:
1.pacman -S gimp gqview gedit vim evince unrar unzip stardict jre flashplugin 等等

安装字体,使用准圆字体

1. 下载ttf文件:http://nog-os.googlecode.com/files/ZhunYuan.ttf
2. 将此字体文件拷贝到/usr/share/fonts
3. 刷新字体缓冲:fc-cache -f
更多问题请参考:http://wiki.archlinux.org/index.php/Xorg_Font_Configuration_X%E5%AD%97%E4%BD%93%E9%85%8D%E7%BD%AE

安装多媒体播放器:
1.pacman -S smplayer

2.pacman -S audacious

人比黄花瘦墙和突破流量限制:
因为我拥有一个网络主机的SSH账号,而我所处的网络有做流量限制,使用SSH隧道却没有流量限制,因此我安装了翻人比黄花瘦墙工具proxychains,通过它任何程序都可以通过隧道访问网络了:
为了达到翻人比黄花瘦墙的目的,首先要建立起SSH隧道,使用如下命令:

ssh -aTfnN -D 端口号 用户@主机地址

如: ssh -aTfnN -D 7070 admin@examplehost.com

yaourt -S proxychains.
通过修改配置文件vi /etc/proxychains.conf中的部分内容就可以愉快的翻人比黄花瘦墙了。
如有疑问参考此博文:http://linuxdesktop.cn/2009/07/09/tsocks.html

参考资料:
1.打造完美的 Linux 桌面系列文章 http://linuxtoy.org/archives/the-perfect-linux-desktop-arch-linux-2007-08-2-4.html
2.Archlinux官网 http://wiki.archlinux.org/
3.本文用斜体表示在shell中输入的命令和参数

Posted in 孤儿 | Leave a comment

IBM X31安装ARCHLINUX使用鼠标中键

最近重装arch,发现更新了xorg后,需要用hal来管理键盘和鼠标等硬件了。怎样使用ibm的鼠标中键呢?

下面是解决此问题一帖子的地址:http://www.linuxsir.org/bbs/thread341470.html

Posted in 孤儿 | Leave a comment

人生的意义

Ready or not, some day it will all come to an end. There will be no more sunrises, no days, no hours or minutes. All the things you collected, whether treasured or forgotten, will pass to someone else.

Your wealth, fame and temporal power will shrivel to irrelevance. It will not matter what you owned or what you were owed.

Your grudges, resentments, frustrations, and jealousies will finally disappear.

So, too, your hopes, ambitions, plans, and to-do lists will all expire. The wins and losses that once seemed so important will fade away.

It won't matter where you came from, or on what side of the tracks you lived.

It won't matter whether you were beautiful or brilliant. Your gender, skin color, ethnicity will be irrelevant.

So what will matter? How will the value of your days be measured?

What will matter is not what you bought, but what you built; not what you got, but what you gave.

What will matter is not your success, but your significance.

What will matter is not what you learned, but what you taught.

What will matter is every act of integrity, compassion, courage and sacrifice that enriched, empowered or encouraged others to emulate your example.

What will matter is not your competence, but your character.

What will matter is not how many people you knew, but how many will feel a lasting loss when you're gone.

What will matter is not your memories, but the memories of those who loved you.

What will matter is how long you will be remembered, by whom and for what.

Living a life that matters doesn't happen by accident.

It's not a matter of circumstance but of choice.

Choose to live a life that matters.

不管你是否准备好,有一天一切都会结束。不再有旭日东升,不再有灿烂白昼,不再有一分一秒的光阴。你收藏的一切,不论是弥足珍贵的还是已经忘记的,都将留给别人。

你的财富、名望和世俗的权利都将变成细枝末节的事情,不管你拥有的还是亏欠的,都不再重要。你的嫉恨、冤仇、挫败和妒嫉之心终将消失。同样,你的希望、雄心、计划和未竟之事都将终止。曾经无比重要的成败得失也将褪色。
你来自哪里,用什么方式生活都不重要。你的美貌如花还是才华横溢也不重要了,你的性别、肤色、种族都无关紧要了。

那么什么变得重要了呢?你有生之日的价值怎么来衡量呢?

重要的不是你所买到的,而是你所创造的。

重要的不是你所得到的,而是你所付出的。

重要的不是你的成功,而是你的价值。

重要的不是你学到的,而是你传授的。

重要的是你的每一次正直,怜悯,勇敢和牺牲之行为能够使人充实,让人强大或是能够激励他人,让他们以你为榜样。

重要的不是你的能力,而是你的性格。

重要的不是你认识多少人,而是在你离开时,有多少人感到这是永久的损失。

重要的不是你的记忆,而是爱你的人的记忆。

重要的是你为人所怀念的时间有多长,重要的是谁在怀念你,重要的是他们为什么要怀念你。

让我们的人生不是因为偶然而变的重要,不是因为环境而变得重要。而是我们自己的选择,选择让自己的生命有意义。

Posted in 孤儿 | Leave a comment

\r与\n的一点知识

计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。Unix 系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\ n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

Posted in 孤儿 | Leave a comment

编程小游戏

[http://games.qq.com/images/pcgame/2008/demo/20080917jq/1.swf]

Posted in 口水 | Leave a comment

自制电脑机箱教程

来源http://www.bit-tech.net

最终效果:(我觉得上面黑色部分比较好看,下面的不好看)
finalt04.jpg

Posted in 孤儿 | Tagged | Leave a comment

用c语言做开发的一点小感想

以前学习c语言只是学习c的语法,现在发现,如何划分系统,设计模块间的架构才是c真正精华所在。c很自由,约束不多,一定程度上带来了系统设计的困难。而十分少书籍讨论这些东西,你能看到的都是些教语法的书。近段时间也为这样的局面困扰,总觉得在c系统的设计上有很大不足,总找得不到好的指导。《c语言接口与实现》这本书不错,里面对于接口的设计的探讨对我颇有裨益。另外找到一篇论文 《On the Criteria To Be Used in Decomposing Systems into Modules》作者为D.L. Parnas,是一篇开山之作,值得一看(Parnas的模块设计相关论文有空得找来看看)。

Posted in 丁叮 | Tagged | Leave a comment

单链表的例子

void list_element_destroy(struct list*ele)
int list_element_cmp(void*l1,void*l2)


struct list { void*datas ; struct list*next ; } ;


struct list*g_first=NULL ; struct list*create_list_ele(void*data) { struct list*lt=(struct list*)malloc(sizeof(struct list)); if(lt) { lt->next=NULL ; lt->datas=data ; } return lt ; } void list_element_destroy(struct list*ele) { if(ele) { //destroy ele->data; free(ele); } } void list_destroy(struct list*lt) { struct list*tmp=lt,*t ; //wirte_lock(list) while(tmp) { t=tmp ; tmp=t->next ; list_element_destroy(t); } //write_unlock(list) return ; } int list_element_cmp(void*l1,void*l2) { return 0 ; }


struct list**list_find_element(void*data) { struct list**p ; for(p=&g_first;*p;p=&(*p)->next) if(list_element_cmp((*p)->datas,data)==0) { break ; } return p ; } int list_add_element(struct list*ele) { int ret=0 ; struct list**p ; //write_lock(list); p=list_find_element(ele->datas); if(*p) { ret=-1 ; /* element exist already */ } else { *p=ele ; } //write_unlock(list); return ret ; } int list_remove_element(struct list*ele) { struct list**tmp ; //write_lock(list) tmp=&g_first ; while(*tmp) { if(*tmp==ele) { *tmp=ele->next ; ele->next=NULL ; //write_unlock return 0 ; } tmp=&(*tmp)->next ; } //wirte_unlock return-1 ; /* not found */ }


int list_element_idx(struct list*ele) { struct list*tmp ; int ret=-1,index=0 ; //read_lock(list) for(tmp=g_first;tmp;tmp=tmp->next,index++) { if(list_element_cmp(tmp,ele)==0) { ret=index ; break ; } } //read_unlock(list) return ret ; }
Posted in 孤儿 | Leave a comment

动态数组的实现例子

头文件:


#ifndef __BUF_H__
#define __BUF_H__
#include <STDIO.H>


struct Buf { void*elts ; int nelts ; size_t elmsize ; int nmax ; };


void buf_init(struct Buf*,size_t); void buf_destroy(struct Buf*); struct Buf*buf_append(struct Buf*,void*,size_t); #endif


实现:

#include <STRING.H>
#include <STDLIB.H>
#include "buf.h"


/* stub code */ void*allocate_array(int n,size_t es) { register void*mem ; size_t cbsize=n*es ; mem=malloc(cbsize); if(!mem) { /* fatal error , no memory */ return NULL ; } return mem ; }


void*reallocate_array(void*ptr,int n,size_t es) { register void*mem ; size_t cbsize=n*es ; mem=(void*)realloc(ptr,cbsize); if(!mem) { /* fatal error, no memory */ return NULL ; } return mem ; }


void flex_free(void*ptr) { if(ptr) { free(ptr); } }


void buf_init(struct Buf*buf,size_t size) { buf->elts=NULL ; buf->nelts=buf->nmax=0 ; buf->elmsize=size ; }


void buf_destroy(struct Buf*buf) { if(buf&&buf->elts) { flex_free(buf->elts); buf->elts=NULL ; } }


struct Buf*buf_append(struct Buf*buf,void*ptr,size_t n) { int cbsize=0 ; if(!ptr||n==0)return buf ; if(n+buf->nelts>buf->nmax) { cbsize=n+buf->nelts ; if(((cbsize*buf->elmsize)%512!=0)&&buf->elmsize<512) { cbsize+=(512-(cbsize*buf->elmsize)%512)/buf->elmsize ; } if(!buf->elts) { buf->elts=allocate_array(cbsize,buf->elmsize); } else { buf->elts=reallocate_array(buf->elts,cbsize,buf->elmsize); } } memcpy((char*)buf->elts+buf->nelts*buf->elmsize,ptr,n*buf->elmsize); buf->nelts+=n ; return buf ; }


据说引自flex 的源代码。

Posted in 丁叮 | Leave a comment

一个人去桂林

都说桂林山水甲天下,在大学剩下最后的几个月时,终于,一个人去了桂林。为什么一个人去桂林,我事先准备了些理由来应付即将到来的质疑:1.本来想和之去的人不去了。2.我喜欢一个人旅行的感觉。3.找不到人。4.关你屁事。真实原因是,真找不到人和我去。某日,俺爬起床,鼻子有点塞,头有点昏。天灰蒙蒙地,因为是雨季,那个时候南方刚闹水灾,据说桂林都被淹了。我发了下呆,觉得这样过日子实在是太令人不爽,于是我想去桂林,立马就去桂林。问其他人去不去,都说有事了、要找工作了、没钱了。决定了就去做,于是我一个人上了火车。在绿皮的不带空调的普快上熬了十几个钟头,本来有点感冒的我感觉很糟糕,出了柳州站,是凌晨5点左右。看门口有车到桂林,被骗进一小面包车,很黑,黑得我记忆犹新。因为,我收了平生第一张假瑞脑消金兽钱,车费50,我递过去100,找个假的50给我。一开始没有注意,车到半路,旁边的大哥在骂娘,说他收了个假50。我心一紧,知道我应该也中招了,果然,中招。但是拉我们上车的人没有跟车一起走,没有证据证明他和司机是一伙的。一路不爽,感觉千里迢迢跑来桂林,到了广西的地盘,居然遇上这样一档事。被骗50块不算大事,坏了心情却是大事。为了找回我丢失的心情,我决定报警,在加油的时候下车把车票用相机拍下了,再拍了司机的脸,准备到了桂林报警去。老天也觉得有点对不住我,在高速路出口,车被警薄雾浓云愁永昼察拦下了,因为这破车的一个雾灯坏了,按理是不能上高速路的。于是我就出去报警了。警薄雾浓云愁永昼察第一句就问我:你是来桂林还是离开桂林?我很奇怪有这一问,我说: 刚从柳州到桂林。又问:你坐什么车回柳州?我楞了楞说:这个重要吗?那警薄雾浓云愁永昼察看我还是太嫩,直接说:我是说你怕不怕打击报复?我汗,这更破坏心情了。俺答:我坐火车走。于是,司机就被带去训话了。果如我所料,司机推得很干脆,说他是被请来载客的,他不认识那厮。后来就假意对我们说出门要注意啊,怎么这么不小心啊,等等屁话。看他样子应该也被警薄雾浓云愁永昼察吓到,心情稍好。

花满楼

到了桂林,直奔花满楼青年旅舍。我在网上已经找好地址和电话了,在一个桂林火车站对面的一个小巷子里找到了它的所在。外面看上去有点破烂,里面还是很温馨的。从一个小楼梯上到二楼,有一个爬满藤蔓植物的校门,踩着铺着鹅卵石的小路,到了一个很舒服的客厅,布置着布艺沙发,棕红色调的布料,深色条纹布的靠枕,旁边是个阳台,有着让人心情舒畅的绿色植物。靠里边还有一台球桌,有几个外国小伙在打台球。一进来,我就决定不再走了,本还想去另外一家青年旅舍看看的,看来不用了。办了手续,我一身疲惫的爬在了属于我的床上。我住的房间有4个床位,本来就一个人出来瞎逛,也没准备住什么单间啊啥的。上铺是个德国人,上铺的旁边也躺着个德国人,关于他们的国籍,是后来聊天的时候问的。这时这两伙计也躺着,早上8点多的样子,还没有起床。我也不管了,冲了个热水澡也睡了。一觉醒来是晚上6点,下到楼下的巷子吃了碗正宗的桂林米粉,味道的确不错。反正也晚上了,也没有打算去哪里玩,就呆在旅舍了。咳嗽得厉害,看来真的是在车上被风吹太厉害了。在客厅上了下网,看了本杂志,打了下台球,和几个外国人问候了几句。回去房间,发现两个同屋已经回来了,问他们有啥计划,说明天要去阳朔,然后又聊了几句,发觉德国人比较闷,我的口语又不能扯出什么有意思的话题。于是,睡觉。第2天,被他们收拾行李的声响惊醒,可能是睡得较多,稍微有点动静就醒了,其实他们的确很有礼貌,进房间的时候都是轻手轻脚的,几乎没有什么声响。他们走后,我也起床活动了,先吃了个早饭,还是桂林米粉!然后到一个小旅行社询问有啥推荐的线路,看到一个很漂亮的mm。她建议我一条路线,看来是不错,我坦言太贵,她也很有耐心的给我推荐景点,建议我要去那去哪玩,怎么去等等。真是个好人呢,我自信路上应该会遇到好人的,真遇到了,还是个美女,心情很好。下午我就一个人在桂林市区瞎逛,印象比较深刻的是晚上在桃花溪上的一个公园里,灯光和游人及不知道什么流派的戏剧表演,在古城墙的下面,面对着湖中心的亭子,我突然觉得,有个人和我一起来多好啊,可以共同分享此情此景。在公园附近游荡了几个钟头,飘到一个清真寺里的一个拉面馆吃了碗拉面。比起拉面,盛拉面的碗我比较稀奇,上面有桂林市餐具统一消毒的标记,在其他地方没有见过。

345.JPG

回到旅舍,已经11点多,又是睡觉。特意跑去桂电参观,因为以前参加电子竞赛的关系,看看他们的实验室是咋样的。他们实验倒很容易找,进门就到了,在一个食堂的2楼,竟然没有门卫!我随便进去,里面的学生也不问我哪里来的,看到里面的布置还是感到十分亲切啊!跟里面的一个大一同学聊了很久一会,随便拍了些照片,就出去逛校园了。校园不大,也不新,就是到处能看到桂林风格的山,这一点,我是比较羡慕的。

67.JPG

与后来到的广西师范相比,桂电真的是很简陋啊,广西师范真是漂亮,在王府里面读书我想全中国也难再找到这样的学校吧?学校本身就是一个景点,里面有座蛮高的山,坐船游漓江的时候会看到这山,山中间有一个小楼,据说曾经是朱元璋的孙子住的地方。

876.JPG

到了桂林的第3天,我去了阳朔,到了西街,还是住青年旅舍。还是和外国人住一起,其中有3个法莫道不消魂国的美女,让我感觉不虚此行。和一个波兰的大哥聊得比较多,可惜他住了一晚就跑了。漫无目的的走在西街,细细地品味一个人在路上的感觉,一次吃饭,餐馆老板是香港人,他说准备下个月关掉餐馆,和他老婆---正在炒菜的大姐,去北京旅游半年。也许,下次我将一个人去北京吧?再加一个人就更好了。

Posted in 丁叮 | Tagged , , , | Leave a comment