Web Analytics

ShareSDK Cocos2d-x专用组件的一个Bug

近期研究了一下Game App做社交分享,最后选择了ShareSDK来集成,不仅是因为ShareSDK支持国内外主流社交平台,更重要的是ShareSDK提供了专门的 cocos2d-x集成方案,有专门的文档和代码Demo供开发者参考。 文档中提到了三种集成方式:纯Java方式、plugin-x方式以及Cocos2d-x专用组件方式,这里选择了ShareSDK Cocos2d-x专用组件(v2.3.7版本)的方式。按照文档中描述的步骤进行的相对顺利,在各个社交平台的appkey生效后,我们对demo app进行了测试,居然发现app经常随机性的崩溃,有时甚至是每次都崩溃,经过深入分析,发现这是ShareSDK Cocos2d-x专用组件的一个严重Bug,下面详细说明一下Bug的产生原因以及Fix方法。 ...

April 17, 2014 · 6 min · Tony Bai

Cocos2d-x内存管理-绕不过去的坎

Cocos2d-x引擎的核心是用C++编写的,那对于所有使用该引擎的游戏开发人员来说,内存管理是一道绕不过去的坎。 关于Cocos2d-x内存管理,网上已经有了许多参考资料,有些资料写的颇为详实,因为在内存管理这块我不想多费笔墨,只是更多的将思路描述清 楚。 ...

March 18, 2014 · 8 min · Tony Bai

Recommended C Style and Coding Standards中文版全文

今天无意中打开了托管在Google Code上的“Recommended C Style and Coding Standards”翻译项目,忽感觉通过目录链接的方式查看译文缺少整体感,于是花了点时间将译文全文以single page的形式贴在博客里面,方便大家查看,也算是对该翻译内容的一个备份吧。 ...

November 26, 2013 · 44 min · Tony Bai

那些代码中的“中国式”命名

10月中旬,有人在Quora网站上发起一个调查:“程序员职业生涯中最难的事是什么?”,调查结果让人实感意外。世界范围内的程序员同胞们普遍认为: “命名是让大家感觉最困难的事情”。对于主流的欧美程序员尚且如此,对于英文非母语的中国程序员来说,苦逼程度可想而知了:(。 虽说中国程序员大多也都学了10年以上的英语了,但能“地道”的表达和书写甚至是选词的程序员们比例却不高。而在编写程序的过程中,给变量、常量以及函数命名即意味着我们要选择恰当地道的词汇或缩写。 ...

November 6, 2013 · 3 min · Tony Bai

Memcached CAS应用一例

近期收到客户一个需求,我将该需求转述为下面这个等价的问题。 【问题】 * 有一个产品包装系统_S_,为某种产品_P_提供产品包装服务; * 系统_S_由若干个处理节点组成,每个节点都可以单独处理组件; ...

November 1, 2013 · 5 min · Tony Bai

关于程序员的构思能力的一些体会

有一段时间,我完全沉迷于在脑海中想象机械绘图和设计新机型所带来的极致享受,这是我一生中有过的最完美的精神愉悦。创造的灵感像泉水般源 源不断 地涌出,我遇到的唯一困难就是必须设法牢牢抓住它们。对我来说,构思中的设备零件都绝对是真实的,所有细节都触手可及,甚至最细微的标识和磨损状态也是如 此。想象发动机在持续不断地运转,仿佛一道迷人的风景呈现在面前,令我欣喜若狂。 — 尼古拉. 特斯拉 ...

October 27, 2013 · 5 min · Tony Bai

为阻塞型函数调用添加超时机制

我们产品中的一个子模块在进行Oracle实时数据库查询时,常常因数据库性能波动或异常而被阻塞在OCI API的调用上,为此我们付出了“惨痛”的代价。说来说去还是我们的程序设计的不够完善,在此类阻塞型函数调用方面缺少微小粒度的超时机制。 ...

October 25, 2013 · 6 min · Tony Bai

关于编程语言学习的一些体会

Learn at least one new language every year. — Andy Hunt and Dave Thomas 自己一直是“每年学习一门新语言”的忠实拥趸,曾先后认真地学习了Haskell、Common Lisp、Python、Go等语言,对Prolog、Scala、Erlang、Lua、PHP也有一定了解。但几年下来,只有Python一门语言算 是真正被留在我的大脑里,用在了工作中。其他那几门语言留下来的只是一些思想了。这似乎符合了Andy Hunt和Dave Thomas在《程序员修炼之道》中对于这一实践目的的阐述:“学会用多种方式解决问题,扩展我们的视野,避免思路僵化和停滞不前”^_^。 ...

October 22, 2013 · 4 min · Tony Bai

利用ZooKeeper服务实现分布式系统的配置数据同步

很多时候,一旦习惯了某些事情,也就习惯了它们的恶劣,习惯了它们的丑陋,习惯了它们“赋予”你的各种痛苦。 – Tony Bai 一、痼疾难解 曾几何时,在那个还没有集群化,没有分布式的时代,它还是一个不错的方案,至少在线上没有暴露出太多问题,它也不在我们关注的重点范围之内。但随 着集群化、分布式的新版本的到来,那一大坨遗留的代码就变得格外让人不顺眼,同时问题也随之在线上暴露开来了。 ...

August 28, 2013 · 9 min · Tony Bai

Ubuntu 12.04修复记

今天一早发现Ubuntu 12.04坏掉了,于是用了大半天对其做了修复,修复过程十分坎坷,但结果还不错,遂记之以备忘。 * 毁掉Ubuntu Ubuntu坏掉完全是由于我的错误决策。昨天一天Ubuntu桌面右上方的状态拦一直有一个红色的错误提示符,提示系统包冲突,建议执行sudo apt-get install -f解决。apt-get也提示索引冲突,无法卸载和安装任何包。于是执行了sudo apt-get install -f,虽然我不知道这个命令对系统做了哪些更改。但结果是那个错误提示符的确不见了。 ...

August 7, 2013 · 4 min · Tony Bai