ZDic on sf.net move to svn source control

i found that i’m not familiar with cvs operation. bobgreen@hi-pda had developed lots to improve the zdic. i guess it would be better to accept the patches to make this project alive.

anyone who’d like to get zdic source code, pls use a svn client to checkout source code from https://zdic.svn.sourceforge.net/svnroot/zdic/trunk/
in command line, you can use:
svn co https://zdic.svn.sourceforge.net/svnroot/zdic/trunk/
you will need both zdic and zdicfont project to compile the whole project.
zdic with skin is putted in https://zdic.svn.sourceforge.net/svnroot/zdic/branches/zdic_skined

hope it works for you.

我的Centro终于到了

让我好等,机器非常新,就是带号了。。查了下hssn,还是有滴,和淘宝上的工程机还是不一样滴

嗯,不过已经没啥热情了,没有以前拿到新手机时那么兴奋了

推荐一个JVM For Palm

2.1的版本,是我试过的几个里比较好用的一个,直接复制进ram,自动的重启一次就好了
还算稳定,比2.2的易安装,稳定好些,错误少些

有版权问题,不提供下载了。事实上很多地方可以搜到最新版的下载。(update on mar. 6th, 2008)

杂记

我在想我是不是很常用“杂记”或“无题”来作题目了

今天apple出了bootcamp 1.2beta,加之上次装vista时,按网上的瘦身方法,把驱动目录删掉了,导致我后来连daemon tools都装不上了,哭,而且不像xp之类会让你插光盘找。又是重装,用的是u版的,相当顺利,比装xp简单许多,二十来分钟就好了。唯一要注意的是mbp上安装时需要自己选下分区吧。然后装驱动,也相当顺利,这次的bc确实做得不错,看设备管理器里已经没有任何驱动错误的设备了,蓝牙也能工作了,很赞,呵呵。
read more

移除小方块

再次贡献代码

qq昵称里老有人喜欢加ascii 09之类以图排序在前面,可是手机上显示会是方块的,还有一些虽然也是gbk字符,可是在手机上显示不了,亦或者用户用的是gb,显示不了gbk扩展的内容,就移除好了

void RemoveUnprintChars(char * str,Boolean removeNewLine)
{
UInt16 i,len;
UInt8 chW;
WChar ch;
char * p=str;
if (str==NULL)
return;
len=StrLen(str);
i=0;
while (i < len) {
chW= TxtGetNextChar(str, i, &ch);
if (TxtCharIsPrint(ch)
|| (!removeNewLine && ch!='\n') )
{
if (chW==1)
*p++=ch;
else
{
*p++=ch/256;
*p++=ch%256;
}
}
i+=chW;
}
 
*p=0;
}

带报错的atoi

好久没写东西了,随便填上一段代码

这个qq烦死了,我自己用了一个钟头,不停在后台运行聊天,都一点问题没有。不过还是有不少人有重启问题,不得不把各种检查都做细致来

上一段代码替换stratoi,不过里面有对%1a这种处理,这是qq协议中带的,一般大家用不到就去了这一段吧,那其实result可以换个变量名:)

 
Int32 myAToI(const Char *str)
{
UInt8 result;
if (str==NULL || StrLen(str)==0)
{
ErrDisplay("严重异常:转换空数字串,请退出");
return 0;
}
if (str[0]=='%')
{
if (StrLen(str)!=3)
{
ErrDisplay("严重异常:数字转换出错%,请退出");
return 0;
}
if (str[1]>='a')
result=str[1]-'a'+10;
else
result=str[1]-'0';
result*=16;
if (str[2]>='a')
result+=str[2]-'a'+10;
else
result+=str[2]-'0';
return result;
}
if (!TxtCharIsDigit(str[0]) && str[0]!='-')
{
ErrDisplay("严重异常:数字转换出错1,请退出");
return 0;
}
for (result=1;result<StrLen(str);result++)
if (!TxtCharIsDigit(str[result]))
{
ErrDisplay("严重异常:数字转换出错2,请退出");
return 0;
}
return StrAToI(str);
}

Palm Dev 随笔(2.11)

接下来会常有这种小文章了,可惜国内开发者不多,不然我估计会有不少人有兴趣的,哈哈:p 自我感觉良好一下

嗯,今晚的要收工。写点刚才一个钟头里遇到的一些东西:

1. 打开网络设置面板

launchwithcommand(sysfiletpanel, sysfilecnetworkpanel,sysapplaunchcmdpanelcalledfromapp, null);

2.断开网络连接

hsnetworkdropconnection();

3.退出当前程序

这个我以前试过直接调appstop()似乎也可以,就是frmcloseallforms()啦,不过我觉得逻辑上有点说不通,因为appeventloop()没道理退出啊。

现在一般我就加个全局变量forcestop,默认为false,

改appeventloop那行为

while (event.etype != appstopevent && !forcestop);

有时不能用全局量,或者某些特定情况,直接自己加个appstopevent到事件对列就好了

竟然才三点,其它的没什么好写了。哦,还有把680模拟器中文化。。。嗯,这个懒得说了

PalmQQ动工

我们说人是有惰性的,这是相当正确的。

