点点

1

难得少有的自拍

我的女朋友有熟识的画师,所以在之前有拜托她去给我们两个的猫都做了文化衫。这一件衣服,是两人经过筛选之后选定的,原图是下面这个。

点点

刚好最近北京降温降的很厉害,正好把这件衣服摸出来穿了。衣服材质还是不错的,很暖和,但点点是不在了。


点点严格意义上说不是我的第一个宠物,但确实是养的时间最久的宠物。它是2017年3月的生日,算到去世,大概活了两年半左右。

七月京阿尼的惨案发生以来就一直没能好好写东西,之前是把好多划水的时间拿来跟进京阿尼的新闻,甚至在八月底去了一趟京都。之后又赶上公司里面的工作有些忙碌,就一直搁置了下来。也许是违背了自己生活的惯常节奏,把太多太多的精力放在了各种各样的事情上,导致自己关注点点的精力也不那么充沛;又或许是夏秋交际天气变凉导致点点想要热热身子;再或许其实就是房子太小它想出去逛逛——总之就是这个傻猫在某个很平常的星期三的白天,把自己挂在了一个实在出不来的地方。

点点刚走的时候,隔壁发过一条微博,说“养猫如此,更何况养娃”。猫毕竟不比人,所有小孩子摸个窗台挂个窗户都是家常便饭,猫碰到自己感兴趣的狭小空间也就去探寻了。现在回想起来那个开开心心下班回家打开门发现屋子里安静的可怕的晚上,还是觉得第一反应是这个傻x把自己卡住了在等待解救,没想到它愣是把自己憋死了。

手机里至今没有清理它的照片,甚至在当晚我还拍下了它的惨状——安详这个词确实一点都没有办法套在它身上。过去了快要半个月我也基本能够面对自己这里没有猫的现实了。所以,也就终于鼓起勇气,摸进博客里面,时隔三个月更新一下博客。

这篇文章不是养猫踩坑指南,也不是传统意义上的忏悔书。我只是想在这里讲讲我和点点的故事, 聊表纪念。 逝去的做再多也回不来了。

2

我其实算是个比较胆小的人。比如说,我虽然很喜欢看视频,但我打心底里拒绝那些死人,暴力的东西。小时候脆弱到看《炊事班的故事》,有一集洪班长减肥,剧集最后班长缩在床上吃鸡腿,我就觉得非常残忍,甚至忍不住哭了的这种。

换句话说,其实我很厌烦不可控的东西。一个人(或者动物)被其他的外力强行控制不能做一些事情,然后运气不好的还会被其他人(比如我)看到了全程或者一部分过程。当事人怎么样我不知道,但我就会非常难受。

而死亡,其实就相当不可控。本来我的预期是,单元门的电梯一开门我站到家门口掏钥匙,这只叫点点的傻猫就会蹿到门口,隔着不怎么样的出租房防盗门大声开始叫唤。但屋子里面非常安静。

这种场景非常少见,但之前也出现过。猫是一种有自己生物钟的动物,但如果感冒了,或者之前非常疲惫的话,偶尔也会睡过头。比如有一年过年开车带它回家,那家伙因为害怕在后备箱的豪华别墅笼子里嚎了一路。本来过年路上车就多,八个小时的路程开了十几个小时,到家第一件事儿把它搬上楼,抱它到它熟悉的猫窝里,它钻进去倒头就睡过去了,怎么拍怎么叫都不醒(但还是在呼吸的)。整整睡了有24个小时它才摸出来开始吃饭上厕所舔毛。

于是我的第一反应其实是,是不是天气变凉导致它有点感冒。它在的时候,白天我和我隔壁会把卧室门关上,把它的房间和客厅留给它(大概一共有不到50平的样子)。但它显然对于保护领土兴趣不是那么大,只会选择几个固定的地方藏身。果然在之前它常睡的地方看到了它,但是却不太对,半个猫藏在窗外,没什么声响,我们过去拉开窗子叫它也没什么反应。随着窗帘拉开一股恶臭扑面而来——当时我们还没意识到这是什么。

我当时的反应是这傻猫把自己卡住动弹不得,然后憋时间久了失禁了。一瞬间甚至还产生了“唉又要修猫了,好贵”的想法。

然后我女朋友动作比较快,摸了一把点点。

“卧槽,点点怎么凉了。”

