Kindle 4 Black入手

在K4Black和KWP之间摇摆了好几天后,选择了前者,虽然KWP足够时髦而且日版只比K4贵上150块,但我没有在夜里看书的习惯和需求,所以背光也就是浮云一块了。

其实用了三年多的Kindle2还好好的,为什么要买K4呢?简单总结就是一个削足适履的故事:我的腰包放不下K2,所以要买个更小的。

到手后发现屏幕总有一条线,而且还不是亮线或者暗线,是亮暗线!也就是说这条倒霉线总是显示错误的颜色:

kindle_screen_hline_1

kindle_screen_hline_2

还好卖家足够诚信,二话不说给我换了一台。

订了爱看豆的半年推送服务,毕竟用了这么久免费的,一杯咖啡支持一下。

最后说一下,Kindle绝对是我买过的电子产品甚至所有产品中性价比最高的。

 

之前的坑——图书借阅管理“书堆”

不准备埋这个坑了。

当时做这个“书堆”的起因是前年底想在部门内搞起图书分享活动,各人把自己的书贡献出来,通过一个web平台管理已有的图书,也能够轻松地进行图书流通轨迹的记录。图书信息通过豆瓣API拿到,图片也是直接引用的豆瓣。

后来就变成坑了,原因是发现除了我之外,没人有这个需求,连平时看书的都不多。这是第一版的界面:

shudui00

虽然没派上用场,但个人来说通过挖坑学了不少东西,尤其是Tornado平台,借着写书堆的机会学习了它的实现。还有nginx以及后续对其架构和代码的学习。去年底时候又拿出来改了改,增加了点功能(本机代理、全文检索、缓存……等),UI也修了修:

shudui01

shudui02

两个脑残级别设计 & 修改建议

结论先行:做出这两个设计的人绝对脑袋有洞!

脑残的车位设计

被搞成了下图的形式,蓝色是插在地里的砖头,用于规范每个车位的范围:

stupid_designs_1

看起来还不错,完美的平行四边形!直到你把车停进去:

stupid_designs_2

搞屁啊,要么车会露一截在车位外面的路上,要么就得轧到里面的砖头上去。后来可能是车主反映太过强烈,于是负责车位这块的人就给修改了一下,变成下面这样:

stupid_designs_3

车主们估计看到后都会被气笑了吧,光把两边的砖头给铲掉,车位的进深还是不变,也就是说只能停成上图中下面那样奇怪的姿势。况且车位之间的留空并不算大,再加上还有植物阻隔,很多车就这么无奈、小心地停放其他车和树木旁边。

其实无论从原始设计还是修改方案来讲,都非常简单,类似下图。

stupid_designs_4脑残的厕所门设计

这个算是切身体会。单位有几个厕所是下面这样的(灰色部分是墙体,细框是男厕的尿兜区域):

stupid_designs_5

也就是说女生上厕所时候要经过男厕的门。但问题就出在门上——虽然有两道,但开的方向都很微妙,像上图一样经过的话,视线几乎能覆盖所有尿兜,如上图红色区域所示。

这样的脑残设计搞得男女同事都很尴尬,那个破门关起来很不方便,关一半也得绕着走。

其实处理一下很简单,两个们只要有一个把合页安装在对侧就可以了:

stupid_designs_6

《弹丸论破/ダンガンロンパ 希望の学園と絶望の高校生》通关感想(无剧透)

上个月底发现这部之前因为经常看到拿来和“逆转”系列相提并论的作品《弹丸论破~希望学园和绝望高中生~》的汉化版完成了,终于免除了啃生肉的痛苦。此作进入了fami通的白金殿堂,想必质量不会差。

花了2周的通勤时间通关,先说结论,这绝对是佳作!从各个方面来说都很优秀的用心作品,尤其是里面对于其他作品的neta,很有趣且不做作,例如:
snap014

 

下面则分几方面聊聊通关后的感想。

故事

