All Stories

1罐可乐换了18张碟

  在公司网上看到有个哥们儿说,有FreeBSD、Debian、FC、Suse、Mandrake、Gentoo的光盘,只要一罐可乐就可以换。早上吃过早饭,顺便在小卖部刷了一罐,下午就发邮件打了个招呼过去了,换了18张碟,哈哈,虽然版本老了点,但装在家里那个老爷机上也没什么关系吧,自己从网上down的话,还要花好多时间,还要刻,要费些碟,所以这样还是值得的,啦啦啦……  感觉好久没有好好练习方块了,虽然每天都会打一会儿,但最近都没有什么进步。真不知道那么3.0的速度是怎么练出来的,真是只是这样不停地打就能练出来的吗。现在只知道要尽量缩短思考的时间,尽量摆放到需要旋转次数少的形状和移动次数少的位置,其它的就不知道,只能这样摸黑练了。  突然觉得,要是我的方块可以装载JPEG格式的图片,skin的体积岂不是可以又小很多,再怎么样,JPEG这样专用的有损图片压缩方案压缩率就是比7z这样通用的无损压缩方案高得多。先看看GDI+或者libjpeg哪个方便点。

买了对耳环

  买了对周生生的耳环,还以为是黄色的,结果是白色的,不适合妈妈啦,只好以后再买其它的给妈妈啦!  Firefox在我的机器上,启动时间超过10秒!估计跟我的机器的配置有比较大的关系,我猜即使在我老家那台Duron1G+384DDR的老机器上,也会在5秒钟内就启动吧!一点都没看出来2.0比1.5改进在哪里,唯一的印象的是,标签栏的外观改了,有两个扩展不能用了,其它的真的不知道了。不过最近一直在想,怎么能在Gecko内核的浏览器中“胡作非为”,像在IE中得到了IHTMLDocument2一样,也许用XPCOM可以吧,不过一堆的英文资料,看着头大。  挖了一会儿井,比前两天挖的都多,下面要做的是,消行处理、输入处理、配置对话框的实现。

  糟了,我真的太没有自制力了。  好不容易上网最新时间down到Firefox 2.0正式版,试用一下,感觉打开网页的速度还不如1.5的呐!算了,先用一段时间看看,到底哪个版本好一点。有两个扩展也不能用了。

我的方块W.I.P 番外篇

  今天去开通了招行的网上银行,虽然开始费了点事儿,没仔细认真地看帮助说明,最后还是可以了。很方便啊,把一卡通和信用卡都绑定了,可以直接在网上进行查询以及一些其它的操作。查了一下,钱真tmd少啊,郁闷,不jump不行啊,真是官逼民反啊!所以要使劲挖自己的井啊!  coolkuai3.0大功能上的设计是很不错的,照oneaddone的说话,亮点是加了打榜功能。确实打榜功能是很不错,可以无限扩展新的玩法,不过似乎还是固定地依赖于它的核心,所以可定制程序不会很高。3.0在一些细节上,考虑得不是很周到。  我的方块,可以换肤,一大亮点;可以让用户定制游戏逻辑,比coolkuai3.0的可定制度高得多,而且coolkuai3.0不开放这部分功能,又是要用二进制dll形式实现,此之谓第二大亮点;可以联机对战,像Q块那样支持最多6人同时进行,还可以旁观,这是第三大亮点。另外就是,所有的skin下面,都提供了统一的操作界面,这点还是比较有用的,不用粗暴地要求用户要进行某些操作时,切换回原始界面了。  上面这些是计划内的,要一点点地实现,打算试试ACE这个framework。用VC除了画界面不方便外,其它的都很好用啊!

去喝酒了

好久没喝得这么痛快了!!老大请客,哈哈!