真特么凉了。面对疑似已经死掉的点点,我的第一反应是躲到了一旁。还是我隔壁胆子比较大,女朋友尝试没有把它解救下来之后,隔壁搬了凳子过去借力,用了好大的力气把点点从卡着的地方拽了下来。而我甚至不敢站在旁边看,隔壁说弄下来了的时候第一时间去厨房掏了黑色的大垃圾袋,把点点装了进去。

事后检查发现点点直到完全死掉都没有失禁,案发现场除了拼命挣扎破坏掉的墙和家具,它甚至连指甲都没留下。那令人不安的恶臭也只是死去多时加上夏日余温尚在产生的尸臭。

后面的剧情其实就跟点点没什么关系,只是单纯的人类在悼念了。我们一起出门,在小区的花园里找了个(自认为)没有人的角落,依山傍水,刨了一个深坑把它埋了。 因为厌恶,或者说害怕死亡。其实从把点点解救下来之后我就一直没有正面的看点点。刨坑的时候,点点就在旁边的塑料袋里,最后刨得很深,隔壁要把点点拿出来的时候,我就躲到一旁去坐着了。那时候我女朋友问我要不要跟点点说最后一句话,我也只是说了个“睡吧”。

这下点点可以安心睡了,再也不用因为晚上我没关门而睡在我床上,在我打算去睡的时候再被拎起来或者直接拍床赶出去了。

3

想了一下,可能点点跟《深夜食堂》不太兼容。具体来说,它在过它两个猫生的坎的时候,我都在看《深夜食堂》。

第一次是我们头一回领教到了宠物手术的价格。

点点出生的那会儿,我刚刚从西安到北京不到一年。也是刚刚稍稍安稳下来的时候。刚好隔壁也有想要养猫的计划,没有什么科学养猫经验的俩人在豆瓣上的宠物领养小组找了个猫主,从她那里花几百块钱接回来的。虽说是后院(自繁育)的猫,但猫主还是教会了点点认猫砂盆(虽然第一天晚上拉在我隔壁手机上了),并做了基本的免疫。

但点点不是个太省心的猫。半岁的时候,在客厅玩跳高。小不点的时候努力尝试跳到客厅嵌墙鞋柜的台子上,稍大一点就尝试通过入户门作为借力点往整个鞋柜的顶端跑。常在河边走,总要湿下鞋。攀爬能手总要面临怎么下来的问题,这个傻猫可能意识到爬上去是不对的,在我们出来看的时候匆忙往下跳,于是就把后腿给摔了。

当时大家也都没觉得是个事儿,就觉得它可能摔懵了,也没注意到它一瘸一拐的。但第二天早上就发现它没什么精神地缩在沙发上。偶尔下地就很明显的一瘸一拐了。晚上隔壁说带它去医院看看是不是伤到肉了,我就赴了《深夜食堂2》的国内首映。

华彩的电影院没信号,直到电影结束出场才看到隔壁发的一堆微信。一个电话打回去,隔壁说点点骨折了,不动手术可能会死,还说图发微信了让看一下。

后面就乏善可陈了,送去医院,取出人的医保来给猫治病这样。前前后后花了大几千和一个笼子还有若干假期,点点算是恢复了健康。

第二次就是点点的去世。它去世的前几天 Bilibili 刚买了深夜食堂,前一天的半夜,因为很久没有看的我,就去翻出了视频看剧场版和TV3。那天晚上我还拍照片发到群里:点点在跟我一起看剧。

那天晚上我是相信点点真的有陪我看《深夜食堂》的。平时点点会在我很晚没有睡,又没有赶他出去的时候,在我的床上缩成 Firefox Logo 那样的小熊猫圈的形状,而那天它是真的把脑袋放在被子上,然后在我后面盯着屏幕看。从我自己的角度来看,我是愿意解读为它跟我一样羡慕那个剧集里面的世界的。

谁tm就知道它真的就去二次元了。

就本心来说,我是很不愿意把《深夜食堂》和猫的困境联系到一起的。我大学的时候有一段特别难过的时间,是朋友推荐的《深夜食堂》剧集陪我度过了那段时间。也正是因为觉得这个企划对于自己意义非凡,我甚至还一直坚持在收它的漫画和BD。

而点点,无论是在之前孤身一人来北京的日子里,还是后来遇到同样喜欢猫,也在养猫的女朋友之后,都是我非常重要的精神伴侣。点点不是个脾气很好的猫(跟我们没有好好的从幼猫时代引导有关系),甚至也不算聪明(甚至从手里叼东西也是教了很久才教会的),但它确实是能够感受到人的情绪变化,并在你难过的时候静静的卧在你身上。一个人难过的时候可能并不是需要开解,只是陪伴就够了。

