大头龙仔Blog

A strong man can save himself.
A great man can save another.


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

51

发表于 2009-05-19 | 分类于 sunshine |

今天老爸51岁,祝他生日快乐,身体健康,最重要是少抽点烟。


昨天看到刘未鹏的我在南大的七年,令我想起小时候的很多很多……

当中印象很深刻是老爸在初二时买了部电脑给我,我记得当时配置是Celeron 266 + 32MB memory + Trident 9750显卡,后来给我超到300MHz,加了128MB内存后,用到上大学才换过来。

当时的电脑不便宜,不过当时老豆还是买了给我,也从那时改变了我很多想法。我还记得考入东莞实验中学的时候,去到6班,那天地理老师问我们将来想做什么,轮到我回答,我说:“我想做软件工程师!”而现在,我实现了,但可以肯定的是,思想和当时是完全不一样的啦。

我有这个老爸都系比较难得,上高中时去踢球,左脚骨折了,后来那个月,他天天送我去学校上课,我当时都不忍心,听到自己还要过多半个月才能自己走动,即时哭了出来。不过我也记得阿Bird骨折后第二天背我到六楼上课,当时觉得距好强啊!

慢慢地自立了,一路以来,老爸的很多话语和举动,现在都历历在目。可是时间也过得很快,希望苍老能走慢一点点。

而最遗憾的是,52.4这个数字给我带来了失望,也没能给老爸一个惊喜。


生活,也就是这样了,不在沉默中死去,就是在沉默中活过来。我不想让生活改变我,我不希望自己的意志被同化或消磨掉。当你得不到别人的认同,你也会选择慢慢地变得沉默,慢慢地离开这个地方。


最近,总是没有心情静下来写东西,而今天心情不怎么样,但却写了起来。最近,工作很多,很杂,没时间写技术的东西,pkgtools系列暂时没有补齐(我看最新的pkgtools都支持txz了,赞一个先),但我还是会坚持写完的,但就目前看来,还没有这种心情和时间。另外昨晚把很久没启用的Linux起来了,发现slackpkg坏了,最后查到是因为glibc-solibs升到2.9,但由于中断过,导致有时不完全(猜测),后来降到2.7后,slackpkg终于好了(我当时想来想去都不知道为什么路径会多了个反斜杆,导致md5sum出错)。系统回来了,感觉人都重新振作了一点。

推荐《时空幻境》(Braid)

发表于 2009-05-01 | 分类于 sunshine |

《时空幻境》(Braid),可以到http://www.verycd.com/topics/2740778/下载,此版本为汉化版。

而我最一次看到这个游戏的推荐是matrix67的blog上,我立即把这个100MB的游戏下下来。游戏需小,但我惊喜地发现,原来自己很久没玩过这么好的游戏了。而在verycd的评论上,看到转来的一篇文章,弥补了我对这个游戏的理解,我当前进度处在第五世界,也许当我玩爆这个游戏,会有更加新的感受。


文章(zz)



谁见到过风?

你没有,我也没有。

但当树儿低下头,

便是风儿经过时。



以上这段名言在Braid的制作人名单片段中出现,真的很感激Microsoft的汉化团队,将整个游戏的故事翻译的异常生动,很多词语都翻译的很传神,让中国的玩家可以零距离的感受这游戏所带给玩家的一切。



当我完成Braid这部小游戏时,不得不赞叹如今的游戏已经可以与思想以及艺术融合的如此完美。Braid渗透的意识,即使放在文学作品以及艺术电影中,其隐晦,发人深思的高深程度恐怕也是不多见的。



我想,很多完成了这个游戏的朋友,都会和我一样对这游戏的剧情有着或多或少的疑惑,下面,谈谈我自己的看法。





游戏的开始,是以世界2为起点的。初玩的时候,我想绝大多数人和我一样,Tim是去拯救被魔王捉去的公主。世界2确实也如是交代。故事只是说,Tim犯了不可弥补的错误,公主离他而去。但是到底犯了什么错误,我不得而知。这个故事似乎在述说着人与人相处的情感,我们在学会宽恕别人的时候,却害怕自己会受到伤害。很多时候,我们都因为自己的执着,而不愿坦诚表达自己的想法,从而失去更重要的东西。



在世界3的故事里似乎告诉我们Tim与公主都因为彼此要求的完美而活得很累,因此他决定出走。由于害怕对方失望,这样的小心翼翼反而成了芥蒂。



