Gal Game 的价值

打算重推 Lovely Quest,不过这次推原版,不打汉化补丁。

虽然不少人表示不齿,但是我认为 gal game 是有价值的!

首先就是其画面。每个画师的风格是不一样的,笔下(数位板下)的各位妹子主人公和损友都有不同的风采。对于真心想要“本命”的人来说,让虚拟的妹子们陪伴自己的方法有一种就是将其描绘下来——这样就不会停留在欣赏已有的 CG 的基础上了,而是去尝试用自己的笔实现自己所想的(场景etc.)。对于有绘画基础的人来说信手拈来,但是还需要用心;否则就要去学习,去牢记各个细节、一颦一笑,这自然不是简单事。不管是哪一种,做下来都需要投入,获得的也必然是能力上的锻炼与对人的画面的理解。

然后是音乐。好的 gal game 必须要好的音乐作为配菜,虽然名为视觉小说(visual novel)但是若少了听觉上的传递作品会减色不少,也没这么容易调动玩家的情绪。举例来说,Key 社的作品以伤感为主,这里麻枝准折戸伸治两位的音乐起了不小的功劳。这些曲子单单是收录在各种播放器里听着就能给人不小的精神安慰,而要去进行二次创作,先要理解主题,所以需要学习乐理。进一步地,要制作高质量的作品,请学习作曲和编曲。

剧本……不熟。

其中的语言和对话可以成为语言学习入门材料。虽然其深度可能不是太深(古文级别),但是对语言语素与语法的解析提供了丰富的素材。有读音示范,还能回放,这已经和听力教材无异了。语素分离出来后,根据上下文和朗读停顿可以对句子进行解构,再根据语法常识进行试探与验证。一般而言,若是仔细研究一个 galgame 的话,至少会到 N4 了吧。(不过日语词汇的音读和训读和古文语法需要真正见到例子。)

背后的游戏引擎可以慢慢把玩。要想运行起这一款 gal game,资源是内容,引擎是载体。业内引擎种类多样,却依然被巨头统治:NScripter/ONScripterKiriKiri 2/KAG3 是中日同人的首选,Ren’Py 是欧美同人的首选(不过份额比较低),其余会社专用的或者小众的引擎可以见 crass 的支持列表(0.4.14 一共默认支持 170 个引擎,大部分是 gal game 引擎,颤抖吧)。要想做出好的引擎就要清楚其特点,输入的多样性、效果的复杂性、配合的多方性,还要考虑使用难度、内容保护、扩展性、多语言多系统支持、资源分配与释放、前后端分离(像 KiriKiri 2/KAG3 设计 TJS 作为底层的解释器与剧本 KAG 的中间脚本语言)等等。深究下去就讲不完了,准时的手表中的齿轮必定是令人惊叹的。

资源解包对逆向工程的训练。想汉化?除了懂语言、会改图外,还要知道如何破解软件。asmodean 大神是引擎破解的高手,我们看到的是分析之后写出的代码,但不难想到解析结构时的刀光剑影,令人大气不敢出。也有 RednaxelaFX 大神的技术文章,以及各种破解入门教程(翻了翻作者的 GitHub 账户,感到深深的恐惧,原来这位就是 Locale Emulator 的作者)、反向记录等等。实践,实践,实践。

好游戏可以促使人思考人生的价值。这是废话,但是要做得到才行。在翻 Steam 的游戏列表时突然看到了 planetarian星之梦),查了一下居然是 Key 社的作品,读了游戏的对白后体会到这并不是 Key 一贯的病亡类的悲情故事,某种说不出的东西。去年推 Lovely Quest 的时候说过每条线结尾会有一个“文末总结”的环节(挺鸡肋的),不过比惊世骇俗的君与彼女与彼女之恋要弱得多了。说实话这一段就是个伪命题,想人生什么时候不可以,这是一个独立于其他事物的抽象而已,任何时间任何场合都可以脱离所在的现实而思考。

至少,gal game 能分解到如何就有什么样的价值,就看看官能分解到多深了。


后记:

前天到昨天,11 小时 Half-Life 2 通关。虽然认识它已经有 6 年了,但是这是我第一次凭自己的实力通关,没用 buddanpc_createnpc_create_equipment 命令。(godimpulse 101 就算了,要设置 sv_cheat 1 的,就没法获得成就了。)33 个成就获得了 30 个。不过太坑了,为了“只用重力枪通过莱温霍姆”我差点就挂了,最后面对一屋顶的快速僵尸我急了,用了撬棍(crowbar)给了它们几下,结果居然没获得此成就!我真的一枪都没开啊!还有在沙地陷阱(Sandtrap)关卡中不碰沙地,最后的一段路我用两片铁片辗转腾挪了半小时终于过去了,期间是碰到了沙地,但是每次碰到我都直接读前面的存档,所以主存档里应该是没碰过的才对;但是还是没有这个成就。λ 定位器就算了,45 个只找到了不到 30 个,好难找……在水障碍区(Water Hazard)中有一个 λ 补给点,明显是个机关(而不是爬到上面),解开之后拿到补给却没有更新成就进度……

用 Notepad++ 编辑 YAML 配置文件和类 YAML 的 CSS 书写文件(抱歉,查了还是不知道叫什么)总是会遇到奇怪的问题。检查后发现 Notepad++ 会根据配置中的制表符等价空格数来自动在回车换行时生成制表符,而生成的缩进乍看上去与用空格缩进没什么不同,要逐个字符选定后才能看出。YAML 是只识别空格缩进的语言,用制表符缩进会导致配置文件编译失败。我只好手工调一下 Notepad++ 了。

分享到 评论

自己动手做 GC (1) - 续

正文中,我们用的是 std::vector<>。众所周知,std::vector<> 是 STL 中数组的类似物,适合顺序存储与访问,并不适合随机增删。所以,应该使用 std::list<>,因为哪个变量要被回收几乎是不可预知的。或者采用改进的方案:更新相对频繁的 Generation 0 和 Generation 1 采用 std::list<>,相对稳定的 Generation 2 采用 std::vector<>


各位应该注意到在 Windows 上运行 100 KB×10000 个单元的测试程序会带来严重的内存“泄露”问题。我以为是 STL 容器或者 new/delete 操作符的问题,就写了一个纯 C 的版本,但是现象依然如前。后来我发现,如果是 10000 KB×100 个,则会几乎完全回收。在分配内存总量不变的情况下,前者剩余 50 MB 左右,后者几乎为 0。

我们知道,在 CLR 中有一个大对象堆(Large Object Heap),回收策略与小对象堆不一样。

我们也知道,在使用 malloc() 分配内存时(Debug 配置),获得的指针指向的区域会被初始化(用于 CRT 内存检查),反倒是调用 HeapAlloc() 这个 API 的时候才会真正刚刚被操作系统分配内存。

根据现象与部分原理推测,既然 malloc()free() 都是 VC 运行时提供的,内部是不是也有一个不同的策略,让大于某个值的申请空间回收会更彻底呢?

上面的引文中有一句话,说 VCRT 10 下的 free() 操作后状态为:

The memory returned by the free is returned to OS, but it stays committed.

关于 Windows 的分页机制我不是很了解,大概只知道是一个 4 KB 对齐、用于常用/不常用内存交换的东西。页的状态对系统对页的操作有何影响,先查阅资料再说吧。

用 2000 个单元进行测试。在我的机器上(Windows 8.1 x64,12 GB)发现在每个单元 500 KB~600 KB 之间回收结果发生了一个突变。我根据 4 KB 对齐猜测阈值可能是 512 KB,但是最终测试的结果是在 507 KB~508 KB 之间。由于这个值可能受当前分配代码导致的页内容的排布影响而变化(例如,32 位下 GC_RECORD 不计编译器附加字段,占用空间 12 B;若是其他的大小,应该会影响空间的页对齐,从而使此值离开上面的区间),所以我认为没法获得一个准确值。

此外我还观察到,10000 KB×100 个和 100 KB×10000 个,实际占用的空间不同,后者比前者多大约 4 MB。这也证实了,编译器会添加附加信息(尽管可能不在代码所用的数据区中)。

