摘要: 之前一直把代码托管在taocode上,现在已经不能用了,所以把代码整理了一下,统一都放在gibhub上了。 LALR(1)语法分析生成器:https://github.com/kiven-li/xbytes 红黑树:https://github.com/kiven-li/rbtree AVL树:ht 阅读全文
posted @ 2018-11-13 21:23 kiven.li 阅读(203) 评论(1) 推荐(0) 编辑
摘要: 0.概述: 一般情况下,为了提高游戏速度,在线玩家的数据都会缓存在内存中。如果有数据更新的时候,只更新内存中的缓存数据,而不是直接更新数据库。缓存数据会定时写回到数据库中(比如:5分钟写入一次)。 当服务器宕机后,从上次更新数据库到宕机前的所有数据更新都将丢失,即所谓的回档。这部分数据永远也找不回... 阅读全文
posted @ 2015-06-08 20:43 kiven.li 阅读(1277) 评论(0) 推荐(0) 编辑
摘要: 今天在网上看到一张GIF图片,把常见介词的意思用图和动画的形式表达出来。真的是太形象了,想不记住都难。废话少说,上图。 阅读全文
posted @ 2015-05-25 18:43 kiven.li 阅读(549) 评论(0) 推荐(1) 编辑
摘要: 概述:GDB是linux下调试程序的神器,做为linux程序员,如果不能熟练的使用GDB进行程序调试,那将是很失败的事情。强大的功能使GDB的使用也变得比较复杂,如果是初学者肯定会比繁杂的命令吓到。下面是整理的一些我认为会比较有帮助的部分。下文中以">"开头的命令是linux的shell命令,以"(... 阅读全文
posted @ 2015-05-25 18:29 kiven.li 阅读(3324) 评论(2) 推荐(1) 编辑
摘要: 0.概述: 看了编译器龙书和虎书后,自己手动写了一个LALR(1)语法分析生成器,使用的语法文件格式和lemon的差不多。 程序里面很多的算法也都是摘录自虎书,龙书虽然讲的很详细,但是真正动手写的时候还是虎书上面的算法给力点。程序相对来说比较简单,没有做任何优化,如果看过虎书和龙书,看懂代码难度不大 阅读全文
posted @ 2015-05-04 21:31 kiven.li 阅读(2022) 评论(0) 推荐(0) 编辑
摘要: 一旦想要求快,就表示你再也不关心它,而想去做别的事。 感触比较大的一句话。其实每个人看书,都有不同的侧重点,不同经历的人看同样的书,收获是不一样的,所以不能在乎收获多少,只要有收获就行。 阅读全文
posted @ 2015-03-18 16:54 kiven.li 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 最近看《游戏脚本高级编程》,然后顺便把里面实现的虚拟机,汇编器以及编译器手动用C++重写了一遍,原版书中提供的代码,风格不是很好,而且有几处BUG。我现在开源的代码中已经修复了BUG,而且有些地方做了一些改进。 这本书对我的帮助很大,虽然作者比较啰嗦,代码风格也不是很好,但是作者写的很简单明了... 阅读全文
posted @ 2015-02-07 15:54 kiven.li 阅读(2501) 评论(0) 推荐(0) 编辑
摘要: 1.首先要安装编译源码用的编译器gcc&g++,安装方式很简单,先用yum search gcc搜索出包,然后选择适合自己的版本复制全名,用yum intall gcc_XXX来进行安装即可。2.安装openssl以及ncurses-devel。安装方式和1一样。3.从这里http://www.er... 阅读全文
posted @ 2014-07-31 20:41 kiven.li 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 该图片截取自>,第17个技巧。 如果想验证可以写个简单的网络程序,分别用close和shutdown来断开连接,然后用tcpdump查看交互过程,就一目了然了。本来我想自己写个程序验证,但是自己笔记本上没有linux环境,公司环境又不能通外网,所以就放弃了。 阅读全文
posted @ 2014-07-03 13:55 kiven.li 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 对于函数式语言来说,函数也想普通的数据类型一样无处不在。函数即可以当成参数进行传递,也可以当成函数的返回值。当我第一次学习函数式编程的时候,我被这样的写法弄的头昏脑涨。下面我举例说明下(例子摘录自Learn You Some Erlang): 假如你想对一个列表中的所有值都进行加1或减1的操作... 阅读全文
posted @ 2014-06-23 19:29 kiven.li 阅读(573) 评论(0) 推荐(0) 编辑