世界4回忆了Tim的童年与父母之间的鸿沟,直到他在大学毕业后逐渐的进步让他慢慢解脱。其中有一句“他的进步,让他离公主越来越近”,从这里开始,似乎发现游戏里公主其实并不是一个人,而是一种隐喻,至于它代表着什么,还不得而知。



世界5让我们知道,原来Tim其实是有一个妻子的。但是,与妻子的生活不是他想要的人生,因此,他依然决定离开妻子,去寻找他心目中的“公主”。我更加觉得,“公主”只是Tim心目中的理想,是一个虚构。



但是世界6的故事却又让人看到,似乎真的有一个公主。Tim其实还是一个正直的人,即使他在外面的世界寻找他的公主,但是他依然不愿意脱下他手中与妻子的结婚戒指,宁可忍受世人异样的目光。最后他受不了把戒指放在口袋里,可是内心依然挣扎,仿佛呼吸不了。





看到这里,我觉得,Braid的故事本身就是开放的,从字里行间,隐藏着不少秘密没有说明白,让玩家独自遐想。表达的思想也是多角度的,与人的相差,对爱的理解,对理想的追求…….不同的人,都可以得到不同的答案。





接着,游戏的最后回到世界1,这里似乎可以找到更多的线索。Tim的生活与普通人就像交错的列车,向着极端的两个方向,因此可以推断Tim的工作是非常特殊于常人的。在世界1最后的两段剧情,已经可以清楚的发现,其实“公主”并不是一个人,而是一个理想的世界,或者一种阴谋野心。Tim所追求的公主,即可以“照亮这个世界”,也可以“毁灭家园”。读到这里,我想读者应该逐渐发觉到事实的真相了。



世界1的最后一关,就是从魔王手里就出公主,然后一同协力逃出生天。游戏的进程非常让人惊讶,我先打住,等到最后再将谜底揭晓。



终于来到了故事的终章,我想提醒一下各位,在每一个场景把红色书本打开的同时,再到石头后,会发出回声,看到隐藏剧情。一开始,还是回忆着与“公主”间的隔阂,他们时而幸福的交流,时而惊涛骇浪。原来,Tim是一位科学家。在第二部分的回声中说到“但他看其实不见"公主"”,更加坚定了“公主”其实只是一个隐喻的或者其他象征的事实。越到后面,真相越发明显。也许有朋友对于整个结局都不知所云:



“那一刻便是永恒,时间静止了,空间被压缩成一个点,有如开天辟地一般。他感到有幸目睹了世界诞生的那一刻”



在终章的第四部分的回声中,看到了原来Tim小时候已经对物理学很感兴趣……..一切都明白了,原来Tim是一位核技术科学家,他手里制造的,正是能毁灭世界的氢弹,在这里,我们终于明白终章前部分所说的,其实,他一直追求和技术的发展,但是在这个过程中,遭遇了成功与挫折,并且心里有着无数的挣扎。因为他知道自己的双手,可以“让这世界充满温暖(合理利用核能)”,也可以“引起无数大火将家园烧毁”…….其实,根本没什么公主,“公主”就是那个他自己也不知道的理想——是野心与权利,还是和平与幸福?



再回到最后一关,世界1,我觉得魔王正是Tim自己的内心,他心里面的黑暗迷惑了他的“公主”,他彷徨,不知所措。最后那关,当Tim与公主来到终点,突然瞬间光亮(我觉得象征着核爆),接着一切静止了,这里游戏需要时间流逝,回到最初。也相当于Tim回到魔王出现前,从而到达最后的结局。只有在开始前醒悟,才能阻止悲剧。这就是最后一关的游戏进程所要表达的思想。



Tim是一个矛盾的人,他自小爱好物理学,但是他的某些个性却遭到了家人的反对,因此让他自幼缺乏安全感,因此,渴望心目中的“公主”给他安慰,给他温暖。也许看了上文读者会觉得他只是一个追求科学的怪人,其实不然,Tim对感情是非常诚实和忠贞的。他有时候太过忠于自己的心灵,反倒对伴侣造成了伤害,但是他及时认识到错误,决定回头。也就是游戏的主题,时间倒流。





不同的人,在玩Braid时对“公主”有着不同的定义。其实到底有没有公主,游戏中没有说明。但是,游戏细腻的故事和对白,引起现代人对情感和道德的思考,以及核技术迅速发展的担忧。主旨是唤醒人们心中的关怀与温情,告诫人们莫到后悔时才懂得珍惜。