在不剧透的情况下很难对于故事本身作深入一些的评论。从进入游戏后就明确感觉到这是个“超级系”游戏——各种超高校级别的人物,围绕着他们叙述的故事也不会像游戏一开始叙述的“高校的日常生活”那么简单。总体来说是个让人满意的大纲,但出彩的地方并不多——要说比精神病级别神展开肯定不如5pb的科学妄想系列,要说比SF系设定,又会被凉宫系列这类碾压——中规中矩,差强人意。

值得一提的是伏笔,不多却精妙,算是不多的出彩点之一吧。最后说一点,游戏虽然互动、选择肢很多,但和逆转系列一样,是多分枝最终收束到主线的类型。应该不算剧透吧,像我一样不喜欢打多结局文字游戏的可以安心了。说得不太准确,实际上还是有差别的——体现在如果想二周目打更高难度级别时会用到各种技能,而技能获取需要和人物进行对话,具体在自由搜查时候选择谁来对话就看玩家需要了。

基本机能(搜查、对话、质证)

既然是拿来和逆转相比,那么最基本的机能——包括线索搜查、人物对话和物件指认以及质证都是最先要考察的。作为事件发生的地点而存在的希望之峰学园可以说在一开始就限定了人物所活动的范围,这一点和逆转系列中在不同地点之间奔来跑去不太相同。不过为了保持故事推进后的新鲜感,作为可活动区域的范围是逐步扩大的。探索的过程中,没有进入房间的情况下采用第一人称的方式在3D场景内漫游,对于路盲来说也有半透明覆盖地图可看,真是可喜可贺。

进入房间内的搜查和逆转系列一样,采用方向键控制光标的方式调查室内物品。游戏还贴心地设计了各种技能,其中之一就是可以探查到室内所有可调查线索,对于懒得扫屏的人来说是福音,从扫屏中能获得乐趣的玩家也可以放弃这个技能,这点设计很棒。

需要注意的是,游戏的设定是在某些关键点,必须调查完所有线索才能离开某个房间/去到其他房间。这样做大大降低了调查难度:当年玩逆转的时候不知道多少次因为少调查了一处物品或者少进行了一次人物互动而卡住进行不下去。也有些玩家抱怨这样做少了很多解决难题的快感。

下面说说对话和指证系统。对话的文字效果相当好,关键点会用黄字标注:

snap012

 

需要互动的部分则用紫色字体标出,并会提示玩家用Δ键进行互动(reaction)。不过关于这一点我是参不透为什么要这样设计?虽然增加了互动感,但所有互动关键字是推进情节而必须点击的且没有任何分歧点。也就是说所有紫字都得点,如果遇到一句话中有多个的情况那么需要重新问话多次才能收集完线索。

收集到的线索(言论弹丸,下节会提到)作为证据只能在开庭(学级裁判)时候使用,也就是说不能给人物出示证据换取新的线索。这又算是一个减少了互动点同时降低游戏难度的做法吧,萝卜白菜的设计。

审判(学级裁判)

作为加入了法庭元素的推理游戏作品,为了配合游戏背景,审判系统以“学级裁判”的形式出现。发生杀人案件后的幸存者都要出席并且互相指证和推理以便找出犯人。可以说此作的大部分创新点都集中在审判阶段,下面仔细说说。

创新机能(弹丸、论战、字谜、高潮推理)

此作主推的创新就是“言弹系统”。从字面意义上理解就没错了,所有的证据收集后都作为子弹(言弹)出现,需要在审判阶段对于其他人的发言“击发”。可以使用言弹的论战分为两种:

  • 无限讨论(ノンストップ議論):类似于逆转系列中听取证言的部分。其中可以用言弹的部分会着重标出。在击破发言的时候不仅需要选择正确的言弹,还需要用方向键控制准星——也就是说这游戏作为STG分类也没错啦!这一点也是毁誉参半的设计。个人感觉还挺有趣的。有的时候手头的证据不足,还需要用证言中的关键字吸收后作为临时言弹。加上时间限制,有的时候还真挺紧张的。
  • 机关枪论战(MTBマシンガントークバトル):这个……算是音乐游戏特性?反正又是一个莫名其妙的设计就是了,从看到的反馈来看不喜欢这个特性的也是多数。除了最终一击会涉及到一些推理之外,其他的部分就是随着节奏按几个不同的键,背景也是《音乐方块》和《DJMAX》那种花花绿绿的感觉。这个MTB只能解释为制作人很喜欢音乐游戏吧。

