Recent Posts

's avatar

爱发电赞助名单生成脚本

自从bmclapi赞助开始用起爱发电,就一直在手动维护赞助名单,随着名单越来越长,每次维护名单的时候都要手动添加然后人肉去重。问了一下官方,也暂时没有打算做webhook。
每次手动维护名单实在好烦,于是花几分钟研究了一下赞助名单接口,又花了几分钟糊了个脚本,来自动生成赞助名单的markdown。
以下代码只要打开爱发电的网页,登陆后打开开发者工具,粘贴执行即可得到对应的赞助名单

!async f

...
's avatar

Todoist,让你的生活井井有条

很久以前我就在寻找一款靠谱的todo list应用,但是一直没有找到一个彻底满意的。
在此之前也陆陆续续跟朋友一起用过Habitica。但是Habitica有一些缺陷,以至于一直无法让我把它作为一款生产力工具对待。比如

  • 虽然有移动端APP,但是对弱网支持不好,没网的时候连想看下有些什么事情都不行。
  • 没有定时提醒
  • 分组功能太鸡肋
  • 定期任务不能改日再做

中间也考虑过自己动手丰衣足食,但是自己搞还要

...
's avatar

socket.io的一个“坑”

0x00 背景

厂里有一个推送服务,负责网页推送和数据同步,基于socket.io。
网页推送通过rabbitmq监听队列实现组织成员变化和对应socket.io房间用户的同步。

0x01 表现

新建一个组织后,立即邀请一个用户B,则当前用户A(不是被邀请的,是邀请别人的)用户也会收到目标用户的邀请通知推送,但是由于A并不是这个通知的接收人,所以点开会丢出403。
正常情况下用户A根本不应该收到这

...
's avatar

Oneindex Bottle Edition

(๑•̀ㅂ•́)و✧ Original Program by Donwa. ## 缘由 之前听网友介绍了入了one的大门,结果鼓捣oneindex时我的历程很不顺利,一会儿文件列表出不来,一会儿jwt token又过期了... 于是我修改了一下,**缓解了**部分问题.稍后可能会加入更多功能. ## 项目地址
's avatar

☁️ 云上のMinecraft.