很多人都觉得,猫没了再养一只就是了。但其实精神陪伴的替代没有这么简单。你和你的宠物有之前惯常的生活习惯,这些记忆就算是重新克隆的点点也不会再有了。所以我也只是偶尔去女朋友家里撸一下她家的几只猫,但自己可能很难再养一只了。

同样的,也不希望《深夜食堂》完结。虽然漫画读到现在,觉得很多故事已经非常的枯燥了,但那个故事发生的舞台,却一直是内心的一块柔软的地方。

4

点点没了之后,我下班无论是开车还是骑摩托车都会绕小区一圈,然后隔三岔五的去埋点点地方稍微站一下。做这些并不是忏悔,更多的是给自己留下一下纪念。

现在的计划是开春在小区维护绿化的时候,带一些猫草(小麦)种子过去,种在它上面。点点还是很喜欢吃猫草的,死后让猫草带它更快离去,想必它也会喜欢吧。

无神论者,是不相信有什么返魂什么的。何况,这个把自己卡住的傻猫,还是早点成佛然后投胎吧。

然后,如果能记得曾经活过这两年多的话,更加小心,并且快乐地过下去吧。

睡吧,点点。

服务器再搬家

昨天刚好是7月13号,距离我把主服务器从 sakura vps 迁出刚好整一年。这一年里我使用的是论坛成员推荐的海星云服务器。虽然存在比较大的丢包情况,但在七牛 cdn 的加成下总体也还算比较平稳。但在上个月,因为备案失效而被迫从中国大陆地区迁出的口袋维基迁移到这台服务器的时候,每个月 1TB 的流量配额就显得特别捉襟见肘了。

VPS 6月流量总图

为此,我还特意把剩余的几个月加钱升级了高配,就为了多买一点流量。临近一年整,靠升配续命终归不是正道,于是服务器再次搬家就成为了一个议题。

这不,好容易有个闲暇时间,赶紧把家搬了。

这次选用的是 Wenjing network 旗下的 HostKVM 。看 IP 分配,感觉跟之前海星在同一个机房,但丢包情况得到了不少改善。按照老规矩,观察几天,看看情况。

2019中国(北京)国际游乐设施设备博览会游记

中国国际展览中心顺义新馆,周围很空旷

音乐游戏

很久没有正经关注过街机行业的发展了。今年以来,大部分国内街机音游玩家关注的一些新的街机被逐步的引入国内。如去年下半年引入的 KONAMI 的 Dancerush Stardom (国内称为 舞律炫步),和 Sound Voltex 初代(国内称为 音律炫动)。这两个海外非常流行的音乐机台都是由 广东世宇科技股份有限公司 代理的。另一方面,华立科技也不甘落后,拿下了 taito 的 Groove Coaster 4 的代理。

这并不意味着太多的国内街机音乐游戏的改善。以 Sound Voltex (SDVX)来说,国内引进的版本是初代,而在这之前国内玩家或盗版商群体的自制版本已经到了第四代甚至最新代。另一方面,微博谣传华立也顺路代理了 maimai DX (下一代 maimai)的消息也让很多人误会至今。

谣传。

新机台的引进当然是值得开心的事情,但这些并不能彻底解决海外也在面临的压榨游戏厅生存空间的问题:机台涨价,但单次游戏价格非常有限。在这个问题上,国内的代理商和街机厂商也做了一些新的尝试。

以 DanceRush Stardom (DRS) 为例,中国版的机台是内置 4G 数据连接的,机台本身的网络并不需要游戏厅的网络支持,网络的服务费用也是完全从玩家侧收取。

具体的方案在这篇文章:
https://blog.samnya.cn/dance-rush-stardom-in-china/

中有所描述,简单来说就是在玩家投币游戏(付费给游戏厅支付机台租赁费用)之外,结合每次额外付费和包月额外付费(直接在游戏厅范围之外,比如微信平台)的模式,来为玩家提供额外的游戏体验。而在港澳台和国外的大部分地区,游戏机的投币收入是游戏厅和厂家共同分享的,所以海外玩家在正常支付机台租赁费用后,即可直接体验这些额外的体验内容。