有的时候会出现需要推理关键字的部分,游戏内叫做闪耀字谜(閃きアナグラム)。重中之重则是称为高潮推理(クライマックス推理)的部分——这个我就不具体说形式了,因为实在太赞了,简直是让人觉得可以直接在评分中往上一个档次的设计。

人物设定

作为可操纵人物的(游戏内被吐槽过是“路人属性的)主角真的是没什么特点啊!倒是其余人物几乎把所有ACG作品内可以见到的人物属性都占满了。说话语气上,一些角色会带有特定的口癖。总体来说是很明确、很有趣的性格设计,日本的作品(小说、游戏)这一点真的值得国内同行学习,花上多少功夫在这上面,体现出来的差别就是好设计的话玩过一章游戏就可以对游戏内各个人物的性格了如指掌,而烂设计就像是一个人穿着不同的衣服在分饰多角。人物性格的差异并不能靠怪异的名字体现,而是要以行动、对话的特点为基础。

作为吉祥物反派人物存在的黑白熊存在感实在是太高了,我现在都想去买个玩偶回来收藏。

画面

游戏画面非常用心。游戏和CG内的背景、物品都是3D建模,人物则都是2D纸片风格——但不要小看人物画面,粗略一算人物的外形有4、5套不同风格!

基本的游戏内风格,2D纸片带有投影,也是见到最多的:

snap011

CG内,也是2D纸片但采用3D光影渲染:

snap013

除此之外,还有地图上和过场的8位机风格、有罪确定过程中的卡通大头照等。

人物的服装、背景颜色都非常鲜艳活泼,因为这游戏真是不辜负开头所说的“包含暴力手法和残酷表现”提示,如果整体风格再阴暗下来的话那真是一黑到底,缺少了希望和绝望的对峙感。

声音(SE、BGM、CV表现)

游戏的SE算是标准类型吧,因为文字游戏发展到现在,想要在这方面做出点什么创新实在太难了。配合上文提到的8位机人物风格,游戏内也有些部分采用了2A03音源风格。各种反馈很准确,挑不出毛病。

BGM和场景配合很好,也有整体感。留下印象最深的是无限讨论开场的BGM,紧张感和论战的刺激都体现出来了。

CV则是没得挑,全是大牌和一线CV,表现和人物契合度超高。需要提醒的是,如果没玩游戏就去看了CV表,则可能被某种意义上剧透。

推理相关

最后说说推理相关的部分。从游戏一开始的场景就能看出,此作是“暴风雪山庄”类型,也就是说随后会发生下述情况:

  • 无法逃离
  • 大量、连续杀人事件
  • 存活者之间的相互猜疑

为了消除作为主视角角色存在的玩家的不利条件,游戏还以罪魁祸首的形式设计了主持整个学院事件和秩序的“黑白熊”,以便整体事件情况可以在玩家掌控之下。

游戏内并没有特提到过“十诫”“二十守则”一类老掉牙但仍然被认为是古典推理精髓的规则,但仍然能体会到故事设计者是个古典推理迷,因为事件内都没有什么莫名奇妙的超能力来干扰视线,密室也不会出现密道这种犯规做法,感觉实在让人安心。至于故事整体设计是否遵循什么规则,我的看法是过分局限于旧有的规则是无法找到出路的。最近二三十年的推理作品,或者说广义Mystery作品的创新,都是在打破规则但又不招来读者反感的情况下创新的。

汉化

