跳转到主要内容

文章

  • 9 月补记

    发布于 文章 326 字 1 分钟

    Python

    9 月份本来打算搞一下 bt,可惜一直没时间完成种子下载的部分,暂此搁笔。 由于 XcodeGhost 肆虐,于是顺手搞了个 XcodeGhost 的服务器版:https://github.com/spin6lock/XcodeGhostServer,联系 SA 帮忙指向本机,结果公司里大家都更新的好快,只发现一位同学中招 :) 只是弹窗还有点问题,JSON 里面的字段都有了,不知道是不是 scheme 不对,所以 openUrl 的时候有问题,稍后再看看。 XcodeGhost 的三个域名 …

    9 月份本来打算搞一下 bt,可惜一直没时间完成种子下载的部分,暂此搁笔。 由于 XcodeGhost 肆虐,于是顺手搞了个 XcodeGhost 的服务器版:https://github.com/spin6lock/XcodeGhostServer,联系 SA 帮忙指向本机,结果公司里大家都更新的好快,只发现一位同学中招 :) 只是弹窗还有点问题,JSON 里面的字段都有了,不知道是不是 scheme 不对,所以 openUrl 的时候有问题,稍后再看看。 XcodeGhost 的三个域名 …

  • 对 bt 的一些想法

    发布于 文章 69 字 1 分钟

    Python

    一直想做一个像 磁力助手 这样的网站,参考了 小虾的文章 。最近花了比较多的时间,自己实现了一遍,写写实验过程的体验。 术语: DHT 网络是为了 参考文章:

    一直想做一个像 磁力助手 这样的网站,参考了 小虾的文章 。最近花了比较多的时间,自己实现了一遍,写写实验过程的体验。 术语: DHT 网络是为了 参考文章:

  • 旧梦重温

    发布于 文章 421 字 1 分钟

    Python

    这个月主要在搞两件事,其一是:https://github.com/spin6lock/pydnsproxy,其二是一个 bt 客户端,用来搜索磁力链接,下载种子的,还没搞好。 除了 bug 修复,就是给 pydnsproxy 添加了 http dns 的解析方式,这种方式的优势,可参考企鹅的 【鹅厂网事】全局精确流量调度新思路 -HttpDNS 服务详解 。简单来说,就是抛开原有的 dns 协议,直接提供一个 http 接口,给出域名,返回对应 ip。额外参数还包括请求 ip,可以根据请求 …

    这个月主要在搞两件事,其一是:https://github.com/spin6lock/pydnsproxy,其二是一个 bt 客户端,用来搜索磁力链接,下载种子的,还没搞好。 除了 bug 修复,就是给 pydnsproxy 添加了 http dns 的解析方式,这种方式的优势,可参考企鹅的 【鹅厂网事】全局精确流量调度新思路 -HttpDNS 服务详解 。简单来说,就是抛开原有的 dns 协议,直接提供一个 http 接口,给出域名,返回对应 ip。额外参数还包括请求 ip,可以根据请求 …

  • 树莓派改用中山大学软件源

    发布于 文章 232 字 1 分钟

    Python

    **** 最近借了同事的第一代树莓派来玩,主要是想试试玩 SDR,之前听说可以上传一个月的航班广播(ADS-B 广播信息)就可以获得永久资格,随时查阅附近有什么航班飞行。后来发现 flightradar24.com 已经升级规则了,要持续上传数据。。。于是打算听听收音机算了,上手装了 raspbian,毕竟 debian 系统比较熟悉。国内网速着急,先换个源 ** 使用说明 ** 编辑 /etc/apt/sources.list 文件,参考如下命令: sudo vim …

    **** 最近借了同事的第一代树莓派来玩,主要是想试试玩 SDR,之前听说可以上传一个月的航班广播(ADS-B 广播信息)就可以获得永久资格,随时查阅附近有什么航班飞行。后来发现 flightradar24.com 已经升级规则了,要持续上传数据。。。于是打算听听收音机算了,上手装了 raspbian,毕竟 debian 系统比较熟悉。国内网速着急,先换个源 ** 使用说明 ** 编辑 /etc/apt/sources.list 文件,参考如下命令: sudo vim …

  • 翻译 lpeg 入门教程

    发布于 文章 5055 字 11 分钟

    Python

    原文地址:http://lua-users.org/wiki/LpegTutorial 简单匹配 LPeg 是一个用于文本匹配的有力表达方式,比 Lua 原生的字符串匹配和标准正则表达式更优异。但是,就像其他任何语言一样,你需要知道简单的词汇和如何组合他们。 最佳的学习方式,是通过交互式对话,熟悉基本的模式。首先,我们定义一些缩写: $ lua -llpeg Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio > match = …

    原文地址:http://lua-users.org/wiki/LpegTutorial 简单匹配 LPeg 是一个用于文本匹配的有力表达方式,比 Lua 原生的字符串匹配和标准正则表达式更优异。但是,就像其他任何语言一样,你需要知道简单的词汇和如何组合他们。 最佳的学习方式,是通过交互式对话,熟悉基本的模式。首先,我们定义一些缩写: $ lua -llpeg Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio > match = …

  • 为 python-sproto 添加 map 支持

    发布于 文章 373 字 1 分钟

    Python

    上个月太忙了,做完这个修改还没写博客,现在补一下。。 之前使用 protobuf 做协议打包的时候,经常会有个痛点,没法用具体数据的值作为 key 来索引数据。比如现在客户端上传了造兵协议,协议大概长这样: { { troop_type = 101, amount = 1, }, { troop_tyoe = 102, amount = 2, }, } 可以看到,造兵协议是一个数组,数组里每个元素是一个结构,包含 troop_type(兵种类别)和 amount(数量)。每次收到的时候,都需要遍 …

    上个月太忙了,做完这个修改还没写博客,现在补一下。。 之前使用 protobuf 做协议打包的时候,经常会有个痛点,没法用具体数据的值作为 key 来索引数据。比如现在客户端上传了造兵协议,协议大概长这样: { { troop_type = 101, amount = 1, }, { troop_tyoe = 102, amount = 2, }, } 可以看到,造兵协议是一个数组,数组里每个元素是一个结构,包含 troop_type(兵种类别)和 amount(数量)。每次收到的时候,都需要遍 …

  • 玩家回档原因分析

    发布于 文章 900 字 2 分钟

    Python

    在最近一次维护后,玩家发现有较大规模的数据回档,还有一小部分玩家无法登录。现在尝试还原一下现场。 当天维护的时候,SA 执行了一次数据库维护。维护是通过一个脚本完成的,而且执行过多次,理论上没有问题。而维护的过程中,开发组这边需要执行一个脚本,给一批玩家增加经验。这一切完成后,QC 简单复测了一下,就开服了。开服后发现,服务器出现大量报错,而且都是玩家数据出现问题。定位这个问题的时候,发现玩家的数据丢掉了导致无法登录,顿时吓尿了 =_=||| 论坛里也有玩家开始叫骂,定位了一下貌似是那批增加经验 …

    在最近一次维护后,玩家发现有较大规模的数据回档,还有一小部分玩家无法登录。现在尝试还原一下现场。 当天维护的时候,SA 执行了一次数据库维护。维护是通过一个脚本完成的,而且执行过多次,理论上没有问题。而维护的过程中,开发组这边需要执行一个脚本,给一批玩家增加经验。这一切完成后,QC 简单复测了一下,就开服了。开服后发现,服务器出现大量报错,而且都是玩家数据出现问题。定位这个问题的时候,发现玩家的数据丢掉了导致无法登录,顿时吓尿了 =_=||| 论坛里也有玩家开始叫骂,定位了一下貌似是那批增加经验 …

  • 为 sproto 添加 python 绑定

    发布于 文章 1043 字 3 分钟

    Python

    项目地址:https://github.com/spin6lock/python-sproto 第一次写 Python 的 C 扩展,留点笔记记录一下。主要的参考文档是:Extending Python with C/C++, 之前也看过 cython,但是用 Python 语法写 C 还是没学会,稍后再尝试用 cython 写一遍看看。 作为一个 C 扩展,是以 Module 的方式 import 进去代码里使用的,所以需要注册一下,把自己的接口告诉 Python 解释器。代码如下图: …

    项目地址:https://github.com/spin6lock/python-sproto 第一次写 Python 的 C 扩展,留点笔记记录一下。主要的参考文档是:Extending Python with C/C++, 之前也看过 cython,但是用 Python 语法写 C 还是没学会,稍后再尝试用 cython 写一遍看看。 作为一个 C 扩展,是以 Module 的方式 import 进去代码里使用的,所以需要注册一下,把自己的接口告诉 Python 解释器。代码如下图: …

  • 如何快速编写 Vim 语法高亮文件

    发布于 文章 322 字 1 分钟

    Python

    这里有一份 中文的入门文档 ,但是太长了,不想读,所以有本文 最快的办法,就是找一个语法相近的语法高亮文件,稍微改一下 自己从头写的话,首先搞定关键字: syntax case match " 是否区分大小写 syntax keyword 你的关键字类别名字 x 关键字 1 关键字 2 syntax keyword 同样填 x 的话,不会覆盖,只追加 关键字 3 关键字 4 关键字搞不定的,一般用正则匹配: syntax match 类别名 / 正则表达式 / 正则有个麻烦是不能部分匹配,比如我 …

    这里有一份 中文的入门文档 ,但是太长了,不想读,所以有本文 最快的办法,就是找一个语法相近的语法高亮文件,稍微改一下 自己从头写的话,首先搞定关键字: syntax case match " 是否区分大小写 syntax keyword 你的关键字类别名字 x 关键字 1 关键字 2 syntax keyword 同样填 x 的话,不会覆盖,只追加 关键字 3 关键字 4 关键字搞不定的,一般用正则匹配: syntax match 类别名 / 正则表达式 / 正则有个麻烦是不能部分匹配,比如我 …

  • windows 调试器尝鲜

    发布于 文章 633 字 2 分钟

    Python

    曾几何时,我也下载过看雪论坛精华看的津津有味。可惜一直没有动手去调试,学到的 x86 汇编指令也忘得差不多了。最近将老机器的 T4200 CPU 换成了更省电,温度更低的 P8800,为了支援新的 VT 虚拟化,特地将 Dell 1545 的 BIOS 从 A8 升级到 A14。顺带发现 SLIC 已经自动升级到 2.0 了。但是升级以后,win7 开始菜单的睡眠功能就无法使用了,于是萌生了降级刷 BIOS 的想法。 下好了 1545A13 的 BIOS,运行后发现出现了一个 warning 信 …

    曾几何时,我也下载过看雪论坛精华看的津津有味。可惜一直没有动手去调试,学到的 x86 汇编指令也忘得差不多了。最近将老机器的 T4200 CPU 换成了更省电,温度更低的 P8800,为了支援新的 VT 虚拟化,特地将 Dell 1545 的 BIOS 从 A8 升级到 A14。顺带发现 SLIC 已经自动升级到 2.0 了。但是升级以后,win7 开始菜单的睡眠功能就无法使用了,于是萌生了降级刷 BIOS 的想法。 下好了 1545A13 的 BIOS,运行后发现出现了一个 warning 信 …

  • 休斯顿,我们遇到了一个问题

    发布于 文章 675 字 2 分钟

    Python

    最近和前端同学聊得比较多,聊着聊着发现前端回报了一个诡异的错误,服务器端发给客户端的 JSON 错了,解不开。前端同学 bs 了一下服务器用的 JSON 库,居然连编码都会出错。我检查了所用的库,前后端的确用的不是同一个 json.lua,于是跑了一次简单的压测。当然,没有发现问题。过了两天,又遇到同一个问题了,这次我留心了一下错误的详细内容: coco/game.lua:86: coco/lib/json.lua:525: coco/lib/json.lua:240: expected …

    最近和前端同学聊得比较多,聊着聊着发现前端回报了一个诡异的错误,服务器端发给客户端的 JSON 错了,解不开。前端同学 bs 了一下服务器用的 JSON 库,居然连编码都会出错。我检查了所用的库,前后端的确用的不是同一个 json.lua,于是跑了一次简单的压测。当然,没有发现问题。过了两天,又遇到同一个问题了,这次我留心了一下错误的详细内容: coco/game.lua:86: coco/lib/json.lua:525: coco/lib/json.lua:240: expected …

  • 糟糕的十一月

    发布于 文章 677 字 2 分钟

    Python

    十一月感觉就是写邮件系统和两个策划要的活动而已。。。 一直觉得邮件系统十分简单,但是实现的时候却不是一回事。实现速度比预期的慢,一方面是边写边参考了礼包系统的结构,另一方面是抽象错误。就因为邮件放在礼包的位置,然后邮件看起来只是比礼包多一两个字段,所以就参考了礼包系统。这个错误实在太严重。表现层的相似性居然影响到后端的实现!!! 上周的 code review 里,被喷了两个多小时。焦点主要是两个地方,一是对内部来说,其他子系统用邮件的时候不友好;二是协议来说,冗余太多,浪费带宽,协议之间也没有 …

    十一月感觉就是写邮件系统和两个策划要的活动而已。。。 一直觉得邮件系统十分简单,但是实现的时候却不是一回事。实现速度比预期的慢,一方面是边写边参考了礼包系统的结构,另一方面是抽象错误。就因为邮件放在礼包的位置,然后邮件看起来只是比礼包多一两个字段,所以就参考了礼包系统。这个错误实在太严重。表现层的相似性居然影响到后端的实现!!! 上周的 code review 里,被喷了两个多小时。焦点主要是两个地方,一是对内部来说,其他子系统用邮件的时候不友好;二是协议来说,冗余太多,浪费带宽,协议之间也没有 …