为sproto手写了一个python parser】的更多相关文章

这是sproto系列文章的第三篇,可以参考前面的<为sproto添加python绑定>.<为python-sproto添加map支持>. sproto是云风设计的序列化协议,用于高效的打包解包游戏协议数据.有点类似Google推出的protobuf,但是比protobuf要快.结构上有点类似cap'n Proto,但是没有打算直接使用其作为内存组织结构,因此少了数据对齐的部分.目前使用场景主要是在游戏客户端和服务器端的RPC协议上. sproto比较有趣的一点,是可以自描述,用sp…
声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名为servlet的目录 ==>在servlet目录下新建名为WEB-INF的目录 ==>在WEB-INF目录下新建一个名为classes的目录 ==>在WEB-INF目录下新建一个名为web.xml的文件 ==>在classes目录下新建一个名为FirstServlet.java的文件…
上周写了<ThinkPhp模板转Flask.Django模板> 一时技痒,自然而然地想搞个大家伙,把整个PHP程序转成Python.不比模板,可以用正则匹配偷懒,这次非写一个Php编译器不可. 上网搜了一下,发现大部分Python to xxx的transpile都是直接基于AST,省略了最重要的Tokenizer,Parser.直接写个Visitor了事.要不然就是基于Antlr之类的生成器,搞一大堆代码,看得令人心烦. 既然大家都不想做这个苦力,我就来试试,手工写一个Php编译器.分Tok…
当年的PHP号称是最好的编程语言,今天的Python就是最简单的编程语言,一个小小的程序,寥寥几行代码,带你体验一下编程的乐趣. 最简单的编程语言 今天要介绍的小工具是Python环境安装好之后,自带的一个库,我们可以管它叫做海龟画图,使用海龟库很容易积累起新手对编程的信心,原因是它是一个能够展示出来一个可视化页面的库,我们写的代码可以直观的看到效果,它不像一般的编程学习路线那样,一直敲代码,只能跟控制台进行交流,很抽象的理解这个过程,它很友好,很直白的展示出你跟计算机的交流结果. 如果正在阅读…
构建自托管的笔记系统 这两年各种笔记系统快速井喷,好像谁都能来掺一脚,app store随便搜索一个关键字就会有一大堆的结果,从老牌的印象笔记,Bear,MWeb,有道云笔记再到新星专注笔记之类,从买断制到订阅制,从全平台到iOS独占,什么样的都有,如果你是一个相对包容的人,那么大牌的笔记软件就足以满足需求,代价是承受不菲的订阅费用以及陈旧的笔记客户端? 我坚信订阅制对软件开发而言是一件有促进作用的好事,能够督促开发者在软件的生命周期里修复问题,并提供更好的在线服务以及售后帮助,但也不能不承认,…
写完词法部分,又有很多杂事,周末终于有空来实现伟大的语法解析部分了. 撸完代码之后发现,程序太短了,不算上状态机,才186行(含注释),关键代码不到100行.运行调试过后,发现还行.居然可以解析OneThink里面的function.php.这个文件堪称Php程序的集大成者,里面什么妖魔鬼怪都有,调试的时候真是一把辛酸泪.当然我也是不会说的,哈 有鉴于程序太短,所以我准备详细地来说说,以免大家不太明白其中奥妙:) 我们知道,语法解析一般有LL(1),LR(0),SLR(1),LALR(1),LR…
1. 距离计算,不要通过遍历每个样本来计算和指定样本距离,而是通过对于指定样本进行广播(复制)成为一个shape和全局一致后,再进行整体计算,这里的广播 / 复制采用的是tile函数来实现的: 2. numpy的排序函数argsort,这个函数可以默认按照冒泡排序进行排序:对于一维数组,正序排列正常传入数组即可返回np.argsort(x):如果是逆序则是np.argsort(-x):类似的对于二维数组,需要指定一下axis,如果0代表按照列进行排序,axis=1代表按照行进行排序: 3. 对于…
使用ajax简单写一个猜拳游戏 HTML代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> <script src="http://cdn.bootcss.com/jquery/2.2.4/jquery.js"></script> &l…
背景: > 一直使用 Newtonsoft.Json.dll 也算挺稳定的. > 但这个框架也挺闹心的: > 1.影响编译失败:https://www.cnblogs.com/zihuxinyu/archive/2013/05/06/3063181.html (我也经常遇到) > 2.WinCE版本(小众用户)太大:Newtonsoft.Json.Compact.dll 352kb > 3.自己写一个微型框架,在通讯方面 要用到Json:一个 100k 的框架,引用一个 40…
目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简单的链路追踪,下面详细介绍下. 一.实现原理 Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志. MDC(Mapped Diagnostic Context,映射调试上下文)是log4j和logback提供的一种…