![](https://api.xbottle.top/i.php?u=https://ww2.sinaimg.cn/large/ed039e1fgy1fzvoozfnkwj20m808c77v) * Example Video: https://storage.xbottle.top/v/CloudMinecraft.mp4 ## 简述 这是一个基于腾讯云API的简单**低成本开服方案**的实现,起初的想法来自于Best33:https://best33.com/179.moe 另外在这个项目产生前一天,Ghosin已经创造了对接了机器人的PYPython版:https://github.com/Ghosin/dejavu 我在用PHP写的时候确实遇到了一些麻烦,感谢众人的指导. 实现原理要说难也不难.首先是前台(可以对接机器人)调用**控制服务器**上的CloudMC API(main.php),由此发出请求通过QcloudAPI创建 云服务器(按量计费)并通过php的扩展连接ssh,通过sftp传输**打包存档**并进行解压、部署,运行Minecraft服务器.达到条件关闭服务器的时候, 远程向screen发送指令停止MC服务器并进行**打包**传回**控制服务器**.控制服务器最后释放掉该按量付费服务器。 其中的文件传输全靠同一区域的内网传输(用外网怕不是吃一堆流量,还很慢). Github:
Little_Qiu's avatar

PHP 实现 12306 余票状况监控与告警

救救寒假出远门的孩子吧...
Sotr's avatar

教育系统决定人类进化方向

 思考考试的作用有感

 “物竞天择,适者生存。”这句生物界的术语早已经成为社会的法则。达尔文的自然选择理论立足于科学事实,揭示了生物进化的真理,经受住了时间的漫长考验,产生了深远的影响。人类作为一种生物,也终究无法摆脱自然选择的作用。
 “读书是唯一的出路。”这是许多中国家长对自己的孩子灌输的观念。这句话是过于绝对的,但又不可否认:当今中国,读书的确是大多数人最有效的出路。这里的“读书”不是翻阅书本,更不是师说里的“传道受业解惑”。现在我们的“读书”更多地是指到学校接受应试教育,顾名思义,最终目的是考试。考中了,便成才,落榜了,便是人生的败家。不仅如此,想要在社会上立足,寻找一份合适的工作,学历和学校也往往是关键的一环,而这“环”还须成绩来扣中。成绩在某种意义上就是现代社会的生存线,这也是“读书”重要的原因,也是现代社会“适者生存”的要点。
 “适”即“适应”,能很好地适应课本上所教的东西自然是学习不可或缺的。我们的课本很多,但科目却很单一,再加上就业的压力和来自父母和老师的“劝说”,很多学生看似“有得选”,实际上“没得选”。倘若确实要选,这“可以选”的东西其实也很少,纵然有“艺考”、有“体考”、有“自招”、有“单招”,教人眼花缭乱,但我们的教育系统距离平等发挥每个人的潜力还有很长很长的路要走。然而人各有别,单单这几个科目想要涵盖所有人擅长的领域简直是不可能的,于是有许多许多的人因为“不适应”这某些科目便被草草“淘汰”了。
 更多的是“人择”,这择的,就是能很好地适应考试所规定的学科的人。越能适应这些科目的人,越好立足于社会,越好生存,而难以适应的人就被时间慢慢揉碎,终于择去了。“人生自古谁无死”,择去的不是这些人本身,而是这些人的基因。
 人类已经在进化的巢里建了控制中心,最重要的“控制杆”就是我们的教育系统。教育系统能帮助筛选更有用的人才,筛选的方向影响着人类进化的方向。人类的行程在教育手里。发展教育多样化刻不容缓。

 封面来自 Tufts University

Sotr's avatar

灰色天空下的日子 一

第一片段 令人欣喜的开始 那是七月流火的九月,暑假刚过。 得知被那所学校录取以后,我虽然不满意,但也没有太多后悔;毕竟是自己考出来的,去怪谁呢? 我那时候还不会骑自行车,实际上是因为小时候的摔...
Sotr's avatar

灰色天空下的日子 序

 那是灰色天空下的,旧日的时光,我再也不想经历的「梦魇」,那是看似平淡却又充满绝望的日常,那是我的回忆,那是我所经历过的,令我流泪的东西,我所记恨的东西。 —— 题记
 
 
 这是公历新年的第一天,早些时候,我就料到今天会有悲剧的重演了。
 今天,我又不想去学校了。晡时的时候,我哭了,我为自己而哭,我为我自己不够坚强,害怕苦累的懦弱而哭,为了没有朋友能帮我而哭,因为我曾经不是这样的,我也曾经拥有他们。

 那灰色天空下的日子,是我永远也不想揭开的伤疤,但如果我不揭开,它永远也好不了。我没有办法。我但愿那位作演讲心理学家作家是对的,我但愿这能让我「康复」。这话,在几个月前看来一定是讽刺的,几个月前的我不承认我有心理疾病,讨厌药物,因为药物会让你不再是你自己,虽然现在的我也没有服药。

 上几个月,我摘抄过泰戈尔的一句诗:

从别的日子里漂浮到我生命里的云,不再落下雨点或引起风暴了,却给予我夕阳的天空以色彩。

 我当时天真地以为自己正是这样了,但我是自己骗自己。
 时间越久,当初的欣喜慢慢褪去,我就越发看到旧日的恶魔在我身上留下的罪恶的印记。
 以前我一直企图「忘记」,但我没能忘记,恶魔的符咒不在我的压制下,就越来越肆虐。

 这是迄今为止唯一令我刻骨铭心地恨过的、懊悔的事情。所以,我要把它记录下来,直面它、粉碎它,让我从中反思,修补自己被伤害的灵魂。
 
 
 就在刚才,母亲和其他家人的谩骂还在耳边萦绕着,他们不懂我的悲伤,我的无奈,我的痛苦。

cu cr (crcu)'s avatar

新年快乐!

2019年到了…

v2ray账号也送给推友了…

感觉2018一点也不充实啊喂

Sotr's avatar

daze

 daze —— 第十八周周记

 好奇怪,从上一篇周记复制模版的时候,感觉已经过去了很久,怀疑是不是漏写了一篇,但看日历的确只是一周。
 这一定也是眩乱的后遗症!

 说起眩乱,这周第一天开始就感到一种若有若无的眩晕,对日常倒没有太大影响,但精神上处于一种daze的状态(pl. in a daze),发现这个词和我重新听到阳炎的曲子有关。起初只是「幸福理论」,后来发现还有我曾经听过的「days」,于是就更加加深了这种混乱的状态。

 之前的计划书里约定了写日记的事,所以我究竟在哪一天感觉如何也可以到我的日记本上了解。
 
 伤感是无穷的;痛苦,在未来还有很多,在未来还有更加令人心痛的事情。
 「『幸福』 这句话 是多么不可思议 就连明天 也能够喜欢上呢」
 我的幸福在哪里呢。我的幸福,如果可以拥有,我愿意折去我生命的三分之二,换一个三分之一的零头。

 愿看到这段文字的你能够幸福。

Sotr's avatar

冶专,我的梦的开始

 我是在灰白色的天空下踏入冶专的大门的。记得那时有着丝丝凉风,我的步伐很轻盈。

 一进门就见到的是大理石做的横卧着的碑,碑也是灰白相间的,上面用正楷赫然刻着「昆明冶金高等专科学校」一大行金字。碑上自然少不了旗杆,高高的旗杆顶上是鲜艳的红旗,在微风中荡漾着。
 前面望去是标志性的图书馆,一眼望去,图书馆也是大理石做的,几个金色的柱子镶着,显得十分搭配。冶专的图书馆是出名的,甚至于在网上也供线上版阅览。广场那是必不可少的,很阔的广场的大理石地面灰色中有红色滑面砖块束着似的条纹,匀称规整,教人见了感到舒坦。
 我大阔步地走着,这里俨然是我的老友了,一切是那么地恰如其分。我向迎面来的几个和蔼的学长打了招呼,人家也报以微笑,这是在大学的「象牙之塔」里才会有的理想景色,现在我终于也安然地拥有了。

 说起冶金,尤其是云南的冶金,就少不了有色金属冶炼,我也正是看重了这独有的前景才毅然选择了冶专的,本来长沙也还有一所计算机学校供我选择的。这便也是最让我自豪的地方。名贵的学府,要论清华园也不会有这样独特的学科,这是得益于地利的,我占有这地利,这是我的独享,我便感到自己比清华园里的贵子们更加神气了。

 大学的教室不一般,每堂课也是流动的,足见自由的气息在空气里涌动,这是真正的青春飞扬。老师更不必多说,讲起课来神采飞扬引人入胜,冶专的师资是出了名好的,是没有几所学校敢相提并论的。
 宿舍是超出预期的,在云南这样季节变化不大的地方也有空调,舍友们谈笑风生,好不有趣,足见了这成人社会的魅力,便觉这才是真正的「社交」。一切都那么地恰如其分。

 冶专,我的梦的开始,我将在冶专展望我的新未来,开启我的人生的崭新篇章。冶专,我对你的情千言万语难言尽,你是我遇到的最好的,我也会用自己回报你。我的梦想沉淀在一滴清水中,揉碎在你的怀抱里,只觉得自己好像也歆享了这紫檀色的混沌,醉醺醺地在梦里蹒跚,豫备着无限幸福的到来。

 十二月二十二日

 封面为冶专莲花校区大门

Sotr's avatar

Life is strange.

 Life is strange. —— 第十七周周记

 追记:
  今天是既望,连续见到三天满月了,果然如此。
 
 连续两个双休了。这周仍然没有到达到理想的状态呢,总的来说就是感到事情不顺心,时间不够用,于是心情不佳。
 「姑且从俗浮沉,与世俯仰,以通其狂惑。」
 于是我不求上进了,除了作业就是划划水啥的。

 你这样子是不行的!
 我知道的。理想很远大,步伐必须流畅,我这么想着。但是现实不尽人意,世上又有那么多悲伤的事情。时光流转,季节变换,难捉摸。「アヤノの幸福理論」持续地在我的思维中回荡,时而感到时间易逝,时而感到今是昨非,不停惘然,这些只属于我的感慨。

 这几天里常想,我的日子就该这么过罢,这就是理想的我,我的生活早就该这样的;倘若时间能倒流上几年,我便此生无悔了。
 
 「人在自嘲时,包袱便减轻了。」
 我本来想去学府路看看的,但夜里总没了兴致。
 我还真是满脑子都是奇怪的想法呢,唔,平日里想过很多很多,我又到底想怎样呢。我的愿望很简单,简单但真的很难,这是只属于此刻的我的盼望。

 每每地,我都想寄托这些盼望予未来的我,但唯一能创造的只有现在的我。
 「此去经年,应是良辰好景虚设。便纵有千种风情,更与何人说?」
 我只得顾影自怜。止不住的惘然。又想起来那夏季的音乐了,那遥远夏季的光景,我是不敢多想的。

 封面由夜猫君摄像,时值二周目后期

's avatar

N.js

![](https://api.xbottle.top/i.php?u=https://ww2.sinaimg.cn/large/ed039e1fgy1fxzuvu16clj20m808cgpi) 简单的,弹幕js. * Github: * V2EX: * DEMO:
Sotr's avatar

最明的星、最美的晚霞

 最明的星、最美的晚霞 —— 开学第十六周周记和月考总结

 前段时间,从黄昏到清晨,总能见到那颗最明的星,有时月亮不见了,它也仍然在那里,它是如此地永恒、屹立,有着欲与曦月试比高的气魄。明天早晨,抬头就能望见他,虽然忽高忽低,但总是那么明,看到就让人更添了决心。这也是我对它大略的印象。
 但那天的它是很不同的。那天,落日的光流过很高很广的行云,找到了色彩的宝库,泛红的彩霞映衬着似是而非的江景,画龙点睛的是那颗最明的星。晚霞固然美,但有了这颗星的点缀,便成了最美。
 当时想拍照,但不能;当时见到了,却竟没有好好欣赏。这就像与一位曾经的挚友侧身而过,明明一直渴望着见面,得到的瞬间却又不珍惜了,事后再惘然,只觉得有缺憾却不能全了。


 至于月考呢,明明是最重要的议题,现在却不想多说。因为心里想得太多,反倒觉得写出来没有太大必要了。秦老师说我的状态大不如前,但对此,我只是无言。我能感到自己的效率不够高,但到底是什么问题呢?若即若离的,说不清楚。但是毕竟考试,就是显出自己的不足和优点,能分别加以完善和发扬就好啦。
 这个话题现在硬要说是有些累的(我相信你也能读出来),记录暂且就到这里罢。我也给自己提了要求,不是不能达到的,只是不敢,不知道结果,所以下周或许没有周记了。
 光鲜的不一定是好的,一直很喜欢蓝瓜的那句「轻柔如羽毛,闪亮如繁星」,我不经发问,这些迷蒙缠绵的情思,将来再读到这里的你,还会懂嘛?
 祝你每每顾影时,总是少年。

 封面出自「结城友奈是勇者」—— 是一部讲述友情的片子

Sotr's avatar

本应是风平浪静的一周

 本应是风平浪静的一周 —— 开学第十五周周记

 我因为感冒(见上篇周记),是在星期一下午才返校的。本想本周注定是艰辛的了,然而却出奇的平静。作业量尚可接受,只是额外目标未顺利完成。也没有出现各种大小事端。从星期五开始举办了为期一天半的运动会,我也没有项目。星期五晚上半个班的人一起看了一部漫威电影,并无深刻感想,娱乐性质的电影大概也就是这样了。


 星期四的时候,同学给我看了一下他的外国物理教材,这本书自诩注重物理素养的培养。我读了一两章,主要的感受就是注重例子和实验,让人容易信服和融会贯通。对比那本让人摸不着头脑的 选修 3-5,可以说是很棒了。我之前认为中国的教材是很有问题的,然后最近又认为还是独具匠心的,但是现在看来还是有一些问题的,只是试题和课本贴合的很近,让人不好发现。或者只是某一本不太好?


 于是,我在星期五(运动会进行第一天晚上)拟定这篇周记的名字包含风平浪静的字样。然而,命运多舛,今天上午,我代替陈同学跑了四百米,然而不仅落得最后一名,更是低血糖发作。总之当时的情况很坏就是了。这也是这周的唯一转折了。要说别的,经过跑道的时候绊了一下红线,被骂了。念念不忘,我度量真小。还记得语文书上有人问度量是否可以养成的问题,回答是“可”。我也许还缺一些这样的东西罢。
 下周二又是大考,这次还要分班,对我来说暂时还不是一件好事。姑且不论成绩能否保持,要重新建立人际关系和熟悉新环境都不是一件好事(而且我们班的配置那么好)。总之,考不好要担心老师换了,或者教得更简单了,当然还有更重要的 —— 环境也会变得更糟糕。考得好,要重新环境适应了(而且老师配备实际上没有太大提升),压力也必然会上升。如果要预测一下的话,我想我考得不会太差,因为比起那已逝的虚伪,这一次的我是货真价实的。

 封面是 Life is strange 2 中的一个夜晚

Sotr's avatar

在混乱中坚持

 在混乱中坚持 —— 开学第十四周周记

 说起这周,明显的感觉就是混乱,有些不合理的作业量、繁多的计程,让我没法按我理想的计划那样做那么多事情。另外西南流感爆发,班上三分之一(可能更多)的人都在感冒,当然也包括我,虽然热感没有冷感那么难受(否则我可能早就回来了),但是也不好过啊(>д<)
 在这样的混乱中,我也还是在努力按照心里理想的样子去努力。在这样的混乱中,没有人能够独善其身,所以即便感到不是那么顺心,也不用忧心忡忡,其他的人一定比我更加慌乱呢。这周我拟定了预期的成绩表,看起来也不是那么难,幸运会常在我身边的。
 共勉。
 
 这一周我学到的道理:
 * 多听,少讲
  记不得是从哪一本书上看到的了,大概是试题调研,多听少讲和多做少说看似差别不大,实则大相径庭。它不会绑架我们去多做,况且多做也不总是好事,容易累坏自己、消沉意志,甚至有点信仰的味道。
  还记得初中的时候,我的一位同学告诉我「言多必失!」,事实也的确如此罢。少讲不仅是谦虚和厚积薄发的表现,也能减少自己的出错和时间的浪费,并以多听去弥补。我一向是主张只有当自己是真的很熟练的时候才去和别人讲东西,这样也能减少对别人的误导。利人利己。


 * 拒绝闭关,聆听真知。
  几个月前,偶然间,我看了一个叫「Achieve Your Creative Potential」的网站,里面有一句大概是讲“真理就在我们身边,只是有太多的人拒绝去看见”,我并没有感到很认同,因为我好像并没有看到所谓的“真理”。
  直到这周的某个中午,在研究电势随电场线变化的时候,根据点电荷产生场强的公式,我猛然发现,场强和距离的二次方的关系就是反比罢了,不妨代入几个数值,等距离之间的变化量是在不断递减的,而不是等量变化的。最终的曲线就是一条典型的反比例曲线。这样的事实在我们身边有很多,只是我们没有去看见、去认可、去领会。我们生活在这些真知控制的世界里,只有不断地去接受这些事实,聆听这些真知,我们才能变得智慧。

  封面出处:The Other Side of the Wall

Ghost_chu's avatar

日了狗了

上传MODS前一定要把客户端专用的coremod删干净...*了狗了
's avatar

Bueue.js

![](https://api.xbottle.top/i.php?u=https://ww2.sinaimg.cn/large/ed039e1fgy1fxjiru7owwj20m808ca9z) 简单的,让函数们乖♂乖♂站好排成一队的js. Github:
Sotr's avatar

经历迷茫的一周。

 经历迷茫的一周。—— 开学第十三周周记

 我是从老师发的过关单上得知这周是第十三周的,对照了日历发现的确如此(9月1日开学真是标准233)。这是我第一次正经在网络上写周记,在之前暑假里的时候,因为受到奇异人生的影响也尝试过手写日记(羡慕max),但是现在看来的确过于耗费力气,在网上写也没什么不好的,尤其是我有了自己的博客以后。另一次周记算是上上上周星期天在空间发表的观点,没想到都过了这么久了,和今天我的todo里的「逝者如斯夫,不舍昼夜」又不谋而合了。
 好了,进入正题。这周的我过得不大愉快,更确切地说,是迷茫的感觉。说起原因,一方面是新学的知识点不能很好掌握,导致没有看到自己明显的进步。我感觉还有其他方面的,但是我好像找不到了(别吧)。嗯,的确,我不止一次思考过这个问题,我自己都觉得十分偏激的观点,却也是事实 — 学习方面的状况决定了我的喜乐,而且似乎一直如此。每每想到这里,我就觉得更加茫然了。
 今天中午去食堂的路上,四周很静,阳光很好,让我顿然有了雨过晴天的感觉,就如跑完长跑体力恢复后的平静。的确,一切艰难困苦过去后,再回首,都不会再引起乌云雨点了。但是我必须明确,它们就在那里,亟待我去解决,我不能淡忘,也不会淡忘。
 我仍在前行。

's avatar

Numbers.

高一时在学校微机课借Coding的CloudStudio搞出来的一个班级随机抽人的页面。 (说得这么高大上其实没什么卵用) Web: [Numbers](https://number.xbottle.top) 托管于Github Pages
Little_Qiu's avatar

ZMI 随身路由器 使用体验报告

出差旅行必备…?
Ghost_chu's avatar

解决Windows安装程序报错 "选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘。"

今天某赵找我帮助重装系统,碰见了一行错误: Windows 无法安装到这个磁盘。选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘。 因为之前有处理过这种情况,写个博文作下存档。   在提示出错的页面按下Shift+f10组合键,打开命令提示符。 输入diskpart,打开实用工具,并输入l……
Ghost_chu's avatar

R.I.P Yive's mirror

R.I.P Yive's mirror 一路走好
Ghost_chu's avatar

科技复兴 TechReborn

又是你! 地球又双叒叕啜爆炸了! 那个神秘的少年又双叒叕啜要拯救人类文明了! SunnySide旧宣传贴中的一段话 一周目是1.8纯净RPG生存。 充满了最初的乐趣。RPG彰显独特。当RPG发达时,人们追求完善,便出现两级分化,一部分成为魔法武器引申为的神秘,一部分近身武器引申为剑术。 二周目是1.7.10神秘拔刀。当神秘与剑术混合。将迸……
Ghost_chu's avatar

老大哥十月革命101周年纪念日

一首摇滚版俄罗斯国歌送给你们 俄国十月革命(又称红十月、十月起义、彼得格勒武装起义或布尔什维克革命),获胜的红军一方称为“伟大的十月社会主义革命”,是俄国工人阶级在布尔什维克党领导下联合贫农所完成的伟大的社会主义革命,是1917年俄国革命中第二个、也是最后的重要阶段。因发生在俄历(儒略历)1917年10月25日(公历11月7日),故称为“……
Ghost_chu's avatar

联合国秘书长:有关气候问题的讲话

“一场我们能赢的比赛。一场我们必须赢的比赛” 联合国秘书长在2019气候峰会上的讲话,中英文双语,附带下载。
Ghost_chu's avatar

玩家守则更新

玩家守则更新,移除部分规则,请前往SSWIKI查看
Ghost_chu's avatar

升级了一下模板 现在可以发说说了(不

升级了一下模板 现在可以发说说了(不
Ghost_chu's avatar

2018年度第四季度 调查问卷

一年一度的调查问卷来了 欢迎各位大佬填写。   调查问卷地址:https://wj.qq.com/s/2848169/d92a
Ghost_chu's avatar

1.13.2升级完毕

已完成对SunnySide服务器整体1.13.2升级工作,欢迎游玩! 本次更新将跟进Minecraft新的正式版本,并带来性能优化 更新日志: 1.升级各类插件到1.13.2版本 2.暂时停用EWG世界生成器插件(为兼容1.13.2 后续更新后将跟进更新)
Little_Qiu's avatar

Markw 救砖记

缘起 去年 11 月,我给我的 markw 刷入了 Mokee 71.2,said goodbye to MIUI。 在这漫漫折腾路上,我尝试过了 Mokee(71.2,Nightly,Nougat)、Resurrection Remix(6.0.1,Unofficial,Oreo) 和 Havoc(20180823,Official,O……
Little_Qiu's avatar

记一次 Raspbian 下的 locale 设置

TL;DR 使用任意文本编辑器打开 /etc/locale.gen 删除你想要生成的 locale 之前的 #,保存 执行 locale-gen 废话一堆的正文 嘛… 我之前有只 Raspberry Pi 1B+,当下载机用了大概两年,然后借给我比利玩烧了… 在这之后我就各种不爽。讲道理,在 Windows 下做开……
's avatar

搭建私有邮件服务器——从入门到放弃

0x00 为什么要搭建私有服务器

最近看到了LWL的https://blog.lwl12.com/read/mta-of-the-elite.html

于是也计划了一下自己的邮件服务器,由于饱受各类垃圾邮件骚扰,所以一直想要一个支持wildcard收信的邮件服务。
而国内各类公开的邮件服务,无论是付费的也好,收费的也罢,似乎都并没有退出这个功能的计划,于是就想趁这个机会一起搞定。

0x01 准备工

...
's avatar

BottleS-小记录簿

总感觉云书签不是很好用啊..只能自己写个小记录簿了~ 设计方面借鉴了一下卜卜口的,感觉已经算是比较还原了~ https://o.xbottle.top/note
's avatar

你会说瓶语吗?

今天无聊写了个瓶语转换器,利用二进制原理~ https://o.xbottle.top/tbottle
's avatar

Minecraft音效站

无聊写的一个小别致,Minecraft的原版音效资源站. 所有的游戏内音效音乐都能在这里找到~ https://o.xbottle.top/mcsounds
's avatar

轻小站系统——OBottle

详细介绍请看♂Github上的Readme: https://github.com/SomeBottle/OBottle ![](https://api.xbottle.top/i.php?u=https://ww2.sinaimg.cn/large/ed039e1fgy1ft3gual1czj20qc0englt) 简单,麻雀虽小五脏却俱全。
's avatar

《咸鱼》BottleFish

这是一款在线1v1游戏,用最菜鸟的ajax递归写成...对于服务器资源消耗略大, 我托管在美国机上。 游戏地址:(后者更快) 目前该游戏待修复项目: >闪避技能 >技能条用蓝提示 >与对手聊天♂ 我需要建议哦~~ ![](https://api.xbottle.top/i.php?u=https://ww2.sinaimg.cn/large/ed039e1fgy1fsixlcy5knj21h20q1n51)
Yanbing Zhao's avatar

你编写的Mod,代码是从何处开始执行的?

本文作者zzzz(@ustc-zzzz),使用CC-BY-SA 4.0协议授权。

对于一段程序来说,需要关注的无非就两件事:程序管理的数据,以及程序操控数据的方式。对于Java来说,前者对应的是对象及其字段(Field),而后者对应的自然是对象的方法(Method)了。但是,什么样的方法,会在什么时候执行呢?对于Forge Mod来说,这并不是一件可以立刻回答上来的问题。本篇文章就将一步一步地阐述,Forge会让你编写的Mod,在什么时机,执行什么样的代码,以及Forge为什么要这样做。

依赖注入

凡是写过比Hello World更高级的代码的普通Java开发者都一定知道,Java程序是从一个类的main方法开始执行的。至于这个类是什么,它通常会定义在JAR的manifast(位于META-INF目录下的MANIFEST.MF文件中)中。这样,在你直接执行JAR的时候,被指定的类的main方法便开始工作,从而启动整个应用程序。

Minecraft当然也是这样的,它的代码入口位于net.

's avatar

微博图床API

### 这个API是免登录的 具体介绍看小站: https://imbottle.com/?o195 API地址: https://api.xbottle.top/wup.php API文档:(其中附赠DEMO哦!好好玩吧!) https://api.xbottle.top/doc/weibopicapi.html ![](https://api.xbottle.top/i.php?u=https://ww2.sinaimg.cn/large/ed039e1fgy1fqv47jgmx5j202402cwei)
's avatar

BottleAniJS

些瓶的动画js集~咸鱼的小作品,大佬勿喷~ 目前更新至: fadebottle.js (淡入淡出动画) Github地址:https://github.com/SomeBottle/BottleAniJS
's avatar

nginx使用h2c协议时会导致http/1.1失效

最近有个朋友问我nginx反代什么都变成了下载。
第一反应当然是content-type的问题,于是用命令行访问先检查一下返回的content-type到底是啥,结果

难道是httpie的问题,于是又试了试curl

这就很尴尬了

查看一下返回的hexdump,基本和httpie的报错是一样的
那让我们回退最原始的telnet

结果依旧令人崩溃,而且nginx的access log以及err









...
Little_Qiu's avatar

致司的信

要是,自己寿命的长短,从一开始就被定下来的话,我会怎么去接受这事实呢?
's avatar

BottleBlog博客程序发布

这算是大作品了吧.... 花了三天时间写成——BottleBlog博客系统。 无须数据库,基于PHP。 如果有BUG请及时报告。 目前Release版本:1.7 PS:前端主题来自pppploi8大佬的博客] 开源地址:https://github.com/SomeBottle/BottleBlog Release地址:https://github.com/SomeBottle/BottleBlog/releases ![](https://api.xbottle.top/?u=http://ww2.sinaimg.cn/large/a15b4afegy1fpp4dx06awj21hc0mnmxq)
Little_Qiu's avatar

[转载]由 PSP 破解谈到中国伸手党式网民的心理

转自豆瓣,据说原帖也是转来的,但是没有注明来源 = =
's avatar

BottleSkin1.0

这个作品肝了几小时,主要是因为skins.minecraft.net不可用了。 突然找到了MOJANG官方的API, 于是写了个新皮肤获取器出来~ URL http://lab.imbottle.com/bottleskin/
's avatar

有生之年又踩到了tengine的bug

今天新上线一个项目的时候用到了一个上传的接口,在本地测试和内网环境下都正常,上服务器以后一直504,应用log显示文件没有被上传上来,而浏览器log却显示文件正常上传。
初步推断是tengine上没把请求转发完全,导致后端一直在等待剩下的body,直到90s超时。

于是在服务器上架起了ssh隧道,通过本地直传服务器,就能够正常上传,于是将问题确定在了反代的tengine上

最初以"ng

...
's avatar

BottleLOGIN1.0发布

这个作品肝了几天,主要是为了没有数据库的虚机准备。 BottleLogin是一个登陆系统,基于PHP,无须数据库。 简洁明了... DEMO:http://lab.imbottle.com/bottlelogin Github开源: https://github.com/SomeBottle/BottleLogin
's avatar

node.js的v8.serialize和v8.deserialize

这两天翻nodejs的api文档时发现了两个新API,v8.serialize和v8.deserialzie,官方给出的说明是这样的

The serialization API provides means of serializing JavaScript values in a way that is compatible with the HTML structured clone alg

...
's avatar

这可能是我写过的最沙雕的应用了……

GIF倒放

https://lab.bangbang93.com/gif-reverse

...
Little_Qiu's avatar

换头像了

这是三天前的事了…

上个星期五晚上发了一条知乎想法说要换头像,原因是原来那张从百度贴吧的个人中心扒下来的头像画质太渣了 hhh 而且旧头像从 2015 年 6 月一直用到上周六,绝对是我用过的使用时间最长的头像了。

所以在上周日花了一个下午的时间拍摄新头像,原图大概是下面这张:

裁剪之后是这张:

“你瞅啥?”
“瞅你咋地?”
“再瞅一个试试?”
“试试就试试!”

使用的光影是 MrMeepz v05 Ultra。讲真尽管捣鼓了一下午我还是觉得这张头像没有旧头像好看…

附上旧头像原图,现在大部分社交平台和社区应该都换上了新头像的,不过因为各种主观和客观因素可能还是有部分网站没有更换(辣鸡 MCBBS)

新头像有一个效果是,如果你晚上坐在 2700K 色温 30% 亮度的米家台灯下,你会觉得新头像的光影就像是米家台灯的灯光照上去的一样 :-D

与此不同时 DreamCity 的 Favicon 换成了我的皮肤的头颅的 3D 渲染模型:

大概就这样吧。估计这个新头像也会用个两三年的,辨识度应该也比较高(应该没有人会和我用同一个头像吧?),所以如果你在某个地方看到了这个头像(无论是旧头像还是新头像),那八成就是我了。

Little_Qiu's avatar

就算世界终结,也无所谓

你使用的浏览器不支持 HTML 5,请更换浏览器。

BGM: 雨だれの歌 – 水瀬いのり
动画《少女终末旅行》#5 / #13 ED

这大概是对我的年终总结的「Thanks / 致谢」部分的补充。

就算你不细心,你也应该发现了这两天来 DreamCity 的变化:头部加了个 Banner。

Banner 中的图片来自 Bing 今日美图,而文字则出自《少女终末旅行》。

「就算世界终结,也无所谓」是 2017 年 10 月新番《少女终末旅行》中千户对尤莉说的一句台词。

  • 小千啊,它说地球会终结诶
  • 可是,就算世界终结,也无所谓
    只要我和尤在,就够了

这是除了《中二病也要谈恋爱!》之外唯一一部让我产生感觉的番,可以说是 2018 年 1 月里我最喜欢的一部番了。

如果你看过我的 2017 年终总结,应该知道在 2017 年内我不幸地患上了抑郁症(只是自己的猜测,没有确诊,因为我根本没有勇气和家人说,但是自己感觉状态不对)。尽管看不出来,但是负面情绪非常多,而且经常会产生很多不好的想法。

但是,每当我有那些可怕的念头的时候,我总是会想到我的朋友们,是他们一直在我身后,默默地给我力量。或许他们自己也没有觉得自己做了什么,但是对我来说,一切尽在无言中。

以下是他们的名单,排名不分先后,感谢他们 :-)

  • @lxy12138
  • @xfl03
  • @luojiarui
  • @Flyfish
  • @moeKiwiSAMA~
  • @ansonAG
  • @Alex_skim
  • @Ausdruck64
  • @ENDsoft233
  • @LittleWind404
  • @dz_paji
  • @MoeJieJie
  • @TaoXiaobai
  • @wowo123
  • @x123y
  • @for_ever
  • @Fly_Emoji
  • @六花吃蓝莓
  • @蓝莓少女喵呜酱
  • @茶猫海苔

就算世界终结,也无所谓。
只要有你们在,就够了。

Little_Qiu's avatar

巧用 Git 对 Blessing Skin Server 进行增量更新

搞个大新闻?
Little_Qiu's avatar

Goodbye, 2017

大概是年终总结一类的东西吧
Yanbing Zhao's avatar

SpongeAPI内置Inventory系统概述

时隔约一年没有写文章了啊。这次带来的是Sponge的Inventory系统。

众所周知,对于一个插件API,GUI界面总是绕不过的。GUI经常被用作菜单等方便用户交互的界面,其中最常见的就是箱子界面。对于SpongeAPI而言,其对应的就是Inventory系统。

Inventory是一个相对复杂的系统,但是一方面,SpongeAPI是一个经过重新设计的API,操纵Inventory的方式和Bukkit大不相同,另一方面,至今(2017年底)SpongeAPI的Inventory系统仍然正在测试,其本身仍有一些实现不完善之处。不过,这不妨碍我们去使用Inventory系统的一个子集,这部分子集在SpongeAPI中已经稳定下来了。

这篇文件将会整理本人近年来使用SpongeAPI内置Inventory系统的一些经验,以及作者比较确定的,在最新版本的SpongeForge和SpongeVanilla中已经稳定的特性。本文使用的SpongeAPI版本为5.2.0,也就是针对Minecraft 1.10.2。针对Minecraft 1.12.2的SpongeAPI 7略有不同,本文在差异处也会略有提及。

打开和关闭Inventory

作为示例,本文将针对在世界中真实存在的一个箱子,以方便开发者随时查看箱子里的东西,以确定之前对这个箱子做了什么。我们先随便写一个插件主类,并监听一个事件:

package com.github.ustc_zzzz.testchestinventory;
's avatar

BOSS直聘认证bug

最近我厂准备招人,所以我也搞了个BOSS直聘准备看看人选。
不过在准备BOSS认证的时候,发现输完姓名和身份证号后点击下一步没反应了

在与客服一阵交流后,我觉得效率太低了,等他们修好我再用都要过年了,于是拎起logcat先看看报错
有趣的是,报错没找见,却发现


有个js文件的log,打开这个文件,简单看了一下内容(没混淆),刨除格式验证的代码后,就是拿着用户名和身份证号请求后端,后端返回了一个




...
's avatar

kubeadm折腾记录

首先是某伟大的的防火墙问题,需要给kubeadm和docker都套一层代理

kubeadm只需要在命令行前面加HTTP_PROXY即可,docker需要编辑/etc/systemd/system/docker.service.d/http-proxy.conf文件

[Service]
Environment="HTTP_PROXY=http://10.9.96.169:8118/&quo
...
's avatar

我似乎也是有gfw认证服务器的人了

ss突然连不上服务器,ping也不通,ssh也连不上,但是走国外服务却能够正常ping通和连接,看了一下mtr

从国内出发的mtr,是一直到机器前一跳才丢包

从服务器出发的mtr,在国际入口丢包,很典型的gfw认证了

换个IP重新做人吧

...
's avatar

elasticsearch中文分词+拼音搜索

最近厂里的项目在做全文搜索,于是上了elasticsearch,顺带还要折腾一下中文分词的问题
首先拿出两个插件

第一个是用了ik分词器的中文分词插件,第二个就是转换为拼音索引的插件了

...
's avatar

记一次艰难的gitlab升级

突然发觉Gitlab发布了10.0.0,趁着今天厂里不上班没人用gitlab,打算升级一波

但是我厂gitlab一直有一个隐患,配套的postgresql一直升级不上去,每次dnf upgrade gitlab-ce的时候都会在升级数据库的时候报错,但是由于一直使用上没出问题,所以就一直没理睬

但是这次升级gitlab10.0.0时,终于不对以前的postgresql9.2.18提供支持了,升级的

...
's avatar

闲来无聊,统计了一下近一个月服务器上的UA……


首先来看看量最大的……居然是百度云观测,怪不得以前每次用wp的时候每次一来服务器就收到CPU占用报警
搜狗的爬虫好勤快……

然后是最少的,有不少攻击请求啊

喷了,怎么还有用这玩意的

7012年了,怎么还有人用lynx

浏览器怀旧合辑,IE4,IE5,IE6,Win95,Win98

黄金搭档



iOS5和iOS6的iPhone和iPad,以及iOS4的iPod

古董Android系

















...
's avatar

blog又搬家了

这次又放弃了wordpress,因为wordpress的二次开发实在是挺难受的……一直想给编辑器加一个粘贴上传的功能,还有其他一些速度上的优化,或者玩玩service worker,但是尤其是service worker,想了想还不如干脆重写一个,正好还能得到一个前端试验场地,于是就有了

https://github.com/bangbang93/freyja

这个项目的第一个实例就是现在跑着的这

...
's avatar

ucloud 的 ufile js sdk 真菜……

因为有上传大文件的需求,所以准备使用ufile做存储,可以有效利用服务器内网带宽

于是开始看起ufile的sdk和文档,结果发现

稍微再往下翻翻

你用utf8读二进制文件……能不丢字节才有鬼哦

tab和空格混写又是几个意思

最终一怒之下放弃了nodejs的sdk,自己实现的签名算法,结果看前端的jssdk的时候

初始化分片的xhr请求有个ajax.send(file),直接把文件发上去了,那

...
's avatar

what is npx

刚刚升级npm的时候才注意到现在npm安装的时候会带一个npx

去npmjs上看了一下https://www.npmjs.com/package/npx,让我想起来以前一个叫做npm-run的package

这个小工具可以让你替代以前的

node_modules/.bin/webpack

或者

`npm bin`/webpack

现在可以直接用

npx webpack

并且如果本地没有安装

...
's avatar

webpack忽略服务端垫片,优化webpack bundle体积

最近打算把wp换掉,所以新开了个项目https://github.com/bangbang93/freyja

Vue的SSR,但是在大体依赖完工之后,发现打包完成的bundle文件有2.3M……这个太可怕了,服务器带宽只有5M,意味着最好情况下也需要4秒多的时间才能够把bundle文件下载下来

http://alexkuz.github.io/webpack-chart/分析了一下,可以看到最

...
's avatar

vue ssr cache性能记录

纯API

SSR

SSR+LRU Cache

...
's avatar

精分的个推

个推的restapi也太不清真了……返回明明是个json,请求带个accept: application/json就丢出406,不带倒是能用,但是丢出content-type: text/html (╯‵□′)╯︵┻━┻ ​

...
Yanbing Zhao's avatar

在Forge Mod项目中给IDE添加JVM参数

实际上在Forge Mod项目中给IDE添加JVM参数是一个比较常见的需求,如Forge要求添加这样一个JVM参数启动Coremod:

-Dfml.coreMods.load=com.example.yourpackage.YourCoremodClass

然后每次都要在IDE中手动添加的我终于有一天忍不住了,决定在build.gradle中自己写一段自动添加JVM参数的脚本,然后这也是这篇Post存在的意义。

脚本的内容很简单。想要用的话,直接在build.gradle文件里找个空行把这段代码扔进去就行了,最后别忘了重新生成IDE的配置文件,也就是执行gradle cleanEclipse eclipse或者gradle cleanIdea idea指令:

ext.jvmArguments = [  
    '-Dfml.coreMods.load=com.example.yourpackage.YourCoremodClass'
]

makeEclipseCleanRunClient.doFirst {  
    def jvmArg = String.join(' ', jvmArguments) 
    it.setJvmArguments(jvmArg)
}

makeEclipseCleanRunServer.doFirst {  
    def jvmArg = String.join(' ', jvmArguments) 
    it.setJvmArguments(jvmArg)
}

idea.workspace.iws.withXml {  
    def runManager = it.asNode().component.find({ it.@name == 'RunManager' })
    runManager.configuration.findAll({ it.@type == 'Application' }).each {
        def mainClass = it.option.find({ it.@name == 'MAIN_CLASS_NAME' }).@value
        if (mainClass == 'GradleStart' || mainClass == 'GradleStartServer') {
            def jvmArg = String.join(' ', jvmArguments) 
            it.option.find({ it.@name == 'VM_PARAMETERS' }).@value = jvmArg
        }
    }
}

最上面那个ext.jvmArgs用于设置JVM参数(可以加多个,然后正如后面的代码所描述的那样,后面会使用空格作为分隔符拼起来),下面几段代码,大家应该都很容易看出来,一部分是用于Eclipse的,一部分是用于IntelliJIDEA的。

因为ForgeGradle没直接提供操作IntelliJIDEA中的JVM参数的接口,所以代码要长一些(但为什么Eclipse提供了呢)。

Yanbing Zhao's avatar

给Blog添加了MathJax支持

先随便写一段公式试试吧:

mathjax \(\mathrm{The\ form\ of\ the\ Schr\ddot{o}dinger\ equation\ is:\ }\)

$$
-\frac{\hbar^2}{2m}\nabla^2\Psi+V\Psi=i\hbar\frac{\partial\Psi}{\partial{}t}
$$

看着还不错,这是相应的LaTeX代码:

\(\mathrm{The\ form\ of\ the\ Schr\ddot{o}dinger\ equation\ is:\ }\)

$$
-\frac{\hbar^2}{2m}\nabla^2\Psi+V\Psi=i\hbar\frac{\partial\Psi}{\partial{}t}
$$

原理很简单,这是JS代码:

jQuery(function ($) {  
    var codes = $('code');
    if (codes.length > 0) {
        var scriptSrc = 'https://cdnjs.cloudflare.com/' +
                        'ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML';
        $.getScript(scriptSrc, function () {
            codes.map(function () {
                var parentTag = $(this).parent().prop('tagName').toLowerCase();
                if (parentTag == 'pre' && $(this).hasClass('language-mathjax')) {
                    var node = $('<div>' + $(this).html() + '</div>');
                    $(this).parent().replaceWith(node);
                    MathJax.Hub.Queue(["Typeset", MathJax.Hub, node.get(0)]);
                    return;
                }
                var codeMatch = /^mathjax\s+(.*)$/.exec($(this).html());
                if (codeMatch) {
                    var node = $('<span>' + codeMatch[1] + '</span>');
                    $(this).replaceWith(node);
                    MathJax.Hub.Queue(["Typeset", MathJax.Hub, node.get(0)]);
                    return;
                }
            });
        });
    }
});

所有遇到诸如:

`mathjax xxxxxx`

这样的行内标注,或者

```mathjax
xxxxxx
```

这样的页内标注时,MathJax都会把其中的LaTeX代码转换成排版好的格式。

Yanbing Zhao's avatar

Sponge插件命令系统简介

概述

我们假设需要做一个传送命令(这里就姑且叫做TryTeleport吧),我们想要什么呢?

  • 输入/tryteleport notch 64 128 64
    将把玩家notch传送到坐标为(64,128,64)的位置
  • 输入/tryteleport 64 128 64
    将把自己传送到坐标为(64,128,64)的位置
  • 输入/tryteleport DIM-1 64 128 64
    将把自己传送到坐标为(64,128,64)的下界位置
  • 输入/tryteleport notch 64 128 64 0 0
    将把玩家notch传送到坐标为(64,
Yanbing Zhao's avatar

Sponge插件开发引导(下)

Sponge是一个富有活力的、社区驱动的、开源并且全是BUG的Minecraft插件平台。其设计了一套崭新的API用于1.8以上版本的Minecraft服务端的插件开发。Sponge项目提供的SpongeAPI有两个实现:基于纯原版的SpongeVanilla,和基于MinecraftForge服务端的SpongeForge

上节内容


4 我仍然不开心!我要操纵字节码

在Sponge插件中操纵Java字节码是一个大的话题。Sponge提供了一个名为Mixin的工具用于操纵字节码。

(作者正在填坑中。。。)

Yanbing Zhao's avatar

Sponge插件开发引导(上)

Sponge是一个富有活力的、社区驱动的、开源并且全是BUG的Minecraft插件平台。其设计了一套崭新的API用于1.8以上版本的Minecraft服务端的插件开发。Sponge项目提供的SpongeAPI有两个实现:基于纯原版的SpongeVanilla,和基于MinecraftForge服务端的SpongeForge

这一篇Post的内容就是讲述开发者如何开始Sponge插件的开发的。当然为了方便(也是因为笔者懒),这里只讲述基于SpongeVanilla的1.10.2版本的Minecraft服务端的开发,不过SpongeForge,以及其他版本的Minecraft服务端,往往也是同理。

0 搭建Sponge服务端

我们首先下载原版Minecraft服务端:
https://s3.amazonaws.com/Minecraft.Download/versions/1.10.2/minecraft_server.1.10.2.jar

当然你也可以使用BMCLAPI
http://bmclapi2.bangbang93.com/version/1.10.2/

via these people and places