- 博客(145)
- 资源 (30)
- 收藏
- 关注

原创 【求文青范技术】程序员做了三个奇葩微博,与死亡相关项目的招贤榜
我觉得写招聘,就是在找味道一样的人。但是团队正起步中,没有太多可以作为表达的东西。于是我就从我做的东西开始说,你看完后觉得,在整个互联网里,他散发的味道显得那么另类。 我的简单经历:08年毕业09~13年10月,游戏编程界(完美世界+福建网龙(对,就是那个卖了19亿美金91手机助手的那个))摸爬滚打5年 工作闲暇期间,我闲不住。其实我是那种喜欢想个什么好玩的东西,然后用技术
2013-10-29 12:37:18
2486
0到新浪微博综搜榜第一
0到新浪微博综搜榜第一 原谅我标题了一点,这两天的粉丝狂涨好几万,被网易媒体转载报道,圣诞当天在新浪微博综合热搜榜第二,第二天第一,时事排行榜牢据第一。但我保证,这篇文章(包括引用的数据)在这些没发生之前就写完了,也相信自己做的是对的,所以绝对的心平气和,绝对的自信牌干货。(这段话是新加的) 来看看一个草根少年如何不买粉、不营销、不炒作、不不要脸,慢慢挖掘的过程。内容较多...
2012-12-27 09:38:06
443
看事儿网:下一代社交内容分析和demo展示
兄弟我最近用业余时间学了点WEB的东西,做了个自己设想中的下一代社交内容网络DEMO,看事儿网 www.kanshier.com 没希望做多大,这里谈谈这段时间的收获。主要包括社交内容的分析,网站UI的分析,竞争对手的分析,和书籍推荐。 开头的自我吹牛我觉得自己在几个社交的预感上还是准确的:在08年的时候,就觉得一定会出现微信这样的东西,只是技术局限,觉得只能靠GPS定位有许多局...
2012-10-31 11:26:25
300
总结第一个项目"种粉网"的失败
第一个项目“种粉网” www.zhongfans.com 失败了,这里总结下。这是今年3月份萌生的一个想法,看到新浪微博上大V的传播的速度,看到很多草根发出声音,就得不到转发,于是就想解决草根粉丝传播力度的问题。首先设定了个规则,用户可以在这个平台上主动的增加(抓取)粉丝,但是每天都有个上限;发消息的时候需要选择消耗多少粉丝,把消息发送给他们,这些粉丝就没了,需要重新累积。完...
2012-08-07 10:45:54
180
从"破窗理论"看产品(游戏,APP)同步用户的环境
什么是破窗理论,一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破;一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟、不堪入目的东西;一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹疑地抛,丝毫不觉羞愧。为什么会有这样的现象?打破窗户的人他在其他地方也是这样随意打破窗户的吗?肯定不会。再举个例子,我在公...
2012-07-21 15:31:30
174
离游戏公测还有一个月的那点事(持续更新)
写了下列这些后,终于,游戏离正式大规模公测还有一个月多点,做个这个月的流水笔记。好坏不评说,等正式公测了,再回头总结MMO游戏终极内测开服一周,问题记录 游戏服务器压测的一些记录 游戏比较顺利公测初期记录 4月份:公测顺利! 3月份第四周:1)一些零碎的小单(貌似bug永远不完)2)我建议主程加个命令,可以查看玩家当前信息状态。比如坐标,身...
2012-03-03 22:33:54
142
游戏比较顺利公测初期记录
今天公司的D项目正式不限号测试,开了3组新服,每个服都达到了之前设定的人数,状态均良好。于是可以带着良好的心情,作为这半年的工作,可以适当的做个记录了。我虽然才来了半年,D项目已经研发接近三年,但很幸运的是该项目框架是从头开始研发,并且比较密集的压力测试和问题等也都集中在这半年。不敢说获益许多,程序上的问题有多少记多少把。首先从公测的推广手段说起。今天的公测跟以往不同,没有大规模的...
2011-12-25 23:50:50
133
游戏服务器压测的一些记录
1)工作量的梳理 在接手的时候,其实我手上还是许多业务的单子。但是领导希望看到的是,我不管啥情况这么个活安排给你,你丫都能完成的好好的。所以一定要多花点时间把一些旧单子解决掉。时间紧迫的理由可以解释一次、两次,但是千万不要再多了。其次,工作量肯定会比昨天多,并且长期也是这样。我不太赞成在不了解自己身体情况下加班加点,后面会很累的。这点我做得不好,前三分之一做得过猛了点,后面效率低了...
2011-11-20 17:44:28
369
MMO游戏终极内测开服一周,问题记录
BUG方面: 1)逻辑BUG不可怕,都可以修改完2)逻辑BUG不能影响到游戏的流程,导致玩家无法继续3)出BUG的时候,如果无法一下子找到原因,要倾向如何维持流程正确性4)记录日志时,并不是记录最后一步为什么失败,而是要记录一些,能够推断出大致流程的原因数据库:4)数据库压力。没想到压力居然出现在了数据库。现有方式如下:上层提供写库、写缓存等种种接口。...
2011-10-24 00:17:49
271
当年朦胧的程序员我,在游戏上对聊天玩法新的包装想法。。
下班回家的路上,在滑腻的南方水汽中怎么觉得今晚的树梢特别朦胧。想起当年的我也很朦胧...转入正题:从历代的网游观察,聊天功能随着早期的简单功能到现在的功能丰富化,可以分频道,分帮派,带超链接,发喇叭等等,但是其中的本质功能并没有多大的创新。除去交流外,聊天还有两个类似SNS特性的东西一、 影响关系广泛。你说一句话,不管认识的不认识的,都会收到二、 即时性高。一方发出消息,另一...
2011-10-13 22:48:21
150
今天听一个HR总监临时讲座,对职场规划的一些体会
事情发生的背景就是HR总监A进行了一场即兴的职业规划讲座。几个背景我们要分析清楚:1)虽然我说的是即兴,但是A已经有十几年的HR经历,对一群挺小白的人讲座,我觉得还是很大方面可以反映了A的正题2)虽然A说,这只是他个人观点。请恕我小人之心,我认为只要是身有利益存在,讲话不免偏颇,包括我自己。3)关于赞同A的地方我会放在后面说,我觉得更多的人是在不知道里面犯迷糊了。文中的语气...
2011-09-26 23:46:13
298
由google protocol buffer想到协议序列化的一点简化
谷歌的PB协议很强大,主要是模拟了一个宿主语言,而C++原生语言对一些代码的动态生成是很弱势的。在游戏协议上,其实很多字段虽然有定义,但是都不一定每回发送的时候都使用到。如何的去灵活定制这里面的序列化? 因为谷歌是先用宿主语言描述了一遍,把字段和flag给绑定起来,然后生成代码。而在项目中,即使再强大的代码库,还是觉得很冗余。这里的冗余指的是说,从成本上考虑,一边是一个庞大的库,一边可以自...
2011-06-17 01:34:37
182
Google Protocol Buffer“序列化.写入”代码流程一点分析
(为啥在可视化编辑里的字都好好的,出来后就忽大忽小的,尤其在代码和文字混排的时候) 本篇主要是对“序列化.写入”所做的代码跟踪,会稍微提到点其他的。采取的例子是自带的addressbook对我目前而言,主要关心这么几个点,对字段的管理,对协议的管理。其中在一些代码分析的思路上是这样的:因为是对这套代码的整个需求不是太了解,所以采取的方式是,会先分析各个模块是干吗的,然后根据它们...
2011-06-09 23:34:44
827
lua调试器:运行时的值查看
最近在看一个lua调试器,remdebug,实现远程断点调试。主要是利用协程实现,非常的舒服。 在它基础上改了一下,做了个玩具。可以实现远程,运行时某个值的查看。即服务器在运行的时候,你突然想查看某个值,直接在控制台发送命令,服务端的脚本在控制台打印出该值。共享一下源代码。不想运行的,我提供了一个简单的演示运行图的文档。RemDebug\Debug\controller.lua...
2011-05-04 17:55:23
401
LUA源码分析九:Debug."getlocal"
函数:{"getlocal", db_getlocal}从db_getlocal开始跟调.该函数是把自身的所有变量打印出来。大体的思路是算到执行码,根据执行码的大小限制,遍历函数保存的变量信息,然后依次打印。 static int db_getlocal (lua_State *L) { int arg; lua_State *L1 = getthread...
2011-04-28 17:26:14
1624
LUA源码分析八:小总结,完整分析dofile的过程和堆栈
关于一些语法包装的问题不涉及(可见前面某篇),主要对堆栈排列上的分析。一路跟调到static void f_parser (lua_State *L, void *ud)函数,堆栈记录如下:+ L->top 0x003950e8:当前指针+ L->stack 0x003950a8+ L->base 0x003950b8+ L->ci...
2011-04-27 17:57:33
472
LUA源码分析七:require的函数调用堆栈
require的调用其实很简单,熟悉完env的设置后,其实本质上都是走luaL_dofile函数对全局表的设置。do_file完,然后设置环境变量。借助此,把LUA里的函数堆栈方式依次跟调一次。如果是熟悉汇编堆栈的形式,对LUA的源码风格很好理解。比如没有实际的变量名,通过对栈的偏移来访问。大于0的表示从base基地址加起,负数的表示从top往后减,或者是表示特定的全局值。因为有这种...
2011-04-26 17:23:14
527
LUA源码分析六:环境设置
LUA源码分析五:环境设置版本日期 2011年4月22日lua里的环境设置,可以看成是一个临时的域名空间。这个空间里有名字和变量等等。可以试着运行一下以下代码,输出全局的环境 local l_lindp=1g_lindp=1for n in pairs(_G) do print(n) end 输出:stringxpcallpacka...
2011-04-22 18:50:15
251
LUA源码分析五:元表
版本整理日期:2011/4/21 元表其实就是可以让你HOOK掉一些操作的一张表。表的定义在ltm.h/c的文件里。对元表的调用在lvm文件里。来看看是怎么hook的。首先定义了一堆的枚举 typedef enum { TM_INDEX, TM_NEWINDEX, TM_GC, TM_MODE, TM_EQ, /* last tag m...
2011-04-22 00:08:42
199
言论信息式网络社交还会有戏吗?
何谓是言论信息式?如果要来个鲜明的对比,请看QQ和豆瓣。一说豆瓣,给人的意识形态就是一个以读书、电影为主的一个专业化网站。说QQ,就是用户多、各种聊天信息,展示的是一种社会型的关系。典型的有QQ,人人网,微博。那么结合前篇的《社交网络的思考》中的部分内容,来分析下三者出现的规律。QQ是在网络上最早一批的联络工具。最早的吸引点是可以为网络上互不相识的人提供交流的工具。我相信很大部分人都经历过...
2011-04-10 23:39:43
142
LUA源码分析四:通过luaL_dofile分析IO载入流程和内部函数调用结构
版本整理日期:2011/3/31 本篇主要说明两个点:1. 载入的IO流程,2. lua内部调用函数流程两个核心的函数 int luaD_pcall (lua_State *L, Pfunc func, void *u, ptrdiff_t old_top, ptrdiff_t ef) in...
2011-03-31 21:11:59
575
LUA源码分析三:table分析(1)
版本整理日期:2011/3/27分析函数:getn,tinsert table在里面数据方式比较直观,但是算法很复杂。一些算法的坑会慢慢补上。先总括下table的数据结构:1)由一个hash表和一个数组构成,当插入一个小标元素,会根据当前数组的大小决定插入哪儿2)hash表上会有冲突,通过一个链表的形式组织冲突的元素3)通过源码,我们还能得到的是一些table的使...
2011-03-28 00:47:25
201
LUA源码分析二:了解lua的文件结构和思考方式
版本整理日期:2011/3/27对lmathlib.c文件中的函数进行跟调。函数是那个不重要,这里选取math_abs/* lmathlib.c 取出一个TValue,转成整型,然后fabs处理。TValue可能是字符串,也可能就是数字。 luaL_checknumber的行为是必返回一个number值 lua_pushnumber的行为是把结果进行压栈处理,具体怎...
2011-03-27 23:21:20
236
原创 LUA源码分析一:总括
1.lua语言短小,而且是我目前开发用到的语言之一,我会把它作为长期阅读的一个开源代码之一2.读完并不代表很牛了,只是把自己的一些弱点给弥补得不是那么明显3.格式上会大概如下: 1)引用一段代码时,会把大意通过注释标识出来,如果遇到具体的函数调用会通过1.x表示在后面标记段 2)有时候一遍下来,会有选择性的通读,很可能以后会回过头再次阅读,会加个时间戳表示更新 3)根据2)的读...
2011-03-27 23:21:12
188
移动互联网(手机)有多少的需求范围
这段时间一直在想手机上的应用,包括前一篇的社交网络。但是在用户群的定位上一直很不明晰,甚至在一些想法上和PC产生了很大的交集。所以,势必要想想,手机虽然越来越智能化,但不代表它在人们的生活中也越来越智能化。(以下讨论仅限中国) 1.在手机的用户上,肯定是普通互联网的N倍。手机的各种应用,一些文件,娱乐(比如音乐,小游戏)等等,必然有一批管理同步类型的工具诞生...
2011-03-15 01:12:42
151
社交网络的思考
QQ刚开始的时候,大家都一个劲的加陌生人(异性),而越到现在,大家的好友列表里反而都是熟悉的常用联系人。并且即使有其他IM软件出现,也很少人会去转换阵地,最主要的还是周边的人也在用QQ。 从QQ刚开始的疯狂加异性朋友到现在的谨慎对待陌生人,可以看到,传统的模式去认识一个新的朋友代价太高了。第一,没有准确的目的性,比如你随便加一个人,你根本不知道对方是干什么的。第二,每次都要进行机械式的...
2011-02-27 23:25:13
113
游戏精细开发的几个点
内容上没什么好说的,不同情况下,看主策对一种东西的理解。从通用性讲我认为有这些:分为本质和特质两个方面本质:1)操作比如走路,使用物品,打怪,甚至可以扯到界面的布局合理上2)帮助指引玩家主动性方面:玩家遇到内容的不解,是否可以有直接的参照资料,比如在线客服,图文讲解等内容主动性方面:一项功能,比如装备打孔,教玩家一次后,是否可以很容易的上手特...
2011-01-21 21:25:30
122
[道兰][NHK纪录片]世界游戏革命 几点观后
视频地址:http://www.tudou.com/programs/view/Fo6GIWdWssQ/是不是强烈推荐不知道,从感情上来说,挺煽情的。看后几点感受。1)游戏作为新的文明承载体,孕育出新的科技。2)精神,动作,感情。游戏变成了一个新的黑客帝国。3)虽然向往专业的地方,但片子里的专业,让人感觉很恐怖,非常害怕和他们做为对手会是怎么样。4)技术和策划是并行刺激的,...
2011-01-16 04:10:54
216
linux内存分配slub的几个疑问
对于SLUB不熟的同学可以先跳过了,涉及的东西比较细致。简单来说SLUB的结构是N(CPU数)个kmem_cache_cpu,和一个kmem_cache_node组成。其中kmem_cache_cpu的目的是为了从技术层面上提高CPU命中缓存,以及在同一个页面上不出现一个脏的内存(即不同时被多个CPU持有)。我把这个实现机制手工在WINDOWS下实现了一套,在开启多个kmem_cache_cp...
2011-01-13 08:21:42
390
MMO中人物移动同步要注意的一个地方
今天项目里的一个错误被揪出来了。C=客户端S=服务器首先C选择一个点,发包给S;S收到后开始模拟行走,同时C也在行走,也就是说是两边都在各自模拟。起先这样设计的意图有两个1)减少客户端的发包量,类似的一个是矢量包的计算2) 防止加速外挂从1)来说,确实可以减少包的量,但是是建立在用户鼠标点击是不改变方向的情况下。其实作为上行包来说,每秒多发几个包是...
2011-01-11 08:36:09
810
strtok三段代码分析
unsigned char map[32]; /*str:原始字符串,ctrl:分割字符串*/ /* Set bits in delimiter table */ do { map[*ctrl >> 3] |= (1 << (*ctrl & 7)); ...
2010-12-13 00:09:43
139
一些开发制度的思考
一些开发制度的思考 经历过几家游戏公司,稍微总结了下一些项目开发流程,并且根据此提供一些自己的看法。当然我没有读过特别的管理书籍,或者敏捷开发之类的,纯粹是自己的想法。经历过一家小公司,里面一个游戏项目程序就一个人,负责所有的东西和各种接口(因为有和平台合作),这个就不细说了;经历过一家中小公司,基本是一个人负责多块,如果负责的块出问题也是属于你管(只要你人还在或...
2010-11-29 22:58:35
128
开源一个windows下的内存分配器slab,
模仿linux内核下的slab而写。一些地址页面做了些新的工作。高效性没什么可说的,页面,cache命中,CPU亲缘。。
2010-10-28 20:23:13
296
这算fread的BUG吗吗吗
环境:VC2008 SP1 ReadMe.txt内容:1111;2222;3333; const int BUFFER = 1024*20;int _tmain(int argc, _TCHAR* argv[]){ char buffer[BUFFER]; memset(buffer, 0, BUFFER); FIL...
2010-10-26 17:03:05
163
2010 ECUG大会,第二天记录。
第二天早上爬了几次才起来。一路小跑,买完包子后在车站等车。今天北京突然降温,全身冰冷,也就口里的包子有点热气。车来得还算快,几分钟后,一辆公交夹着滚滚灰尘而来。冰冷的天气,一大早上就滚滚的灰尘,赶紧封好包子口,合上嘴巴,闭着眼睛往上跳吧。。。第一场 nginx的应用是来自淘宝的一位技术专家。所表现出来的技术非常浓厚。nginx我不是太熟悉,一些东西记录得可能有误。...
2010-10-17 21:35:31
169
2010 ECUG大会,第一天记录。
ECUG:http://ecug.org/2010:home 简单的记录,里面的很多点扯出来都能扯一篇出来。 第一日9点总算及时赶到,签到等扒拉扒拉。以下记录分段式,按笔记本上的稍做整理。不过,去这种大会前,能有20%值得听的就很满足了。这个是前提第一场 生不逢时的 WEB OS大概说了之所以10年发展的WEB OS失败原因有终端不统一,用户体不对(连...
2010-10-16 22:29:50
203
今晚我突然有很多话想说,睡前。
李开复老师的创新工场出的一个项目较豌豆夹,网络上许多人很不以为是,搞了半天才搞了这么个东西?想谈谈我的看法:IT业和传统行业不同,传统业的一些东西,比如吃的,穿的非常注重实用感(大众阶层).如果你产品的质量不好,很容易被其他人吞食。简单来说,从质量上等入手,是打败对手的必须条件之一。但是在IT业却不同,IT业里先入为主的概念非常重要。很多人讨论的时候之说产品的本身如何,但是不要忘...
2010-10-09 23:35:08
122
把玩linux内核的定时器
今年对内核的slab,timer有了很深入的了解,并且有机会在windows下都重写了一次。slab的文章忘记发了,好像是网络上已经有很全的版本了,想主要说下timer,也就是俗称的定时器。 以前写过一个普通的定时器,简单来说就是串成一个长长的链表,然后分配一定的时间片来扫描。这样做,如果有排序的话还好,可以得知需要扫描的个数,并且有序的执行。快排的效率是是log2n,虽然很不错了,学习学习...
2010-09-29 22:19:59
126
游戏中物品的同步
以在背包、仓库中操作物品为例维护到一份代码看到如下的流程:假设现在我在背包中把物品从A格子移动到B鸽子已经有的关键字:物品类型:普通,特殊,消耗。。。等等放入函数:使用物品类型掩码判断(1,2表示步骤)C1:从落点范围判断是否合法(比如背包格子是1-20,仓库是40-60)。如果满足,发送要移动的包给服务器。这时候UI不做更新,即不执行实际的更新函数S1:收到包...
2010-09-13 20:26:17
300
乱稿:PNG的数据结构和传统的数据结构
随手涂鸦的: // HellowTest2008.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "CLock.h" /* V1表示旧的数据,V2表示扩充的数据 旧数据nVersion表示为0, 扩充数据nVersion表示为1 */struct Role1{ int V1n1; i...
2010-09-07 14:52:29
113
VMProtect.Professional.V1.8汉化破解版.rar
2012-05-31
ACM算法-ACM/ICPC 代码库
2010-04-30
ACM算法中的经典代码,值得一下
2010-04-30
C++标准程序库.pdf
2009-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人