Braid中最后的设定是寻找星星,它们可以划过黑暗,照亮Tim的人生。而Braid制作人Jonathan Blow想做的,也正如那样,指引着玩家,去寻找真正的幸福。

漂亮的排序算法: 7种排序算法的内存状态演示(zz)

发表于 2009-04-26 | 分类于 geek |

漂亮的排序算法:7种排序算法的内存状态演示

IQIQ

发表于 2009-04-26 | 分类于 sunshine |

在matrix67上看到,很正点,推荐一下大家去看看:


我目前所见过的最难的IQ测试题


趣题:寻找策略使得总有一人猜出他背上的数

资深设计师的30条忠告(zz)

发表于 2009-04-08 | 分类于 misc |

via: http://groups.google.com/group/pongba/browse_thread/thread/177efd30eba169ee


Don’t be too sure when it looks like true. Dig into the domain. 

当某个东西看起来是真的时候,别那么确定就相信它。使劲去挖掘。 

Experience is your treasure. And it is also your burden. (The design should 

be based on the problem domain, not what you have done in the past.) 

你的经验是你的财富,也是负担。(设计是应该按照问题域来进行的,而不是根据你过去做的事情) 


It’s hard to say "I was wrong", but if you don’t say it, you have to pay for 

it. 

说出“我是错的”是很困难的,但是如果你(在该说的时候却)不说,你会为此付出代价。 


It’s not your job to show how to do coding. You can do it, but you can’t 

devote to it. 

你的工作不是做编程示范。你可以做,但是不要全身心投入进去。 


Bugs fixing is also your responsibility, don’t leave them to maintenance 

team alone. 

处理BUG也是你的责任,别把维护团队扔到一边。 


You are not a problem solver. Try to eliminate problems before they surface. 

(good design can eliminate problems; you’re not a firefighter) 

你不是一个专门来解决麻烦的。试着在麻烦出现前将它们干掉。(好的设计能消除问题和麻烦;你不是消防队员) 


Design is a technical thing, avoid politics in your decision. But if it is 

stronger than you, negotiate with it to make things still work. 

设计是一件技术活。不要让政治参与其中。如果政治力量比你强大,那就妥协以便让事情还能运转。 


If your decision is based on some limitations, always remember the 

limitations along with your decision. 

如果你的决策是基于某些限制的,那么在记住你的决策的同时,要记住这些限制 


If you can summarize principles from your work, write it down. Then 

sometimes you’re able to know you were wrong, or you can use it as a 

reminder. 

如果你能在工作中总结出原则,就写下来。这样以后你就能知道你曾经如此地犯过错;或者你可以用它提醒自己。 


If many programmers were waiting for your design, you’re definitely dead 

man. (Human Resource driven is the sin) 

如果有太多的程序员在等你的设计(来开工),你就死定了。(人办资源驱动是一种原罪) 


Don’t use lame metaphors; software is neither art nor brick building. 

别用蹩脚的比喻;软件不是艺术,也不是砖墙。 


Tell users what you can provide; don’t ask them what they really want. 

告诉用户你能提供什么;别问他们“你到底要什么”。 


Quality is your responsibility, don’t hand it over to QA. (Design in the 

robust way) 

质量也是你的责任;别把它们交给QA。 


Don’t get smart. Write it down when you feel like a genius, and attack your 

idea as dangerous enemy. 

别搞小聪明。当你感觉自己像天才似地做出一个设计的时候,然后把它当成最危险地敌人来攻击。 


Reuse is not your purpose, it’s neither necessary nor sufficient to success. 

“重用”不是你的目的。它不是“成功”的充分条件,也不是必要条件。 


A language addicit will always be a slave. Try to become a sensai. 

语言上瘾者永远是一个奴隶;尝试变成一个大师吧。 


Solutions/Tools with high price guarantee nothing on productivity. 

售价很高的解决方案/工具从不保证任何生产力。 


Don’t use "Microsoft did the same thing" to support yourself. It proves 

nothing. (Google/Facebook/Twitter/etc.) 

别用“微软也这么干过”来技术你自己。它什么也证明不了(google/facebook/twitter也是如此) 


Don’t try to collect all information/requirements you need and decide later; 

welcome to the moving planet. 

