2008年6月25日星期三

四年为一日(郁闷与堕落的大一)

今天,我迎来了我大学四年的终结,毕业典礼。

以前参加过几界学长的毕业典礼,说实话,就当那是个形式,今天轮到自己了,现在想来就是个形式,老师还是找本宣科的讲了一些寄语,给我的感觉,他们的那个所谓的寄语,改了毕业生年级,来年还可以用的,也许老师也正是这么年复一年,级级攀升,平步青云,很多人总感慨中国大学生的素质如何如何低下,却不会去转换个角度去想一下他们为什么会这样....

回首大学四年,大一刚开学时的场景历历在目,那天我在爸爸的陪伴下,怀揣着我辈岂是蓬蒿人的小志入主学校,从此开始了我四年的充满争议的大学生活。

大一的一年,对于大学生活重要性可以用地基对于高楼的重要性来类比,而我却是在误导与失意中虚度着光阴,寝室8个兄弟,是全系的唯一一个8人寝,得天独厚,人多也确实是好啊,打篮球,逛街,出游,烧烤,一呼总有人应,什么事都能干的起来,也能在某个周末包下机房的最后一排,干一天魔兽RPG,对于那种还没有充分意识到大一的重要性的我们来说,那种日子过得是何其潇洒,何其快活啊。

可是后来发现周围同学们都有个什么会,什么社的,一有事忙个不亦乐乎,想来也挺充实的,正琢磨着应该干点什么,恰逢系科技中心招新,于是欣然前往,因为得到消息时已经比较完,招新会议已接近尾声了,所以,在众多的行走方式里我选择了狂奔,到地方时已满头大汗,找到面试地方,未坐定,一个肥哥哥,问到:“你喜欢编程么?”,答曰:“ 喜欢”,其实我连什么是编程都不知道,后来我还花了挺长时间研究这个问题,然后他又问:“那可是非常辛苦的事啊!没有坚强的毅力是不可能学好的,你有这个信心吗?”,我急忙答道:“of course有”,大部分人有这点“好处”,吹牛时与做事时的信心不可同日而语,于是面试完毕,等通知,大凡这种招新活动面试就是充充场面,于是我就这样顺利进入了科中,进行第一轮淘汰赛,给出三个题目,可以用不同的方式实现,VB,VC,C任选,由于选之前,我们的组长,介绍了一下各种语言的特点,我听到了他说C语言如何如何之猛,就是难学,于是我毅然选择了C,分组一出来,我一个人分到了C组,无奈啊,但是也没有办法,硬这头皮上了。

后来才明白,所谓的难一方面是全科中没有一个专业学C的,另一方面是我本身一点计算机基础都没有;分组后,我马上到图书馆借了本C的书,咸菜级,隔两三页就有缺页,亦或烂页,吾尝终日而思,却一直没有想明白为什么我会选这本书,借来了也还是得看的,所以我还是乖乖的仔细看了一遍,但是还是不怎么明白,对各个语句不是很理解,也更加不知道如何用这些东西来解决那几个问题,每天去科中呆几个小时,独自坐在一个角落,慢慢研究去吧,傻傻的我也不会去请教一下学长们,看着人家VB组的同学交流的那么Happy,进展的那么顺利,我这种小C只有羡慕的份了,唏嘘之后,埋下头,继续学吧.....

经过考虑,我选择了将数字翻译成英文的题,那时的我认为只有这道,才能通过程序实现,熬啊熬啊,检查日越来越近了,而我一点进展都没有。事情就在检查日的前一天得到了转机,那早,我一起床,脑海里就闪现了一个火花,可以用switch语句进行分支选择,分情况进行处理,于是越想思路越清晰,跑到科中,开始疯狂编写,调试,真有一种文思如泉涌而奋笔疾书的感觉,直到第二天晚上检查前半小时,程序才编写完毕,测试了几个数据,通过了,那种成就感真好,特别是那种写的过程,至今想来还令我回味。提交上去,半个小时之后,我就这样正式进入了科中......

进去之后,我就失去了目标,也没有人会有空为我指定一个方向,因为没有人学这个。渐渐的我开始有些茫然,小学到高中,习惯了老师为我们安排具体学习任务,根本就不懂得去自己寻找方向,自己去摸索前进(中国教育的弊端).......后来我很不明白为什么当时要开C这个组,也一直没有发现,C在科中存在的意义,但是他就是有了,还让我进去了,而且还让我一个人一组,一个大学之前对计算机一点都不懂的人,就这样把我招进去了,然后丢到一边,自己学去吧,管你会学成什么样呢,那时我也不怎么会用搜索引擎,再加上本身比较内向,不好意思去问那些学长,下一步到底该怎么学习,所以每天都过得很迷茫,不知属于我的路到底在何方,这样我每天的工作就是在那里值班(就是看实验室)2小时,一个学期无所事事,终于我重新回到了寝室魔兽集团,经常一起去机房打魔兽,虽然很虚度时间,但是至少能在这个团队中体现我的价值,至少有人陪我共同摸索.....

第二学期,情况一点都没有变,我继续着我的堕落之旅..............

到大一结束,我已经很明显的感觉到科中已经没有把我当成其中的一员,而我也没有发现我在科中存在的意义,每次开会我都很犹豫,到底是去还是不去,去了,老师只问VB,网络,硬件组的学习情况,谁会想起还有我这个一人组,与其这么虚度,何不另寻出路呢,所以我选择了退出,下篇讲述我大二退科中,进创新院的历程......

2008年6月22日星期日

Linux下乱码问题解决(文件名,文件,mp3,pdf)