分享到 评论

六花勇者 / 见到了索尔菊苣

在考前看了六花勇者的第一话。

个人觉得的一些亮点:

  • 开场战斗的大幅度镜头绕主角旋转。虽说背景省经费还是用了3D,但是三人的动作和张弛都很到位比 Fate/Stay Night 和 F/SN UBW 的 Lancer 和 Archer 第一场战斗的远景好来得有诚意得多。
  • 20:21,硬是用平移做出了镜头朝上旋转(roll,滚转)的效果。(索尔在分镜讲解的帖子里讲过初号机出场时的镜头向上平移配合透视做出的是拉远的效果,强调初号机的雄伟。我觉得这里也有点这个感觉,同时光的配合体现旋转。)
  • 08:10,探监部分。镜头运动(pan)多次的节奏感(切分)——这是我写下来(大约21:15)的时候想的。后来和索尔提起的时候,对话如下:

一般探监的镜头就是这样(动作指示:将柜子侧面当做栅栏,指从一个人的侧后方给一个人侧脸一个人正脸),就给个侧脸;如果要体现出焦急的氛围,就给里面的人一个正脸特写,说“快放我出去啊”。不管怎么样,镜头总是静止的,指向一个方向。但是这里要表现的是一个轻松的环境,公主和他说的都是很无聊的事情,魔王啊什么的,到后面你就可以看到公主在自己玩了。所以他就让镜头动起来。门洞那个,你看,那个门洞本来是可以穿过头的,然后……后来公主只是剩下一个胸在那里。你知道《魔王勇者》吗?

(我:知道,查了一下,是同一个……)

是同一个监督的作品。你看一下,这个监督很能玩(指的是对镜头的把控),很有意思的。

动画与漫画、小说不同的一点是,它是一个集体创作的成果。你加一点,他加一点,最后监督的意思可能只剩下那么一点了。看着动画,找出每个人都说了些什么,不觉得很有趣吗?也不是说只有监督出主意,如果其他人的想法比监督更好也说不定。

我在看着动画的时候就在脑海里尝试还原分镜,尝试去体会监督想表达的语言。但是总觉得我抓不到那样的高度,有一种似乎知道了想说什么但是又看不清的感觉。身边同学没有人像我这样看,所以我也没法找人说,还是要请菊苣指导。