别尝试先收集所有的信息和需求,然后再决定;欢迎来到移动的行星! 


There’s no universal solution; A language sometimes can be the one; and we 

need lots of languages, right? 

没有万能的解决方案;有时候编程语言是一个(万能解决方案);我们需要很多种语言,对不? 


Age and experience are not the right way to defend yourself in an argument. 

在争论中,年龄和经历不是你证明自己的正确方式(以德服人,以理服人) 


Yesterday’s workaround is tomorrow’s limitation. 

昨天的Workaround就是明天的限制 


Good design evolves; bad design patches. 

好的设计在进化,坏的设计不停地打补丁 


Design what you’re able to implement. If it’s too hard to you, don’t count 

on others. 

用你能实现的方式来设计;如果困难到你也写不出来了,那么就别指望其它人 


Zenus didn’t control everything; neither should you. 

宙斯没有控制所有的事物,你也不应该 


Inspect your design in each level. 

在不同的级别下仔细检视你的设计 


Understand the hardware; your system doesn’t run in air. (Hardware will 

never be perfect) 

要懂得硬件。你的系统不是在空气中运行的(但是可以Adobe Air)(硬件不是完美的,可能会出错) 


Make you design naturally and comfortable. Don’t fight with programmers, and 

don’t let them fight with your design. 

让你的设计是自然而舒服的;别跟程序员斗争,也别让他们和你的设计斗争。 


It’s too late when you realize to improve performance; design for it; 

当你意识到应该提升性能的时候,已经太晚了。为性能而设计。 



 

LLFS

发表于 2009-03-26 | 分类于 opensource |

LFS,是Linux From Scratch,一个从零开始让你学习如何构建一个Linux系统的发行版,我记忆中,没有在真实环境中试过这个发行版。


LFS 6.4出来,全新的tool chain,这次我决定在我的slackware上构建这个发行版,有兴趣可以到这里:http://linuxsir.org/bbs/forum58.html


抽空完成,下星期要发布removepkg篇啦,哈哈


LLFS: Learn love from scratch

关于Linux里的initrd.img这个东东

发表于 2009-03-19 | 分类于 opensource |

今天把一部机器重编译内核,去掉了initrd.img,运行正常(以前的经验告诉我这是可行的)。


然后我在想,为什么要搞这个东西出来?

而initrd.img这个东东里是什么?我个人理解只是放一些启动时必需的文件系统驱动,这些驱动完全可以编译进内核里,而去掉个文件。

我搜了一下,没有找到比较好的答复,反而听到有人说怕内核太大,所以分割出这个img出来。我细细想想,这说不定是因为当年只有lilo的时候,而不像现代Linux这样,对内核的大小会有要求,所以得像使用initrd.img作为启动盘来启动,再来加载kernel。


但系像LFS这种比较原法原味的构建过程中,也没有提到initrd(d00m3d提到),包括我用过的slackware版本,默认安装也不提供initrd,不过你可以自己生成一个。


就我个人习惯,我会把用到的文件系统编译到内核,去掉这个img。


参考贴:

http://www.linuxsir.org/bbs/thread337836.html

http://www.linuxsir.org/bbs/thread301099.html

 

后觉感叹

发表于 2009-03-13 | 分类于 sunshine |

今晚回到宿舍,上GReader,看到华师街舞队有个新文章,题目为:不知不觉,来自BBin。



细读了一篇,又一次感觉回到了当年的自己,看着那人来人往而感叹。

听到BBin说看了一遍所有视频,我也觉得很感动,很开心,就像当年的自己那样。


可是我从来没有足够的勇气去把所有的视频从头到尾欣赏一次,就像BBin所说的那个慰藉、借口那样,我不希望把青春而美好的时间看完、过完。

我也曾经讲过,出来一样可以玩街舞。但现实上,生活慢慢地改变我的步伐,开始拖着我走。

是的,不是你改变生活,就是生活来改变你。而我选择住在深大旁,最重要的原因,我希望这里继续给我改变生活的勇气。

可是细雨流水依旧,上一年二月十四日,我来到现在这个公司,虽然共算起来不足一年,但我已经发现再不可能有当年的那种激情去面对占据我半个大学街,继而慢慢地和大家走远了,包括我的爱情


上次回去,除了小马、小军,基本都看到了想看到的人,感觉比从前平静了些,又感觉到岁月悄悄地帮大家的脸上增加了几分成熟和祥和。