哦对,还要提一下弹丸论破吧&扑家汉化组的汉化版本,实在是太良心了。基本没发现什么文本错误。包括图片、互动环节的内容几乎都汉化了,涉及到中日语言差异的部分也都进行了特殊处理,甚至连高潮推理部分看起来几乎不可能汉化的部分都做了相当细致的修改,大赞。

用sscli学习.NET实现

在Blog上记录过两篇和.NET中GC机制相关的学习笔记(这里这里),但都是从概念上泛泛而谈,所学习、参考和引用的资料也都是从概念上进行介绍,并没有涉及到代码层面的实现。由于工作中也用不到,所以没有继续关注下去。

最近则是在学习.NET Framework Library时想要更清楚地了解.NET对象的内存布局,才知道其实微软早就在10年前发布了开源的CLI实现sscli(Shared Source Common Language Infrastructure),代号Rotor。,并且于06年发布了它的2.0版本。尽管在之后这个项目就没再更新(有消息说已经下线),而且微软后续对于.NET Framework的更新使得现在的实现肯定和之前的大相径庭,但对于这个层面的代码来说,光是sscli2.0就够一般的学习者喝一壶,其中VM、JIT Compiler以及更上层的GC机制等实现,也远远还没有到过时的程度。如果非要追最新的实现,可以参考.NET CF 4.0,它现在从CLR层次就是开源的。

对于sscli,关注它的人并不多,毕竟这是底层到直接涉及托管程序运行、管理的框架。平时大家只要知道怎么编写和载入Assembly、让托管程序或网页跑起来,满足老板/PM/甲方的需求就行了,至于个中具体流程,没有必要关心。甚至于说,只要通读《CLR via C#》后清楚.NET各种概念的实现和关系、知道IL一级的实现,再加上了解大部分运行在CLR上层的机制,就能应付90%以上的工作场景。但sscli还是有必要看看:

  • 解决一些疑难杂症,例如奇怪的内存泄露、CPU满载问题。
  • 更清楚地了解原理。就拿刚才提到的Object内存布局问题来说,利用概念层次的讲解文章《浅析.NET中的引用类型和值类型(上)》以及文中提到的《Pro .NET Performance》这本书,结合sscli具体实现才能做到有自信掌握看破这一话题的能力。
  • 满足自己的好奇心……不是开玩笑,例如GC实现中的各种算法、safe point、hijacking什么的,你说知道具体实现又有何用?单纯是想知道而已。尽管如此,我觉得这类“Under the hood”学习应该算是程序员的自我修养,也是进行“写程序的人”和“程序员”之鉴别的标准之一。

下载了sscli2.0的代码之后,会发现除了clr文件夹内的核心实现外,还有.net相关工具集,以及一部分(老的).NET Framework代码,例如HttpRequest、Xml等实现。这些代码中有最近正在学的正则表达式引擎的完整实现,算是意外收获。另外还附送一个完整的jscript引擎。具体内容可以看docs文档。

接着可以参考下面几篇文章进行build和debug:

当然,windbg是不能少的,用来调试具体的托管程序,结合dump出来的信息,查看对应的cli代码,可以从将知识学习从逻辑层面过渡到实际的物理层面。

有关sscli整体学习,我还是不推荐自己抠代码,毕竟类似gc_heap这种类,光声明就好几千行,难以下手。看看大牛们的文章,例如CLR探索系列这个教程。里面从最基本的windbg载入sos调试程序开始,一步步介绍CLR基本概念,从CLR初始化到载入托管exe和dll,再到托管PE格式、GC机制等等,脉络清晰,图文并茂。另外还有一些针对具体问题的blog,例如《深入了解CLR的加载过程》等,结合阅读会事半功倍。

其他一些学习资源:

成为底层达人,就可以像这些大牛一样玩一些有趣的游戏了,比如自己定义新的IL Opcode或者是用托管代码让CLR挂掉之类。至于能不能在物质层面转化这些知识,就要看个人造化,但“天道酬勤”总是没错的。