独立游戏推荐(1)

早前在一篇文章里曾经提到过这个世上除了商业游戏外还有不少由爱好者制作的独立游戏,这类游戏由于不需要遵守商业游戏的条条框框,往往有着独特的闪光点,这也是这类游戏受人追捧的原因之一。今天我来介绍几个我眼里不错的独立游戏,点击游戏名会直接连接到该游戏的介绍和购买页面,如果你有兴趣的话请购买正版,这类游戏都不贵,何况独立游戏制作小组往往也无法像商业游戏公司那样承担盗版带来的损失。

 

To the Moon

to the moon

Gamespot 2011 最佳故事奖,虽然说画面简陋(游戏本身由RPG制作大师制作),但是音乐动人,剧本更是极品。如果你喜欢盗梦空间,水仙等作品的话,这个游戏绝对不容错过。

 

Wizorb

Wizorb

充满着DOS画面风格的打砖块游戏,融入了RPG的要素,有村庄,有NPC,有商店,还有Boss战,一个打砖块游戏做到这份上也算是创意十足了。

 

VVVVVV

VVVVVV

233到极致的名字,关卡设计充满了制作人员的恶意,游戏以改变重力方向来使主角通过各种机关。难度估计是在向IWBTG靠拢,很多地方需要高超技巧的同时也要那么一点运气。另外游戏在3DS eShop上亦有售。

 

Amnesia: The Dark Descent

Amnesia

在恐怖游戏日渐式微的今天,能有独立制作组为我们奉上质量如此之高的恐怖游戏佳作实在是难得,游戏气氛渲染一流,谁用谁知道。

 

Limbo

limbo

本来以为仅仅是画面风格比较黑暗,没想到玩起来也让人觉得头皮发麻。游戏有着独树一帜的艺术风格以及巧妙的关卡设计,想通关不动脑经可是不行的呦。

 

Mutant Mudds

mutant-mudds

伴随着8-bit怀古风的是毫不妥协的难度,当然比起IWBTG那类游戏还是好的多了,不过这个游戏不能在关卡中间存档,失败就要重来,所以别刚过了一个陷阱就放心下来喔,稍有不慎就只有请大侠重新来过了。

Answer Set Programming 程序设计

不知道访问这个Blog的人里有多少写过程序,只要是写过的,想必一定知道,想要让计算机给你解题,首先你必须自己知道这题怎么解,这似乎是一件理所当然的事情。学校里的老师想必也一定也说过“程序=算法+数据结构”这个经典的等式。不过今天我们从以前的窠臼中跳出来,来质问一下那件理所当然的事情:凭什么我让计算机解题前我还非得要自己会才行?理想状况应该是我告诉电脑我需要解的问题,之后就让计算机去解好了。这种事情可不可能呢?事实上,虽然还有着各种各样的限制,但是逻辑程序设计已经为我们在一定程度上实现了这个理想,这次我会介绍逻辑程序设计里其中的一个分支Answer Set Programming(ASP)。这里我不准备涉及关于理论方面的知识,一切以实际应用为主,因为我觉得大部分时候应用时牵扯到的语法和语义都是很好理解的。当然如果你能够有一些关于命题逻辑一阶逻辑的知识的话那就再好不过了。

在正式的介绍ASP的各种规则之前,我们先来看一个简单的例子:现在有乌鲁木齐,北京,合肥,秦皇岛4个城市,我们现在要坐火车在这4个城市之间穿梭,已知除了秦皇岛以外,其他三个城市之间都有直达的火车,而秦皇岛只有到北京的直达火车,那么从合肥出发,我都能到达哪些城市呢?一个典型的ASP程序会像下面这样:

road(urumqi, beijing).
road(hefei, beijing).
road(urumqi, hefei).
road(beijing, qinhuangdao).

road(X, Y) :- road(Y, X).
route(X, Y) :- road(X, Y).
route(X, Y) :- route(X, Z), route(Z, Y).

arrive(X) :- route(hefei, X).

#hide.
#show arrive/1.

在这里,符号':-'代表如果,符号','代表并且。现在,如果我什么也不说,你能猜出这个程序里每一行的意思么?这并不困难,显然前4行代表了一些事实,它告诉我们哪些城市之间有道路相连,6-10行则是一些规则,其中第六行告诉我们,如果城市Y和X间有道路,则X和Y之间也有道路。第七行则告诉我们,如果X和Y之间有道路,那么X和Y就有一条通路,同理第八行告诉我们,如果X和Z有通路,Z和Y有通路,那么X和Y之间同样也有通路。第十行则告诉我们,如果合肥与X有通路,那么X就是从合肥可达的。最后两行我们可以先忽略,那是用于格式化输出结果的,和程序本身没有太大的关联了。