如果是刚刚从windows转到Linux下的,通常都会因为一些中文的问题而放弃,我就是这样装上,卸载搞过好几次,其实这种心态是永远都学不到东西的,真正的学者都具有一颗大无畏的精神,在他们的字典里是找不到退缩的,好了,不扯了,下面转入正题。
这里我用到了三个工具,convmv, iconv, python-mutagen.分别处理上述三个问题,下面一一介绍:

convmv 实现文件名字的转换:


sudo apt-get install convmv
convmv -f code1 -t code2 -r


code1:目录原来使用的字符集编码。支持gb2312, gbk, big5,不支持gb18030和big5-hkscs
code2:预转换到的字符集编码。对于ubuntu,这里填写utf8
-r 参数:转换子目录
-f : from
-t : to
dir:要转换的目录
man convmv查看帮助文件,这个非常有用,学会看Linux的帮助文档对于Linux和英语的学习都有很大益处,强烈建议大家多使用man命令:)

iconv实现文件内容的转换:

iconv -f code1 -t code2 oldfile > newfile


其他命令和参数请大家使用man进行查阅,并不是我懒,我是不想让大家变懒,不管怎样,我们都应该自己去体会这个过程,这样才能把它真正学会。

python-mutagen---mp3 ID3 tags设置工具

Mutagen 是一个用来处理声音相关数据的 Python 模块.它支持 ID3(所有版本),APEv2,Ogg Vorbis,FLAC和Ogg FLAC读取,以及ID3v1.1,ID3v2.4,APEv2,Ogg Vorbis,FLAC还有Ogg FLAC信息写入.也可以用来读取MPEG音频和Xing标题.FLAC流信息块,以及Ogg vorbis,Ogg FLAG流标题.最后,它包含一个处理Ogg 流的模块.

mid3v2 -a artist -A album -t title -c comment -g genre mp3file

设置mp3file的ID3 tags

find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;

这会转换当前目录其子目录中的 mp3 文件标签编码为正确的 utf8,-execdir意思是对查到的每个文件执行后面的shell脚本,脚本中-e GBK意思是文件原来使用的字符集编码,读者还可以man find一下,看看-iname和-name的区别,呵呵,总是喜欢给你们卖关子:)

PDF乱码问题解决:

第一步,安装中文语言支持包:

sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional


安装完后打开pdf文档,如果发现仍然是乱码,进行第二步,安装安装poppler-data:从8.04开始,源中开始提供poppler-data安装包的支持,可以直接输入命令


sudo apt-get install poppler-data


或者去官方下载tar.gz压缩包自己安装,网址是
http://poppler.freedesktop.org/,自己编译安装,在此不在熬述

若第一,二步完成后,打开pdf文档中文乱码都变成方块的话,就进行第三步,删除字体


sudo rm /etc/fonts/conf.d/49-sansserif.conf

好了,到这里,相信大家可以开心的使用Linux了,我是很开心啦,一次性解决了乱码问题是一方面,另一方面,今天我的blog被Google收录了,呵 呵,这就意味这我的这些笔记可以给更多的人提供参考了,同样我的笔记也借鉴了很多人的笔记,正所谓取之于民,用之于民也 :)

Linux g2ipmsg(飞鸽) 安装

用Ubuntu已经快半个月了,一切都挺好的,就是有一点,局域网文件传输一直没有解决好,一要传文件就得切到Windows下,很不爽,于是Google了一下,发现飞鸽居然有Linux版,甚喜!参考了好几篇文章,现总结如下:

(1)先安装一些依赖包:
sudo apt-get install libxml-parser-perl libgnomeui-dev
sudo apt-get install libpanel-applet2-dev
sudo apt-get install gettext intltool

(2)下载源文件:
http://www.ipmsg.org/archive/g2ipmsg-0.9.5.tar.gz

(3)修改配置文件:
解压后,打开g2ipmsg-0.9.5/src/codeset.c,
将其中的
#define IPMSG_PROTO_CODE IPMSG_EXTERNAL_CHARCODE
修改为
#define IPMSG_PROTO_CODE "GBK"
这样可以解决乱码问题

(4)配置
./configure

(5)编译
make

(6)安装
sudo make install

好了,现在就可以尽情的传输文件了,而且可以和Windows互传,速度相当快哦,祝大家用的Happy!!!

写在开博时的话!

很久就想开博客了,只是一直没有时间,也没有什么好的机会,最近用上了Ubuntu,感受了一下开源精神,猛的发现,原来这才能促使科技进步的先进思想,举个简单的例子:

如果一个项目用到的知识涉及到很多方面,但是每个专家钻研的领域有限,也就是说如果要使项目完成,那么就得让这些专家把涉及到的知识全都搞定,而且 还得花时间学会应用,这无形中就延迟了项目的完成;而开源就不一样了,世界之大,每个领域总能找到一个专家,就算有,那也是极少的几个领域,然后这些专家 就可以用自己擅长的一个方面来完成以及完善整个项目,节省了时间是一方面,项目的最后成果也会好些,因为就算再厉害的,再牛的大师也会有疏漏的地方,也会 有失误的时候,俗话说:“三个臭皮匠,顶得一个诸葛亮“,也就是这个道理。

于是我将我开博客的目的总结如下:

(1)记录我学习Linux,Algorithm的整个历程,并不时与大家分享我的心得,好记性不如烂笔头,多记点东西还是很有用的;

(2)记录我的生活和心态,多少年之后,茶饭之余,翻来看看,其乐也浓啊,这才是我真正的财富。