实在无聊的紧,我今天又是7点多睡,一直睡到十点半,现在又清醒的很,没有办法,想着法子找点好玩的东西,未果,好吧,干活。这个qq是得写过了,唉,我还答应tencent的ppmm二月底完工呢:(

开始一个新的系列,记录一个开发过程。

想来想去,还是挑了cw了,pods实在难用得让我没法忍,想想这次应该是用不到什么arm code的,上次唯一想做成arm code的是那个md5计算函数,用来算密码的东东,速度不是问题,而是上次分段没写好,眼看要过64k了,我打算把它编译到外部,好让程序小一点,可惜最后没有成功。

建新工程,用c application wizard,我看来看去,其实就这个合适点。不过里面的模板还是糟糕了些,对于要开始一个不是demo的程序来说,几乎都是自己写过的好。删掉所有mainform的东西,几乎清空了rcp文件,留了一个menu id editonlymenubar,一个alert id romincompatiblealert,还有把图标先存好了。顺便说一句,iconfamilyex这东西里不能只有一项的,不然图标位置会偏。

这次有个新打算,把每个form做成一个rcp文件,以后好改。而像alert这些都是单独成文件。include这么多*_rsc.h是有些麻烦,所以再写个resource_header.h,光写#include好了。

palmqq.c文件里也就留了apphandleevent,appeventloop,appstart,appstop,pilotmain。在pilotmain这里也小改了一下,我正在琢磨怎么让后台运行重入时定位到正确窗口。

想了下,还是都从appstart()入口好了,如果错误返回>10的值,如果是未登录的正确情况返回0,已登录从后台重进就返回1。于是pilotmain里根据appstart()的返回值再做个switch跳到对应的form就好了。

每次写程序前,目标总是定很大,前阵子想抓mobileqq 2007的包,因为新版的手机qq支持好友分组,支持群消息,支持传图片和文件了。腾讯不提供这协议,我用的还是旧版协议。本来希望自己分析来做的,现在想想吃力不讨好的事情还是不要做得好,何况不小心还是会完不成的。

要开始写loginform先了,这次把各个pref也分开来好了,比如登录窗口要保留原来的登录号码和密码来着,不都放palmqq.h里了,太乱了,反正这个pref应该只有loginform用到,不如直接在这里做好了。在palmqq.h里只存它的prefid

前两天让ayang帮忙设计界面的,一直没什么好看的,想想还是算了,不如走清纯路线。。。和原来的版本差不多就好。我原来还想支持320×480的,现在想想也算了,还是先做出来再说,以后要改应该也不是太困难,每个form里多支持一个函数罢了。

后台运行还是心病,虽然一定要支持的,但怎么做,我还是不太有谱,还没有实验过官方的方式是否可行。

丢了代码怎么办?

重写一遍是王道,当然看起来也没其它办法
mac下的虚拟机很好用,除了有一个问题很严重。我把两个虚拟系统(xp+2003)共享了一个磁盘,切换系统时经常xp一启动就自动磁盘检查,然后就把内容搞丢了。当然我不可能同时双系统开机,它当然也不支持一块硬盘双系统访问。我奇怪的就是为什么一个关机,换另一个启动时,还会检查。检查后,主要是把文件大小改回在该系统下编辑时的大小了,所以发现所有代码文件都最后少了一段,这个用finaldata这些恢复都有问题。有人提醒我用source control的东西了,可是我实在不太乐意在mac os上装个svn server。

写了一周的中文联系人啊。。。我花了一天时间几乎全部重写了一遍,好在有些原来的代码还留着,搬过来用用了。
同时做了些改进,现在稳定很多。
去掉了cache机制,因为我们的设计一次只找第一个,不用遍历完,平均来说,用户等待时间很短,而且主要问题其实是那个addressdb.c写得太有问题了,实在搞不定怎么处理
还有,dmquerynextincategory这个东西不要随便用,返回的memhandle似乎被自动lock过,我是说它有时会被自动lock,注意是有时,所以你unlock一般会死机,不unlock就会经常crash,然后说chunck-overlocked,真是fz的问题
检索代码几乎重写了。因为码表不止64k,原来rei申请了一个大的memory区,拷贝进去。我想想还是直接lock返回memptr作全局用,查两个表罢了。不过他那样做也对,为了考虑以后可以在其它程序中启动,或被其它程序调用,就需要做成可以不用全局变量的形式

愉快的一天

最近运气背得不行,好在多年来已经习惯于这种接连一阵的低迷期。虽然可以预见一阵子内还不会结束,不过今天算是中间一个小插曲吧,过得还是比较让人开心的

前一个项目终于要结束了,开始盘算着写点自己有兴趣的东西。看些奇怪的偏门的开发文档,后来实在困不行了,四点多便去睡了,比前些日子还是稍早了两钟头的。不过今天是最近一两周来起得最早的一次。同室只有一个室友了,他今天早起陪mm逛街。起床时小小响动,似乎已让我睡得不是很安宁,kent的一条短信让我完全清醒过来,说今天一起吃饭来着。

同学都快走光了,这几天常常是我一个人在寝室呆一整天,无聊得紧,也想着该出去活动活动。起床,接到roddick电话,说kent同他讲啦,他一会儿来接我的说。呵,都是老朋友了,大约想着我该还得睡会儿,说晚些过来。不想我今天倒是没什么睡意,起来在apple版上灌了几篇水文,找些mac os上的小软件玩。:)
read more