最后,如果你有兴趣,可以去下载gringoclasp两样东西,将以上文件保存为road之后我们就可以在命令行下执行

gringo road | clasp 0

来得到如下的结果了:

Answer: 1
arrive(hefei) arrive(qinhuangdao)
arrive(beijing) arrive(urumqi)

那么现在让我们稍微扩展一下,假设北京和秦皇岛之间有列车发生了轻度追尾事故导致无法再通行(当然是没有人员伤亡了,至于你信不信,反正我是信了),那么我们有必要对上面那个程序做出一个修改,首先我们应该添加一个事实规则:

block(beijing,qinhuangdao).

同时也需要修改第7行的规则为:

route(X,Y) :- road(X,Y), not block(X,Y).

这个规则表示X和Y之间有一个通路如果X和Y之间有个道路并且这个道路没有被阻断[注]。之后再次执行这个修改过的程序,我们就会发现秦皇岛不再是可达的了。

从上面的例子我们可以看出,一个ASP程序包括两样重要的部分:事实,用于描述现实世界的状态。还有规则,用于进行推理,并且他们都由英文句号'.'结尾。而规则又分为在符号':-'左边的结论和右边的条件。结论成立,如果右边的条件被满足。另外事实也可以看做是省略了符号':-'和右边所有条件的规则。更细分一点,每一个ASP程序里还包括了一些常量(在这里就是城市名),谓词(这里的road,arrive什么的),每个谓词有若干个参数,并且为了简化起见,我们把带有n个参数的谓词p写作p/n。最后当然还有变量(在这里就是大写字母X和Y),需要注意的是本质上ASP程序是不支持变量的,这里的变量仅仅是为了方便书写,在实际的求解中这些变量会被替换为程序中出现的所有常量,这也是我们为什么需要先运行gringo程序的原因,它的作用就是将程序里所有变量挨个替换成程序里出现的所有常量,你可以用:

gringo --text road

来看看程序被替换后的样子。

现在让我们来定义一下ASP程序里各种规则的样子,有了这些,我们就可以用它来解决问题了。

1. 约束规则

所有在符号':-'左边什么都没有的规则就是约束规则,它表示右边的条件不能同时被全部满足。

2. 选择规则

所有在符号':-'左边形如 \{a_1,a_2,...,a_m\} 的规则就是选择规则,其含义是如果右边条件成立,那么左边的任意一个子集也成立。

下面我们来考虑一下对于选择规则的扩展,首先我们不限制\{a_1,a_2,...,a_m\}这样的元素只能出现在规则左边,而是也可以出现在规则右边。其次,任意子集的说法也未免太简单了,我们给它加上个数限制,像l \{a_1,a_2,...,a_m\} u,这个元素表明花括号中的m个元素最少有l个最多有u个成立。所以形如

a :- 2 {b, c, d, e} 3.

这样的式子就表明如果b, c, d, e中最少有两个最多有三个元素成立,那么a也成立。当然,这里的l或者u并非必须同时出现,只写一个也是可以的,含义也很好理解。

3. 条件元素

数学里大家想必遇见过诸如 \{a\; |\; a\in A\} 这样的东西,它表示了所有满足 a 属于 A 的元素 a 的集合,这里我们也有类似的东西。比如说顶点着色问题,假设我们有诸如 vertex_color(X, Y) 这样的元素,我们想让它代表顶点X被染了颜色Y,并以此得到某一顶点v1所有的染色可能性。但是我们之前也说了,gringo会将程序里的所有变量拿所有常量替换一遍,这样Y不仅会被拿颜色替换,同时也会被拿顶点替换,这显然不是我们想要的,这时我们就需要条件元素了:

vertex_color(v1, Y):color(Y) :- vertex(v1).

看到了么?只需要用冒号':'就可以将变量Y限定在颜色的范围内,这样我们得到的就是顶点v1所有的着色可能了。需要说明的是条件并非只能加一个,如果你有多个变量需要做限制的话,可以将冒号一直连下去。