国内的这种模式综合考虑了国内网络环境复杂但 4G 覆盖相对较好,以及游戏厅不接受分成模式这两个问题,我觉得是一种很棒的创新。但是也要注意到,高昂的价格也让不少玩家特别是出勤频率没有那么高的中、轻度玩家感到非常不适。

除了内忧,其实还有外患。比如在 DRS 稼动但没有进入国内的大半年里(2018.3 ~ 2018.11),国内一些善于模仿海外成熟产品的厂家也开发了一些游戏方法几乎一致的仿制品,价格也更低廉一些。比如这次在展会上看到的某厂家(毕竟不光彩就不点名了)的荧光舞动。

某英文名S开头的番禺厂家的 DRS 仿制品

这个机台我也有进行体验,判定和延迟都有较大问题,而且动画也不太连贯。但是在硬件上,都采用了近似外观和红外判定框体+Intel Realsense识别模块+LED地板这样的配置。硬件上的缺陷我们可以靠花钱买到,但真正做出一个好玩的“游戏”,只能说国内厂家真的要考虑自己的战略了。

说真的,在这种大型展会上可以同时看到仿品和本家,两家相距不过几个摊位,真是特别的让人觉得讽刺。

其实中国厂商仿制日本街机也不是没有先例,在这里也想请番禺这家厂商看一下, IGS 的 Dance Base 是怎样对 konami 已经停产的 Dance Evolution Arcade 进行思考和再创作的。

掌握了方法论,才是制胜的关键。

体感游戏

街机(Arcade)当然不止包括大型电玩。很多娱乐场景,比如公园或游乐场,里面的大型器械,其实也算作街机的一部分。在这次展会上我也看到了很多体感类型的游戏,比如在小时候公园里见到的可以模仿你说话或者动作的设备的升级版。

这是一款由哈工文旅开发的“部落酋长”机器人。通过腹部嵌入的微软 Kinect 2.0摄像头,可以识别出你做的动作,并给出具体的反应。

微软已经官方宣布停止对 Kinect 进行支持接近两年的时间了( The Kinect sensor and Kinect Adapter ceased manufacturing in November 2017. Microsoft no longer carries inventory of the Kinect Adapter. Customers can check other retail stores for adapter availability. An offer for people with a Kinect sensor upgrading from Xbox One ended in March 2017.
),但依然有大批的设备使用 Kinect 来进行开发。这使得后续的维护和升级都会产生很大的麻烦。但如果这些厂商只是抱着干一票就走的目的来做这些的话,倒也不是不能理解为什么他们这么大批量的使用这种停产设备了。

VR游戏也算是体感的一种。让我觉得有点意思的是这个 VR 赛车。

刨除掉硬蹭热点的港珠澳大桥,这个设计还是很有意思的:玩家坐在一块荧幕前操作方向盘,看上去和普通的赛车游戏无异,但却可以通过方向盘控制前面沙盘下面的车辆进行实际赛车游戏。这种沉浸感和旁人的观赏感觉自然是比软件绘制出来的比赛场景更好。稍微查阅了一下资料,这套设备的底层是成熟的图传方案,总体来说给人的感受还是很新奇,很好玩的。

Amimon Connex Prosight HD 淘宝有售

而另外的一些 VR 街机就显得没那么厚道了。比如我在很多家前都见到的 Beat Saber Arcade。

其实 Beat Saber 这个 Steam 上的 VR 游戏根本没有街机版。国内的不少厂家用几个音响包裹上一块屏幕,然后加个投币器和 Steam 的简易包装,外面再不加保护地嵌入 HTC Vive 套件,就组成了一个售价高达几万元的“VR 街机”。这种街机其实完全不符合 Arcade 的定义。其中最重要的一点就是 Vive 作为一个家用设备,它的线材强度完全不能达到商用的标准,意味着就需要一个服务员在旁边时刻看守。

失去了无人值守的街机,会让成本进一步扩大。想了一下不光是中国,去年在日本看到的 VR Zone 也是有人值守的,到了晚上这样的休息时间,整个区域就只能歇业。这对于依靠长时间营业扩大人群覆盖进而提高收入的街机行业来说,是很可怕的事情,因为它带来了大量的设备空置时间。

灯光展

除去器械,NEC 也带来了他们的灯光展设备。恰逢故宫灯光秀过去没多久,之前微博上就因为故宫的灯光秀过于浮夸,没有内涵引起了巨大的讨论。 NEC 作为老牌的投影设备厂家,也带来了他们的灯光秀解决方案。

但我觉得,技术上暂时不足可以找买办,精神上不足的问题,可能需要进一步思考一下了。

