Search This Blog

Thursday, October 27, 2005

又对common lisp感兴趣了

前段时间看了点elisp,改了几个函数让它们符合我的习惯,也初步体会到了fp的魅力
不过elisp只针对于emacs,离开了emacs就不行了,于是想学学common lisp了
今天照着水木的帖子把clisp环境搭了起来,先apt-get install cmucl binfmt-support
然后建个bash脚本:
#!/bin/sh
[ $1 ] && lisp -quiet -eval "(compile-file "$1")(quit)"
chmod a+x ${1%.lisp}.x86f

用这个脚本就可以编译.lisp的源程序
还下了几本书,有空好好看看
感觉lisp语言是很有前途的,虽然现在用的人还不算很多
即使不考虑这些,多体验一种编程风格,倒也是可以自娱一下

Wednesday, October 26, 2005

模拟鼠标点击

fvwmbuttons有一个很好的功能是可以把pager啊buttons啊之类的玩意儿收起来,或者再放出来。
以前照着王垠的说明弄过,但是用fvwm就应该发挥它的优势,老是拿鼠标biajibiaji地点岂不是很郁闷?但是那时候我又不知道怎么可以用键盘来控制被buttons作为panel的模块的收放,后来就去掉了,让它们一直放在桌面上好了。
不过今天又想把桌面变得再简洁点,于是想用键盘来实现上面说的功能。
google了几分钟,在fvwm faq上找到答案了:
FakeClick是用来实现键盘模拟鼠标点击事件的,为此可以定义一个函数
AddToFunc Press_FvwmButtons
+ I SetEnv pointer_x $[pointer.x]
+ I SetEnv pointer_y $[pointer.y]
+ I Next ($1, CirculateHit) WarpToWindow $2 $3
+ I FakeClick depth 1 press $0 release $0
+ I WindowId root WarpToWindow $[pointer_x]p $[pointer_y]p

这个函数先把当前鼠标指针的位置保存下来,然后移到指定的FvwmButtons,用FakeClick模拟点击事件后再把指针返回到原来的位置
现在举个例子,假如我有一个FvwmButtons叫MainPanel,它把一个FvwmPage作为一个panel,在MainPanel上点击鼠标 就可以把FvwmPage展开或者收起,然后我可以这样调用Press_FvwmButtons函数:Press_FvwmButtons 1 MainPanel 50 50
其中1表示鼠标的左键,MainPanel就是FvwmButtons的名字,50和50是鼠标指针移动到FvwmButtons的位置比例
这样就可以实现模拟鼠标点击,如果再把Press_FvwmButtons绑定到一个快捷键上,就可以实现用键盘来控制panel的展开或收起

Tuesday, October 25, 2005

教训啊