看了第一话,我不禁去查了职员表。

  • 高橋丈夫——监督&分镜(其余有意思的:链接1链接2
  • 小磯沙矢香——ED作画监督、总作画监督、原画(第二组三个落单的第一个,索尔所谓的“突出一个人的方法”)
  • Passione,作画监督是从这里来的;看质量如果能保持的话,可以考虑在心目中和 P. A. Works 上到同一个级别
  • 大岛ミチル,部分歌单,原来这么多耳熟的作品……

刚写完上面这些内容的速记版,老天就给了一个机会。


上次与村长会面的时候,村长就说过:

你现在不用智能手机,就等于关上了一扇与外界交流的窗。

今天看了六花勇者的第一话,打开手机QQ看群里新消息的时候,在历史消息中发现一条索尔菊苣说“我现在住的屋是7系”。瞬间想到,最近搬来我们班206的两位(4人间,有2人转出去了),就是上次我敲门后说“那两位不在,这两位是怎么回事”的两位,索尔是不是在里面?敲门,直接抛出一句:“你们中……谁是索尔?”两人愣了一下,然后其中一位缓缓举起手:“我就是。”

何等的幸运啊!因为要达成这种情况下见到索尔的结果,需要:

  1. 24系延期的同学要住在我们楼;
  2. 索尔要说出现在的位置;
  3. 我要在索尔说完话不久的时间内,去看群消息记录;
  4. 最重要的,是那记录肯定在99条之前,计算机上是无法查看的(“更多消息请在消息记录中查阅”),而手机QQ没有这个限制。

最后一条,如果没有手机,就看不到这条消息了,恐怕就没有今天见到索尔的奇遇了。所以多亏了村长的建议!


与索尔见面的时候从六花勇者的一个cut开始,到哲学到考试到动漫产品再回到镜头。在一个小时(大约21:25开始)的时间里,聊了许多东西。和索尔广博的阅历相比,我就是个渣渣。要说对分镜的理解,索尔看着一本《银河美少年》分镜表中某位作画监督(抱歉又忘了名字)负责的变身分镜都会变得十分兴奋;但是我只能看出一个过程,大致想到是怎么样的画面,还没达到体会索尔所关注的“变身时候的精妙面部细节”的高度。(看细节,如果动画师没出错的话,我现在最多也只能看静帧。)我的水平差得远了!惭愧惭愧。

但是至少,知道下学年索尔菊苣会住在一个相对近的地方(4楼),如果有机会的话,可以分享对镜头的理解,至少可能可以请菊苣帮我在这方面入门一下。至少不会没人聊这个了。

索尔听多了能认出林原惠美……我倒是听了一首歌后才知道 Lost Universe,再去查角色表才知道原来她配过绫波丽和灰原哀……


最后感叹一下,刚写完感慨就收到了上天的回应,这是何等的奇迹!

分享到 评论

百度登录 - 续4

进展:可以获得文件流了。而且根据测试,这个 URL 有相当长的保质期(真的是8小时吗?还没测试过),至少用 Fiddler Composer 测试的时候历史记录还能派上用场。

要点:

经过两次跳转。第一次:d.pcs.baidu.com->xxx.yyy.baidupcs.com;第二次:xxx.yyy.baidupcs.com->xxx.yyy.baidupcs.com,查询参数(query arguments)不同。两次都是302跳转。

由于浏览器中只见到一个302和一个200,所以我以为只有一次跳转。第二次我就忙不迭去查看 Content-Disposition 去了。但是,获得的是403、505和少量的 nullContent-Typetext/html。通过查看记录,仅有的成功实例也是302。但是,当我重复请求(将历史项直接拖到 Composer 里执行)时却能得到200。开始我百思不得其解,将成功和失败的请求头复制到 Notepad++ 里交换看,终于看出请求的URL是不同的……于是我领悟到原来第二次还是302,要再手工跳转一次。果然,在第二次跳转后,得到了文件流。

我在建这个博客的时候看到过一篇文章,有人问 GitHub 博客下的 CNAME 记录是怎么工作的(例如,本博客到 http://gridscience.github.io/),这些请求似乎都到了每个 CDN 服务器上(一些固定的 IP),这些服务器是怎么识别应该访问什么网站的?当时有人给出了解答,说是看请求头里的 Host 字段。我想着,既然本地 DNS 缓存将所有的域都解析到了同一个 IPv6 地址,对方很可能也是通过 Host 来识别的吧!

试验的结果是,不管是 HttpWebRequest 还是 Fiddler,都不把手工设置的 Host 当回事……而且,对方也并未区分请求哪个 CDN,直接使用 IPv6 地址、自动设置的 Host 就可以了。

分享到 评论

百度登录 - 续3

进展:可以批量获取下载链接了。递归就是眨眼间的事。

yunData.sign2()commonService.base64Encode() 就基本上照抄了,除了结合 .NET 的做了一点点优化。话说本来看到第二步的函数名称是 base64Encode,就直接用了 System.Convert.ToBase64String()。结果出来的和百度的标准大相径庭,遂照抄了百度的代码。(还没深刻理解,同时还不明白为什么会出现这样的不同。即使是 System.Text.Encoding.UTF8.GetBytes() 也不应该影响,毕竟获得的源就是单字节的字符串。)输入两组数据测试通过。

在获取 DLink 列表的时候,两个错误值:

  • 2 表示 fsid 列表为空。
  • 113(似乎是这个数值,忘了保存结果了)表示签名错误。

在获取真实地址的时候要经过一次从 http://d.pcs.baidu.com/ 来的302跳转。之前按理说获得了指向 http://d.pcs.baidu.com/ 的链接,直接发起 GET 请求不就好了?但是我得到的一直是403。我以为是普通情况(手工下载也不时会遇到403),用了一个循环,结果每次都是403;又以为是访问过于频繁,延迟了一下还是403。于是仔细看浏览器发起的请求并在 Fiddler 中伪造之,是可以正常下载的。那么,问题一定就出在请求头上。是哪里伪装得不对呢?

最后尝试的结果是 cookie 中的一项 pcsett,有正确的参数才能避免403。现在好了,这个 cookie 是在哪里设置的呢?

由于在浏览器中无法查看所有的 cookie 及其有效域,所以只好继续借助 Fiddler。用 IE 设置 Fiddler 为代理,从零开始访问百度盘,实际开始一次下载流程;接着过滤掉 Fiddler 中明显无用的项(普通的几个域在调试的时候看过,没有有效项)。最后发现是第一次访问 pcs.baidu.com 的一个 RESTful API 的时候,服务器返回了一个 Set-Cookie 标头,设置的正是 pcsett

补上这一步,终于能避开403,拥抱302了。

接下来就准备做 Host 映射了,一个粗糙的原型就要出来了。我觉得。


我正在做的软件是要告诉他们:我本来就是做技术的,我最有力的武器不是被称作“静候圣音”的东西,而是技术。如果各位官老爷继续闭门不见的话,我会用优雅的方式开另一条路。


7月9日:

脑中灵光一闪,突然想到了一个解释 Base64 编码失败的问题。应该就是 System.Text.Encoding.UTF8.GetBytes() 上。查阅 UTF-8 编码规范得,有些字符起到了“分隔”所属区域的作用,例如分隔单字节字符、双字节字符和三字节字符。想想如果恰好碰到了某个这样的字符,那么我这个所有组成串的字符都是单字节字符的字符串就会被识别为一个夹杂着多种长度字符的字符串,假如在 UTF-8 编码表里真的有对应字符的话。

那么,就应该要让程序知道,我使用的是一个单字节字符组成的字符串。所以我想到了 HTTP 所使用的常用单字节编码:ISO-8859-1(又名 Latin-1)。调用代码如下。

var latin1Encoding = Encoding.GetEncoding("ISO-8859-1");
// sign0 是经过 yunData.sign2() 函数处理的字符串
var sign = Convert.ToBase64String(latin1Encoding.GetBytes(sign0));
// 对比:之前所使用的是
// var sign = Convert.ToBase64String(Encoding.UTF8.GetBytes(sign0));

然后查看 sign 的值,与所需的是一致的。这证实了我的猜测。

分享到 评论

百度登录 - 续2

进展:一个简单的百度盘文件浏览工具做好了。浏览只是一个框架,等着往里面填更多东西。

Java 那边要各种持久化框架的东西,.NET 挥挥手一个 DataContract 加上对应的 serializer 就解决了序列化反序列化——壮哉我大 .NET!

明天要考经济管理,赶紧复习……

上学期不是也做过一边考试一边写 KeiSystem 的事情么,二者同时完成。只不过……

分享到 评论

百度登录 - 续

百度的登录,token的获取和参数表的POST参数都应该用上一篇文章中提到的其中一位大神的表。关键是 tpl 值为 ik 而不是 mn——确切说,和请求的URL中的 tpl 一致。tt 可以设置为 0 之类的,服务器似乎没有做时间戳校验。apiverv3 的时候返回的脚本和其他时候(不设置、为空、设置为其他)的不一样,不过结构是一致的。(最明显的是返回的 err_no 在URL中的位置。)

其他的结论:

  • 返回的 err_no=257 表示的是发送参数错误(general error),err_no=4 表示账户/密码组合错误。
  • BDSVRTM 状态变化(从零到非零)发生在POST之后。

获得了 BDUSS 之后(作用域为 baidu.com),就可以畅通无阻了。测试了百度的一些需要登录的页面 API,可以工作。


今晚天空只有几片薄薄的云,可以说是大晴天。月亮接近全圆。林雁戈到了北京,瑞福晚上打电话叫我过去聚一下,来的有瑞福、林雁戈(+妹子)、黄秋实、张光远、叶新一、蔡德安、张子健。我借同学的自行车过去半小时,他们已经解决了,所以最后只吃了半碗粉+两碗饭。不过重点在后面的三国杀,八点到十点打了3局。来自302的有4个(我、瑞福、林雁戈、叶新一),所以略有久违的宿舍内部三国杀的感觉。

分享到 评论

因 cookie 的 expires 导致的坑爹事

记录因为 cookie 中 expires 设置项类似千年虫的问题导致的坑爹事。

查看更多

分享到 评论

搭建一个内网邮件转发服务器

在 Raspberry Pi 上用 Postfix 搭建内网邮件转发服务器

查看更多

分享到 评论

技术之路

将手机里记的快速记下来。

由于之前没有这个习惯,所以我只知道自己某个时间接触了某种技术,然后现在已经懂得使用(或原理)了,但不知道是什么时候,也不知道为什么。

大一

  • 某个失败的电荷放大器+声卡(用作 A/D 转换)+自己写的信号分析程序的组合体。后来学了模拟电路后发现,在给定的信号强度下,用声卡作 D/A 不现实。

大二

  • 弹幕君:首次从 WinForms 过渡到 WPF,像当年从 VB 到 VB .NET。同时接触正则表达式。

大三暑假

  • EarlySpring,自己学习 XNA 框架(继尝试使用 SDL 并做出另一个原型之后)。
  • Veronica.TaskHost,稍微深入 WPF,学习 style 和 binding,理解数据驱动。

大三上学期

  • 在未来花园利用 Discuz 特性嵌入 FLV。
  • 学习 MSIL(CIL)。
  • 尝试脚本解释器/互操作/编译、
  • 数据库选修课作业写的 μ3D 三维模型数据库,使用了数据绑定和 XAML 三维展示;可以直接手写 XAML 了。

大三上学期接近期末

  • FGBT-Bangumi Assistant,从 GreaseMonkey(UserScript)进入 JavaScript 的世界,学到了跨域访问相关,演练 DOM 操作、元编程。
  • Beanstalk,演练 .NET Framework 4.5 的异步执行语法糖,理解异步通信模型。
  • 开了 GitHub.io 博客,学习 Hexo 和少量的 CSS。

后花园时代(考试中)

大三下学期

  • 网站前后端、运维:PHP、JavaScript、CSS、MySQL、Apache、浏览器兼容(头疼);向管理部门申报(创立所需条件)。
  • 在上一项其中,还尝试了Postfix
  • 5月27日-6月11日,感动北航技术总监(被扣上了这个帽子),除了自己制作开场视频外还指导其余的制作剪辑材料选用与渲染参数。
  • 6月中,尝试 NodeJS、nw.jsTypeScript 开发。
  • 尝试制作垃圾回收器
分享到 评论

杂论

有一个故事,大概是这样的:

有一个商人背了一口袋钱,一个小贩背了一口袋烧饼。因为遇到洪水,同时被困在一个小岛上。

商人饿了,找到小贩说:“我用五块钱买一个烧饼。”那小贩平时一块钱一个的烧饼,现在卖到五元?小贩小眼珠一转,说:“不行,十元一个。”商人没有还价,买了一个。

第二天商人又饿了,又找小贩买烧饼。小贩说:“我不卖了。要么我这一口袋烧饼换你一口袋钱!”商人愣了一下,看看四周滚滚而去的洪水,接受了小贩的建议。

第三天,第四天,小贩饿了,这次是小贩找商人去买烧饼。商人说:“五十元一个。而且你每天只能买一个!”小贩没有办法,为了活命也只能接受。

商人和小贩,在小岛上以烧饼度日。终于等到洪水退去了,烧饼也吃完了,钱重新全部回到了商人手中。

在这里提出问题。输入:两个人、一袋钱、一袋烧饼;输出:两个人、一袋钱。这个微型经济系统中消失的烧饼去哪里了?

我将在考期后给出我的回答。


又是一个故事。

有三顶红帽子和两顶白帽子,将其中的三顶帽子分别戴在A,B,C三人头上,这三人每人都只能看见其他两人头上的帽子,但看不见自己头上的帽子,并且也不知道剩余的两顶帽子的颜色。

问A:“你戴什么颜色的帽子?”

A说:“不知道。”

问B同样的问题,B想了想也说不知道。

最后问C。 C回答说:“我知道我戴的帽子是什么颜色了。”当然,C是在听了A,B的回答之后作出回答的。

信息从哪里产生的?

我将在考期后给出我的回答。

分享到 评论

村长

星期四村长来录节目(其实他的主要目的是 IDL+MS 吧!),晚上跑到亦庄去见了一面。

晚饭的时候就讨论到了我坚持不用智能机的事情。于是我把上一篇杂论中最后“数据淹没人类”的论点摆了出来。

  • 村长:人不是DNA数据吗?人与你说的那些数据有什么不同吗?
  • 我:人,或者说生物这种“数据”和普通的数据不一样。我们这种数据可以杂交(笑),而且可以主动产生新的数据。你看计算机里有数据自己产生数据的例子吗?(注:实在很难从数据的角度看人性,所以我没法提。)
  • 村长:一开始的时候不也是大分子碰撞成RNA吗。计算机可以看成硅基生物,这样一来是碳基生物造出了硅基生物。
  • 我:你的意思是出现了第三种形态。
  • 村长:对。

结果到这里,还是被绕进去了,不了了之。我的初始论点可是“人和普通数据不一样”啊。

将人看成数据载体的话,我无法认同普通的数据能像我们这种“数据载体”一样活动。尽管从一个方面想(模拟世界假设),如果我们如我们所创造的东西一样是活在一个有既定规则(自然定律)的模拟世界中(The Thirteenth Floor),那么确实是没什么区别。只不过是无法验证的。越想越能推断出对人类不利的结论……不过在终极的真理(若有)之前,任何遵从于其的有什么不同呢?没有吧。退出这个假设,单从表现上来观测,生物与非生物在时间线上的活动是不一样的。

于是村长又问道:

你不是想深入实质吗?为什么又要依赖于表现呢?

于是我被问倒了。

村长也说过,根据康托尔第一不完备性定理,我之前的问题是我自己无法回答的。真糟糕。


我的表达能力,不是文字的表达,而是人与人之间面对面的交流能力,需要提高。

昨天的展示会上,我内功深厚(串口通信、电路设计仿真、抓包与包结构设计都做过),完成那个单片机项目不费吹灰之力(除了实测一个运行参数,然后将其写入代码)。相比之下,那些同学还在纠结语言基础,以及问助教才知道有一种包装数据的方法是在参数后加结束符,然后欣喜地四处传播这个“发现”。我自己深知,对着一群还在这样水平挣扎的同学与总是教这样的同学的老师去讲我的代码里的结构设计、扩展接口设计、交互设计、稳定性设计,怕是像给他们讲天书一般,而且他们也因体会不到其价值而嗤之以鼻。在构思、制作上,我实力足以碾压这群人。

但是表达上,我是被碾压的一方。我明知思想水平的差距,还是找不到一种适合他们的方式讲给他们听(如果有未来来的人将时间机器的原理告诉我,我也会听不懂的吧)。我在做的时候,要写的东西随着积累的经验,都是直接浮现在脑海里的,根本用不着想——要逼着我说我是费了多大的劲去想,我实在说不出。所以现场我总是说:“你看,所有的东西,包含注释(还是为了演示才添加的)都在上面,很好懂、很简单的。”语言苍白无力。

相比之下,有同学录制了视频,演示在不同输入下是怎么工作的。在这个演示下,我只能告诉他们,如果输入了错误的参数,我写的程序会拒绝执行,而且在数码管上显示“E”带错误号——是的, 我描述了出来,但是没有图像、视频那么直观。我做了很多,也比他们超前了很多;但是在一个普通观众看起来,他们是更有趣、更“新”的吧。

村长在吃饭的时候也给我看过他的小组的眼动仪测试视频。而我在讲一个精彩的ED的时候只好用语言去描述“背景有些许的变化……人物只有5个动画帧,但是因为……所以在减少了成本的同时还表现出了很好的效果”。如果我听了我说的话,我就想象不出来那是什么一样的东西。换言之,留下深刻印象也是不可能的事。

带着智能手机不是说玩,而是能随时随地展示自己的东西——你看,你又关闭了这扇窗口。

分享到 评论

自己动手做 GC (1)

自己动手,丰衣足食——垃圾回收 Part 1

查看更多

分享到 评论

多样性,杂感

面对着多样性

查看更多

分享到 评论

misc

http://www.bilibili.com/video/av256955/index_122.html

开场马利克说了一通话,从有人高呼“姐弟出本子”开始,大家进入本子讨论状态。

大约05:32的弹幕:

  • 前面出本子的别傻了,游基王的本子我还真没见过除BL本以外的

大约05:40开始的地方弹幕如下:

  • 本子最多的是黑魔导女孩
  • 黑魔导女孩啊||||摸不到怎么avi?
  • 转成rmvb就好了
  • 虚拟游戏里就摸得到啊

http://www.bilibili.com/video/av256955/index_131.html

槽点多多


游戏王218、219似乎出现了伊迪安齐射!

在索尔菊苣的《白箱》解说中见识到了一点点。如下图,展现了伊迪安齐射的一部分:

イデオン

游戏王中,破坏龙刚朵拉的攻击:

ガンドラ

分享到 评论

又是一些想到的东西

在开始测试的时候,lan姐的账户名称被抢注了。我之所以如此断定,是因为我在漫版的版头上加了一句“版权:lansure”。这本是正确的,而且我认为应该注明非我做的东西——但是可能就是有人看到这个账户名称,也许知道历史吧,一看可用就注册了。lan姐可能不在意,她肯定明白为已经定了的事实气愤或失望也没用,但是我总是在在意这件事。也许只是像当时只有我一个人,在许多同学的支持下,险胜另一位对手,获得了最后一个最佳指挥名额——可是那些陪我流汗的组员却没有得到什么——明明我们训练得比那些只在临场前才准备合的组要刻苦得多,我的组员们理应比他们得到更多——可是没有。

分享到 评论

Keil μVision 5 (MDK 5) + STM32——一场惊魂

自己的脑袋自己保住:独立解决一次单片机开发板异常的过程。

查看更多

分享到 评论

又是一些想到的东西

何为存在?我们的生存有什么意义?

有人肯定会劝说我:扬名立业,让世界记住你。

我要反问:你所谓的“世界”也不过是人类一个小小的种群而已。对于宇宙而言,并没有所谓“记住”一说,而是某实体对某实体在某个时间点产生了影响,没有人类的主观性。既然只是限于人类内部,你这个“记住”又有什么意义呢?难道不是人类的自大而已?

反驳:你隐含地说没有意义,但你不是活着吗?你为什么还活着?

回答:我不知道我为什么要以这种状态活着,我目前的行为模式不过是借鉴了所知道的人类普通个体的惯常行为模式,有某种继承自动物的生存本能而已。也许这种存在状态能给我一个机会(但未必是最好的机会)来解答我为什么存在这个问题吧。

问:你所想的最好的机会是什么?

答:超出人类的精神,以最接近世界本身的运作方式来观察、解析(不是分析,分析还带有主观)世界的运作的一种状态。

若要将这个问题问人的话,身边普通小青年看到第一层就要笑了吧。他们根本无法理解自己在宇宙中的位置,思想还只是停留在出名挣钱上吧。并不期望这些家伙在到人生尽头之前能多好地想过上面的问题。


昨天洗澡回来路上想到去向还未定,再想到暑假可能不回家,在家的时间越来越少,若工作了也将如此。突然间像被击中了一样就体会、理解到了父母在家的孤独感。回到宿舍之后刚坐下来就接到老爸的电话。


只要不严重阻碍的使用,用户就不会去多考虑什么选择。这就是为什么360搜索会排在第3,因为借着某卫士用户群推一款绑定主页的浏览器。一定要说的话,微软不就做过这样的事情?

因此只要不出大问题,这反而会给出用于完善细节的缓冲期,以及产品“越做越好”的“口碑”。

分享到 评论

为什么中国的动漫产业落后 - 补充

为什么中国的动漫产业落后 - 补充

查看更多

分享到 评论

为什么中国的动漫产业落后

为什么中国的动漫产业落后

查看更多

分享到 评论