总结

其实还是有一些细节能体现出北京并不是适合街机的地方的:比如华立科技的展位就几乎没有带什么机器来,又比如大部分的没有提到的摊贩甚至只是来卖掉自己库存机器的。但总体来说,还是有不少有意思的产品出现在了展会上。说心里话,我肯定是希望街机这个行业能越来越好。纵使大势所趋行业式微,我也希望两点和行业融合,能让这个行业走的更远更好。

太鼓达人(旧框体)电源详图

前文详情:https://woodu.me/waiwangkandaodetaigu-system256-neibudianlubantu/

时隔接近两年,我也算是终于把很久之前看的“ System256 只需要一个 ATX 电源即可启动”这句话给研究了一下。

这篇文章主要是展开介绍了一下太鼓达人(旧框体,以 11 亚洲版为例)的电源供应模块,包含详情图和说明书。

首先是详情图,从上一篇文章可以看到,太鼓旧框体的 System 256 主机下面是 JVS IO 和电源供应板,电源供应板有两枚。这两枚电路板一枚负责 +5V 供电,另一路负责 +12V 供电。

有一点不吐不快的是,我之前因为思维惯性,在电路板的 PCB 上找了很久的型号,但是今晚翻到说明书发现它的铭牌是在电容上。真是令人感到很尴尬。

但这个电源转换版真的是日本非常常见的型号,由 TDK-Lambda 提供。具体来说的话,是之前的 DENSEI-LAMBDA 制作的。

这个系列的电源板,输入电压是100v,所以中国版的太鼓达人也是需要内置 220v~ 转 110v~ 的变压器的。而型号命名规则,是 VS{功率}B-{输出电压},具体的定义和系列是下面的图,点击这里可以下载源 PDF文档(日本网络可能需要科学上网)

话不多说,上图吧。首先第一块是 +12V 输出板,型号是 VS75B-12 。

然后第二块是 +5V 输出板,型号是 VS50B-5 。

有点糊了……太晚了就这样吧)

以及最后,我尝试废物利用改造了 蜗牛星际 拆下来的 120w 电源(毕竟50w+75w=125w),来当作比较简单的256启动电源。

放一个 14 的启动视频好啦。大家晚安。

二〇一九年三月

发现已经三个月没有更新博客了。过去的这三个月发生了好多事情,让我意识到能够一直保持愤怒和好奇心是非常困难的事情。不知道是年龄大了还是事情真的太多,“精力有限”的感觉真的是一直在围绕着我。这种状态让我感到很不舒服,我需要尽快的调整一下自己了。

从15年误打误撞开始做 maimai 的魔改以来已经过去了很久,久到我甚至都很久没有放精力在这上面了。但是还是稍微做了些事情在上面。最近可以拿的出来的是我开始出售主机的替代硬盘。这也算是唯一的相对比较合法的东西。

SSD for Ringseries.点击这里可以去购买

而对于我个人来说,一月年前很忙,二月过年回来就搬家,三月份一抬头也已经过去了一大半儿了。人是越来越忙,但是碌碌无为的感觉却又越来越明晰。因为合租的家伙买了辆车,我家也基本达到了人均一辆车的水平。而我最近已经开始选择摩托车通勤了。如果算上摩托车的话人均大于一辆车,也可以说是北京高端通勤人群了。

我的通勤车,铃木 GSX250r

三月是我司的晋升季,虽然天天在完成日常工作之外还要去准备各种材料,但也不是完全埋在工作里面的。比如这个:https://post.smzdm.com/p/akmrxplk/ ,是我国一些伟大骗子制造的电子垃圾。虽说是电子垃圾,但是只要足够便宜,那就可以买回来玩一下。是的,我也跟风买了一台。昨晚拆了一下,把不能用的部分拆下来装了个台式机,准备找个机会处理掉,机箱打算上一套 itx 来跑 nas 。垃圾还没收全,那就先放几张图作为预告吧。

我收的这台成色相当不错,主板甚至一点灰尘都没有。已经跟其他的淘汰垃圾装好了。

嗯,希望讲这篇的文章不会拖太久~

新年快乐

首先肯定是跟风,平成年还有三个小时多一点就要过去了。不过当然更重要的还是,2019,新年好。

大家都是怎么过新年的呢?我的朋友圈里面有人在 C95 现场,有的人在家宅着看红白歌会,也有人出门去机厅出勤开开心心打着自己喜欢的机。而我,摸回家带了一大堆东西,现在窝在小学就坐着的老板台上写着这篇文章。

