Archive for the ‘程序开发’ Category
最近有点痴迷 CDMA,所以想买个 BlackBerry 支持 CDMA 的手机。
但是好像从 9630 开始,BlackBerry 的机子都不能改 ESN 了。
为了能在国内顺利使用 BlackBerry 的机子,就开始研究 BlackBerry 的 ROM 了。
研究历史,不定期更新:
- 2009.09.28 BlackBerry ROM Checksum 问题解决
- 2009.10.09 BlackBerry ROM 数字签名剔除成功
- 2009.10.13 BlackBerry ROM 签名算法 RSA-SHA1 1024bits,找到公钥
最近办了一个联通 WCDMA 的号码,从6月1号开始186套餐正式生效,该套餐包含510分钟的通话时长,但是联通的网上营业厅却没有办法查询剩余多少时长,于是乎自己就写了个小工具,可以计算已经打了多长时间的电话。
- 首先登陆到联通的网上营业厅,用自己的186号码登录,然后查看通话详单。
- 在页面的下部有一个“导出”的按钮。点击后,会提示保存一个名为“通话详单.xls”的 Excel 文件。将该文件保存到任意目录。
- 下载 CUCalc v0.1a 这个小工具,将该压缩包内的文件解压缩到与“通话详单.xls”相同的目录。
- 点击运行“run.cmd”,即可生成一个新的名为“时长统计.xls”的 Excel 文件。
- 用 Excel 打开“时长统计.xls”,查看时长统计。
说明:run.cmd 实际上是一个脚本文件,你可以用记事本打开。如果文件名不是“通话详单.xls”的话,请自行修改。
注意:当前版本,仅针对09年6月3日联通导出的通话详单有效,不确定何时会失效。
已知的或可能存在的问题:
- 无法区分普通语音通话和 3G 视频通话,因为联通的详单上面没有列出来。
- 因为我没有打过单次通话超过1个小时的情况,所以不知道超过一个小时,时间是如何表示的,这个处理上可能有问题。如果有哪位朋友一次通话时间在1个小时以上的,还请告诉一下我,超过一个小时,时间是如何表示的。
- 很多异常用例都没有检查,因为是 Alpha 版本,所以,可能会出现奇怪的问题。
如果您有任何的建议或者在使用过程中发现任何 Bug,欢迎与我联系。
最近联通的WCDMA要放号了,心一横,新入手了一台手机,HTC Touch Pro。我是坚决支持水货,不支持行货的,没办法,因为行货报价太离谱了。Dopod 官方的报价是 6,980,还要没有 WCDMA,没有 Wi-Fi,没有前置摄像头的,骗钱!!
自从买了以后就天天折腾,这不脑子进水,韩文没学会呢,先想怎么样在 Windows Mobile 上面显示韩文和输入韩文呢。韩文显示的问题,折腾了几天,比较完美的解决了。就是这个输入法的问题比较麻烦,恼人。找了好几个解决办法:
- Effy-CJK 4.0,输入运行,显示,一切都是相当的完美,可惜,试用期只有15天,没破解……残念,(╯﹏╰)
- MOAKey,一个据说是 Samsung 的什么输入法,能用是能用,不过是 QVGA 尺寸的,显示只有1/4屏幕大小,无法正常使用
- Kor_IME_VGA,一个据说最完美的解决办法,没错,是据说。安装了以后,不但自己不好用,还破坏系统设置,导致所有输入法的删除键,都会打什么“P O 體”到屏幕上,还删除不能,完全无法正常使用!!!
- Effy-CJK 3.1,比较难用,不支持硬键盘,跟 MOAKey 一样,只有 QVGA 尺寸的,屏幕缩到很小,也无法用
- 海鹰飞翔(这个没找到官网?),这个好像也是要付费的一个软件,本来这个是用来输入五笔的,但是因为它可以自己写 ini 文件,和设置码表,所以很多人在这个的基础上进行修改。OK,这个版本确实可以用了,VGA 屏幕也正常了,但是,速度很慢,而且也是无法支持硬件键盘,显示的时候也只能使用虚拟的软键盘,横屏的时候,显示很难看。不过还好,起码能用了。
- 点讯输入法,大家都知道这个是用来输入中文的,不过它现在可以自定义字库,所以,从这里我们就能输入韩文了。显示很漂亮,操作很流畅,支持硬键盘,再没有别的要求了。
最后还是用了点讯的自定义词库的方式,实现了韩文输入。唯一有点麻烦的,就是每个字都要按一下空格,或者点选一下。不过怎么说,都比不能正常输入的好。最后,附上一个小软件,用来恢复点讯编码过的 def 文件的,通过这个工具可以将编码过的 DEF 文件,还原成文本的码表文件。官方的点讯词库生成工具,请参考这里。使用方法,启动命令行(我写的软件就是喜欢命令行啊~O(∩_∩)O哈哈~),进入程序所在目录,运行 DEF2TXT def def.txt,搞掂。
附件:DEF2TXT
2009.04.30 更新:
最新的 DEF2TXT v0.1b 版本,用 Visual Studio 2008 重写过的。:)
2009.12.04 更新:
上传了 def 文件,直接下载覆盖到手机的 \Program Files\PlumSIP61 目录,不过覆盖后,五笔就不能用了,自己取舍一下吧。
Touch Pro 上的运行图片:





今天在用 VS2008 编译 SlOnline 的代码的时候,发现 ucl-1.03 的库不能编译了。用 OopsWare 已经编译好的版本就可以,自己编译就报错。提示的错误为
error C3163: '_vsnprintf': attributes inconsistent with previous declaration
OopsWare 使用的版本是 VS2008 Express Edition,我用的是 VS2008 Team Edition。感觉问题就是出在这里了。因为之前我用 VS2005 编译的时候也没有类似的问题。
最后查资料,应该是宏定义所导致的问题。找到 ucl-1.03 里面的 acc/acc-auto.h 这个文件,将源代码中第 436 行的代码
# define vsnprintf _vsnprintf
修改为
#if (_MSC_VER < 1500)
# define vsnprintf _vsnprintf
#endif
其中,_MSC_VER 表示 VC 编译器的版本号,1500 对应的是 VS2008。修改后,重新编译,问题解决!
2008-09-07 更新:
OopsWare 的 VC2008 Express 也有这个问题,不过他是通过修改 VC 自带的头文件来解决的
今天把 YoMax 移植到 Linux 平台了,还算顺利,一切都进行的不错。感觉很好,很开心。在 Linux 下面跑的速度很快,效果很好。
其中有几个地方修改了一下:
1)_strnicmp,在 Linux 的标准 C 库里面没有这个函数,用 strncasecmp 替换就可以了
2)_mkdir,同样,Linux 下的 C 库也没有这个函数,需要使用 mkdir。需要用到头文件 <sys/stat.h>,而且还要设置权限,跟 Windows 平台下不大一样。详细的使用说明,可以参考 GNU C Library 手册中创建目录部分的内容。
3)还有就是简单的类型定义之类的细节不同了,以及 main 入口函数的声明不大一样
具体的参数和环境:
-
- Windows XP with Service Pack 3
- Visual Studio 2005 with Service Pack 1
-
- Ubuntu 8.04.1 (Hardy Heron) with 2.6.24-19-generic
- g++ v4.2.3 (Ubuntu 4.2.3-2ubuntu7)
经过“艰苦卓绝”地奋战,终于完成了 YoMax 第一个版本。其实看到“艰苦卓绝”几个字,还加了引号,就知道其实并不是那么难的。只是将以前的代码整理了一下,然后重新用 C++ 封装了一下。功能也与原来的一模一样,唯一不同的是,在做 YoMax 的过程中,更加清晰地了解了 DJMax Pak 文件的结构,同时形成了一份简单的文件格式的说明文档。
接下来正在考虑做的事情:
- 实现跨平台支持,其实也就是支持 Linux 而已,如果自己用的话,应该是 Ubuntu 吧。
- 将 Dump 出来的几个二进制文件反向工程,了解真正的解包过程。估计这个应该会是很漫长的一个过程,估计要持续很长一段时间吧。
希望不久的将来能看到 YoMax v0.2.0,因为很多自己写的小工具都是到了 v0.0.1 或者 v0.1.0 就没有下文了。XD
2009-05-26 更新:
由于原来的 PakExtract 存在很多问题,所以,现在将主要更新 YoMax。另外由于很不幸的,以前的 YoMax 的代码找不到了,所以只好重写了代码。为了保证与以前版本不冲突,所以将版本号定为 v0.1a,其中 a 表示 alpha 版本,也就是极其不稳定的。呵呵,欢迎大家反馈问题。
下载 YoMax v0.1a
之前玩 DJMax 的时候,非常喜欢里面的一些歌曲,就想把它们原汁原味的提取出来。后来,就完成了 DJMax PAK Extractor 这个半成品的命令行小工具。估计知道的人也不多,在网上看到有人在用,但是把版权信息都给去掉了。
前几天忽然抽筋,想玩 DJMax,结果发现中国地区已经不运营了,倒~~。既然不运营了,发布这样一个小工具,也就没有什么大的影响了吧?那就拿出来与大家分享一下好啦。:)
本着这样的想法,今天就整理了一下自己以前的“研究成果”,又有些新的发现。整理后形成了一份关于 DJMax PAK 文件格式的简单文档,相当于一个初稿吧,估计以后还要更新的。计划后续要完成一个 PAK 文件处理的模块,接着再实现一个命令行操作的与 DJMax Pak Extractor 功能一样的程序。为什么不用原来的?原来的也还可以继续用,不过当时有很多细节没有考虑清楚,所以想重新做。后续阶段再考虑能不能加入 PAK 打包等功能进去,甚至加个 GUI 界面。
为了区分原有的项目和现在这个新项目,于是给它起个新名字吧:YoMax,总感觉原来的 DJMax Pak Extractor 太直白了。希望很快能带给大家好消息。:)
附原 PakExtract 下载地址:MediaFire
2009-02-03 更新本地下载:PakExtract
2009-05-26 更新说明:PakExtract 由于存在无法正常解包部分 PAK 文件的问题,已经停止更新。最新的信息,请参考《YoMax v0.1.0 Ready!》,谢谢。
SOX 是 ShiningLore Onlie(中文官方运营的时候叫做天使)中一种类似简单数据库的东西,它里面保存了各种物品的描述,任务的对话,NPC名称等等的重要信息。
前几天跟 ColdBird 聊天的时候,他让我帮忙翻译一些中文,主要是游戏中一些任务的脚本。后来我就介绍 Tissue 给他认识了。Tissue 也很快就答应了,真的很感谢她的帮忙,虽然不是帮我的忙,但是还是要多谢一下,辛苦了。
于是乎故事就发生在 Tissue 接了这个我认为不可能的任务之后……她使用的工具应该是之前 Lily 写的一个图形化的 SLSoxEditor。这个工具在编辑的时候还是很方便的,但是在作为翻译工具的时候就有点麻烦了。用户必须要把翻译的内容先复制到记事本,翻译后再重新复制回去。所以就导致到翻译效率很低,速度很慢。本来我之前有写过类似的程序,可以直接给 Tissue 用的,但是因为之前一些数据备份的工作没做好,导致数据都丢失了,囧rz。于是就萌发了再重新写一个小工具的想法。
说做就做,马上行动!因为鄙人比较懒,所以,嘿嘿,先找救兵。看到 Athena 跟 Lily 在线,就很“厚颜无耻”地问他们要 SOX 文件的结构(其实之前我自己有分析过的,只是不想重复劳动而已,表拍砖……)。没想到 Athena 同学直接把参考代码发给我了,太感动了。简单的看了一下 Athena 的代码,大概就想起来了。然后就有了现在这个叫做 SOX 的小工具。
SOX 可以把 SOX 后缀的文件转换成带制表符的 TXT(文本)文件,并且可以用 Excel 打开编辑。修改后保存后,再运行一次 SOX,就可以转换回 SOX 文件。经过测试,可以正常的转换全部 SOX 文件,除了一个叫 CONVERSATION.SOX 的家伙。后来跟踪看了一下,估计跟浮点数有关,但由于它跟要翻译的东西没有太大关系,所以就先不管它了,让它自生自灭吧。Hoho~