- 博客(99)
- 收藏
- 关注
原创 打鸡蛋和工作习惯
在知乎看到这样一个问题:“男生会做饭有什么好处?“,得票最高的回答是:”不用洗碗”。我想有女朋友的人都深有体会。其实这个答案只说了一部分,因为广大不会做饭的男同胞还要充当大厨助手,比如剥蒜,洗菜,打鸡蛋,这类辅助工作一般都是不会炒菜的人来做的。
2013-12-14 17:03:42
1902
原创 没有傲慢也没有偏见
通过上面的二段代码,发现返回下一个迭代器更加合理,因为在循环内删除,需要指向下次迭代器的值。从这些历史的变迁里,微软让我更加敬佩,他们没有盲目的去崇拜或者遵循权威,而是通过自己对技术的理解,修正了标准库的不足。而同样标准库也是知错能改,并没有因为自己的错误,或者自己订立标准库的便利,而固执不变。这正是我们做技术的应给学习的地方:不盲目权威,知错就改。
2013-12-04 22:22:08
1523
原创 程序员永远的痛之字符编码的奥秘
在遇到编码的无数大坑之后,我决定仔细研究下编码问题,因为这就像一道坎一直横在你面前,每次到这里你都会跌到,每次爬起来之后,你都若无其事,这样的人被称作战士,真正的战士。可惜是个力量战士,做为新时代的智力战士,当然不能在那跌到然后又在这继续跌到。
2013-12-02 22:56:57
3345
原创 Centos环境下部署游戏服务器-常用命令
Linux的命令非常之多,最基本的命令还是需要记住的,当然不是让你去死记硬背,而是用一些小技巧,以及对命令的理解加上练习。相信掌握常用的命令还是很容易的。在这里我只是列出了很少的一部分命令,只不过是在部署游戏服务器的时候用的比较多的命令。在这些命令的背后包含很多计算机知识,比如说信号,比如说进程在前后台运行,正则表达式。这么多知识学到猴年马月,我只能说学海无涯,另外一个就是选择自己方向。
2013-09-21 17:16:01
3437
原创 Centos环境下部署游戏服务器-iptables
如果对网络通信比较了解,知道两台机器是如何连通的,如何发送网络数据包的。其实还是很容易理解iptalbes涉及的策略为啥要这么设计了。对于里面的各种参数,如果经常使用linux的话,都是很容易记住和理解的。计算机的知识很杂也很多,如果全靠记忆去学习,那随着时间的冲洗很快就将你学习过的东西洗刷的干干净净。只有当你理解了,为啥人家要这样设计,而不是那样设计,这样在你遇到这个问题的时候,你是站在设计者的角度看待问题的,只需要简单的查询下,就可以很快对这东西上手了。还有学习计算机英语也是相当重要,计算机本来就是英语
2013-09-21 14:33:48
2467
原创 Centos环境下部署游戏服务器-SSH
在这个*nix大行其道的年代,SSH绝对值得你拥有,虽说它的语法真的很简单,可用途相当大。比如说你在登山,突然公司一个电话告诉你服务器出问题了,在登山的过程中,肯定不能背个几公斤的笔记本吧,这个时候只要你有只能手机,并且安装了SSH,那就可以很happy的连接到服务器解决问题了。还有你想从电脑上向手机上传文件,或者逆向传送。SSH都可以在分分秒秒帮你搞定。
2013-09-07 12:43:55
2874
原创 Centos环境下部署游戏服务器-自动化
计算机是没有智力的,只会接受指令,运行指令,得出结果。因此就算你让它重复做一件事多少次,它也学不会自动去做这件事。对于重复繁琐的事情,做为一个懒惰的程序员,必须告诉机器去做这件事情,然后就行了,而不是每次重复告诉机器做重复的事情。因此脚本可以代替程序员去做这些繁琐的事情了。机器做事情不仅准确,而且从来不抱怨。
2013-09-07 11:04:00
2944
原创 Centos环境下部署游戏服务器-SVN
这是最基本的原理,就像《三体》里提到的黑暗森林法则,虽然简单,但衍生出了整个宇宙社会学。针对节点,可以执行添加,删除,修改操作。这些操作会生成一个新的节点,版本信息就会将上一个节点的区别纪录下来。这样就可以查看历史,可以回滚到任何一个节点,并且只要保留最新节点的文件就行,因为所有节点都可以通过本节点推导出来。
2013-09-06 16:52:35
1907
原创 Centos环境下部署游戏服务器-权限
Linux说一切都是文件,所以文件的权限问题是很重要的,看似简单,其实是很多问题的根源,比如当打开eclipse的时候,你是以普通用户user打开的,但你把一个user不拥有读权限的文件夹指定为工作目录,eclipse是会抛出打开文件失败异常。还有很多例子,需要自己慢慢体会这中间的道理。
2013-09-05 17:44:06
1878
原创 Centos环境下部署游戏服务器-Eclipse
这下我和我的小伙伴们再也不用害怕这些看起来很复杂,功能巨无霸的IDE了, 其实他们只不过是给大家提供了可视化操作的页面,让大家更加高效便捷的去完成事情。如果对它地层所涉及的知识不清楚,用工具只能带来更多困扰。如果对背后运行的原理和技术很熟悉的话,不管IDE如何变化,都要遵循这些原理,不管操作系统如何变化,整个计算机理论知识暂时是不会被颠覆的,所以说在学习的时候一定要知其所以然,这样才能走的更远。
2013-09-05 14:15:56
2162
原创 Centos环境下部署游戏服务器-编译
游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译。这里涉及到的软件分别为:Centos版本为6.4,Visual Studio 2008,Eclipse cdt。 为了后面的知识容易理解,先简单说下C++编译原理,有四个过程。
2013-09-04 18:00:14
2782
原创 Centos环境下部署游戏服务器-软件安装
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置。现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个nodejs的脚本。
2013-09-04 14:08:20
2713
原创 Centos环境下部署游戏服务器-简介
在服务器领域,微软的操作系统是当之无愧的老大,linux这几年份额也在不断增长,在linux企业级商场里,RHEL以它的安全,稳定著称。RHEL在发布新版本的时候是同时提供源代码和二进制版本的,并都可以免费获取,但是如果在线升级,或者技术咨询的话,是需要付费的。Centos是用同一份代码编译出来的,很明显和RHEL是百分百兼容的。因此很多公司为了节省开支自然是使用Centos作为服务器的操作系统。
2013-09-04 11:25:32
4926
原创 ubuntu下搭建cocos2dx编程环境-下
前两篇介绍了cocos2d-x 下linux开发环境配置和android 环境配置问题。在这其中遇到很多问题,所以最后一篇分享一下在处理这些问题时,我是如何解决的,是怎么想的。同时总结一些解决这类问题的方式。避免少走弯路。首先通过问题列表的形式来回答一下部署遇到的基本问题。一、问答列表1、ubuntu下不能识别手机问题 这是因为android sdk 中 platform-too
2013-06-21 14:51:07
5885
原创 ubuntu下搭建cocos2dx编程环境-中
上篇文章里讲了在ubuntu下部署cocos2d-x开发环境,这篇文章主要示范在ubuntu下部署cocos2d-x android开发环境。分开写就是因为我看很多文章里都将这两件事情混杂着写。这样在其他人查阅的时候,会有很多的噪音。其实这也是互联网的一大特色,有海量的信息,但其中充斥着大量的无用信息。google的出现帮大家将海量的资源整理查找出来,但google也不是万能呢,它只能帮你把信
2013-06-20 15:56:58
4964
原创 ubuntu下搭建cocos2dx编程环境-上
这大半年一直在开发flash游戏,用到的编程语言是actionscript和c++。所以这次公司决定开发手游端的话,C++不是很生疏,这是个好消息。坏消息是由于现在网页游戏还没有上线,所以公司并没有给配备mac电脑。好吧,之前由于一直在用Mac开发,所以很喜欢这种开发环境。没有杀毒软件的骚扰,很多工具直接是集成的。漂亮的界面。都指引我选择Unix平台,由于没那么多钱买个macbook pro,
2013-06-19 17:21:14
13867
原创 c与c++的界限
最近比较多的思考编程语言的优劣,以及编程语言的发展轨迹,由于自己对编程语言的历史并不是了如指掌,所以肯定有很多漏洞,既然有想法了就要记下来,不能让它们白白的流逝了。 c语言其实我用的并不多,是大学里正统的学习过的一门语言,学完这门语言后,虽说是新手,可接触其它语言的时候总是用c语言的习惯去写程序。比如说,遇到包含文件就很慌张,比如会考虑函数的包含顺序,比如说分不清数组为啥要有固定初始化
2013-06-12 10:56:47
1871
原创 刨根问底系列之C++ 类型转换挖掘
在日常的编码生活中,程序员时刻与变量的申明,初始化,赋值,运算交互。数据类型有很多种,在不同的编程场景中用到不同的数据类型。在不同类型的数据的交互中,难免遇到类型转换。本文通过C++的类型转换来探讨一下数据类型转换的方式,以及在编码中遇到的问题。程序代码中充斥最多的就是隐式转换。隐式转换在程序编译时编译器根据编译规则匹配的转换方式。常见隐式转换分为两种方式,一种是表达式类型的,另一种是函数式的
2013-03-26 11:24:38
1379
原创 读《浪潮之巅》有感
读过的书,不一定有所收获,过段时间也就忘了。以前三毛说看过的书肯定是留在大脑里。这是真的,在程序员眼里任何事情发生都会是有前应后果的,不会出现什么神奇的事情。慢慢的理解了为啥代码大全里要将代码里的数字常量,或者常量字符串称作神奇数字,或者神奇字符串了。因为这些东西,第一眼看到的时候很难理解,不知道是什么意思,必须通过上下文去理解。写程序是给程序员看的,通过维护坏的代码,才能真真深刻理解前辈们对代码
2012-12-11 21:41:41
3139
原创 刨根问底系列之C++ const 挖掘
一、 const的作用: 1、限定const指定的值的修改 ex1.1: const int a = 2; //a = 3; error: assignment of read-only variable 就如C语言里宏一样,a会被放到符号列表里,不过a是内部链接的(内部链接是指只在当前文件内是可见的)。当
2012-09-10 11:31:24
1835
原创 Unity3d http 通信
前言Unity3d 是一个跨平台的引擎,在移动互联网浪潮之中,尤其是移动游戏3d方向上,Unity3d 毫无疑问是最耀眼的明星。Unity3d的http通信很简单,也非常好用,下面通过http和php sever交互来简单介绍一下。http 提交数据原理 http 协议通过 url来获取和提交数据 。提交数据的方式 有两种,一种是get方法,一种是post方法。get一般用于告诉服
2012-08-24 18:04:58
8767
原创 滑冰感悟
在东北上大学滑冰是一门必修课,但系统总是会有漏洞,学校的体育培养体系就有问题。由于我两年体育选修课都比较特别,所以就漏学了这门课程。刚来北京的时候公司组织过一次,上次滑冰为纯娱乐,没有想那么多。这次带丫头去玩,玩的时候想起了小时候学自行车的时候,那时家里的自行车是那种大梁的自行车,不知道大家还有映像没,小时候接触的事物少,生活无忧无虑,有着一颗纯净的心灵。那时只是踩着自行车从坡上跑下来太开心了,小
2012-08-24 17:36:29
2303
原创 体验C语言内存操作的魅力之范型
用C语言来实现堆栈的范型,体验C语言的真正魅力。相比C++里的范型,用C语言实现感觉更真切,更踏实,同时体会到了对内存把控的快乐,我想再这样下去我会上瘾。这里面唯一要说的两处:分别是realloc和程序第28行。 realloc在分配内存时,如果指针先前分配的内存范围后有足够的未分配的内存,则在末尾直接加上需要扩展的内存,反之分配一块新的内存,将之前的字符拷贝进去。对应图二
2012-08-24 17:24:00
2898
原创 解决问题之道
今天洗完澡后,很意外发现电脑显示器没有信号了,什么情况?本人电脑双系统,在windows下由于电脑连接线接触不良,在电脑待机后,显示器接收到的信号量不足导致黑屏。mac 下 从来没发生这种情况。难道说在我洗澡这几分钟内屏幕坏了?或者视频线坏了。首先屏幕坏的可能性很小,买了不到三个月,毕竟是三星的屏幕,做工不能太粗糙了吧。视频传输线的嫌疑最大。开始排查问题。1、重新启动显示器 (无果)2、关
2012-08-14 18:43:20
1899
原创 那些年我们一起写的随机函数
前言随机数是人们生活中的必需品,比如说喝酒时的划拳,骰子,国人喜欢的斗地主,麻将,福彩,游戏中那就跟不用说了。所以说随机数的设计是关乎公平性最重要的决定因素。如果说前面提到的事件都可以预测的话,我想没有人会去参与这些事件。随机数的用途数学 (统计计算, 模拟)游戏(随机掉落宝物,爆击概率)安全(随机密码,证书)测试(白盒测试)随机数生成器的类型
2012-07-29 13:45:15
8726
原创 剥开ios 系统sandbox神秘面纱
现在用ios系统的人越来越多了,但是发现很多人从非正规渠道购买的ios设备里的操作系统已经被越狱过了,什么是越狱呢,越狱是指ios系统不在像原生系统那样有很多限制。比如说可以安装不是通过itunes分发的应用程序,可以安装iap creaker,模拟购买流程,不用花钱就可以购买游戏里的道具,金币。还可以向系统文件夹下拷贝文件。其实说了这么多,意思就是说越狱的机器用户可以获取最高的root权限,干任
2012-03-05 23:23:18
7348
原创 Iphone客户端程序员半年工作总结
来公司四个半月了,从对客户端游戏编程的小白慢慢的也能写一些东西了,当然了这里最感谢的人就是九天了,对于九天其它的好我就不说了,就是感觉九天为了团队,为了项目,他在很用心的做每一件事情。就如武侠小说里的人物,有的练习功夫强身健体,有的为了取得江湖地位,有的为了报仇雪恨,当然有很少一部分当做兴趣爱好研究,比如说周伯通,他就是个武痴,对什么功夫都感兴趣。可是这些人里没有一项符合九天的,我认为九天喜欢将事
2011-11-30 01:09:10
16154
9
原创 程序开发基础学习五(json配置、解析文件,c++篇)
在游戏中加载解析配置文件家常便饭。以前用过xml,对多维数组结构良好的应用加上xml配置文件遵循html规则,xml还是特别方便的,可是当数据量比较大的话,一堆助记符不仅写起来比较烦,出现问题查起来很费眼睛。今天用一种新的文件解析方式,语法挺简单的,但真正将这个小型库配置到自己的
2011-07-19 17:28:47
6144
5
原创 程序开发基础学习四(boost::signal2 函数学习)
在游戏编程中,新的策划需求总是在迭代不停。。。。。。,对于游戏程序员肯定深有感触吧,遇到这种情况咱只能小小的抱怨下,活还得干。尤其是遇到耦合到很多类的时候,要是直接实现不加抽象的话,那咱的代码就要被拆的七零八落,并且在代码维护性和程序健壮性上问题很大。前面说到的问题其实就是常听到
2011-07-18 18:06:52
5571
原创 程序开发基础学习三(boost::bind 函数学习)
工作中要用到boost库,我的学习习惯是在学习新的知识的时候,将整个知识点的历史和发展现状过一遍。这样既能激发学习兴趣,同时对于知识点的记忆和学习能形成一个完整的系统结构。boost库最新版本是1.47,今天主要总结boost库里一个常用的函数bind,由于之前从来没有用过这个函
2011-07-17 17:12:25
2312
原创 程序开发基础学习二(C++ Google Style 命名规则)
无规矩不成方圆,新的岗位就需要服从团队的编码规则。很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远不仅是一个传统意义上的代码书写风格指导,对于C++的方方面面做出了Google的
2011-07-15 11:04:09
13074
1
原创 程序开发基础学习一(uml设计)
今天到新公司第二天,复习一下uml设计,总结一下。写代码就如写文章,需要一个大概的纲领和结构。uml图有两种类别范畴,结构图和行为图。通过uml图可以很清晰看出类的成员属性,方法,类与类之间的关系。把类的基本属性和类与类的基本关系梳理清楚了。才可以写出易扩展,更稳定的程序。同时其
2011-07-14 16:06:02
2007
原创 C++里那些不为人知的事-成员函数
c++类里申明一个公共的成员函数,通常有几种方式去访问。 1、class obj; 2、class *pObj = new class; 3、静态函数的话,可以用class::fun(); 4、还可以通过this指针访问。 第一种情况可以通过"."操作符访问到成员函数,看过汇编后就是通过obj的类型找到相应的成员函数。 第二种情况下是通过指针访问成员函数,汇编显示这种方式
2011-06-26 23:01:00
1349
转载 zt:程序员的七大坏毛病
1.- 所有的程序都写的很烂,除了我的。 我要告诉你一个坏消息,兄弟,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。如何纠正:不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。2.- 我几秒钟就能
2011-06-08 01:00:00
1015
原创 奇怪的程序编译时间
前两天外网版本和发布版本对应不上了,导致外网有大量崩溃。由于上传人员的失误,紧急补丁尽然没有pdb,没有pdb文件的话就没法调试dump文件找到问题所在。还好后来找到了以前备份的pdb,勉强找到了问题所在,确定是外网版本问题。问题找到了,一切都好办了,可是奇怪的事情发生了。
2011-05-24 09:34:00
1370
原创 求序列里连续子序列最大和
前两天再看《数据结构与算法分析C++描述》这本书的时候,第二章有个讲求序列里连续最大子序列和的问题。讲了四种算法,第四种算法时间复杂度是0(n),当然已经是最优的了。算法原理讲的挺清晰的,我大概实现了一下,随便输入了一组测试用例,仔细一看结果有点不太对,我先把书中的例子贴上来,大家看一下能发现问题不。其实问题不大,只不过令我感到奇怪的是这书都第三版了,这么明显的问题竟然没有发现,不知道是出版社翻译有问题,还是说原作者写的不对。由于没有原版书就不清楚了,看过原版的可以告诉我一声。好的,现在写
2011-05-16 18:41:00
1311
原创 一个分号引发的血案
最近在看《Data Structuresand Algorithms》这本书,书里对数据结构和算法进行了简单的描述,并且用伪码进行了实现。伪码毕竟和代码还是有很大不同的,书的说明里说有C#写的源码,下载了一份。由于本人对C#不太熟,所以看起来比较吃力,并且这个还是开源项目,我想想何不将这个开源项目翻译成C++供大家学习研究呢,正好下午没事就简单实现了书里的单链表,学过数据结构的人都知道这是最简单的一种数据结构。写成通用的模板结构,很显然可以增加代码的复用性。我就大概的实现了一下,没想到
2011-05-13 18:01:00
2229
3
原创 工作一年开发总结
记的非常清楚,去年的五月十号早晨到公司报道。转眼间一年过去了,一年里学到了很多也明白了很多事情。写个总结,就当是在自己的程序人生里下个assert。在这里小小的暂停下,弹出自己现在是一个什么境界。这既是对这一年来的总结,同时也可以对自己将来做个打算。好的,现在开始踏上咱的程序之路。
2011-05-10 08:55:00
2020
原创 两种不同随机算法设计理念
随机算法在程序设计里的使用频度就不用我说了。一般我们用到的随机算法都是伪随机算法,什么叫伪随机算法呢?伪随机算法意思是假如知道第一个随机种子和随机算法的话就可以推算出下一个随机数。通常我们程序里都是通过当前时间作为随机函数的第一个随机种子,然后将随机函数返回的值作为下一个种子,随机函数是一个公用函数,每个用户的请求都会触发一个新的随机种子,所以说是随机的。很多公司都有自己的一套随机算法,下面看一下
2011-05-03 20:13:00
3705
2
原创 查找一个隐藏很深的bug
工作中遇到一个bug,下断点整个流程就对,不下断点返回值就不对。对于这样经典的bug必须写出来和大家一起分享。好的, 我先写一下大概代码,有兴趣的可以先看看,最后给答案。看大家会不会和我犯同样的错误。
2011-04-14 20:20:00
1943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