单机3.0的打榜功能

  好奇,看了一下coolkuai3.0的打榜功能,从网站上看到有几个trc文件,从文件名看,就是支持各种不同类型的打榜功能的,再打开coolkuai3.0,随便打一种榜,查看一下该进程的模块信息,果然发现它装载了一个在临时文件夹中的trc文件,再看一下这个trc文件的PE信息,没有导入信息,只有几个导出函数 Core/GetCore/OnAfterAction/OnBeforeAction/OnGameStart,用PEiD看也看不出是用什么编译的,反正体积很小,都只有3、4KB,也不像是用ASPack处理过的。oneaddone在这点上做得挺好的,用户根本不用管要下载什么文件来支持新的玩法,只需要知道在那里点选一下,就可以了。

我的方块W.I.P #8

  回家就写了两个函数,晕,4个小时哦,一边聊天,一边打方块,一边看网页,一边写代码,果然,只写了不到200行,呵呵!看明天或者什么时候把顺变逆变的写完了,就可以加上接受输入的代码了。还有就是,消行的处理,不能就这样,应该有个落块的动作之后的延时,这样让玩家知道是因为这个落块导致的消行。  要努力哦!《PIL》还是很值得反复看的,因为对于Lua方面的资料真是稀缺,除了《PIL》,再就只剩下官方manual值得看了。而对于它与C/C++的接口使用,LuaTinker是个比较值得学习的资源,因为代码很少,不会让人看到头昏。如果说,要能完整地看完C++的实现技法,参考三本书,应该就可以了,分别是《Modern C++ Design》、《C++ Templates》和《C++ Primer》。《C++ Primer》可算是一本完整的C++语言参考书,所有基本的知识几乎都讲到了,《C++ Templates》则可算是讲述了C++中template的完整使用参考吧,而《Modern C++ Design》是一种policy based的编程技术的完美演绎,对于如何使用template来产生代码生成器这样的任务,提供了极佳的范例。而LuaTinker的实现,正好是这几方面知识的一次良好体现。

打方块去了

  和江江她们打方块去了,呵呵,速度也没啥提高,一直在1.2x,有点气愤,为什么我就练不快呢!  白天在公司,看了好久的《Programming In Lua》,还遇到一个C++ new的没见过的用法,去公司内部的支撑论坛问了下,好菜啊,没看过《C++ Primer》就这样水啊!我大概是从大学里开始养成的坏习惯吧,静不下心来仔细看书,总希望有个速成式的学习快餐,可以随便翻一下就能学会一些东西。大部分时候,都是看一下目录、前言、序就当是看过一本书了,到时候知道去哪里查阅就行了。  在看LuaTinker的代码的时候,还学到一招,创建匿名的对象,并直接调用返回值为该类对象引用的成员函数。有趣,这种匿名对象的生命周期好像只在当前代码行内有效。  又看了一点点LuaBind的代码,原来以前在Boost.Python的examples里看到的那种奇怪的语法,只是重载了操作符operator,和operator[],呵呵。从云风的书上看到,如果不是忙于各种各样的日常事务,大多数的程序员一定会迷上博大精深的C++。说得一点都没错啊,现在看来C++ template的运用,对我来说就是一个很大的诱惑。  要看懂LuaTinker的代码,还是很依赖于对Lua的深入掌握,尤其是Lua提供的C API,如何让Lua脚本能调用C++里的类方法,这样的技术是LuaTinker提供的重要功能。Lua与C之间通过一个virtual stack来实现通信,所以virtual stack的操作很迷惑人了。看来还是得再多看几遍PIL,再试着自己写些代码。另外,云风的书里也有提到过怎么进行这样的封装,不过我更倾向于LuaTinker这样的方案,因为目前我是彻底被C++ template技术迷倒了!

挖一口属于自己的井

  因为要缴房租了,去取了钱,顺便查了一下余额,天哪,我的钱都到哪里去了!唉,郁闷之极,这几个月来,一直为了这样的事情烦!心理总是不爽啊,不平衡啊!  每天下班回家,便挖一点,看心情好坏挖多挖少也不重要,最后能挖出一口属于自己的井就可以了。  给自己定了2大类目标,写在图片上,设为桌面。  技术目标:C++泛型编程、Lua及与C++集成、DX+Win32API游戏程序设计、编译原理。  产品目标:方块、Socket捕获、按键辅助、NES模拟器、音频播放器、桌面管理。