Categories: DailyLife
第一次去香格里拉饭店,是和同学参加Macromedia新产品发布会,当时flash的动画演示看得我目瞪口呆,觉得这真是神话一般的东西啊,当时肯定不会想到,若干年后,它成了我吃饭的家伙之一,更不会想到,第二次来香格里拉,是喝同学的喜酒。
今天其实是班长大人婚礼后针对北京亲友的一次宴会,96广告的各位自发挤到一个挨窗户的角落里,和整个香宫姿态万千的广告界精英比起来,我们居然仍然有不脱青春痕迹不加修饰的脸孔,这让我感觉不错,也让我们这一小撮人象是水中的一滴油。
香格里拉,在迪庆藏语中意为“心中的日月”。当年在这里,flash第一次为我展现了一个闻所未闻的神奇世界,在以后的日子里我能不离不弃的坚守着设计这份工作,和那一天所受到的震撼是不无关系的;几年后又在这里,当初一起挤饭厅、上大课的一帮人共同追忆着往昔的青春年华......看来这两次的拜访,还不算玷污了这个名字呢。
Categories: Linux
“咸鱼翻身”这个标题是Peter给想的,我觉得很满意。这次写写我是如何使用一台旧笔记本电脑做Linux服务器的。
故事要从家里的网络说起。家里有大大小小的计算机4台(不算PDA、HPC之类的东西),要是需要同时上网,就必须打开一台PC做服务器接通ADSL共享上网,又麻烦又有很大的噪声。在网上看到Toshiba的Libretto 50m很便宜,就动了用它做服务器的念头。再说有时和朋友协同开发软件,需要在Internet上建立一个版本控制服务器,所以最终决定使用Libretto 50m做一个服务器。
决定之后就很快联系了以前的一个同事,从他手里搞到一个Libretto 50m(下面简称libr),已经配置了网卡,一共X00元(X<5),很划算。星期五晚上拿到机器,联系了kuuldor约好第二天来家里一起安装配置Linux。
第二天kuuldor来了之后,经过一番讨论,最终决定先用Gentoo发行版,原因是其他发行版要么没有用过,要么就是安装基本系统需要的配置比较高。要知道libr配置低,奔腾75的CPU、32M内存、810M硬盘,很多Linux的发行版在这样的系统上安装是比较困难的。Gentoo可以方便的自己定制,应该比较适合这样的机器。
Gentoo是编译安装的,显然在这样的配置水平的机器上进行编译很不现实,再说它也没有光驱、软驱,因此我们把libr的硬盘取下,在另外一台IBM笔记本上安装Gentoo。
好不容易安装好了基本系统、配置好/etc下的配置文件,并且安装了grub,把硬盘装回libr上,grub竟然不能启动!取下硬盘换lilo,再装回去试试,成功启动了!
接着就是配置、重新编译内核、安装必要的软件……都是简单的工作,但是工作量比较大,而且Gentoo的软件需要编译安装,所以总是拆下硬盘接在IBM笔记本上编译、配置,然后再装回libr上测试。来来回回弄了很多次,还好边弄边看电影《两小无猜》(英文名是Love me if you dare、法语名是Jeux d'enfants--都是peter告诉我的,她是个电影谜)--虽然我和kuuldor感觉这个电影的男女主角瞎胡闹,不过总比没有看的好~~
辛苦kuuldor了,一直干到半夜3点多才打车回去。最后libr成为了家里其他4台机器上网的网关、防火墙,还安装了版本控制系统、apache2、sshd、dhcpd等服务。
后来openssh发布新版本,升级libr的openssh时又进行了同样复杂的维护工作:关机、取下硬盘接在IBM笔记本上、mount外挂硬盘作为源码下载区(libr的硬盘空间不够)、下载源码、编译、将硬盘装回libr、开机试验……这时我就在想维护工作这么复杂,还需要停机,有没有更好的方法呢?于是就在VMWare上试验其他的发行版,例如Slackware、Debian等,最后决定使用Debian发行版,重新安装libr的Linux。当然这是后话,请听下回分解……
Categories: DailyLife
得知我在进军Maya后,很多人表示了慰问,其中不乏“你真勇敢”一类让人毛骨悚然的批语,大家对Maya的敬畏之心从何而来我还不知道,问来问去就一个字“难”。3d软件功能强大、指令繁多是事实,但何以很多人提起Maya时都好像类人猿要学开飞机,真让我有点不解了。
从tutorial开始看起的,初步对它有了了解,感觉确实比3dsmax专业太多了,虽然条目显得更多,但条理却很清晰,同样摆弄一堆积木,Maya要搭得好多了。目前进展还算顺利,以后会遇到比较费劲的地方,但花些时间应该能搞定,偶才不相信人类会制造出自己学不会的工具呢:)
Categories: DailyLife
这个周末看了四部电影:《蜘蛛侠2》、《蜀山》、《Van Helsing》、《Immortel》,真是充实啊。
《蜘蛛侠2》里感觉演员明显变胖了,不过还是很可爱的小家伙,这样的平民英雄——严格来说是贫民英雄让人倍感亲切,并且解释了很多在我心中萦绕已久的问题:晚上忙着行侠仗义的话白天上课是会迟到的,把所有时间都用来做好人好事的话生活是会失去着落的,酷酷的行头是要送到洗衣房去洗的而且搞不好还会掉颜色......这个英雄其实也是如此艰辛、痴情、迷糊的活着。正因为如此,我们才喜欢他。毕竟不是每个做英雄的都像蝙蝠侠一样生来富贵,也不像李寻欢有个做探花的老爸。
《蜀山》是徐克早期的那部,虽然场面、结构和特技显得初级,但演员和思想却绝对是后一部无法企及的,看着林青霞、郑少秋、李赛凤、刘松仁他们洋溢着一派青春年少的脸,心中真是有种难言的滋味。
《Van Helsing》很火爆。
《Immortel》很前卫,像很多法国片一样,目瞪口呆的看完,n个悬念没有着落,n个细节有待探讨。
Categories: DailyLife
以我高中物理鲜有及格的水准去看卡尔萨根的书总会遇到些理解上的困难,幸好Dumm同学总是能耐心的进行科普教学工作,相比之下,真是觉得以前的学校教育太枯燥乏味了,简直是坑人。
和中国很多沦为二等教材的科普读物不同,国外优秀的同类书籍总能透着些微言大义的味儿,并且让人深深感觉到,科学也是一种宗教,甚至在某种程度上更容易把人推向四大皆空的境界:不必钻研高深的佛法,只要想一想空旷辽远的宇宙星辰、精密难言的DNA片断,就已经足够涤荡心灵的了。
推开来说,文学、音乐、美术等领域的最高境界也是如此,什么东西一升华到某些高度,就进入哲学范畴了。遗憾的是,在向这个高度攀升的过程中,很多人都落马了:灿烂星空下,第谷被同学削掉了鼻子,因为他们要争出谁是更优秀的物理学家;悠扬的音乐声中,萨尔耶利成了莫扎特一生的恶梦,因为他嫉妒对方的天才;西斯庭天顶下,米开朗基罗艰难的挥动着笔刷,因为他亲爱的同行拉斐尔竭力促成教皇交给他这么一份沉重的、危险的而且对他来说及其乏味的工作,,,,,,这样的例子不胜枚举,再说下去就成了“科学(艺术)啊,多少罪恶假汝名以行”!呵呵。就好像很多信徒,在某些方面某些时刻是高尚超脱的,但终其一生,终究无法逃脱功名利禄的桎梏。
Categories: ItTech
Corbató被誉为分时系统之父,在他接受图灵奖的颁奖演说中,他谈到许多Brooks在其著作《The Mythical Man-Month》中所述及的问题。Corbató的结论是复杂系统将最终失败,而且若想要成功,最重要的就是必须摒弃复杂性,尽力争取设计得简洁而优雅。
Categories: DailyLife
上周看《Kill Bill2》时发现,狡猾的老昆一人二用,刘玉玲手下的高级打手和白胡子老道Pai Mei是同一个人演的,虽然一个蒙着面一个长了一堆胡子眉毛,但眼睛却是很难改装的。这个演员可以肯定是香港的,而且是不演主角但也量级不轻的那种,看着很是眼熟......后来完全被云山雾罩的剧情搞得崩溃了,也就忘了这个家伙。
好玩的是今天临睡前偶然想到这事,猛得记起来他不就是《唐伯虎点秋香》里的那个夺命书生么!兴奋的跳起来上网一查,果然没错:刘家辉(Cordon Liu),70年代以《少林三十六房》成名,也是个屏幕上的资深打手了——确实也感觉得出来,演得举重若轻,是个老戏精。
Categories: DailyLife
昨天晚上奋斗到很晚,和Dumm合作完成了我们的第二款手机应用软件,界面完全是按照自己意思设计的,这种感觉真爽。本来想采用细密画的风格,但在手机屏幕的方寸之地上还是太难以施展了,更何况纯静态的供我支配的地盘只是这屏幕上的一部分而已。理想中是要实现一种介于神秘主义和童话色彩之间的的概念,这个设计只是部分实现了我的意图。不过总的来说有一个成果出来总是让人兴奋的,它带来了惊奇和激动,并再一次证实了我们用既有的技艺可以创造出新的东西。
Categories: DailyLife
如果不是必要的情况,我是不会在这么恐怖的天气跑到光华路一带的,车里的空调开始让我恶心,外面浑浊潮湿的空气则让我失去打开窗户的勇气,随着目的地的接近,建筑越来越高,道路越来越窄,渐渐的开始觉得自己变成了那只四脚朝上的大甲虫,绝望的看着周围林立的高楼,所有的玻璃无一例外的浸透在灰色的水气之中......被晕车和堵车弄得有点晕乎乎了,渐渐觉得正置身于原始森林中,鼻子里闻到的是远古植物不知名的气味,蕨类和裸子植物疯狂生长,银杏和松柏奕奕生姿;耳边听到的,是恐龙庞大的身躯穿梭而过的隆隆声,霸王龙的脚步沉重血腥,迅猛龙的急促灵敏,三角龙顶着美丽的铠甲缓缓前进,翼手龙尖叫着在天上滑行,优雅的梁龙在湖滨里尽情桑拿,另一边的山坡上则正上演着一幕弱肉强食的活剧......物种繁盛的中生代,就是这样多姿多彩......
“给您停路边行吗?”“三十一块,票拿好!”,推开车门,汉威大厦矗立眼前,一群进化得精巧娇弱的灵长目动物出出进进,他们一个个衣冠楚楚面色凝重,体型只有恐龙的几十分之一而大脑的负担却重了一万倍,他们日日为之殚精竭虑的是股票、期货、房产、签证,而不是填饱肚皮、繁衍后代这么小儿科的问题。
Categories: DailyLife
这个星期周末终于小小的休息了一下,看了半场球赛和三部电影。
昨天下午看卓别林的《凡尔杜先生》,吃完晚饭后到朋友家赶上中日对抗的下半场;和朋友一番评球高谈阔论后回家看了《玻璃屋》;今天下午从朋友家回来后看《杀死比尔》。
卓别林的水平不简单,他的电影看过后没有后悔的,《凡尔杜先生》也一样。
对于数年没有看中国队踢球的我来说,昨天中国队在半场球赛中的表现实在是超出我的预料,看来进步还是很大的嘛。
《玻璃屋》真无聊,只有影片里的漂亮mm还可看。
《杀死比尔》拍的只能算一般,比起《低俗小说》感觉导演拍片越来越商业了。
一个舒服的周末就要过去了,明天还得上班~
Categories: Linux
gtmess是一个开源的控制台下的MSN Messenger Client软件。本来不支持中文(应该说支持的不好,老外写的软件总是这样),kuuldor很快做了一个补丁,修改了若干行代码,让它完美支持中文了。
感谢kuuldor,更感谢gtmess的作者按照开源软件的协议发布作品!
Categories: Linux
上次说到要在HPC上装Linux。需要先建立一套工具链,好在我的athlon-xp上交叉编译给HPC用的东西。虽然现在利用现成的资源已经让HPC上运行了Linux,但是一来软件太少,还是得自己编译,二来我还是想自己能够从头作一遍,可以自己定制。所以,还是决定建立这个交叉编译的工具链。
用的工具源码都是我的Gentoo上现成的,版本分别是:
binutils-2.14.90.0.8 Gentoo_patched
gcc-3.3.3 Gentoo_patched
glibc-2.3.2
主要的参考文献是Linux-VR的创始人Bradley D. LaRonde的一片文章:
Building a Modern MIPS Cross-Toolchain for Linux
具体过程是很繁琐的,主要按照LaRonde的文章进行,但是由于版本不同,在有些地方还是有些区别的。
开始之前,把环境中的CC、AR、RANLIB等等编译相关的变量都关掉,否则也许会影响交叉编译时的结果。此外,我所有的configure配置时,都指定--prefix=/usr,这样相关的东西都会在/usr/mipsel-linux目录下。
首先编译binutils:
这个没有什么特殊的,按照文章里的方法很快完成。
编译静态连接的C编译器:
这里有两个问题。
首先,编译gcc前要有目标机器上的头文件。文章里说可以把本机的copy过去,但是很可能会出问题。最好还是找一份mipsel机器的发行版的头文件来用。
ftp.linux-mips.org/pub/linux/mips/redhat/7.3/RPMS/mipsel/glibc-devel-2.2.5-42.1.mipsel.rpm
是有人移植的Redhat的安装包。里面有头文件,拷贝到指定的目录下就好了。然后把预先准备好的MIPS Linux内核中的linux、asm-mips、asm-generic三个目录也拷贝过去,做好asm符号链接。
之后configure指定好编译选项后,开始make。
make中会有一个问题,如果不是在gcc自己的目录下编译,而是象文章中所说单独建立的编译目录,编译中会有两个文件找不到,分别是fp-bit.c和dp-bit.c。这两个文件的Makefile中指定的位置没有加上相对路径,编译时在单独的编译目录下会找不到。解决办法是从源码目录中拷贝到编译目录下,或者直接在gcc目录下编译。当然最根本的办法是把Makefile改正过来,或者找到合适的patch。呵呵,我这个懒人就没这么作了。
编译glibc:
在此之前,先把原来的头文件目录里除了linux内核之外的头文件全部清除,因为不需要了,而且留着可能对glibc的编译有影响。
然后打一个patch,http://honk.physik.uni-konstanz.de/linux-mips/glibc/patches/applied/elf-machine-rela-mips.dpatch。这个patch修正了mips平台上elf文件重定位的一个bug。然后自己手工改一下stdio-common目录下的sscanf.c中的sscanf的函数原型,改成ansi C的格式,然后在后面加上...。
之后按照文章中的configure配置后面再加一个参数--with-headers=/usr/mipsel-linux/include,指定linux内核头文件所在的目录。配置好后开始编译。
安装时一定要注意,用install_root指定安装目录,否则把本机的libc替换了就哭吧。
libc有了之后,最后重新编译完整的gcc,照着文章编译就可以了。
之后就大功告成了。
Categories: DailyLife
终于等到一个还不错的《Troy》版本,看了之后却大失所望:用大把的银子和明星硬是能把十年战争这么经典的题材拍成一部《平原游击队》——导演,给我签个名先。
Helen一出场我就瞪圆了眼睛:这位大婶就是让无数希腊战士无怨无悔战死异乡的天下第一美女??她看着Paris的目光是那么慈祥,我一直以为下一句台词就是“孩子感冒发烧,当妈的最操心了”!在美女如云的好莱坞选中这位演Helen,最大的可能就是Brad Pitt一类大腕的片酬已经把预算花得差不多了。
扮演Paris的Orlando Bloom也比较不幸,在魔戒系列中他美好得一塌糊涂,抢了无数戏份,接下来很快遭了“报应”:在加勒比海上遭遇了光芒四溢的Johnny Dep,特洛伊城下又遇上了大帅哥Brad Pitt和大酷哥Eric Bana,脱下小精灵的服饰,在一众演艺圈老油条的夹击下,Orlando迅速失去了魔力。
最搞笑的是最后的保卫战中,特洛伊最后的勇士们集合在大厅中,大门马上会被撞开,Paris嗖的蹦到最前面,搭弓!瞄准!熟悉的场景,熟悉的表情,Legolas附体!可惜,最后我们看到的,仍是那个朝Achilles放冷箭的二当家。
最符合人们想像是Hector——永远都在为他人奋斗,天塌下来只手撑,一名优秀的青年;最牛的当然是Achilles,帅,酷,强壮,思想更是有如如苏格拉底一般有深度,真是上得战场,下得讲堂。
没有众神的参与,这场战争注定是索然无味的,能把个故事顺顺溜溜讲下来,票房也不错,导演也算交差了,观众发两句牢骚,洗洗也就该睡了。
Categories: Linux
受上次在libretto 50上装Gentoo所感染,准备在我的HPC-Nec R730F上装Linux。
本来也想买个libretto来玩,后来作罢,却准备在HPC上装一个。我的R730F是去年初买的,买来后也颇用了一阵,看电子书可以撑6个小时还是比较爽的。还可以通过telnet连到我们的工作机上干活。后来又进行改造,将鸡肋指纹卡去掉,加了一个128M的CF卡。不过后来还是逐渐冷落了,主要是WinCE实在不是太好用。也曾经想过在上面装Linux,但没付诸行动。
这次又想起它。vR4121 168MHz/32M Mem/PCMCIA/USB/CF/800x600x64k,看看配置,加上我的512M CF卡,简直比Libretto还高。装个Linux一定没问题。
当然这个装Linux可就不象Libretto作为标准PC机的架构那么简单了。内核,库,执行环境都得自己动手找,甚至自己编译建立。
关于内核有一个项目,Linux-VR,按照说明已经可以在我的机器上跑了。但是版本太低,只有2.3.21,已经很久没有更新,看来是没人维护了。至于库和运行环境可能只能自己弄了。所以首要工作是建立一个MIPS的工具链,其次是争取将内核升级至最新的2.4.26,之后当然是编译内核,建立库和工作环境。还得找一个BootLoader,把内核引导起来。
工具链有现成的,但是我不太清楚能不能用。准备还是自己做一套,反正有How-To,就是Linux-VR的创始者写的,不会比LFS的stage1复杂。正好学学交叉编译。
内核升级真是麻烦,尝试弄了一下,发现要将一个没进入主流的老内核补丁加到现在的source上还真名不是一般的费劲,几乎没有一处成功的。又准备用所有的标准patch把linux-vr的内核逐步升到最新版,尝试着升级了两个版本,暂时放弃了。几乎每个patch打上,都有一堆的rej文件。我只能一个一个去看,手工改正。太麻烦了。准备等会好好看看linux-vr的内核,到底加了那些东西,手工移植到最近的MIPS内核上去。不过如果不成功,可能还得用标准patch一个一个的打,一个版本一个版本地手工改。毕竟这是笨办法,但是应该可以保证成功。如果有人维护的话,每次升级的工作量不是很大。现在可就不行了,差了几十个版本。
库和运行环境有两种选择,使用标准Glibc和标准环境,或者使用uClibc和busybox。后者适合嵌入式环境,很小,这次准备玩一下。不过可能有些程序不一定能够运行,毕竟还不是完全兼容Glibc的。而且图形环境可能会更麻烦。尝试一下吧。
呵呵,还没开始干,就罗嗦了一大堆。好了,动手,现在开始建工具链了。