哈,打算明天摸上家里的风霜回帝都啦。

小时候对新年,特别是对游戏里的新年的印象,大部分是来自于牧场物语矿石镇的。新年的时候在电视里跟女神猜拳,然后风尘仆仆地去跟镇上的姑娘们还有其他村民聊天。现在想想真是理想中的生活了。但是人大了不能只有游戏,还是得努力的向前奔。

至于中二时候的那些想法?嗯,还记着呢。

翻了一下博客的草稿,有一篇在年初的时候写就的草稿。 2017 年真的是很丧,有一些不太成功的尝试,也有些不太顺利的工作。而印象中的今年刚转过年来的时候,真的是让我感觉要了命了。

娱乐圈 rapper 刚被封杀,然后政治上也有些让人觉得很难接受的调整。说着用爱发电的哔哩哔哩也上市了。

一年过去,“很糟糕”的感觉几乎变成常态了。工作消耗了绝大部分精力之后,剩下不多的时间里的大部分也被碎片化阅读给占用了。碎片化的阅读(微博、微信)给我带来了绝大部分新的知识和资讯,同时也让业余时间规划变得非常的不好。

但是,时代变化了,人总也要跟着变化。大狗老师从纸媒转到新媒体写作后,在机核上也连续发表了多篇文章。这里面我也试着讲了我的故事,谢谢大狗老师,也谢谢提供这些渠道的人。

碎片时间占用了大块,读书结果就非常惨不忍睹了。朋友圈的大佬有人去年阅读了 52 本书,而我,纸书只看过五本,其中有三本是漫画。说到漫画了就稍微介绍一下吧。从大学时候开始入坑的日剧《深夜食堂》,原作漫画也继续买齐了。今年的十一长假把很久没读的 18、19、20 三卷买回来读完了。

剩下的两本书是王小波的《爱你就像爱生命》 和 《传统相声集》 。公司小组内搞了读书分享会,但是一次之后就没能继续了。因为每个人分享自己的内容时间都很久,那天有事先走了,听说最后其他人十一点多才散会。希望明年能多一点时间读读书。

说到读书,我报名了公司的在职研究生项目,估计书更多的会是课本吧,哈哈。

其他的,更多的还是积淀。毕竟刚刚跳槽一年,碰上不好的大环境,真的是让人非常难受。希望明年,嗯,能稍微好一点点吧。

最后,还是要再说一次新年快乐!新的一年,请屏幕前的你多多指教。

喜提机核首页黄金位置

大狗老师的文章全部发出来了,在这里分享给大家。运气不错,(下)上还喜提机核首页黄金广告位一枚。

《太鼓之达人(上)》https://www.gcores.com/articles/103648

《太鼓之达人(中)》https://www.gcores.com/articles/103649

《太鼓之达人(下)》https://www.gcores.com/articles/103650

我是没有想到在大狗老师采访完 NTRPG 之后的下一个选题竟然关注到了街机音游玩家,特别是太鼓达人玩家。所以在大狗老师给我发邮件询问我是否有时间接受采访的时候,我的第一反应是非常惊讶,然后才是狂喜。

街机的东西,我在这个自己的博客上聊过很多。最后得出的结论确实是街机这个行业要完蛋了。街机本质上是付费租赁,这个事情可不是你购买一份游戏副本就可以永久保存的(当然现在很多所谓的在线游戏,你购买了副本也必须要交网络费用才能使用)。当这个行业萎缩到一定程度,或者是绝大部分玩家的兴趣转换之后,特定游戏的命运就不会特别好。

官方不作为(日本自己都在下坡路),代理商不给力,那所谓的“自救”就肯定会被有能力的玩家或是商人拿出来摆到台面上或者台面下来聊。有人拿它当营生,有的人只是拿来填补投入的时间或者金钱成本。每个人都有自己的想法,我们左右不了其他人,请大家就以不会被抓起来为标准吧。

其实跟大狗老师聊的比文章中体现的多得多,刨去到最后时间怂了拜托大狗老师弱化掉的魔改 maimai 部分之外,我们还稍微聊到了一些关于 PTB 和双子的信息。最近 PHP 7.0 都要被官方结束支持了,两个只支持 php5 的论坛应该怎么办才好呢?唉……

但是,只要有人看,就会一直开下去。蜡笔的留言板至今还有当年感情很深的会员来留言,大家的感情是不能被一个或者几个人来决定封印起来的。

