最近一段时间一直在负责做我厂神经网络前向框架库的优化,前几天接了一个bug report,报错信息大体是这样的:
1 | |
最近在学习ARM的SIMD指令集NEON,发现这方面的资料真是太少了,我便来给NEON凑凑人气,姑且以这篇入门文章来分享一些心得吧。
学习一门新技术,总 …
Read more前段时间厂里开始搞技术分享,这个月恰好CTO大大钦定了我,让我讲Docker。不过我自己一想,厂里大多数是码农,讲Docker这种偏运维的话题的话,大家可能平常用不到,也 …
Read more前段时间fracting兄分享了Andrej Karpathy一篇介绍RNN(Recurrent Neural Networks)的文章,我看了之后觉得非常有趣,也用作者Andrej Karpathy写的char-rnn跑了一些实验玩玩。
作为码农,我最开 …
Read more还记得本渣以前写的给tmux现场做备胎的脚本吗?其实后来本渣就没再去拓展这个脚本了,不是因为之前的脚本运行得够好不需要再改了,而 …
Read more最近折腾了一些Docker image,为了方便厂里其他人用,于是本渣还得折腾docker-registry搭个内网的Docker私有仓库~
本渣是照着Docker —— 从入门到实践做的:
1 2 | |
前段时间本渣在做服务器端开发时,采用了Docker作为解决方案的一部分,最初的动机主要是想用namespace做环境隔离、用cgroups做资源 …
前面几篇文章稍稍提到本渣最近接手了一个server端开发的活,这次就来碎碎念一下好了。虽然我们server端用OpenResty,和client端一样主要也是用lua开发,不过实在也不是本 …
最近在做server端开发,需要熟悉nginx,本渣也就在这里记录下自己遇到的一些问题。其实都比较小白,纯粹当作自我扫盲啦XD 本文将不 …
Read more之前一直在做cocos2d-x手游客户端开发,最近被组织上安排去做服务器开发了。虽然一开始接触OpenResty,遇到不少问题,但由于本渣重用了大量以前的 …
前段时间在做游戏的地图编辑功能,我们是在一个斜45度视角的场景上,对地图上的建筑或装饰物进行添加、移动、移除等基本操作,而且位 …
Read more说起折腾svn hook这件事还是在去年年底。我厂向来木有Code Review等Quality Assurance流程,全赖老司机们各种强力输出。而当时我们项目的不少老司机要么去了其他部门要么 …
Read morecocos2d-x v3.2的Label实现bug真是不少,前段时间恰好排查了几个与之相关的问题,在此记录一下。
文字换行是一个困扰我们挺长时间的问题:之 …
Read more继我不久前犯二之后,今天一位同事小伙伴也逗逼了,给/etc/sudoers加了777权限...6666结果sudo就悲剧了:
1 2 | |
一个月前,我的洁癖犯了,想执行find . -name "*~" -exec rm {} \;清下某目录下由vim生成的~文件,不料漏打了~,把一些文件删掉了...好在有用git做版本控制 …
这次分享一个简单的小功能,在quick-cocos2d-x游戏中实现tips效果,以此作为之前一篇博文的后续。tips的行为很简单:点击某个node(我们不妨称它为target_node)触发,当点击区域在target_node …
最近用Instruments的Leaks工具排查我们cocos2d-x游戏的一些内存泄露问题,大部分属于之前我们C++代码的bug,还有几个是lua代码中sqlite使用不当造成的内存泄露(例如 …
最近查google breakpad回传的crash log,发现了不少cocos2d::FileUtilsAndroid::getData引起的崩溃。崩溃日志的关键信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 … |
手游前端开发中有一项很基础的流程,就是把美术资源拼成程序能用的UI界面。由于cocos2d-x并没有一套成熟的工具链,我们最开始是由美术大大们出效果图 …
Read more前段时间本渣负责了一些优化我们cocos2d-x游戏性能方面的工作,在这里做一点记录。
在debug版的cocos2d-x游戏里,通常会在左下角显示三个指标(当然,是否显示这三个指 …
Read more最近在处理一个略奇怪的问题:app在某些情况下点按钮会消失后又重新出现,报bug的童鞋们把现象描述得有些扑朔迷离,因此本渣在排查问题时花了不少时间,在查了一些不相关的问题之后最后终于确 …
Read more本渣比较懒,就直接从工作邮件挑一部分放上来哈~
1.神马是GL calls?
GL calls也称batch,可以单纯理解成绘制次数,一般来说CPU向GPU发送batch会造成瓶颈,这个指标越 …
Read more承接上一篇,这篇主要谈谈本渣在quickx用的一些脚本或自己折腾的一些定制,本文也将不时更新。
如无特殊说明,相关函数放在一个MyPackage的lua global table中:
1 | |
这次分享一个在cocos2d-x中实现打字特效的小功能。
首先,cocos2d-x中label默认是utf8编码,quickx提供了一个string.utf8len接口,这里再加一个截取子字符串的函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … |
之前曾经在cocos2d-x V3.x不规则按钮探讨过在cocos2d-x 3.x版本实现不规则按钮的方法,后来本渣又琢磨了下仿照RenderTexture类调用OpenGL ES API来获取图片像素信息的方式。这种方式由于按钮图片的Texture已在内存中,且不需要解析图片文 …
Read more本渣最近一个月来开始接触quick-cocos2d-x,用lua开发比c++要快些,但也因为quickx目前的一些坑——当然有些其实应该算是2dx引擎本身的坑——让本渣折腾了不少时间。在此做点记录 …
Read more再次来聊一聊cocos2d-x的TableView。之前之所以用继承TableView的方式实现2D的GridView是因为用到TableView点击事件的地方涉及到全局数据的复杂处理,这 …
cocos2d-x的按钮默认是以长方形作为点击区域的,实际使用时这确实很蛋疼。之前有大牛研究了如何获取图片的透明度实现不规则点击区域的方法,例如:
Read more对于刚开始接触cocos2d-x的TableView的人来说,这个UI类看上去并非顾名思义的是个Table,而仅仅是个一维的List。
因为项目需要,我封装了一个TableView的子类来实现二维的功能。效 …
最近我们游戏需要用到BMFont字体,但又没有好的免费工具给美术大大们生成字体所需要的图集和fnt文件。
好在本渣在网上 …
用cocos2d-x开发Android游戏时,需要在Android.mk文件中,为LOCAL_SRC_FILES变量指定要编译的源代码,以及为LOCAL_C_INCLUDES变量指定头文件。当项目文件越来越多时,这种手动修改很浪费时间。好在Android.mk其实就是一个makefile,我们可以借助makefile语法来自动完成这部分工作。
本渣不久前答完辩毕了业,很快就入职开始新的搬砖历程——在一个只有四名码农的团队里做cocos2d-x的前端开发——说起来我们还是公司第一 …
Read morecocos2d-x移植自Objective C的cocos2d,其内存管理其实也来自于OC。因而对于写过OC程序的朋友来讲,cocos2d-x的内存管理应该是一目了然的,但对于本渣这枚没接触过OC的C++码农来说,或许直接看cocos2d-x源代码才是最直接快捷的方式。
我们首先来 …
Read moregit clone远端svn仓库(repo):1 | |
git-svn从远端svn仓库拉取提交(commit)到本地:1 | |
git-svn把本地推送到远端svn仓库:1 | |
git-svn …矩阵乘法是利用GPU加速一般运算的经典范例,在NVIDIA官方的CUDA C Programming Guide和CUDA C Best Practices Guide也都有示范代码来说明如何加速矩阵乘法。本渣这里要介绍的是如何加 …
Read more之前我在Drew Neil大牛的vimcasts网站上学到了不少Vim技巧,也知道他出了一本《Practical Vim》的书,当时就很想拜读一下:
后来在图书馆预约了这 …
Read moreRMS(Richard Stallman)这次居然来学校布道了,我也有幸能近距离围观到传说中的自由软件神教教主。 这次RMS做了一次非技术性的演讲,题目是「A Free Digital Society」。 由于没有 …
Read more之前写CUDA程序时光顾着如何加速跑在device(GPU)端的kernel function了,没太关注host(CPU)端的代码,直到上个月发现了我某个CUDA程序中的坑——host端内存模型使用不当导致在CPU和GPU之间的数据传输消耗了大量时间,这种overhead甚至占到了总时间的70%以上,成为最主要的瓶颈(bottleneck)。在填完这 …
Read more前段时间学校的EECS楼发生火灾,最近隔三差五停电检修,打断我在server上跑的实验。 而且我习惯上用tmux开多个session和window,一遇到停电我的tmux现场就悲剧了。 复电重开机之后要把tmux现场手动重新建好也很麻烦,于 …
Read more这篇日志应该叫「六美分历险记」的,「六美分」顾名思义嘛,自然是指CentOS-6。
下面扯扯为何对本屌来说是「历险」和为虾米要「历险」: 偶对 …
Read more写blog确实是一种消化和深入理解知识的方式,但往往要整理一个完整的主题相当的耗时间。 平时我也想记一记一些有用然而散乱的tips,慢慢积累起来。 作为一位Vim忠实粉 …
Read more(施工中...)
前面提到我们用一张被称为PHT(Pattern History Table)的hash table来存放branch指令的跳转历史,我们也解释了这张hash table的entry如何更新以及如何根据entry来作出相应的预测。 接下来的问题是使用 …
Read more作为一名CSer,最好的学习方式之一无疑是tracing code,看源代码——
不知你此时是否与我一样想起了Linus那句名言「talk is cheap, show me the fucking code!」?
可是对计 …
debug一个并行程序(parallel program)向来是件很麻烦的事情(Erlang等functional programming language另当别论),
对于像MPI这种非shared memory的inter-process model来说尤其如此。
目前我所了解的商业 …
Read more早先我用MS office或open source的OOo来编辑文档,后来渐渐转向google docs和LibreOffice,学会了$\LaTeX$后,由于$\LaTeX$所见即所得(WYSIWYG)的特征节省了我不少排版的时间,所 …
Read moreOctopress確實是個好東東,花了半小時折騰了下,現在終於可以用Markdown來寫blog了!
不過偶還是被它自動生成的_Liquid_模板坑了555,吐嘈一下...
另一個要吐 …
Read more这是一篇12年的旧文,我从wordpress博客的草稿箱中挖出了这个坟,内容大体不变,只是用Markdown语法改了一下~
之前在家里的老台式上折腾过archlinux,arch的快速、轻量和高定制性给我很不错的印象。不过 …
Read more