那么冗长无聊的语法介绍就先到此为止吧,我们来用一个例子来介绍如何来撰写一个ASP程序。我们所用的例子就是著名的八皇后问题,如何在8*8的国际象棋棋盘上摆放8个皇后而使他们无法相互攻击。

首先是事实,我们的棋盘有8行8列:

row(1..8).
col(1..8).

这里我们用1..8来代表从1到8的简写,这样的式子会被展开为row(1). row(2).等等直到row(8).

之后就是各个规则了,首先我们需要在 I 行 J 列上放置皇后:

queen(I, J) : row(I) : col(J).

这还不够,因为我们放且只能放8个皇后,所以我们把这个规则改写一下:

8 {queen(I, J) : row(I) : col(J) } 8

好了,到此为止如果你好奇的话可以像上面的例子那样先执行一下看看结果是什么,不过千万要记得把clasp后面的0换成5来表示只计算5种满足条件的结果,毕竟我们现在可以说什么限制都没有加,所有结果的数量多的可怕。另外,因为我们只关心queen的情况,而你会发现程序把row和col的结果都打印出来了,所以我们可以用

#hide.
#show queen/2.

来将结果显示限定在谓词queen上而隐藏其他的谓词。好了,到现在你会发现得到的结果只是随便把8个皇后放到棋盘上,根本没有考虑他们之间有没有攻击的问题,那么之后我们就来添加这些限制,首先是每行每列上不能同时有两个皇后:

:- queen(I, J1), queen(I, J2), J1 != J2.
:- queen(I1, J), queen(I2, J), I1 != I2.

最后,对角线上也不能同时有两个皇后:

:- queen(I1, J1), queen(I2, J2), I1 != I2,
J1 != J2, I1 - J1 == I2 - J2.
:- queen(I1, J1), queen(I2, J2), I1 != I2,
J1 != J2, I1 + J1 == I2 + J2.

到现在为止我们的程序就完成了,运行来看看结果吧。很有趣不是么,我们没有教计算机如何计算,只是描述了整个问题,计算机就把结果告诉了我们。当然这里介绍的只是冰山一角,限于篇幅和我的水平也没法更加详细的介绍了,如果你有兴趣的话,这里有不少文档可以供参考,如果能把你拉下水,那么我的目的也达到了。

注:也许很多人在这里的第一反应是用否定的 \neg block(X,Y). 而不是什么奇怪的not,这其实牵扯到非单调推理的问题,不过限于篇幅这个就不扯了,大家可以自己去找找资料。

I am the Bone of My Sword —— 天空之剑随想

借用了Fate里Archer的那句著名的台词,不过我想用来形容天空之剑是再好不过了。近日终于通关了塞尔达传说的最近一部作品,颇为尽兴,于是来写点感想顺便作为推荐。

第一次知道塞尔达传说这个游戏是在小学毕业出去旅游的时候,在亲戚家里看见别人家的孩子拿着砖头GB在玩,现在想来应该是梦见岛。游戏并不简单,因为我看见他不停地在翻攻略看地图数格子。GB对于小时候的我是个奢侈品,自然在那之后我也无缘自己拿来玩玩。再后来的记忆也就是拿模拟器玩了FC上的初代塞尔达传说,不过由于难度太高,在死了几十次也没找到第一个迷宫的情况下就放弃了。之后过了很久,直到GBA模拟器成熟,我才算是第一次在模拟器上玩了一部完整的塞尔达作品《小人帽》。虽然是Capcom代工的,但是素质不低,使用各种道具解密破关带来的成就感无与伦比,从这之后我就彻底成了塞尔达传说的脑残粉。去年是塞尔达传说25周年,任天堂也搞了不少活动,从开放3DS eShop的梦见岛下载,到3D重制的时之笛,再到免费的4之剑(找不到人联机的苦逼表示......),当然还有在部分地区举办的音乐会(去不成的苦逼继续表示......)。不过毫无疑问,重头戏则是时隔5年终于又一次降临在家用机上的《塞尔达传说——天空之剑》。当然为了能玩这个游戏我花了59刀去淘了个二手的Wii,又花了75刀买了手柄同捆版的游戏,不过想来想去舍不得拿黄金手柄来玩,于是又花了80刀买了Wii Motion Plus + Nunchuk(该死,澳洲的配件真TMD贵)。当然想要插到笔记本上一个视频捕捉设备也少不了(我的钱......)还好这玩意有便宜的,秉着能用即可的原则(实际上是已经没钱了)12刀买了个最便宜的用。总之虽然折腾了很久,最后终于可以玩上了。奋战了月余终于通关,总体上来说,可以无愧称之为历代最高一作了,时之笛过了这么多年也终于可以让位于后人了。

剧情

传统上,塞尔达传说的剧情处于一个微妙的位置。当然每一作塞尔达传说都有一个剧情,但是其并不重要,所有的剧情都是为了游戏的玩法而服务的。从制作人访谈里面我们也可以知道,每次都是先确定游戏要怎么玩,之后才确定剧本要怎么写。例如时之笛之所以有时空穿越的剧情,就是因为制作人觉得不同体型下使用不用的道具冒险会很有意思,所以才有了成年Link和少年Link在时间中穿越的剧情设定。游戏里的每一个NPC也仅仅起到符号的作用,对于你而言,那些人不过是用来买道具的,或者做任务的等等。不过天空之剑一改往日NPC全是路人甲的设定,赋予了不同的人不同的人格。特别是塞尔达的形象算得上是有史以来最为丰富的了,颇有一种强势的邻家女孩的样子,刚一上来就把Link从崖边推下去了(笑)。当然还有自以为是的喜欢塞尔达的Groose(当然最后终于意识到自己不是主角而放弃了),总是一脸的弱受样却能做3000个俯卧撑的崇拜Link的Fledge,好不容易鼓起勇气向喜欢的人告白最后却被NTR的Groose的小跟班Cawlin,借着自己高帅富的样子一句话就把别人快要追到的女友抢过来的Pipit,长着可怕的样子却十分羞涩的Batreaux,一股子机器腔成天在你耳边废话如果毒舌一些的话就如同GLaDOS一样的精灵Fi,还有每次见到Fi都甜言蜜语之后还要损一损Link的机器人Scrapper,像Gay一样的大反派Ghirahim。等等诸如此类第一次使得塞尔达的世界变的如此丰富,也让我这一次在救出塞尔达后头一次有了“终于又能和你见面了”的感觉。当然,剧情刻画上的增强并没有说这次剧本终于成了游戏的主人,为玩法服务的核心还是没有变,但是却使得整个世界活了起来。

操作

按键操作从游戏机诞生伊始就成为了标准的配置并一直延续至今,但并不是说人们就对其满意了。撇去街机的各种拟真控制器不谈,从FC开始我们就见过不少诸如光枪啊,机器人啊,能量手套啊什么的设备,不过一来限制多多,而来适用的游戏也太少。虽然各厂家想方设法的搞拟真控制器,但是无论如何也没法推广开来。直到Wii,任天堂第一次把拟真操作器作为主输入部件而不是配件来卖,并带来了一直刮到现在的体感风,其他两家也都拿出了自己的解决方案。但是这并不是说体感操作就能一统江湖了,6年过去了,从刚开始的一窝蜂是个游戏就要晃两下到现在的受欢迎的体感游戏清一色都是休闲游戏,基本上所有人都会同意传统游戏和体感八字不合。只要想想玩马里奥的时候还要顶着Wiimote跳来跳去顶砖块就非常蛋疼了,所以在马里奥银河里体感只是做了辅助,核心的操作仍旧是由按键来完成。但是这次的塞尔达传说却将核心的操作全部体感化了,老实说我之前一直有些担心,但是实际玩到游戏之后不得不说这样的操作屌爆了。Wiimote在游戏里化身成了一把剑,而这把剑就在你的手中,随着你手臂挥动的方向而动。I am the bone of my sword当我挥动Master Sword的时候,我脑海里首先映出的就是Archer的这句名言。斩,削,切,刺,以前用按键来发动的动作这次完全交给了玩家自己,相对的,本作的战斗难度也得以大幅提高。虽然塞尔达传说一直被分类为Action Adventure,但是以前的各作在动作方面都无甚难度,只要能够使用正确的道具,剩下的就是狂按A就可以解决问题。但是这次由于把挥剑和格挡动作都交给了玩家来完成,在提供了更自由的战斗方式后敌兵的行动也变的更加狡猾,如何挥动手上的宝剑来战斗以及如何在正确的时间使用盾牌来格挡就成了全新的挑战,而Boss战的紧张感和胜利后的成就感也是前作无法比拟的。5年前Wii发售时承诺要达到的游戏体验终于在这一刻变成了现实,虽然是晚了些。除去战斗的操作,UI菜单的设计也可以说是为Wiimote量身定制的,切换道具和物品非常流畅,终于没有“点进菜单->选择->退出菜单”这种打断游戏流畅度的烦恼了,估计这也是本作将使用物品和切换道具变成实时而不是暂停的原因了,战斗时也不能借着喝药的空隙休息了,节奏更快。总之这次的操作可以说是为Wiimote量身定制,并且做了一个漂亮的实现,本作之后,我是再也不想回到按键的塞尔达时代了。