看到一直很喜欢的大狗老师用自己很喜欢的笔触写下了自己的故事,这两天真的很不争气地在公司哭了好几次。真的谢谢大狗老师,愿意花时间把普通玩家的故事记录下来。

近况和Natsu.APP

自打 WordPress 升级编辑器为 Gutenberg 之后,我就一直懒着没有写新的文章。也加上最近确实比较忙。

先从最近的开始说吧。海底光缆好像又出事儿了。博客和论坛所在的这台东京服务器闪断的问题一直没有特别好的缓解,感觉明年或多或少肯定还要再折腾一下。

稍远一点,沙特在美帝又一次准备收拾我国的时候干了一件刷新大家下限的事情。无论当事人多不是人,这种玩法是违反所有人的共识的。当然,前提是大家的共识是同一件事。如果有人对这个有异议,那就可以不用聊了。

再稍远一点,大狗老师因为我的《番禺游记》通过邮件联系上了我。聊了很多,感谢大狗老师为我们这些普通的不能再普通的玩家留下了记录。更多的不能再说了,等待更多的新情报吧。

更远一点,是中秋节。潍坊的舞萌maimai 机台坏掉了。具体来说的话是机器里面的两台 LG 液晶显示器坏掉了——背光挂了。潍坊的这台机器是最早的一批精文世嘉机器,屏幕的型号是 LC420EUN 。如果在阅读文章的您也需要维修的话,欢迎您给我发邮件。我会尽我的可能来帮助您。

我只买了灯条,剩下的还是皇家的机修操作的。

再远一点,在公司内部遇到了不少感兴趣的同好,大家约定了在上周末进行了一次聚餐。喜欢大家。

(这个是不可能有图的www)

闲白的最后,是已经咕咕咕掉的8月本来要写的东西。潍坊的太鼓达人14街机坏掉了。

潍坊的 太鼓达人14
潍坊的太鼓达人14机器

这台机器是我用一些资源交换的手段换来的,因为是复制版所以质量就不是很好。委托在潍坊的朋友发了个快递过来。顺便看了一下 SYSTEM256 的复制。

想起来三年前跟老外聊天,老外表示2010年的时候就已经完全解密了 System256 。

买了适宜的编程器和储存芯片,却被 Block 在了自己不会拆装储存芯片。只有这种时候才有点后悔自己没有学相关的专业。

硬盘的复制倒是比较轻松,直接在命令行下用 dd 即可。不过失败的尝试是使用 TF-IDE 和 SATA-IDE 都失败了,看上去很难给 System256 使用新一点的储存设备了。

闲白完了,现在可以聊聊 natsu.app 了。我是个小城孩子,潍坊城不大,但是好在市面比较平和。所以虽然不像从小在农村长大的孩子那样有非常丰富的上山下水的经历,但是赶上了小城开发的我也在各种保留了7、80年代风貌的改造场地获得了自己的乐趣。

山东毕竟还算是北方(虽然近几年我才知道山东是算华东的),所以冬天蛮冷的一般也不怎么出去玩,最多就是在大院里玩玩雪。所以更多有意思的回忆还是夏天。最多最多的印象是一台金凤牌的电扇。从小用到大,好像现在还是可以继续使用的。

找到了类似型号的同牌子电扇说明书,但是我家那个稍微高级一点,可以上下摇摆,框子周围还有一圈彩色的灯。

但是,更多的还是怀念那种无所事事的夏天。不过这张想象中的图跟小时候的真实场景倒是没什么关系就是了。

更多的原因还是因为前段时间 Google 开放 .app 后缀注册,我顺手买到了 natsu.app 。虽然作为一个喜欢水君的家伙应该爱屋及乌地喜欢冬天,但是冬天更多的是带着人情味儿的回忆。夏天则是真的是没心没肺的记忆。于是就拜托 @FeiyaZ 鸭子老师帮我画了一下这张图。

构图是我想的,不过动笔完全是鸭子老师的。稍微拆了一下图层用 svg.js 做了一下动画,也算是某种程度上的纪念了吧。

如果以后开家店,就以这个为基础起名吧。毕竟最早想到的 hanabi (烟花)的名字,总有一种转瞬即逝的短命感,哈哈。

替换 Discuz! 6 的默认验证码

