升级Google appengine sdk遇到的问题
Submitted by hubdog on Tue, 2012-04-24 22:21今天因为需要用一个多年前写的google appengine gwt的项目,升级了一下 gap sdk,然后用gwt重新编译原来的工程,结果报错,
后来将windows 的环境变量的classpath删除后就好了.
还有一点要注意的就是发布完app,一定要清空firefox的缓存。
Ubuntu下sudo无法使用自定义Path的问题
Submitted by hubdog on Sat, 2012-04-21 22:41Ubuntu下面有一个secure path的特性,每当sudo时,系统会重置path环境变量,导致自定义的path变量无法被使用,解决办法
sudo visudo
添加Defaults !secure_path在Defaults env_reset的后面就可以了。
关于标准模板库容器size()函数的性能
Submitted by hubdog on Thu, 2012-04-19 20:35在最新的C++标准中规定,所有的C++标准模板容器的size()函数的复杂度都应该是常数时间O(1)的,但是实际上很多编译器带的标准模板库的size()函数的复杂度是O(n)的,比如gcc的最近的版本才改成了O(1),微软的msvc好像新版本已经全部是O(1)的了,所以我们要注意下面的语句在容器内元素很多的时候可能会是性能杀手。
for ( xxx ; container.size()>xxx; xxx)
使用CUnit进行单元测试的一些窍门
Submitted by hubdog on Thu, 2012-04-19 20:28其实用CUnit进行单元测试很容易,因为C语言本身提供了宏替换这个强大的工具,可以很容易的实现非侵入式的测试。这里我们只讨论linux下使用gcc进行单元测试的情况,msvc不在讨论范围。
1.测试static的函数,static的语义是只有同一单元的代码才能访问static的函数或者变量,为了绕过这个限制,我们的测试 程序,需要直接
include待测试的CPP文件
#include "test.cpp"
2.比如C++类中有很多成员或者是private隔离级别的,测试时为了确认测试结果,很多时候需要调用这些函数,我们可以利用宏定义来绕过这些限制
#define protected public
#define private public
#include "test.cpp"
3. 比如有时我们想让标准函数fgets失败,来测异常情况,但是真正的失败有时很难做出来,那么我们就需要利用宏定义来替换指定的函数
#include <stdio.h>
现在的围棋程序真的好厉害
Submitted by hubdog on Mon, 2012-03-26 22:40zen的慢棋在24核集群上已经达到了业余6段的水平了,让4子赢了武功正树20目。
找了免费的pachi,下了一盘,平手下赢得非常困难,感觉有2k的水平。据说在8核i7上有强业余1段的水平。
Firemonkey For IOS就是一个玩具
Submitted by hubdog on Thu, 2011-10-27 23:45靠这两天研究用Delphi XE2的Firemonkey写Iphone程序,那东西需要用dpr2xcode将工程转换为xcode的工程,结果那个破玩意,运行后报了一堆错误, 说它无法解析source,报了一堆错误,居然没有错误行号,Error还错拼成了Errror,原来的程序是老毛子写的,狂汗一下。只有使用人肉编译, 一点点排错,接着发现firemonkey for ios用的是free pascal编译器,可delphi的rtl很多地方都是用泛型写的,free pascal的泛型语法跟delphi完全不一样,只要是用到泛型的单元全不能用,还是等emb出arm编译器吧,现在的ios支持纯属扯淡。也就是 mac 的支持还有点意义。
FFMPEG Vcl Pack For Delphi 2.2发布了
Submitted by hubdog on Fri, 2011-08-05 11:17新版的FFMPEG Vcl Pack增加了DirectShow设备俘获和音频过滤器的初步支持 (Beta)
下载地址:http://www.flashavconverter.com/downloads/ffmpegvcldemo221.zip
小说更新监视精灵(Novel Update Monitor)
Submitted by hubdog on Wed, 2011-07-06 08:19做了一个Android版的小说更新监视精灵。
利用小说监视精灵,您可以登录关注喜爱的起点/纵横小说,随时监控小说更新情况,并可以接收推送消息,实时获取小说更新信息。
注意:接收实时推送通知需要手机通过WIFI或者3G在线。同时本应用支持窗口小部件(Android Widget)。
下载地址
http://www.aimi8.com/app/6011448_1_0.html
更新:
Iphone版的终于审批通过了
http://itunes.apple.com/us/app/novel-update-monitor/id443577286
线性代数
Submitted by hubdog on Tue, 2011-06-14 23:24很后悔大学时候没有好好学习线性代数,只考了一个及格。现在发现线性代数简直是太重要了,很萎缩地下了本线性代数的电子书,在看呢。