谜题和Boss

如之前所说,传统的塞尔达系列的核心大概就是各迷宫中的谜题,联欢相扣的谜题虽然在解不出来的时候有一种让人要砸手柄的冲动,不过在解出来之后带来的成就感也是无与伦比的。本作的迷宫难度较之前有所下降,首先迷宫的层数变少了,所有的迷宫几乎都是一到两层,其次谜题也简单了,特别是还有Fi在那里不停的“看这里,看那里”的作提示。不过这也并非说难度就向无脑化发展了,迷宫每一层变的非常大,视野也宽阔许多,其次以前迷宫外是没有谜题的,这次谜题却遍布各地,密度比起前作要高出不少。只要从Skyloft下来,就要面临着一个接一个的谜题。当然单独的谜题由于难度有所下降所以解出来很快,这也使得连续解谜后获得的成就感更容易。不过虽然这么说,我还是被几个谜题卡住了不少时间,当时真的是想摔手柄啊...

另一个重点则是Boss战,之前说过了,这次的Boss因为对操作要求很高,所以普遍比起以前要紧张不少,另外巨大的Boss也变多了,压迫感十足,特别是前后要打三次的The Imprisoned,每次方法都不尽相同,一次比一次刺激,最后将之打倒封印的过程,也是我第一次在塞尔达传说系列里玩到紧张的心都要跳出来了的过程。顺便说一下本来很好打的Bilocyte因为没找到诀窍死了好几次,算是最窝火的一场战斗了吧。另外Koloktos是一大亮点,大概是整个游戏里技巧性最强的一个Boss了吧。

其他

黄昏公主里有收集影之虫的剧情,老实说那部分的体验做的很枯燥无趣,这一部分在天空之剑里进化为了精神领域,玩法一样,都是收集一定数量的东西,但是由于这次加入了一击必杀的看守以及限时的冷却时间使得紧迫感大大加强,体验瞬间就从一个很无聊的强制收集过程变成了刺激的“躲猫猫”游戏,应该是整个游戏里的一个亮点。首次使用的交响乐配乐效果也很棒,Ballad of the Goddess百听不厌。空中飞翔作为交通工具比起骑马,开船或者开火车对我而言受用多了,一直飞到最后也没有厌烦感,之前开船和开火车,特别是火车,到了后期真的很厌倦了。至于画面...我拿AV线接出来效果就和屎一样,宣传图里那种油画的感觉完全没有,整个画面糊的非常彻底,更别提和那些拿模拟器硬改分辨率达成的效果了,看来想要好的画面我还要先配个好的电脑。另外瓶子等物品再也不是可以全装在身上了,每次带在身上的只能有8件,其他的则寄存在物品店里,理论上这样可以配合所去的地方自己进行调整以方便冒险,不过整个游戏对这点并没有做强调,这个系统还有待进一步的发掘。探寻系统的加入大大方便了寻找东西的便利性,再也不用像无头苍蝇一样到处乱跑了。武器升级系统中规中矩,没什么特别的亮点。道具继承了一贯的水准,是游戏推进的关键,也为体感做了优化,新道具有,不过玩了系列那么多游戏,这点东西也都见怪不怪了吧。体力设计很有趣,限制了不少无脑乱跑乱砍的玩法。

总体上而言,天空之剑和之前的系列作品虽然骨子里一脉相承,但同时也做出了不少大胆的创新,估计会对后续的塞尔达系列会有不少的影响,按照制作人的说法,下一代家用机的塞尔达不用再等5年,不过这话和暴雪说我们不跳票一样不靠谱,我也只能期望如此了。那么下一代终于也要上高清平台了,希望能够继承一直以来的品质,不断带来新的体验吧。在那之前,我还是继续把天空剑完美了吧。

对了2012也到了,祝大家新年快乐~

