桌面软件GUI开发框架: Electron 和 NW.js

2014年底,我在开发给策划使用的游戏工具时,曾短暂地研究了几个月 Qt,当时感觉用 Qt 来写桌面程序还是挺方便的,生成的界面也比 Swing 要漂亮许多, QML 则让 Qt 的易用性得到了进一步增强。

不过这两年来,Javascript 如日中天,开源世界基于 Chrominum 创造了类似 Chrome App 的桌面应用开发工具,可以使用 Javascript+CSS+HTML 来开发桌面程序。除了安装包大一点之外,看起来似乎还不赖。AtomVisual Studio Code 都是使用这种方式开发的。 继续阅读桌面软件GUI开发框架: Electron 和 NW.js

工作选择与职业规划

职业生涯的选择

昨天和一个朋友聊天,讲到关于职业选择的事情。这触动我进行了一些思考,梳理一下思路写下来。

选择与规划

工作和职业这两个词,我们经常把它们划上等号,但仔细看来,它们是两码事。

平常我们经常说“找工作”,找到了工作就意味着有了一份相对稳定的收入,满足我们日常所需,才有可能追求更高层次的需求。对于大多数人来说,有了工作才可能有进一步的生活,才能满足自己的存在感和成就感。逐渐从马斯洛需求层次的“生理需求”过度到“自我实现”。工作是用来“做”的,我们可以选择做我们喜欢的工作,当我们觉得工作无法带来我们需要的满足感/成就感/收入,可能我们就需要换一个工作了。换工作不一定是换公司,你也可以在公司内部通过换岗的方式来换工作。

继续阅读工作选择与职业规划

在技术和管理中选择

想这个问题很久了。自从担任 技术 Leader 之后,这个问题就一直盘桓在我心头,如何分配时间也让我经常焦虑。今天在我的 游戏部门推荐书单汇总 一文中,从筠网友发了这样一篇评论:

为什么不继续发技术帖了?为我们后来人指导一下?您那么多的Lua等技术储备……不发点文章出来,可惜了!经常写写,或者一周一文也好!教导一下后辈,也好继续把你的精神发扬光大!

其实我早已在制定2016计划的时候想清楚了这个问题,但我觉得现在,必须写一篇东西,给自己一点鼓励,也算是对这位提醒我的 从筠 网友的感谢和反馈。

继续阅读在技术和管理中选择

WIKI 系统的选择

由于博客不再转载文章,我弄了一个 wiki系统 ,这个系统使用的是 dokuwiki

使用 wiki 系统还有许多好处,包括但不限于:

  1. 方便保存一些零碎的想法;
  2. 转载文章便于管理;
  3. 文章之间的关系更加系统化;
  4. ……

这个系统大概有2年多了,也积累了 300 篇 wiki ,dokuwiki 有很多优点,例如小巧易用,不需要数据库等等。但最近我越来越感觉在线系统的不方便。例如:

  1. 编辑器太弱,在浏览器中编辑大段文章的体验很糟糕;
  2. 没有版本管理,需要手动备份;
  3. 需要经常更新;
  4. wiki 许多优秀的生成器不支持 wiki 格式。

因此,No Zuo No Die 的思想又开始泛滥,继 博客静态化工作 之后,我又开始折腾 wiki 静态化。

数据备份倒是好办,直接把 wiki 格式的纯文本从 dokuwiki 的文件夹中复制出来就可以了。wiki 这种标记格式的支持,还是没有 Markdown 广泛,甚至都不如 AsciiDoc 。因此,我需要把 wiki 格式转换成 Markdown 。这个简单,祭出 Pandoc 大旗就好了。

比较麻烦的是新系统的选择。在我看来,这个系统必须包含这样几个特点: 继续阅读WIKI 系统的选择

Python web框架的选择

Python web框架的选择

  • 2016-12-13 更新: 加入 CherryPy

python web frameworks

一、缘起网站

大约十多年前(1998年),我做了人生中的第一个网站。那是用的语言是 ASP,工具是 FrontPage

后来(2000~2004年),我做了一段时间网站开发,负责前端到后端、美术到产品的所有内容,使用的语言是 ASPPHP,工具是 Macromedia DreamweaverEditplus

那时,我已经开始手写 CSS 和 HTML,并使用 <DIV> 重构网站了。

再后来,我就没有继续做网站了。

现在,因为众所周知的原因,我必须捡起这个老本行。由于一直都不太喜欢 PHP,我在考虑选择一个 Python Web 框架。 继续阅读Python web框架的选择

在手机游戏开发中如何选择图像素材格式?

在手机游戏开发中如何选择图像素材格式?

How to choose the picture texture format in the game develop?

2014-08-01更新:增加ETC1格式


这是我在知乎上的一个回答,这里是原文

回答的前提是:使用OpenGL来渲染。

分几个点来回答。

1. RGBA4444真的比RGBA8888占用的RAM要少

其实这里说的RAM,是指的显存而非内存。OpenGL支持以这几种形式来使用纹理资源(via http://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexImage2D.xml):

  • GL_UNSIGNED_BYTE(RGBA8888或RGBA888)
  • GL_UNSIGNED_SHORT_5_6_5
  • GL_UNSIGNED_SHORT_4_4_4_4
  • GL_UNSIGNED_SHORT_5_5_5_1

在程序将图片载入系统内存后,会根据你选择的形式(RGBA8888/RGB565 etc.)对其做一些处理(怎么处理后面说),然后就将这些纹理上传到显卡的显存,之后会把这些图片占用的内存删除掉。 继续阅读在手机游戏开发中如何选择图像素材格式?

quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket

quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket

  • 2013-11-17更新:加入SocketTCP和ByteArray类的实现链接。
  • 2014-11-05更新:增加范例链接。
  • 2014-12-04更新:一篇更详细的文章: Socket 与 WebSocket

在 quick-cocos2d-x 中,默认集成了 LuaSocket 和 WebSocket 两个 Socket 库。那么,在开发需要长连接的手机游戏时,应该选择哪个库呢?下面从几个方面进行比较:

  1. 跨平台;
  2. 易用性;
  3. 性能;
  4. 流量;
  5. 灵活性;
  6. 二进制编码;
  7. 服务器实现。

继续阅读quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket