不要忘记历史: Evernote:导出备份的 .enex 文件, 再导入时提示有几篇日志图片 太多,没有会员无 法导入。 印象笔记:用户因为从 Evernote 导入到印象笔记时触发了一...
博客广场
《原神》也在使用 KCP 加速游戏消息
最近看到米哈游《原神》的客户端安装文件里附带了 KCP 的 LICENSE: 于是找米哈游的同学求证了一下,果然他们在游戏里使用 KCP 来保证游戏消息可以以较低的延迟进行传输...
为什么 C 语言数组是从 0 开始计数的?
C 语言等大多数编程语言的数组从 0 开始而不从 1 开始,有两个原因: 第一:地址计算更方便 C 语言从 0 开始的话,array[i] 的地址就正好是: (array + i) 如果是从 1 ...
别被忽悠了 Lua 数组真的也可以从 0 开始索引?
先前我说 Lua 数组从 1 开始不太爽,很多人来纠正我说也可以从 0 开始,比如: local m = { [0] = 100, 101, 102, 103 } 然后访问时 m[0] 也可以正常访问到第 0 个元素...
性能测试:asyncio vs gevent vs native epoll
测试一下 python 的 asyncio 和 gevent 的性能,再和同等 C 程序对比一下,先安装依赖: pip3 install hiredis gevent 如果是 Linux 的话,可以选择安装 uvloop 的包,...
Python 中使用组合方式构建复杂正则
正则写复杂了很麻烦,难写难调试,只需要两个函数,就能用简单正则组合构建复杂正则: 比如输入一个字符串规则,可以使用 {name} 引用前面定义的规则: rules definitio...
基于 LR(1) 和 LALR 的 Parser Generator
最近处理文本比较多,先前想增强下正则,看来不够用了,有同学推荐了我 Pyl 和 Lark,看了两眼,初看还行,但细看有一些不太喜欢的地方,于是刚好春节几天有空,从头写...
使用 LIBLR 解析带注释的 JSON
前文《基于 LR(1) 和 LALR 的 Parser Generator》里介绍了春节期间开发的小玩具 LIBLR ,今天春节最后一天,用它跑一个小例子,解析带注释的 json 文件。由于 python 自...
互联网技术比游戏后端技术领先十年吗?
最近时间线上又起了一场不大不小的论战,做互联网的人觉得游戏服务端发展很慢,同时互联网技术日新月异,似乎觉得互联网技术领先了游戏后端技术十年,这个结论显然是武...
库代码中是否应该检查 malloc 的返回值?
现在网上有很多似是而非的观点,比如 malloc 失败不用处理,直接退出,这样的经验看似很聪明,实际却很局限,比如: 1)嵌入式设备:不是所有设备都能有一个强大的全功...
CD2:SharpDevelop
SharpDevelop 是 .Net Framework 时代最受欢迎的轻量级 IDE,它代替庞大的 Visual Studio使用 C# / VB.Net 开发各种 .Net Framwork 4.5 之前的程序(WinForm,控制台,W...
帧同步游戏中使用 Run-Ahead 隐藏输入延迟
帧同步可以轻松解决高互动的联网游戏(如格斗,RTS 等)的同步问题,但该方案对延迟很敏感,现在一般省内服务器延迟差不多 10-15ms (1帧),跨省一般 40ms (2-3 帧)...
56 行代码用 Python 实现一个 Flex/Lex
作为 Yacc/Bison 的好搭档 Lex/Flex 是一个很方便的工具,可以通过写几行规则就能生成一个新的词法分析器,大到给你的 parser 提供 token 流,小到解析一个配置文件,都...
CD3:Flash 开发宝典
前段时间碰到个经典的 Flash 游戏想玩一下,发现原网站挂了而游戏又需要验证原网站,于是想对其稍加修改,才发现原来可以下载 Flash 相关开发工具的页面已经全停了: 所...
Emake:你见过最简单的 C/C++ 构建工具
CMake 已经成为 C++ 构建工具事实上的标准了,即便觉得它很难用,但项目发布,跨部门协同,基本都以 cmake 为准。尽管你可能觉得其它构建工具更顺手,没问题,你们平时...
CD4:Windows XP 开发宝典
今天互联网上的内容,由于各种原因,正在以越来越快的速度消失,而习惯什么都从网上找的新一代网民们,却并没有备份和记录的习惯及意识。不远的将来,会有一天,当你特...
EditPlus 的配置方法
作为一名编辑器爱好者,EditPlus 是我最喜欢的编辑器之一,超过 NotePad++,它启动速度比它快,打开文件比它快,功能比它强,颜值也比它高,但大小只有 2MB: 用了这么...
Python 的 asyncio 网络性能比 C 写的 Redis 还好?
先前我做过一个 asyncio/gevent 的性能比较《性能测试:asyncio vs gevent vs native epoll》,今天修改了一下 asyncio 的测试程序的消息解析部分,改用 Protocol,发现...
Vim 文本过滤/文字处理插件
我经常有文本处理的需求,例如将 html 转换成纯文本,或者移除 markdown 里的所有连接,或者繁体转换简体。因此我做了一个插件来管理和执行各种外部文本过滤器。 所谓 “...
DOS 经典软件下载
二十多年前的某一天,我盯着资源管理器里很久没用却一直舍不得删除的 UCDOS 文件夹犹豫了半天,最终却为了给硬盘腾点空间一狠心 shift+delete 把他们彻底删除了,当时我...