Mac工具癖

不知道是不是Apple4us开的这个头, 总之工具癖系列应该算是一个广受欢迎并且也有不少人写的一个东西。虽然这个风潮似乎是过去很久了,不过火星点没关系,换到苹果系统下也有4年了,我就写写自己的工具癖吧。

硬件基础是07年底款的MBP,现在来看也算有点落伍了。不过幸亏现在的游戏厂商全都以主机平台开发游戏,所以我仍旧可以在很多游戏里开全特效玩,这也算是塞翁失马吧。那么回到软件的介绍。

首先是一个虽然不起眼但是在特定时间不可缺少的软件。Windows下的Aero Snap是一个不错的东西,但是OS X里并没有相应的功能,不过我们有Shift ItWindow Tidy,前者是免费的,不过已经停止开发很久了,但是有人fork了一个在github上继续开发。后者是收费的,不过在前两天感恩节的时候限免过。我现在用的就是后者,从可视化角度来讲要优秀一些。当然,如果你更加喜欢用快捷键的话,前者是更好的选择。

之后是一些i字头的软件,作为照片管理的iPhoto和作为音频管理的iTunes。二者的核心都是以库来管理文件,很多人可能并不熟悉这种文件管理方法,所以常常会有人对iTunes恶语相向,毕竟如果作为音乐播放软件来说,iTunes太大太笨拙了。我也并非一上来就能接受,想来以前每每提到iTunes都要在心里恶狠狠的骂上两句,每每在论坛上看到有人骂iTunes也要上去帮忙踩上两脚。不过我现在已经离不开iTunes了,上千首歌如果真要手动使用文件夹管理的话我现在真的无法想象,而使用iTunes则可以方便的管理,并且使用搜索和智能文件夹轻松归类和找出符合我要求的曲目。当然iTunes并不支持网上各种稀奇古怪的音乐格式,这时候我们只要一个叫做XLD的小工具就可以方便快速的进行转换了。如果你无法理解用库来管理文件的好处,也许你可以阅读一下这个文档,虽然是说Windows的,但是核心思想并没有什么区别。其它的文件管理程序还有Papers,如果你有一堆科技文献需要整理的话,那么没什么比Papers更加合适了,虽然这个软价格并不便宜,而我可耻的用的盗版。

对于图像编辑,OS X没有提供像Windows下画笔那样的小程序。当然你可以选择Photoshop,但是一来价格昂贵,二来绝大部分时候你是用不了那么多功能的。所以Skitch是一个不错的替代品,这个软件本来是用于截图后快速修改的,不过当作一个简单的图片处理程序也是不错的选择。另外,如果你需要一些比较高级的功能,你可以尝试一下Pixelmator,应该可以满足很多人的要求。说到截图,OS X自带的截图工具已经非常强大了,如果你还不清楚,可以参考一下这篇文章

之后是视频播放器,在这个领域,我没有找到令我满意的程序。国人做的MplayerX是一个不错的视频播放器,但是对于ASS字幕特效支持不够,并且解码速度不高。QuickTime播放效果最好,但是支持格式太少,当然你可以用Perian来让QuickTime支持更多的格式,不过即使这样你仍旧会发现并非所有的视频你都能正常打开。当然了,如果你的机器比较新,对字幕特效也不是那么在意的话,MplayerX完全可以满足你的视频播放要求。

接下来则是办公套件,苹果的iWork系列是一个不错的选择,特别是Keynote作为演示工具可以甩PowerPoint几条街,如果你做演示的地方有Mac电脑(这概率太低)或者你能够把自己的电脑搬去做演示,那么忘记PowerPoint吧,用Keynote做一个能够让大家下巴掉到地上的演示吧。如果实在需要使用MS Office格式,那么iWork也可以导出,但是鉴于MS Office自己的各个版本都没办法好好兼容,你也不要期望iWork能够做的更好。不过一般的应用是没什么太大问题的。另外如果需要团队协作的文档,Google Docs我认为是眼下最好的选择。当然MS Office也是有MAC版的,这个没有用过,就不做评价了。

