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

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

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

常用开源镜像站整理

  • 2015-10-19 更新: 加入 npm 和 gem
  • 2015-10-20 更新: 加入 pypi
  • 2016-02-21 更新: 加入 msys2
  • 2016-07-13 更新: 加入 pypi 的豆瓣 https 源

由于众所周知的原因,许多开源软件的源站点在国内访问不顺,因此就有了镜像站这东东。这段时间我在各种开源技术中跳来跳去,也就积攒了不少镜像站,下面是个梳理。 继续阅读常用开源镜像站整理

Int64.ts and Buffer.ts for Egret

前几天写了一篇 Javascript 的 64bit Int 支持,列举了一些在 Javascript 中支持 64bit 数值的已有方法。

其实,写那篇是为了在 egret 中支持 64bit 数值,原因么,上一篇有讲。

由于 egret 使用的是 TypeScript ,我基于 node-int64 翻译了一个 TypeScript 版本Int64.ts ,方便伸手党。同时为了方便和服务端大爷通信,又继承 egert.ByteArray 写了个 Buffer.ts

note-int64 采用的是 node 的 Buffer 来保存 64bit 数字信息。我给改成了使用 egret.ByteArray 。后来为了更加通用,又改成了直接使用 Array。

Buffer.ts 中则仅仅实现了 readInt64 和 writeInt64,Unsigned 版本直接调用这两个方法。

这两个文件都在 gist 上,请科学上网。 继续阅读Int64.ts and Buffer.ts for Egret

使用 slimerjs 抓取 DDos 保护的站点

我准备在一个图片站上抓点图,但发现它启用了 DDos 保护。站点会首先显示一段文本:

This process is automatic. Your browser will redirect to your requested content shortly.

要求你等待几秒钟检测浏览器,然后通过 302 重定向跳转到正确的页面(当然,这个正确的页面地址依然没变)。

等待的过程表现在浏览器上是这样的:

im_under_attack_page

这个保护的详细说明在这里: CloudFlare advanced DDoS protection

让我们看看怎么来解决这个问题。 继续阅读使用 slimerjs 抓取 DDos 保护的站点

Javascript 的 64bit Int 支持

2015-09-22 更新:加入 Int64.ts 的介绍连接。


最近把一个 native 游戏移植到 HTML5,客户端和服务端都是 C++ ,而且游戏金币经常性超过 231 ,所以服务端的大爷们很任性地使用了 int64 。

这下问题来了,Javascript 不支持 int64 。

说服服务端的大爷们改用 32bit 是不可能的。说服大爷们使用字符串也是不可能的。说服策划重新设置数值使其小于 231 也是不可能的。

有句话怎么说的?如果不能反抗,那就默默享受吧……

看我这个 Javascript 前端菜鸟如何应对! 继续阅读Javascript 的 64bit Int 支持

TypeScript 的强制类型转换

在 TypeScript 中将一个 number 转换成 string ,这样做会报错:

var a:number = 12345;
var b:string = <string> a;
// laygroundSingle.ts(24,18): error TS2352: Neither type 'number' nor type 'string' is assignable to the other.

这样写虽然不会报错,但没有什么卵用: 继续阅读TypeScript 的强制类型转换

nodePPT 自定义模版

由于 HTML5 和 CSS3 的表现力增强,在线简报系统(好吧,我们还是熟悉 PPT 这个词) 技术也逐渐成熟了, SlidesSliderRocket 这种在线服务现在已经得到了广泛应用。

对于爱折腾的程序员来说,希望得到表现力更强的工具,这样的东东也不少:

仍嫌不过多的可参考这篇: 5 of the Best Free HTML5 Presentation Systems

继续阅读nodePPT 自定义模版

Cocos2d-x script language binding:Lua or Javascript?

Cocos2d-x script language binding:Lua or Javascript?

2014-01-15更新: 加入Gwill的文章连接。


cocos2dx script binding: lua or javascript?

这篇文章是我在之乎的一个回答: http://www.zhihu.com/question/21130385/answer/18827858 ,有修改。

强调:这篇文章有极强的时效性,在1年时间内应该有一定指导意义。本文成文日期是2013年9月11日。

目前 Javascript 风头似乎超越一切,所以我一直在纠结,到底是使用Lua Binding还是 Javascript Binding。

我找了一些资料。如果把下面的资料看完,相信每个人心里都会自有分辨。 继续阅读Cocos2d-x script language binding:Lua or Javascript?