然后感受了BBB的生活,心情还是有点复杂,因为好像除了游戏,好像少了点什么,但又说不出来。


有一天,看到网上说:“如果不是音乐,我怎么认识你”,然后改了一下“如果不是街舞,我怎么认识你”发到街舞群上。很高兴,还是有人会记得的。

之前一直准备一首歌,打算在今年街舞专场用的,但弄着发现灵感消失了,所以也没有时间去整理。期待这一场表演。


一直都在准备pkgtools系列,但时间没能抽出来。

工作上,最近任务也不少,但我承诺在五月一日前完成这个系列


 

空空的电脑

发表于 2009-02-24 | 分类于 sunshine |

脑子发空,我的电脑也空空


终于装了Vista 64bit,觉得自己很out,都不会用Vista了。但我很快就会装回来XP,这个系统,始终不习惯,即使我的电脑没有让这个系统拖慢


看到程序员jserv写的一篇文章long for,心痛得没法再躲。虽然不认识他,但我深深感受到他那份痛,Good luck for him~


昨晚看完《The pianist》,这种电影已经放在电脑里很久,很喜欢这电影,战火、歧视对人们的摧残在里面体现得淋漓尽致,但主人公抱着那喜欢,还有心中的琴曲,从一次又一次的死神手里争脱,活下来了。


windrose兄把我的pkgtools系统放到slackware中文用户组那里了,感谢他的支持。最近比较忙,我会抽空把这个serial搞定的,边学边写。


空空的电脑,空空的脑

剖析slackware pkgtools之installpkg篇

发表于 2009-02-17 | 分类于 geek |

作者: slackcode
pkgtools版本: pkgtools-12.1.0-noarch-7.tgz

我并不是什么高手牛人,我只是路过,觉得好玩,所以拿出来看看,希望与大家分享,共同学习

如有转载,请注明出处:)

———————————————————-

installpkg源文件请到这里:
http://darkstar.ist.utl.pt/pub/slackware/slackware-12.2/source/a/pkgtools/scripts/installpkg

# If installpkg encounters a problem, it will return a non-zero error code.
# If it finds more than one problem (i.e. with a list of packages) you’ll only
# hear about the most recent one. :)

# 1 = tar returned error code

# 2 = failed ‘gzip -l package’

# 3 = does not end in .tgz

# 4 = not a file

# 99 = user abort from menu mode

EXITSTATUS=0
installpkg执行结束后的返回值, 即$?

# So that we know what to expect…
umask 022 # 当前权限 与 (777 - 022)
TAR=tar-1.13
$TAR –help 1> /dev/null 2> /dev/null
if [ ! $? = 0 ]; then
TAR=tar
fi

这里是判断$TAR –help的返回值,命令执行成功一般都为0,失败为非0,$?即为这个返回值
if [ ! “LC_MESSAGES=C $TAR --version“ = “tar (GNU tar) 1.13

Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Written by John Gilmore and Jay Fenlason.” ]; then

echo “WARNING: pkgtools are unstable with tar > 1.13.”

echo “ You should provide a \”tar-1.13\” in your \$PATH.”

sleep 5

fi

installpkg定义tar-1.13为稳定版本, slackware 12.2有tar-1.13和tar-1.16.1

再看看tar是哪个版本

ls -l /bin/tar

-rwxr-xr-x 1 root root 233196 2006-12-14 13:37 /bin/tar


-rwxr-xr-x 1 root root 115036 2006-12-14 13:37 /bin/tar-1.13*

lrwxrwxrwx 1 root root 3 2008-12-09 23:00 /bin/tar-1.16.1 -> tar

从这个看来, tar即tar-1.16.1了

if [ ! “LC_MESSAGES=C $TAR --version | head -n 1“ = “tar (GNU tar) 1.13” ]不是更简单么?不过可能出于严谨,作者认为只有版本号对是不够的,还要判断整个version

另这个LC_MESSAGES=C是需要的,我使用系统默认的en_US发现有问题,我知道使用C就是使用127bit的ASCII码系统,至于为什么en_US会不行,希望有高人能回答一下

阅读全文 »

1…111213…29
breakliu

breakliu

288 日志
18 分类
850 标签
RSS
GitHub Twitter DouBan Weibo
Creative Commons
© 2008 - 2019 breakliu
由 Hexo 强力驱动
主题 - NexT.Pisces
0%