这次rm了/var/lib下的东西,应该吸取教训了:
.bashrc:
alias rm='rm -i'
这样每次删除都会问一下,虽然是麻烦点,但是总比误操作强
顺便就解决了一下历史遗留问题:
以前照着网上的资料把bash的提示符弄成彩色的了,有两个好处,第一,在输出一大堆信息的时候,往回翻时可以很方便地找到提示符的位置,这样就知道输出的信息是从哪儿开始的了,第二,当然是好看了。
但是之前在我的工作目录很长的时候,命令会超出一屏的长度而自动换行,这时候问题就出来了,当到第二行后,我用left回到上一行会出现定位的问题,具体 也说不清楚,就是很混乱,根本就不知道现在的光标是在哪个字符上。那时候我还以为这是用ascii控制符带来的必然的副作用。
后来一想,怎么可能,这么优秀的软件不会有这种低级bug的,尤其是它经过了这么多年这么多人的考验。于是又找资料,终于发现应该用\[和\]把ascii控制符括起来,这样就告诉bash在计算光标位置的时候把方括号里的内容忽略掉,就不会出现刚才说的混乱的情况了。
顺便提一下,ascrii控制符这样表达:\033[xx;xxm,xx是数字,代表颜色,以及一些乱七八糟的东西,比如下划线之类的

debian的tex包太郁闷了

哦,不是包郁闷,是我郁闷。
前两天tetex升级了,我也没想什么就dist-upgrade了,结果……
tetex-bin就总是装不上。可这是debian啊,它装不上我的apt就老是报错,还影响我装别的包,于是前天就想把它弄好。开始在google 搜,然后又去水木看,都没找到有用的东西,最后……在我想看/var/lib下的东西的时候,实在是懒得打目录了,于是up啊up,up到一个有 /var/lib目录的命令,没看就ret了,然后才发现那个命令是rm……
悲剧就这样发生了,无奈。
昨天把/etc备份了一下,/home本来就在一个单独的分区,重装还挺快的,美化也已经轻车熟路了,然后还是装tetex,又装不上,说是无法删除 /var/lib/texmf/web2c/*fmt,没有这个文件目录,我一看,倒还真是没有。那没有就没有,反正你要删掉的,继续装不就得了,白痴不 白痴么。
然后我就戏弄了它一回,在/var/lib/texmf/web2c/下vim了个123fmt内容是123,保存,再装,这个傻x脚本就高高兴兴地把tetex-bin装上了:(
反正我就是觉得这次包的升级有很多问题,后来也是少很多文件,我根据它的提示一个一个地从网上下,后来才搞定的,弄到5点多才睡,郁闷。
有一个倒是要记一下,就是当fmtutil-sys或者updmap-sys提示找不到配置文件的时候,不妨先texhash一下,应该就能找到了

Saturday, October 15, 2005

关于自动换行显示的问题,也就是truncate

我用ecb,edit窗口我一直是non truncate的,但是不知道那些ecb windows和speedbar window怎么才可以自动换行。于是先从.emacs里把控制edit window的truncate的var找了出来,是truncate-lines,然后C-h v ecb- TAB,这样会出来一个complete window,然后跳进去,C-s,找truncate,果然被我找到了,ecb-tree-truncate-lines和ecb-truncate- long-names,把这两个都设置成nil,发现ecb的d,s等窗口都可以自动换行了,但是speedbar还是不行,找了半天似乎也没有对应的变 量,于是google之,还是没找着,最后发现,先speedbar-get-focus,然后toggle-truncate-lines就可以让 speedbar自动换行,于是写个函数:
(defun my-speedbar-toggle-truncate ()
(interactive)
(speedbar-get-focus)
(toggle-truncate-lines -1)
(speedbar-get-focus))

把my-speedbar-toggle-truncate hook到ecb-activate-hook上就可以让ecb-speedbar自动换行了

Friday, October 14, 2005

今天搞明白了一个困扰已久的问题

我一直在纳闷ecb的speedbar为什么就跟死的一样,非得再另开一个speedbar的frame才会“活”。之前我一直理解为ecb- speedbar只是一个躯壳,需要一个真正的speedbar来驱动它工作。直到今天无意间发现一个函数:ecb-speedbar- activate,才明白原来ecb-speedbar是可以独立工作的,害得我以前还老是另开一个frame :P
只要把ecb-speedbar-activate这个函数hook到ecb-activate-hook上就可以了:)如下:
(add-hook 'ecb-activate-hook 'ecb-speedbar-activate)

又改了一下smart-operator

发现%还是不方便,现在这个版本可以判断当前光标是不是处于引号内部,如果是的话%前后就不加空格了,否则还是加
(defun smart-insert-operator (op &optional only-back)
"Automatically insert whitespaces before and after '=', '>=', etc.
Make it look nicer: ' = ', ' >= '.


OP is the operator. If optional ONLY-BACK is t, only insert one
whitespace at back. When confused, try C-q."
(interactive "s")
(delete-horizontal-space)
(let ((op-p nil) ; another op at front?
(one-char-back nil) ; have we stepped back one char?
(sec-sp nil)
(no-fir-sp nil))
(unless (bolp)
(unless (and (equal op "*") (looking-back "int\|char\|float\|double\|short\|long\|signed\|unsighned\|void\|\("))
(setq sec-sp t))
(if (looking-back "\(")
(setq no-fir-sp t))
(backward-char)
(setq one-char-back t))
(setq op-p
(catch 'return
(dolist (front smart-operator-alist)
(when (looking-at front)
(throw 'return t)))))
(when (and (or op-p (not (and (bolp) (eolp))))
one-char-back)
(forward-char))
(if (equal op ">")
((lambda ()
(while (looking-back " ")
(backward-char))
(if (looking-back "-")
((lambda ()
(setq sec-sp nil)
(setq no-fir-sp t)
(backward-char)
(delete-horizontal-space)
(forward-char)
(delete-horizontal-space)
())))))
())
(if (and (equal op "%") (comint-within-quotes 0 (point)))
((lambda ()
(setq sec-sp nil)
(setq no-fir-sp t)
())))
(if (or op-p only-back no-fir-sp (bolp))
(insert op)
(insert (concat " " op)))
(delete-horizontal-space)
(if sec-sp
(insert " "))))

Wednesday, October 12, 2005

一个elisp函数,smart-operator

这是从一个smart-operator.el里翻出来的,我把它改了一下,更符合我的习惯
原来的smart-insert-operator函数对输入的smart-operator-alist里的运算符都会自动在两边加上空格,但是我不喜 欢->两边有空格,因为我觉得这么一个东西:struct->somevar本身应该是一个变量,不应该在中间加上空格,还有"!"我也不喜 欢它加上空格,还有",",".",哦,对了,还有"*"当指针用的时候,比如"int *p",我也不喜欢"*"和"p"之间有空格,所以输入时往前搜索,如果发现"int""char"之类的关键字,后面就不加空格。OK,就这些了
(defvar smart-operator-alist
'( "=" "< " ">" "%" "\+" "-" "\*" "/" "&" "|" ":" "\?"))


(defun smart-insert-operator (op &optional only-back)
"Automatically insert whitespaces before and after '=', '>=', etc.
Make it look nicer: ' = ', ' >= '.


OP is the operator. If optional ONLY-BACK is t, only insert one
whitespace at back. When confused, try C-q."
(interactive "s")
(delete-horizontal-space)
(let ((op-p nil) ; another op at front?
(one-char-back nil) ; have we stepped back one char?
(sec-sp nil)
(no-fir-sp nil))
(unless (bolp)
(unless (looking-back "int\|char\|float\|double\|short\|long\|signed\|unsighned\|void\|\(")
(setq sec-sp t))
(if (looking-back "\(")
(setq no-fir-sp t))
(backward-char)
(setq one-char-back t))
(setq op-p
(catch 'return
(dolist (front smart-operator-alist)
(when (looking-at front)
(throw 'return t)))))
(when (and (or op-p (not (and (bolp) (eolp))))
one-char-back)
(forward-char))
(if (equal op ">")
((lambda ()
(while (looking-back " ")
(backward-char))
(if (looking-back "-")
((lambda ()
(setq sec-sp nil)
(setq no-fir-sp t)
(backward-char)
(delete-horizontal-space)
(forward-char)
(delete-horizontal-space)
())))))
())
(if (or op-p only-back no-fir-sp (bolp))
(insert op)
(insert (concat " " op)))
(delete-horizontal-space)
(if sec-sp
(insert " "))))
(defun smart-insert-operator-hook ()
(local-set-key (kbd "=") (lambda () (interactive) (smart-insert-operator "=")))
(local-set-key (kbd "+") (lambda () (interactive) (smart-insert-operator "+")))
(local-set-key (kbd "-") (lambda () (interactive) (smart-insert-operator "-")))
(local-set-key (kbd "/") (lambda () (interactive) (smart-insert-operator "/")))
(local-set-key (kbd "%") (lambda () (interactive) (smart-insert-operator "%")))
(local-set-key (kbd "&") (lambda () (interactive) (smart-insert-operator "&")))
(local-set-key (kbd "*") (lambda () (interactive) (smart-insert-operator "*")))
(local-set-key (kbd "!") (lambda () (interactive) (smart-insert-operator "!")))
(local-set-key (kbd "|") (lambda () (interactive) (smart-insert-operator "|")))
(local-set-key (kbd "< ") (lambda () (interactive) (smart-insert-operator "<")))
(local-set-key (kbd ">") (lambda () (interactive) (smart-insert-operator ">")))
(local-set-key (kbd ",") (lambda () (interactive) (smart-insert-operator "," t)))
(local-set-key (kbd ".") (lambda () (interactive) (smart-insert-operator "." t)))
(local-set-key (kbd ":") (lambda () (interactive) (smart-insert-operator ":")))
(local-set-key (kbd "?") (lambda () (interactive) (smart-insert-operator "?"))))


(defun my-c-mode-common-hook()
(smart-insert-operator-hook)
(local-unset-key (kbd "."))
(local-unset-key (kbd "!"))
(local-unset-key (kbd ",")))


把my-c-mode-common-hook hook到你需要这个功能的mode上就可以了,enjoy:)

让cvs用代理

教育网最讨厌的一点就是不能直连国外,于是用cvs下载最新代码的时候很是郁闷。找了好久终于找到方法了
装一个软件叫corkscrew,其实其他的也行,不过设置方法就不一样了,主要取决于这个软件的参数
export CVS_RSH=ssh
在/etc/ssh/ssh_config里加上:
ProxyCommand corkscrew proxy port %h %p
在终端:
cvs -d :ext:username@the.host.name:/the/repository/path checkout repository
不过似乎不怎么管用:(因为能连上的代理我就没找到过,无奈,换个办法
有个软件叫cvsgrab,可以利用viewcvs提供的http服务来下载repository,而且可以直接在命令行参数里指定http proxy,方便!
主页:http://cvsgrab.sourceforge.net/
需要j2sdk,设置好JAVA_HOME就可以用了
常用参数:./cvsgrab.sh -url http://url/you/need -destDir /local/path -proxyHost xxx.xxx.xxx.xxx -proxyPort xx
具体-h看吧,是个不错的东西

Thursday, August 25, 2005

sourcenav

前两天倒是好好琢磨了一番sourcenav,之前一直不想用它,觉得rh也着实失败,开发这么个东西出来,不支持鼠标滚轮,窗口也不是集成的。后来下了 beta版本的源码编译了一下,发现其实还不错,最新版支持了鼠标滚轮,这是让我觉得最爽的一点,然后其实自己之前也没有好好研究,在仔细得看了一下设置 之后,原来可以把窗口复用关掉,这样就不用在找函数定义结构声明之类的东西的时候在原来的窗口里看了,看来有人说sourcenav功能强大其实并不假, 关键在于使用的人要善于发现,这也是很多其他自由软件的特点。

Wednesday, June 15, 2005

benq fp71g+

昨天买的,实在是太爽了

Thursday, June 09, 2005

一个新的开始──基本设定

星战结束了,心里空空的,想找点什么东西来支撑一下
这么着,一个设定,我想了很久了,只是没时间写出来,不如就写成同人了
架空历史,反《真名实姓》而行

在《真名实姓》里,我们看到一个迷人的奇幻的环境,那个环境不是真实的,只是利用现代技术(计算机+网络)创造出来的。然后我们可以给我们的世界这样设定:
1.人类的历史是咒语的发展史,社会生产力的提高得益于咒语的发展和社会制度的进步
2.这个世界是由一个巫师会维持平衡的,政府只是巫师会的代理
3.科技是表象,劳动产品的实质是咒语

在 这个世界里,巫师的地位是最高的,并不是每个人都可以成为巫师,这首先取决于天分,其次后天的努力也可以让一个不是那么有天赋的普通人成为一个不是那么伟 大的巫师。所以巫师这个阶级内部也是有等级的,最高的当然是巫师会的成员,他们的决定直接影响这个世界。当然不同的国家的巫师会是相互独立的,于是国家之 间也可能会爆发战争。

生活中充满着魔法,一盏台灯可能只是一个简单的发光咒语,一辆汽车却会需要几千个甚至几万个咒语。全世界的巫师负责生产各种各样的咒语,再由工人们把产品装配起来。

有什么问题拿出来讨论,尽量先让设定完善后再开始,这样省得日后麻烦

Monday, June 06, 2005

科幻之于我

今天从西校区回来的路上,坐在401上,看着车窗外的糊成一团的灯光,开始想些乱七八糟的东西。偶然瞥到公交站台上的广告,星战前传三,于是在一刹那间突 然就那么向往那个神奇的有原力的世界。我想象着我手中可以拿着光剑,控制着原力,为共和国而战。意识到我在空想之后,又开始认真考虑从技术上讲光剑是不是 真的可能呢?就我掌握的那点物理学的皮毛,得出不可能的结论。
于是很是失望。然后我明白了科幻之于我到底有着什么样的重要意义。
我明白了我根本就是活于幻想中,没有幻想,我就会失去生命;我明白了我根本就是不习惯这个世界,这个社会,我想象中的理想世界只能存在于想象中;我明白了 我拥有的最宝贵的就是科幻。我狂热地爱着那些旁人看来是不可思议的东西,丝毫不理会他们异样的目光。我知道,我心中的那个世界比他们见过的所有最美好的东 西更美好。对我来说,不能理解那个世界的人就是那么可怜,他们就像生活在罐头里的蚂蚁,看不到外面的世界,还天真地以为自己就是标准。
我知道,我死前不可能看到那个世界变成真的,但是我就是那么向往。既然不能亲眼看到,那我就把它装进我的心里。我看到繁忙的交通是空中的车流,我看到人类的足迹遍布那么多的星系,还看到星际战争无声的惨烈和炫丽的悲壮……
我愿意用我一生的时间来换取那个世界一天的生活,可是不行。我只能慢慢地看着我自己变老,然后死去,随同我心中的那个世界。
而科幻对于我来说,就是用来承载我重负的心,容纳心中那个美丽的世界。

Tuesday, May 31, 2005

科幻小说中的语种

昨天版上小小地发了点水,其中说到星战中那么多种族,却都是讲英语的,未免太不可思议了。当然,作为电影,是可以在里面生造出一个乱七八糟的语种,然后加上字幕来达到一个更好的效果。
不过我现在要说的小说。现在世界上的牛X科幻大多是英语国家的,而几乎所有的这些小说从头到尾都是英语。或者有这样的疑问:凭什么外星人就得说英语呢?(当然,前提是小说中有外星人)
当时讨论到这个问题的时候我就用《地球使命》举了个例子。《地球使命》讲的是一个沃尔塔尔国皇家飞船联队军官杰特罗·赫勒和联合情报机军官索尔顿·格里斯 在围绕拯救地球或毁灭地球这一矛盾焦点而展开的斗争。小说一共10本,是以索尔顿·格里斯的自述的形式写的,每本开头都有说明。有意思的是,按照小说的设 定,索尔顿是用沃尔塔尔语做的报告,而有一个查理·奈恩的机器人(54号翻译机器人)负责把索尔顿的报告翻译成地球语言(在小说中是英语)。机器人说: “我对钦定检查官尊敬之至,但恕我直言,一个人的虚构恰是另一个人的事实。幸而我只是个翻译机器人,所以没有这种左右为难的烦恼。同样,我从未到过这个叫 地球的地方,所以对自己受命翻译的一切,都无法做出任何可信的保证……”后面还有,大概意思就是因为地球的科技水平太低,很多沃尔塔尔语的词汇没有对应的 地球词汇,所以用什么什么代替之类的。
我的观点就是,小说用英语写成不能简单地看成小说中涉及到的语种只有一种。如果能做到像《地球使命》这样当然很好,别具一格,而又很好得避开了作者不能生 造一门语言的尴尬(在小说里生造语言可不像电影里那么容易),但是一般的小说,只要是用人类语言写成的,我们就可以这样理解,作者就相当于那个54号翻译 机器人,于是不是可以自圆其说了?就那星战来说,非人类的种族说英语只是因为这部电影被英文配音了,呵呵。
我的一点理解,姑且看看吧。

Tuesday, May 17, 2005

一些小技巧

这些是我的一点总结,不是什么很技术性的东西,但是比较实用,而且高手们不大会注意,新手们却根本不知道还可以这样(可能,至少我一开始就不知道),写出来希望能有点帮助,最好大家一起总结,这样效果应该会比较好,呵呵

1.mplayer 看电影的时候,如果开了xscreensaver,那么每过若干分钟屏保就会启动,但是在xscreensaver的配置里没有相关的选项,其实 mplayer有这个功能,在config里加上“stop-xscreensaver=yes”,OK,享受吧,不会再被屏保打扰了:P

2. 不知道你是不是跟我一样喜欢折腾系统,折腾得多了总免不了重装,如果你做过备份当然就不用怕了,汉化、重装软件、驱动之类的精力就可以省了,不过当你恢复 以后如果lilo.conf(如果你是用lilo的话)被改过了,而你又忘了运行lilo,那么重启之后你就傻眼了。有个好办法,写个专门用来恢复备份的 bash脚本,最后加上lilo,每次恢复就用这个脚本它会帮你记得的,呵呵

3.是不是发现rxvt默认的缓存太小了,每次输出超过三 屏(好像是三屏吧?)就滚不回去了?当然可以输出重定向,不过有个更方便的办法,在你的~目录下的.Xdefaults里加上“crxvt- gb.saveLines=2048(这个值可以自己改)”,嘿嘿,想往回滚多远就滚多远。

4.xplanet是个好东东,不过它默认的观察点好像离我们伟大的祖国远了点(如果body是earth的话)?不行,得把地球转过来。有两个命令行参数,-longitude指定经度,-latitude指定纬度。

5.lftp 真的是很强大,强烈建议不要用gftp,图形界面容易崩溃:(不过我刚开始用lftp的时候有个问题一直觉得奇怪,但是又懒得问,就是lftp的get和 mget都是针对文件的,也就是说我可以下载任何一个目录下的任何数量个文件,只要我有权限,但是这两个命令都不能下载一个文件夹。我就纳闷了,这么优秀 的一个ftp客户端怎么可能连下载文件夹的功能都不实现?后来才知道可以用mirror,真是笨死了,hoho

6.有时候你用浏览器下载什么东西老是失败的话可以试试wget,跟lftp一样可靠,只要它下载完成了那么肯定是完整的。如果需要代理的话加个代理:export http_proxy=http://xxx.xxx.xxx.xxx:xxxx

7.unix风格的粘贴是鼠标中键,当你需要的时候shift+Insert也会很方便

8.教育网内的6667端口是封掉的,如果你想玩IRC的话可以试试别的端口,比如linuxsir的IRC就可以用7000登陆

9.debian的基本系统没有lsusb这个命令,你需要apt-get install usbutils

10. 如果你喜欢玩diablo,很不幸的是你用的窗口管理器是fvwm,更不幸的是你把右键的修饰键设置成ALL了,那么你会发现你在用wine或者 cedega模拟diablo正爽着的时候,右键定义的某个东东总是来烦你,因为你总会按着Alt来捡东西,其实可以把Numlock开了,没问题了。

11. 在fvwm下用gnome-control-center来控制gtk程序的外观是一个很不错的选择,不过你会发现每次重启或者刚启动fvwm的时候 gnome-control-center里的设置似乎不起作用,非得运行一下它才可以,其实可以在fvwm2rc的InitFunc里加一句“+ I Exec exec gnome-settings-daemon”。

12.教育网用自动代理脚本的用户,是不是发现自从微软的官方代理不能用了之后想上hotmail就难比登天了?我也是前两天刚知道的,找到脚本里对应微软一系列站点的那个代理,换成一个可用的,把IP后面跟的那个DIRECT改成SSL就可以了。

新手必看

我不知道现在的人为什么都会这么浮躁,甚至包括我自己,但是有一点我是很庆幸的,在学习linux上我没有浮躁。

我明白我必须从0开始,一步一步自己摸索。

我无意标榜我的学习方法有多好,而且我现在也是菜鸟,但是既然我说了,应该还是有一定的可取之处的,我说我的,你看你的,看了以后你能领悟到什么,你高兴我也高兴。

最重要的一点,你必须学会自己动脑筋。不要跟我抱怨你什么都不会,想动脑筋也没办法。我也是从完全不会开始学的,从C到hda1,从菜单到配置文件。我从 开始学到现在就一直很少问别人问题,除非我发现自己实在搞不定这个问题,问别人比我自己摸索要效率高。也别告诉我吸取别人的经验之类的,经验不是光靠问别 人几个问题就能吸取的。如果你是一个初学者,不会配置fcitx,我敢说即使我告诉了你怎么设置locale,怎么设置fcitx的环境变量,下次你遇到 问题的时候还是会问别人。因为你知道你可以问别人,你根本不会想着要记住了,下次就会自己设置了。所以,首先你要学会一种解决问题的通用的方法,然后在解 决问题的过程中来提高自己,积累自己的经验。记得,经验永远都是自己的,从别人那里是学不会的。

那么这种解决问题的通用的方法是什么呢?

我敢这么说,你在学习linux的过程遇到的99%的问题都是在你之前有人遇到过的,所以当你发现你遇到问题了,不要慌,不要觉得你是这个世界上最不幸的 人,事实上正好相反,有太多跟你一样”不幸”的人了:)所以,第一步,你要想办法找出来是谁遇到跟你一样的问题了,然后看他/她是怎么解决的,或者你可能 找到类似的,不完全一样的问题,但是你可以借鉴一下别人的方法,根据自己的实际情况做适当的更改尝试,一旦成功了,你的收获将大得超出你的想像。那么,怎 么找到上面所说的那些人呢?1.google。我用过的搜索引擎不多,但是从我遇到google后到现在,我就一直钟情于她,我不敢说google就是世 界上最优秀的,我怕一说会有一堆人跳出来骂我,但是至少对我来说,google几乎总是能找到我想找的东西,所以她就是最好的:)当然,搜索也有技巧,一 般情况下,你把你的系统报错做为关键词来搜索总是会有收获的。2.做为中国人,那么linuxsir.org当然是你最应该去的地方,版块分类全面,各版 的精华区就是一个个大宝藏(当然是针对linuxer),日常的问题几乎总是能在这里找到答案。3.做为xjtuer,我默认你是上bmy的,bmy的 linux版精华区虽然不全,但是如果你是初学者,认真看一遍后应该能找到有用的东西的,还有置底(顶)的FAQ,不要无视别人辛勤劳动的成果。差点忘了 一个最重要的──man,尤其是对一些程序的使用方法摸不着头脑的时候,man一下,详细地都会让你感觉看不完:)说到man了就不得不说一下英语了,不 要怕英语,耐心地看下去,你发现也不是那么难,不行的话开个stardict,google的搜索结果也一样,因为不一定跟你遇到同一个问题的人都是中国 人吧?如果上面的都试过了,怎么办呢?那就找牛人们吧,一般经过以上的4步筛选以后的问题也都是牛人们乐意回答的。

最后重申一遍,我是菜鸟,说得不好也请你原谅。

生活就这样无可避免地庸俗

前两天跟一个朋友聊天,女的,她说曾经总是以为自己跟别人不一样,到头来却发现原来还是一样的。感情的问题自然不是几句话能说清楚的,对自己的失望却很真切。

我也曾经以为自己跟别人是不一样的。天真地认为我没有大男子主义,天真地认为以后我的女朋友肯定会很幸福的,在我给的绝对的自由里。

然而事实根本不是这样。现在的我根本就是认为红颜祸水就是至理名言,她们除了整天缠着你要你陪逛街陪吃饭或者别的什么无聊透顶的事情,就只会吃些很愚蠢的醋。何必呢?人生本来就这么几十年,把时间浪费在这种事情上难道是很符合经济学原理的?

现在的我也会烦,也会吵架,也会生闷气了。真不错,一个巨大的进步。

我对那个朋友说,我看穿了, 生活在这个世界上,人总是会变的。但是你喜欢的东西却不会变,只要它们是你的。于是,一切还是顺其自然的好。

现在成天只会无所事事了,即使明明有一大堆事情等着我去做。变得厌世了。还是挺可悲的,因为我也曾经以为自己跟别人是不一样的呀。或许还是有点不一样的,至少我心中能装下整个宇宙。

对,我只会在内心深处向往着宇宙的深邃,想象着一个不那么庸俗的世界,有着不那么庸俗的生物,过着不那么庸俗的生活。

我终将死去。