PTB 今年已经是第 11 年了,代码也是 10 年前的代码了。
这次又遇到什么问题了呢?就是我们的验证码机制被攻破了。
而且其实挺遗憾的,因为 PTB 最初的安全设计是严进宽出,即你注册需要有相当繁琐的步骤和漫长的验证期,之后几乎没有什么限制。

然后很尴尬,我们被撞库了。

就是前一分钟我们还在微信群里面谈笑风生一分钟之后刷出来发现对面那个人的 ID 在论坛灌了 1000 多个台湾找小姐这样。

然后我就按照之前双子的思路打开了验证码。

但是很尴尬, Discuz 6 有一个很严重的逻辑漏洞。这其实也不是逻辑漏洞,是当年大家对 ajax 的理解都不到位而已。

按照惯例,我们来读代码。

DISCUZ_ROOT./ajax.php:64


...
} elseif($action == 'checkseccode') {

	if($seclevel) {
		$tmp = $seccode;
	} else {
		$key = $seccodedata['type'] != 3 ? '' : $_DCACHE['settings']['authkey'].date('Ymd');
		list($tmp, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secc'], 'DECODE', $key));
		if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
			showmessage('submit_seccode_invalid');
		}
	}
	seccodeconvert($tmp);
	strtoupper($seccodeverify) != $tmp && showmessage('submit_seccode_invalid');
...

以及

DISCUZ_ROOT./include/global.func.php:888


function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
	if(empty($GLOBALS[$var])) {
		return FALSE;
	} else {
		global $_SERVER, $seclevel, $seccode, $seccodedata, $seccodeverify, $secanswer, $_DCACHE, $_DCOOKIE, $timestamp, $discuz_uid;
		if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && $GLOBALS['formhash'] == formhash() && (empty($_SERVER['HTTP_REFERER']) ||
			preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) {
        		if($seccodecheck) {
        			if(!$seclevel) {
        				$key = $seccodedata['type'] != 3 ? '' : $_DCACHE['settings']['authkey'].date('Ymd');
        				list($seccode, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secc'], 'DECODE', $key));
        				if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
        					showmessage('submit_seccode_invalid');
        				}
        				dsetcookie('secc', '', -86400 * 365);
        			} else {
        				$tmp = substr($seccode, 0, 1);
        			}
        			seccodeconvert($seccode);
        			if(strtoupper($seccodeverify) != $seccode) {
        				showmessage('submit_seccode_invalid');
        			}
				$seclevel && $seccode = random(6, 1) + $tmp * 1000000;
        		}
			if($secqaacheck) {
        			if(!$seclevel) {
        				list($seccode, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secq'], 'DECODE'));
        				if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
        					showmessage('submit_secqaa_invalid');
        				}
        				dsetcookie('secq', '', -86400 * 365);
        			}
        			require_once DISCUZ_ROOT.'./forumdata/cache/cache_secqaa.php';
        			if(md5($secanswer) != $_DCACHE['secqaa'][substr($seccode, 0, 1)]['answer']) {
        			        showmessage('submit_secqaa_invalid');
        			}
				$seclevel && $seccode = random(1, 1) * 1000000 + substr($seccode, -6);
        		}
			return TRUE;
		} else {
			showmessage('submit_invalid');
		}
	}
}

不难看出,其实对于验证码的过期,后台的判断只是基于时间(600秒)和是否是属于这个用户。
这其实是有很大的问题的,因为没有重试次数限制,对于不复杂的非中文验证码,一秒钟发出几千个请求cover掉所有数字和大部分字母组合是很轻松的事情。
因此干脆就把它从代码里面摘掉。

主要修改的是下面几个文件。因为现在就是这么做的,因此具体的细节就不展开说了。

include/javascript/post_editor.js
摘掉里面对原有验证码的前端校验

template/seccheck.htm
摘掉原有验证码的展示代码,同位置增加极验的前端代码

ajax.php
屏蔽掉前端校验接口
global.func.php
common.inc.php
摘掉原有验证码后端校验的内容部分,保留 Cookies 校验部分
增加极验后端校验代码

总结一下,其实 discuz 6 在代码设计上真的是完美无缺的。这么老的代码改起来也没有什么不适感(最起码比在公司里吃的那些 s**t 要好得多太多了)。基本就是搜“submit_seccode_invalid”就可以解决这次的问题。
总之双站都是靠极验老版本去 cover 机器人了,毕竟防御价值没那么高,就不去针对 geetest v3 做适配升级了。
屏蔽掉机器人就已经解决绝大部分问题了。