之后则是程序猿们的时间,OS X上如果要开发软件必须要装Xcode,在Mac App Store上下载的Xcode会自作主张连同iOS SDK一起给你装上,如果你并不需要iOS开发,可以在下载好的Install Xcode上点右键,显示包内容,找到在Contents/Resources文件夹下的Xcode.mpkg,这个安装文件可以在安装时自定义组件,你就可以吧iOS SDK去掉了,这样可以省下来很大一块硬盘空间,对于没有女朋友的童鞋们用处应该不小。至于编辑器无非是Vim,Emacs一类,我无意在这里挑起任何可能的争论,所以关于这两个软件在Mac下的图形界面版本还请各位自己搜索。另外TextMate是OS X下独有的强大的编辑器,感兴趣的人可以去试一试,但是这个是收费的,并且并不便宜。对于终端,OS X自带了一个,对于大部分人应该是够用了,调教的方法和其他*nix系统里的终端没有什么区别。当然了,如果你对终端有特殊的需求,也许你可以尝试一下iTerm,不过我没有深入用过,就不做评价了。另外至于包管理器可以参考这篇文章,挑一个你喜欢的吧,我用的是Homebrew

另外还有一个全局的系统通知软件:Growl,虽然不是官方的软件,但是由于其在OS X上非常受欢迎,所以很多第三方程序都有实现对它的支持。如果你需要一个通知中心的话,这个软件绝对不能错过。1.3版是收费的,不过你也可以下载免费的1.2.2版本。当然了,如果你有足够的能力的话,这个软件是开源的,你可以直接编译最新的版本来使用。

自动化工具中,Quicksilver无疑是OS X下一个绝对不可缺少的软件,通过插件,它可以实现很多之前需要多步点击才能做到的事情。最简单的用法就是当做快速启动程序,当然它的作用并不仅限于此,在设置里的Preferences-Actions里你可以看到所有支持的操作(安装不同的插件这里支持的操作会有不一样),你可以通过打钩来激活你需要的动作。另外在Triggers里你可以定义快捷键,对于重复操作完全可以使用快捷键一次完成。Quicksilver还可以配合Growl实现iTunes播放提示,这样就可以免于安装GrowlTunes了。Quicksilver的功能还有很多,通过Google可以找到很多应用,这里就不多说了,唯一的缺点恐怕就是每次呼出Quicksilver界面的时候必须保持输入法是英文状态,否则识别会有问题。另外系统自带的Automator也是非常优秀的自动化流程工具,我在这篇文章里曾经演示了如和用它实现文件批量重命名,但是其功能还有很多,如果你愿意挖掘,很多第三方软件是完全没有必要存在的。如果你觉得Automator还不过瘾,那么AppleScript可以帮你实现更灵活的操作,这里有一个文档可以作为参考。另外,系统的服务是一个好东西,你可以在偏好设置键盘/键盘快捷键里设置你常用到的服务的快捷键,别忘了去看一看,里面一定会有你感兴趣的东西的。我相信如果你能够有效利用这些工具,你会免去很多重复劳动,和无效点击,有效提升你的工作效率。

最后,再介绍几个小工具吧。DictUnifier可以转换Stardict词典为OS X自带词典可识别的格式,忘记第三方字典吧,有了和系统高度整合的Dictionary程序,查词再也不是令人头大的事了。OnyX可以让你方便的调用系统的维护脚本,不会用命令行?用这个就行了。OS X卸载文件没有卸载程序,直接把程序拖拽到垃圾箱里去就好了,不过毕竟有人对留下来的配置文件不爽,那么AppCleaner是一个不错的选择。

说了这么多,虽然我尽量覆盖了我使用中的方方面面,但是难免也有遗漏的地方,如果你有什么想要了解的东西,尽可以留言,我会在力所能及的范围内回答的:)

一年

tontyoutoure提议到买了这个域名和空间,算来已经有一年之久了。最初正如关于页面里说的,弄空间纯属为了能搭一个Twitter的API,因为觉得能够自定义API名是一件很拉风的事情。不过毕竟只是搭一个API实在是太浪费了,于是就有了这个Blog。当然这个Blog叫什么当时还是犹豫了半天的,因为开始的时候不知道要拿这个地方干啥,如果是作为折腾的地方,叫做实验室是挺合适的,但是这又体现不出不稳定的性质,于是就在我纠结的时候突然想到了学校里那个“微尺度国家实验室(筹)”然后就如你所见了。如果你要问我这个筹字什么时候可以拿掉,那么我只能说,等科大的那个国家实验室的筹拿掉了我这个再说吧...不过那个筹从我上大学开始到毕业都没有见过要拿掉的样子。当然除了这个Blog外还有那个反正Twitter已经全部t.co了所以也没用处了的一点也不短的短域名服务,以及用过一次后再没用武之地了的无聊的自用图床。也许还有其他什么我已经忘了的东西,就忽略吧。这一年间里也算稍微学了一点CSS和HTML,为了这个Blog折腾了很多插件,虽然现在已经不折腾了。被墙了3个子域名,感谢方长老,没把全部域名墙了。那么既然现在已经一年了,就来总结一下这一年里Blog的各种统计数据吧。

总共的访问量是3157人次,一共2377访问者,平均网站停留时间是2分26秒,每次访问页面数是1.96页,有75.29%的人都是新访问者。大概的访问量曲线如下所示:

一年间的访问次数统计

基本上有两个峰值,并且两个峰值的访问数都一样是64(好个敏感词...)。原因大概是被某个公众人物share了某一篇文章吧,否则这个连小众都算不上的Blog是不可能有这么多访问量的。

总共文章共41篇,包括tontyoutoure从他以前的Blogger里导入的9篇,所以总共写了32篇,两个人一年这么多篇也不算少吧,或者说我觉得居然能有这么多篇真是奇怪啊,我本来以为会更少一些的。草稿箱里的文章一共7篇,当然里面没有我挖的坑,全是tontyoutoure的,至于他会不会填就是另外一回事了。评论数101条,被自动过滤的垃圾评论数273条,所以说现在垃圾评论真是猖獗啊,多亏了Akismet,让我免去了许多烦恼。

访问量最多的5篇文章依次是:

  1. 抛弃文件夹!用Plex来管理你MAC下的视频!(好吧我承认了这个标题危言耸听了)
  2. 黑客们的来福士戴尔 (没想到这么多人对HHKB感兴趣啊...)
  3. GEB读书笔记之一——形式系统初步 (第一次尝试写连载,还好没坑,不过水平还是有待提高啊)
  4. 3DS动手玩 (有了年底的大作,我的3DS终于不用吃灰了)
  5. Cherry青轴机械键盘小评 (好吧,又是一个关于键盘的文章)

而回复量最高的5篇文章则是:

  1. 火车上的萝莉 (你们这群绅士!变态!)
  2. GEB读书笔记之一——形式系统初步 (评论数只有第一名的一半,这个世界真扭曲)
  3. [跟风向]凉宫厨你伤不起 (你别说人家坑了4年,你草稿里的东西是不是也想坑4年?)
  4. God Is A Girl (小圆评论文,看了两遍后的脑热产物...)
  5. 写在J老板去袋鼠国的前面 (咦咦?这个怎么这么多评论...)

其他的比如说访问人中的浏览器使用,其中Chrome一骑当先,Firefox紧随其后,之后则是该死的IE,并且IE6占了IE总人数中的1/3,我是不是太仁慈只给了IE6一个警告啊,之后干脆直接重定向到Firefox下载页面好了...不过如果只看最近一个月的统计,Safari已经到了第二位,Firefox则掉到第四了。我靠,我家火狐哪里惹你们不高兴了!

浏览器统计

操作系统其实没什么可说的了,用屁股想都知道是谁多。另外可能由于我写了篇关于MAC的东西,所以Macintosh也有将近1/4的比例倒是比想象中的要高了不少。

操作系统统计

至于流量来源,有将近一半是来自于搜索,这对于一个个人Blog而言应该是理所应当的事吧。搜索的流量里有3/4来自于Google,1/4来自于Baidu,剩下的则是个位数的Bing。另外有将近1/4的流量是直接流量,有真么多人是直接用链接访问的?真是奇怪...最后还有18.5%的引荐流量,当然其中大部分来自于tuidao.me,因为我做了重定向,不过我觉得大多数人应该是被这个域名骗了而点进来的就是了...至于搜索对应的关键字,基本上就和最多访问文章对应,这个也挺正常的了。

流量来源统计

最后就是RSS的订阅用户,居然有24个人耶!没有想到居然有这么多人订阅,实在是太感谢大家了~

那么接下来的一年里,如果不出什么意外的话这个地方还会继续存在下去,风格也不会有什么变化,如果你们觉得更新的太慢,也可以向tontyoutoure催一催,其实他有几篇文章我也想看看写的是啥样呢...

最后感谢大家这一年间的支持,Blog也添加了+1按钮,没事干了也要多按一按喔~~