January 04, 2007

一次充电可读60本书的ebook reader

Categories:  ItTech

今天在linuxdevices.com上看到一个台湾的电子书阅读器产品,系统是Linux,CPU是ARM,显示屏用的是EPD技术,宣称一次充电可读60本书,大约$400,很吸引人。链接如下:

http://www.linuxdevices.com/articles/AT5277698708.html

部分原文:

The low-power, thin, light-weight
Star eBook STK-101 can be used to read as many as 60 books on a single
charge, the company claims.


看原文照片中屏幕上显示的还是中文呢。


powered by performancing firefox

Posted by dumm at 10:18 PM | Comments (1)

December 11, 2006

ASCIIEditor

Categories:  ItTech

这几天写程序注释需要用字符拼一个图,以前都是在文本编辑器里写,今天的程序的图比较复杂,于是就找了一个免费的ASCIIArt编辑器:ASCIIEditor。

下面是今天用ASCIIEditor做程序注释:
//                          *********
//                          *       *   Restart_Count > Max_Restart_Count
//      +------------------>* Enter *--------------------------+
//      |                   *       *                          |
//      |                   *********                          |
//      |                       |                              |
//      |                       |*                             |
//      |                       |                              |
//      |                       |                              |
//      |                       |    TW_MT_ARB_LOST            |
//      |                       |   +------+                   |
//      |                       V   V      |                   V               ########
//      |                   +-----------+  |            +----------+    *      #      #
//      |                   |           |--+    *       |          |----------># Quit #
// +----|------------------>| TWI Start +-------------->| TWI Stop |           #      #
// |    |                   |           |               |          |<------+   ########
// |    |                   +-----------+               +----------+       |
// |    |                       |                              A           |
// |    |                       |TW_REP_START                  |           |
// |    |                       |TW_START                      |*          |
// |    |                       |                     +---------------+    |
// |    |                       |   WR:TW_MT_ARB_LOST |               |    |
// |    |                       |   RD:TW_MR_ARB_LOST | TWI Data Read |    |
// |    |                       |              +----+ |               |    |
// |    |                       V              V    | +---------------+    |
// |    |WR:TW_MT_SLA_NACK  +--------------------+  |   A                  |
// |    |RD:TW_MR_SLA_NACK  |                    |--+   |RD:TW_MR_SLA_ACK  |
// |    +-------------------| TWI Device Address |------+                  |
// |                        |                    |-------------------------+
// |                        +--------------------+      *                  |
// |                            |                                          |
// |                            |WR:TW_MT_SLA_ACK                          |
// |                            |                                          |
// |                            |            TW_MT_ARB_LOST                |
// |                            |            +----+                        |
// |                            V            V    |                        |
// |                        +------------------+  |                        |
// |     RD:TW_MR_DATA_ACK  |                  |--+                        |
// +------------------------| TWI Data Address |        *                  |
//                          |                  |---------------------------+
//                          +------------------+                           |
//                              |                                          |
//             WR:TW_MT_DATA_ACK|                                          |
//                              |                                          |
//                              V                                          |
//                          +----------------+                             |
//                          |                |          *                  |
//                          | TWI Data Write |-----------------------------+
//                          |                |
//                          +----------------+
Posted by dumm at 04:50 PM | Comments (0)

December 06, 2006

HelloWorld of wxWidgets

Categories:  ItTech , Linux

wxWidgets做了一个HelloWorld程序,一套相同的代码分别在Windows XP和Ubuntu上编译运行成功:




Posted by dumm at 04:19 PM | Comments (1)

December 01, 2006

无线路由器不工作了

Categories:  ItTech


今晚回家发现无线网连不上了,立马去重新启动无线路由器(我用的是D-Link 624+无线路由器,出了名的不稳定,平均每个星期得手工重启两三次)。重启后发现没有反应,仔细一看,所有的指示灯都不亮了。于是就拿出万用表一量,发现稳压电源坏了。翻箱倒柜找出一个老电源,指标都符合,插头不一样,自己动手移花接木一番,将其搞定!

Posted by dumm at 11:54 PM | Comments (1)

December 12, 2005

开源软件好

Categories:  ItTech

今天在J2ME平台程序中使用kXMLRPC访问Tomcat上运行的XML-RPC接口,怎么都不能正确处理数组类型的返回结果。

没问题,把kXMLRPC的源码下载下来,卷起袖子打开调试器……

不到5分钟找到出错的地方,仔细看看数据,再对比XML-RPC的规范……

咦,怎么kXMLRPC处理数组类型的代码和规范不一样,似乎漏了对data标签的处理。有戏,改改试试……

再次运行程序,成功了!

开源软件就是好呀就是好!

附上修改的代码:在kXMLRPC的XmlRpcParser的parseArray方法中找到一个while循环,在循环前后加上data标签的处理:

	parser.read(Xml.START_TAG, "", "data"); // <----------------
	while( parser.peek().getType() != Xml.END_TAG ) {
	    v.addElement( parseValue() ); // parse this element value
	    parser.skip();
	}//end while( parser.peek().getType() != Xml.END_TAG )
	parser.read(Xml.END_TAG, "", "data"); // <------------------
Posted by dumm at 05:35 PM | Comments (0)

November 28, 2005

大容量移动硬盘该用什么文件系统

Categories:  ItTech

新买了一个80G的移动硬盘,为了用什么文件系统颇伤脑筋。
买来时里面就是NTFS。如果我只用Windows 2000以上的版本当然不用动它,可是在Linux和Mac OS X上没法写入实在痛苦,让我深切地感受到异构应用环境的沟通真是一个问题。想想似乎所有系统都支持读写的似乎只有FAT32了。可是FAT32缺省却只能支持32G的分区,硬盘太大难道也是错吗?Mac OS X可以将整个分区格式化成FAT32。只是一个簇有32K,浪费有点大,我拷贝了几百个html文件上去,一看浪费了一半多。如果是一个Java项目的源文件,估计浪费能达到80%以上。还是用个现代文件系统吧,记得以前见过Ext2和ReiseFS在Windows上访问的工具,看看Mac上有没有吧。

祭起google这个法宝,search一下,找到这两个站点:
Mac OS X Ext2 Filesystem(http://sourceforge.net/projects/ext2fsx)
Ext2 Installable File System For Windows(http://www.fs-driver.org/)
哈哈,都是文件系统的驱动,看来有门。
先试了Windows下的,是一个独立的安装程序。装好后,本来不能认出的Ext2分区,就可以读写了,非常简单。 主页上声称支持NT4.0、2000和XP。
Mac OS上的这个看了一下,不支持Tiger,真是遗憾。但是看看在10.3上的用户反应,是很不错的。安装以后也是直接可以访问文件系统。作者说争取在年底之前移植到Tiger上。我只能等等了。用10.3的用户就没问题。

所以,如果用大容量移动硬盘,文件系统用Ext2是一个不错的选择,可以支持大分区大文件。Windows和Mac OS X 10.3也都支持,Linux当然更不用说。可以最方便地在各种平台间通用。当然,只能在自己的机器上用,要链接到别人的机器上用就算了。

Posted by kuuldor at 03:23 PM | Comments (2)

September 10, 2005

Tiger x86

Categories:  ItTech

Just downloaded a x86 Tiger install DVD. I wait for a while before I decided to clean up a notebook to install it. Now it runs, on a Toshiba Tecra M2. It works fine. With a vesa 3.0 display card, I can tune the resolution to 1280x1024x32. All software I tried works, including MS Office 2004, with which I opened the 15M cppbt.doc and Word crashed for several times before it finnaly open the giant doc. The performance is acceptable. I feel no obvious slag compared to my PB G4 1.5 on a PM 2.0G 1G Mem.
But the Chinese input method still doesn't work. It's a pity I must use English for this blog.

Posted by kuuldor at 06:48 PM | Comments (1)

May 04, 2005

TeX并不难学

Categories:  ItTech

以前断断续续的接触TeX,感觉它比较难,很长时间我都只了解皮毛。

这几天我用它写书,遇到了很多问题,不停的在CTeX论坛里发问,从Neals那里得到了大量的帮助。感谢!

昨天晚上决定看看TeX基础,于是下载了《LaTeX2e用户手册》来看,今天中午看完。现在后悔当初为什么没有耐心看书了,因为读过这本手册之后以前问的很多问题其实都可以自己解决了,感觉TeX也不是那么难了。

以前一直用Word,也读过侯捷的《Word排版艺术》,比较起来还是TeX更加专业,可以让我控制每个细节。对于我来说,最欣赏TeX的地方就是它的纯文本格式这个特点--由于这个特点我便可以将TeX和大量的工具软件结合起来使用,例如subversion、diff、sed、make……

除了纯文本格式这个特点,我选择TeX还有其他的原因。也许因为我是个程序员,所以TeX很符合我的思维习惯,即使用线性的内容描述结构--这是程序设计的特点,也是用TeX创作的特点。相反Word恐怕不太适合我,因为我不喜欢Word那种发散的思维习惯--各个功能用对话框实现,每个对话框都彼此独立。当然,Word也有VBA,可以用程序设计的方法给Word附加功能,但是用VBA创作整个文档恐怕不太现实。

Word在国际化和本地化方面做的非常好,对于中文语言的支持几乎没有什么毛病。在这个方面TeX的路还比较长。在用TeX的过程中我发现它折行时可能导致某些中文标点落在一行最后,例如“(”,这是不符合中文习惯的。我不知道是不是已经有宏包解决了这个问题,如果有请告诉我。这里先谢过了!

最后要说的是:TeX并不难学。在抱怨TeX难学之前先耐心读读文档,学习它的基础知识。CTeX的版主非常热心。五一放假期间Neals都是有问必回,一直在论坛中值班,没有睡懒觉。赞!

Posted by dumm at 06:11 PM | Comments (2)

March 12, 2005

在现有Eclipse和cygwin上安装PODS

Categories:  ItTech

PalmSource已经发布了几个版本的PODS(PalmOS Developer Suite),我却由于种种原因一直没有试用这个开发环境。最近需要进行PalmOS软件开发,于是就研究了PODS。

从PalmSource网站上下载的最新版本是1.1版,基于Eclipse 3.0.1、CDT 2.0.2、prc-tools 2.3和PalmSource制作的一些Eclipse插件。PalmSource对CDT做了修改,标识的版本是cdt_2.0.2.ps001(我猜ps001是PalmSource patch 001的意思)。prc-tools 2.3上打了Ton van Overbeek制作的msectgdb补丁,可以调试多段程序。

PalmSource只提供一个安装包,并没有将各个部分单独打包提供下载。由于工作需要我已经安装了Eclipse和cygwin,因此我尝试将PODS包中的内容手动安装到现有的Eclipse和cygwin中,并获得成功。下面给出安装步骤:

首先安装PODS,为了不破坏现有的cygwin环境,安装时选择自定义安装,并告诉安装程序不安装cygwin。安装完成后,将安装目录下的内容分别打包,供后面使用:将features和plugins下的CDT和palmsource相关的包打包,称为palmsource.eclipse包;将PalmOSTools打包,称为PalmOSTools包;将PalmOSMetaData打包,称为PalmOSMetaData包;将sdk-5r4和sdk-6.1打包,称为sdk包。打包完成后就可以卸载PODS了。

接着备份现有Eclipse的CDT插件。将Eclipse目录下features和plugins下的CDT相关目录移动到一个备份目录下。

现在可以安装palmsource.eclipse包了。将这个包解压到Eclipse目录下即可。

在安装prc-tools前需要准备好cygwin环境。PODS文档中要求cygwin环境具备下面的软件包:

_update-info-dir 00227-1
ash 20040127-1
base-files 2.6-1
base-passwd 1.1-1
bash 2.05b-16
binutils 20040312-1
bison 20030307-1
bzip2 1.0.2-5
ctags 5.5-4
cygutils 1.2.5-1
cygwin 1.5.10-3
cygwin-doc 1.3-7
diffutils 2.8.7-1
editrights 1.01-1
fileutils 4.1-2
findutils 4.1.7-4
flex 2.5.4a-3
gawk 3.1.3-4
gcc 3.3.1-3
gcc-g++ 3.3.1-3
gcc-mingw 20030911-4
gcc-mingw-core 20031020-1
gcc-mingw-g++ 20031020-1
gdb 20030919-1
gdbm 1.8.3-7
grep 2.5-1
groff 1.18.1-2
gzip 1.3.5-1
less 381-1
libbz2_0 1.0.2-1
libbz2_1 1.0.2-5
libgdbm 1.8.0-5
libgdbm-devel 1.8.3-7
libgdbm3 1.8.3-3
libgdbm4 1.8.3-7
libgettextpo0 0.12.1-3
libiconv2 1.9.1-3
libintl1 0.10.40-1
libintl2 0.12.1-3
libncurses5 5.2-1
libncurses6 5.2-8
libncurses7 5.3-4
libpcre 4.1-1
libpcre0 4.5-1
libpopt0 1.6.4-4
libreadline4 4.1-2
libreadline5 4.3-5
login 1.9-7
m4 1.4-1
make 3.80-1
man 1.5k-3
mingw-runtime 3.3-1
mktemp 1.5-3
ncurses 5.3-4
pcre 4.5-1
pcre-doc 4.5-1
pkgconfig 0.15.0-4
prc-tools 2.3
prc-tools-htmldocs 2.3
readline 4.3-5
sed 4.0.9-2
sh-utils 2.0.15-4
tar 1.13.25-5
tcltk 20030901-1
termcap 20021106-2
terminfo 5.3_20030726-1
texinfo 4.2-4
textutils 2.0.21-1
unzip 5.50-5
w32api 2.5-1
which 1.5-2
zip 2.3-6
zlib 1.2.1-1

上表中每行是软件包名和版本。可以安装其他版本,只要比表中要求的新就可以了。我安装的是最新版本。列表中prc-tools需要从http://prc-tools.sf.net下载,其他的可以用cygwin的setup工具选择安装。

准备好cygwin环境后还需要prc-tools 2.3的msectgdb补丁。从http://www.v-overbeek.nl/msectgdb/下载安装。感谢Ton van Overbeek!

现在该安装sdk包了。将sdk包解压缩到cygwin的/PalmDev目录下,然后在cygwin环境中执行palmdev-prep,完成sdk的配置。

还有一个PalmOSTools包需要安装。将这个包解压缩到一个目录,例如PalmDev/PalmOSTools。

软件包都安装好了,下面开始配置工作。首先将cygwin的bin目录和PalmOSTools目录加入系统PATH环境变量。然后将PalmOSMetaData包解压缩到Eclipse目录下,并修改包中的每个文件,将PalmOSTools的相关路径指向正确的位置。接着启动Eclipse,通过Window/Preferences菜单调出配置对话框,调整Palm OS Development结点下的Target Enviroment Settings下的Emulator和Simulator配置(主要是路径)。

安装、配置完成!现在可以新建一个项目(选择PalmOS相关的项目,并选择Sample模板),试试编译、调试吧。

关于移植Linux的一点补充:我发现使用Managed Project的时候PODS使用了PalmOSTools下的一些Windows平台程序进行资源编译和链接工作。我猜测既然Eclipse、CDT、prc-tools都可以在Linux上使用,那么在Linux上使用PODS是有可能的,当然只能使用Makefile类型的项目了。不过我没有时间进行测试。

Posted by dumm at 11:30 AM | Comments (2)

February 26, 2005

移除MSN Messenger 6.2.0205的广告

Categories:  ItTech

转自:http://www.matthijs.net/msn.php

If you downloaded MSN Messenger 6.2, you might want to remove the advertising that is placed at the bottom of the main messenger window.

I will give you some details to do it manually. To edit the msnmsgr.exe file, you'll need a HEX editor. I found the freeware Hex Editor XVI32 perfectly suited for this task. There is no installation, just download the file, create a folder on your hard drive, unzip the XVI32.zip file there, and run the XVI32.exe file.

Note: this is for the latest version of 6.2, 6.2.0205. You can check your version, by choosing Help > About MSN Messenger from the programs menu.

When you have the HEX editor running, follow these steps:

1. Make sure you are not running messenger. Right-click its icon in the system tray, and from the menu select Exit
2. Now you'll need to locate the messenger executable msnmsgr.exe, it will normally be in \Program Files\MSN Messenger\
3. Make a backup of the file. Right-click msnmsgr.exe and from the menu choose Copy. Now right-click on an empty area in the same folder, and select Paste from the menu. The backup will be named Copy of msnmsgr.exe. If you ever want to get back to the original file, simply delete msnmsgr.exe, and then rename Copy of msnmsgr.exe to msnmsgr.exe
4. From the menu in XVI32, choose File > Open, locate msnmsgr.exe, and open it
5. From the menu, select Address > Goto, select hexadecimal, and enter E6329, press OK
6. The value selected will be 74, simply type EB to replace it (so 74 becomes EB)
7. Repeat step 5 & 6, but for the value to search for now enter E633C and replace 74 with EB
8. When done select File > Save from the menu, and exit XVI32
9. Reopen Messenger 6.2, now without the ads!

Also, you might want to get rid of the annoying tabs shown at the left side of your contact list. There is an option for that, but some people might not find it easy to locate:

1. In MSN Messenger, select Options... from the Tools menu
2. Select the Privacy tab
3. Check the box before This is a shared computer so don't display my tabs
4. Pressing OK and doing a sign-out and sign-in will remove the tabs forever!

You'll now have a much cleaner version of Messenger, which (to my personal taste) is a lot more userfriendly.
This method (in contrast to other suggested schemes) does not only remove the ad, but also removes its designated space, so the Messenger window will be smaller.

Note that by altering the msnmsgr.exe file you're violating the Microsoft EULA. I decline all responsibility for your actions!
This site is not affiliated in any way with the Microsoft Corporation. All registered trademarks are the property of their respective owners.

Posted by dumm at 06:19 PM | Comments (1)

February 15, 2005

BIOS电池惹的祸

Categories:  ItTech

过年前搬家,就一直没有把桌面电脑接上用。今天连上电源、外设后竟然无法开机了!怀疑是电源的原因,换了一个电源现象一样,晕~

突然灵机一动,怀疑是主板BIOS的设置的电池的问题。取下主板上的电池,开机成功!重新安装回去故障排除。

Posted by dumm at 10:38 PM | Comments (1)

February 13, 2005

无线的乐趣

Categories:  ItTech

过年前在家里架起了无线局域网,让所有的计算终端(桌面PC、ThinkPad、iBook和PDA)都用上了无线网络,很是方便。

以前想在床上用笔记本,还得拖一根电源线和一根网线,很是麻烦。现在好多了,可以不用连任何线了,感觉自由了很多。

不过ThinkPad的电池不行了,现在还得随时接着交流电源,等于一个移动PC。年后换电芯去。

有了无线网络之后PDA也发挥了移动性。随时开着Skype,和移动电话一样方便。和ThinkPad同步的时候也不用连接USB线,通过无线网络就同步了。

只享受了两天的无线网络,竟然有了“由简入奢易,由奢入简难”的感觉。在peter家过节没有无线网络还真觉得不方便了。

科技使人自由!

Posted by dumm at 10:52 AM | Comments (5)

February 11, 2005

中文,计算机永远的痛!

Categories:  ItTech

昨天研究Delphi下的XML-RPC库的时候,发现它不能正确处理中文,不禁让我想起在使用计算机的十多年中遇到了无数次的类似问题。

过去,计算机的中文问题集中在如何正确显示、录入中文,主要原因是当时缺乏中文OS。这类问题在外挂中文系统的帮助下基本解决。

后来有了中文OS,并支持UNICODE,按理说应用程序的中文问题应该解决了。可是事情并不像想象的那么容易,大多数软件开发人员不使用中文,所以在编写软件的时候要么没有使用可以正确处理中文的系统调用,要么用了错误的方法而且没有测试。因此很多软件出现了完全不支持中文或部分支持中文(显示正常或输入正常等)的情况。如果这是开源软件还好,可以自己改改,如果是商业软件就只能抛弃不用了。

在多种系统或平台交互的情况下类似问题更明显。软件在不同的操作系统上实现时对中文的支持程度不同,或者使用的编码不同,都可能造成中文问题。例如不同操作系统上的IPMsg、或者Delphi和dotNET上的XML-RPC库等。

中文支持问题如果永远解决了,是不是共产主义也就实现了?

Posted by dumm at 03:13 PM | Comments (1)

December 15, 2004

在Mac OS X上用CBX 1.5

Categories:  ItTech

C++BuilderX 1.5 Mobile Edition在Borland的社区可以下载到,需要社区帐号。
虽然只有Windows的安装程序,但是由于软件是Java的,所以其实在其他的CBX支持的平台上也是可以用的。比如Linux。Borland的社区也有一篇文章讲如何在Linux上用CBX 1.5。只要把安装目录拷贝到Linux上,然后用java启动CBuilder。当然,需要把lib目录下所有的jar文件指定到classpath中,启动类是com.borland.cbuilder.CBuilder。
但是我现在常用的平台是Mac OS X。在OSX上,按照这种方法,可以启动CBX 1.5,但是无法编译和调试。因为CBX自带的编译工具集只有Windows/Linux/Solaris三种平台。但是Linux和Solaris上实际编译和调试用的都是作为外部程序调用的gcc和gdb,所以在Mac OS X上应该也是没问题的。

折腾了一下,成了。下面讲一下我的过程:

安装:
按照前面说的,在Windows下安装完再把目录拷贝到Mac OS X上,也是可行的。但是这个下载包带的Windows版的安装程序有问题,在我办公室的机器上会100%CPU占用然后无响应。这个似乎是这个版本InstallAynwhere的一个bug,如果系统安装了JDK 1.4以上会出现。不过我不是很确定,因为我不想只为了作一个中转安装,就把JDK卸载。
其实,InstallAnywhere的安装程序就是Java的,各个平台只是做了一个壳。所以用Java来运行不就好了?我在Linux上安装的方法如下:
先把下载的CBX 1.5的zip包展开到一个目录下。进入子目录Windows,可以看到安装程序install.exe。还有一个install.properties。这个install.exe其实就是一个zip的自展包。在当前目录下用unzip解开它,会生成有两个目录,InstallerData和Windows。InstallerData下就是实际安装程序的JAR文件。在第一层Windows目录下(也就是install.exe和install.properties所在目录),执行
java -classpath InstallerData/Execute.zip:InstallerData/IAClasses.zip install
安装就开始了。之后就和正常安装一样了。安装结束后,把安装目录拷贝到Mac OSX上。在MacOSX上也可以这样安装,但是由于缺省安装平台里不包括Mac OSX,装好后会少一些东西。所以还是从Linux上拷贝比较安全。
拷贝好后,可以在安装目录下生成一个脚本来启动CBX。脚本内容如下:
java -Xms32m -Xmx256m -classpath "所有lib目录下的jar" com.borland.cbuilder.CBuilder
注意:classpath里primetime.jar和cbuilder.jar要在前两个
我的脚本如下:
----------------------------------
#!/bin/sh

CBX_PATH=/opt/CBuilderX1.5

BOOT_CP=$CBX_PATH/lib/lawt.jar:$CBX_PATH/lib/TabbedPaneFix.jar:$CBX_PATH/lib/SequencedEventFix.jar:$CBX_PATH/lib/javac.jar:$CBX_PATH/lib/JarManifestFix.jar:

RUN_CP=""

for i in $CBX_PATH/patch/*.jar
do
RUN_CP=$i:$RUN_CP
done

RUN_CP=$RUN_CP:$CBX_PATH/lib/primetime.jar:$CBX_PATH/lib/cbuilder.jar:$CBX_PATH/lib/ext/QCClient.jar:$CBX_PATH/lib/Axis1.0/axis.jar:$CBX_PATH/lib/Axis1.0/commons-discovery.jar:$CBX_PATH/lib/Axis1.0/commons-logging.jar:$CBX_PATH/lib/Axis1.0/jaxrpc.jar:$CBX_PATH/lib/Axis1.0/log4j-1.2.8.jar:$CBX_PATH/lib/Axis1.0/saaj.jar:$CBX_PATH/lib/Axis1.0/wsdl4j.jar:$CBX_PATH/lib/oldxml/xml4j.jar:$CBX_PATH/lib/oldxml/xmlproxy.jar:$CBX_PATH/lib/ant.jar:$CBX_PATH/lib/bcc.jar:$CBX_PATH/lib/BorlandLookAndFeel.jar:$CBX_PATH/lib/borlandxml.jar:$CBX_PATH/lib/castor-0.9.5.jar:$CBX_PATH/lib/cloudscape.jar:$CBX_PATH/lib/dtdparser.jar:$CBX_PATH/lib/EccpressoAll.jar:$CBX_PATH/lib/flexlm.jar:$CBX_PATH/lib/help.jar:$CBX_PATH/lib/jdom.jar:$CBX_PATH/lib/mail.jar:$CBX_PATH/lib/optional.jar:$CBX_PATH/lib/resolver.jar:$CBX_PATH/lib/saaj.jar:$CBX_PATH/lib/sanct2.jar:$CBX_PATH/lib/sanctuary.jar:$CBX_PATH/lib/xercesImpl.jar:$CBX_PATH/lib/xmlParserAPIs.jar

env CLASSPATH=$BOOT_CP:$CLASSPATH java -Xms32m -Xmx256m -classpath $RUN_CP com.borland.cbuilder.CBuilder

----------------------------------

启动后的CBX,可以建立project,编辑代码等等各种常用功能。但是编译相关的菜单都是灰色的,不能用。下一步就是建立Mac OS X上的toolset,好能进行编译调试。
首先是加上Mac OS X的平台定义:
在platforms子目录下(以后的子目录都相对于CBX安装目录)下,有各个平台的定义文件。我们可以拷贝linux的,名字自己定,我的叫macosx.platform。GIF图标也可以拷贝一份。然后编辑里面的内容,名字什么的都改成对应于Mac OS X。其中的key,我写成macosx,会在toolset定义中用到。

然后修改toolset定义:
我们直接使用现成的gnu的toolset的定义就好了。这样只要加几行就好了。愿意的话也可以拷贝一份改成别的名字,给OSX专用。
toolset的定义在toolsets子目录下。包括一个gnucplus.toolset和一个gnucplus目录。
先改toolset文件,在<platform key="linux"/>后面加一行,key写成macosx(这个就是前面在platform里定义的,一定要一致),<canexecuteonidehostplatform>加一个,mac os x,注意中间的空格,和key不一样,还要全是小写。
然后改gnucplus目录下的定义文件。三个.tool文件,照样子改。每个里面有linux的地方都加一个相同的定义,平台的key写成macosx。此外在compile的那个tool里有定义include的地方。缺省是/usr/include和/usr/include/g++-3。Mac OS X上的C++的头文件位置不一样,在/usr/include/gcc/darwin/3.3/c++下面,需要照样加上。

都改好之后,启动CBX,在project的属性里,选择platform。会发现多了Mac OS X平台和对应的GNU C++ Toolset。选择之后,编译什么的都可以用了。也可以设置成缺省属性,不用每次都改。

OK。到此为止。可惜的是CBX 1.5还是不能让我完全满意,如果那个IDE能把简单的建模功能和语言完美结合就好了。

Posted by kuuldor at 03:48 PM | Comments (2)

设计的演变

Categories:  ItTech

作PAW里面的68000模拟,所以最近总在看68k的指令集。发现68000原来的指令和编码,都是很规则的。作Decode相对容易。然而后加的020-040的指令,就显得支离破碎的样子,无论是编码的线位还是内部结构,都有那种明显的补丁的痕迹。
看来硬件和软件也差不多啊。

Posted by kuuldor at 02:10 PM | Comments (0)

October 22, 2004

玩转工商局的演示机

Categories:  ItTech

今天几人去北京某区的工商局办事,看到那里陈列了几台国内某著名PC公司生产的查询机,配备了触摸屏,供人们查看一些资料用。

显示资料的是一个标准IE浏览器,虽然程序设置为全屏,但是将鼠标移动到屏幕顶部(通过触摸屏)就可以激活工具栏,恢复到默认显示方式,然后就可以启动资源管理器了,找到了FreeCell等小游戏玩了几局。

要命的是,这几台演示机是连接在整个工商局的计算机网络的。通过网上邻居可以看到上百台计算机,而且共享资料大多都不设置密码。我们还发现一些工商局的内部文件和私人文件(例如Flash贺卡等)都可以打开。这就是某知名PC公司制造和实施的系统!寒~~

Posted by dumm at 10:08 PM | Comments (0)

October 09, 2004

Downloadwith on Firefox 1.0

Categories:  ItTech

用Mozilla Firefox很久了,为了让它可以和FlashGet集成,一直使用Downloadwith这个插件。最近Firefox升级到了版本1.0,Downloadwith插件无法安装了(0.0.7版本),下面是解决办法:

用WinRAR打开Downloadwith的xpi文件,编辑install.rdf,将maxVersion改为1.0,重新打包,在Firefox中打开http://update.mozilla.org,然后从菜单中打开重新打包的xpi,安装即可。

Posted by dumm at 11:06 PM | Comments (0)

August 17, 2004

Corbató如是说

Categories:  ItTech

Corbató被誉为分时系统之父,在他接受图灵奖的颁奖演说中,他谈到许多Brooks在其著作《The Mythical Man-Month》中所述及的问题。Corbató的结论是复杂系统将最终失败,而且若想要成功,最重要的就是必须摒弃复杂性,尽力争取设计得简洁而优雅

Posted by dumm at 12:04 AM | Comments (0)

July 26, 2004

关于pi

Categories:  ItTech

今天无意翻出了一篇存在Bonsai里关于Pi的文章,看到了一些有趣的东西:

我们需要精度多高的pi?

十位小数就足以使地球周界准确到一英寸以内,三十位小数便能使整个可见宇宙的四周准确到连最强大的显微镜都不能分辨的一个量。如果用35位小数的pi计算一个能把太阳系包围起来的圆的周长,误差还不到质子直径的百万分之一。

pi当中的统计:

在60亿数字中已出现连在一起的8个8;9个7;10个6;小数点后第710150位与3204765位开始,均连续出现了七个3;小数点后第2747956位起,出现了有趣的数列876543210;还有更有趣的数列123456789也出现了。

pi能无限计算下去吗?

根据朱达诺夫斯基的估计,我们最多算10^77位

Posted by 猪哥 at 09:20 PM | Comments (0)

July 21, 2004

ReadM

Categories:  ItTech

在手机上安装了一个免费的电子书阅读软件ReadM,非常不错。和以前用的MobiPocket相比,ReadM更简单实用,而且对中文电子书的支持更好。

MobiPocket的最新版在Nokia 3650上对中文支持没有问题,可是在6600上就怎么也显示不了中文。ReadM在6600上工作正常,支持中文。

Posted by dumm at 11:55 PM | Comments (3)

July 15, 2004

PS的bug

Categories:  ItTech

在做这个项目之前,我还没用左手鼠标使用过photoshopCS,这几天累到手抽筋,于是只能左右开弓把鼠标方式切换到左手,然后就发现界面上的一切面板都无法移动位置了,从TOOLBAR到LAYER,纹丝不动啊。后来经摸索发现,只有当选中面板上的某一项,单击右键弹出菜单后,才能移动,晕。

Posted by peter at 10:14 PM | Comments (0)

July 13, 2004

Subversion

Categories:  ItTech

早就听说了Subversion--被称作下一代版本控制系统的开源软件。今天研究了一下,发现它确实有很多吸引人的特性。

Subversion和CVS的模型差不多,其基本操作是签出、修改、合并、更新。和CVS相比,Subversion增加了很多有趣的特性,例如支持目录版本控制、二进制文件的比较等。听说Debian已经将很多项目从CVS移到Subversion,可以猜测Subversion的稳定性和可用性应该还是不错的。

由于Subversion还很新,所以基于Subversion的应用还比较少。Eclipse中目前还只内置支持CVS,要用Subversion的话需要第三方插件;Ant内置支持CVS,要使用Subversion同样需要第三方工具软件……因此,如果现在用CVS管理的项目比较大,最好在迁移到Subversion之前进行仔细的评估。

我试用了Subversion的图形化客户端TortoiseSVN,非常不错。有人说最好不要使用它的中文语言包,因为不太稳定。

我觉得对于新项目来说Subversion也许是一个不错的选择,对于老项目还是让它们继续用CVS控制吧。

Posted by dumm at 09:11 PM | Comments (0)

July 12, 2004

CDT 2.0发布

Categories:  ItTech

Eclipse项目的CDT发布了2.0版本,支持3.0的eclipse。

更多信息参见官方网站

Posted by dumm at 09:30 PM | Comments (0)

July 11, 2004

MathCAD 2.50

Categories:  ItTech

这几天解决一个数学上的小问题(其实已经解决了),想到了以前玩过DOS时代的MathCAD 2.50,在Google中找了一下,没有想到还真找到了。

下载后运行,做了一个简单的波形合成。下面是截图:

20040711_mcad250.png

忽然觉得自己挺怀旧。

Posted by dumm at 09:06 PM | Comments (1)

July 04, 2004

维基百科

Categories:  ItTech

今天在Google搜索祖冲之和圆周率,找到了一个有意思的网站:维基百科。

维基百科是一个开放式的百科全书系统,基于MediaWiki构建。

这里是维基百科的网址:中文英文

Posted by dumm at 01:54 PM | Comments (1)

July 02, 2004

Frozen Bubble for Series 60

Categories:  ItTech

Frozen Bubble for Series 60是手机上的开源泡泡龙游戏,这个游戏是从Linux的版本上移植过来的。和大多数开源项目一样,Frozen Bubble for Series 60也在SourceForget.net上:http://fb-s60.sourceforge.net/

Posted by dumm at 12:39 PM | Comments (0)

July 01, 2004

Eclipse 3.0

Categories:  ItTech

Eclipse.org发现Eclipse 3.0 Release版已经发布了。

由于3.0的发布时间不长,有些应用还没有实现对3.0的支持,例如CDT等。

Posted by dumm at 11:41 PM | Comments (0)

June 30, 2004

indent - 从1976年用到现在的软件

Categories:  ItTech

今天在Google中查找格式化C++源码的软件,顺便看了一下流行的C源码格式化软件indent的手册,竟然发现indent的第一个版本是1976年出的,和我出生年份一样!

真没有想到身边常用的一个小软件有近30年的历史!

Posted by dumm at 11:46 AM | Comments (0)

Nokia announces support for Eclipse

Categories:  ItTech

从NewLC.com上看到这条新闻。大意是说Nokia要发布支持Eclipse的J2ME的SDK,不过现在只提供给Forum Nokia Pro的会员,下个月才向其他Forum Nokia会员发布。

新闻的来源在这里

要是什么时候Nokia象PalmSource一样开始支持Eclipse上的Symbian OS C/C++开发就好了。

Posted by dumm at 10:02 AM | Comments (0)

June 29, 2004

Par

Categories:  ItTech

Par是一个多功能的PalmOS的PDB、PRC文件维护工具,可以展开、合并PDB、PRC文件,还可以给这类文件添加资源、删除资源等,非常适合PalmOS开发人员使用。

这个工具的URL不太好记,每次都用Google搜索。今天又搜索一次,这次不懒了,把URL记录在这里:http://www.djw.org/product/palm/par/

Posted by dumm at 05:18 PM | Comments (0)

June 27, 2004

MSN Messenger 6.2.0137去除广告和启动多实例

Categories:  ItTech

MSN Messenger升级到了6.2.0137。当然去除广告和启动多实例的方法很快就出来了。

用UltraEdit等二进制编辑软件打开Program Files\MSN Messenger下的msnmsgr.exe,按照下面的方法修改:

去除广告:将0xE5E61处的0x74改为0xEB。
启动多实例:将0xDFFE6处的0x85改为0x86。

Posted by dumm at 11:13 AM | Comments (2)

June 04, 2004

Desktop Sidebar

Categories:  ItTech

今天看到一个好玩的软件Desktop Sidebar,集成了新闻、邮件检查、天气预报、日历、任务、漫画、MSN等功能,非常好用。可惜对中文的支持有一点问题,在很多中文内容的结尾会出现乱码。

Desktop Sidebar的主页在这里

Posted by dumm at 06:19 PM | Comments (0)

May 31, 2004

Symbian SDK + CodeWarrior

Categories:  ItTech

这几天收集了一些Symbian开发相关的工具,例如IDE、SDK等。经过试验,发现在Windows中用Metrowerks CodeWarrior和Symbian SDK配合开发不错。

我用的是Metrowerks CodeWarrior for Symbian Professional 2.5,安装后是一个“空”的IDE,必须安装SDK才能完成开发工作。从Nokia Forum可以下载适合CodeWarrior用的SDK,我下载了S60的1.2和2.1c版本。

Symbian的编译器需要ActivePerl和JRE的支持才能工作。1.2版本的SDK自带ActivePerl和JRE,不过都不是最新版本。从ActiveState可以下载最新版本的ActivePerl,安装后再安装Symbian SDK时就不用安装SDK自带的ActivePerl了。遗憾的是1.2版本的Sisar工具必须使用1.3.1版本的JRE,所以安装SDK的时候还是需要安装自带的JRE。安装完SDK后,就可以启动CodeWarrior用向导生成一个项目,编译调试了。

S60 2.1c版本的Symbian SDK也需要ActivePerl和JRE支持,但发行包中没有包含这两个软件。由于我安装2.1c前已经安装了1.2版本的SDK,所以不知道2.1c的Sisar是不是也只能工作在JRE 1.3.1上。

对于不同版本的SDK支持的机型可以参考SDK的文档。据我所知1.2版本支持Nokia 7650、Nokia 3650;2.1c版本支持Nokia 6620、Nokia 7610。其他机型还不太了解。

现在还没有研究清楚的一个问题是:Symbian是否和PalmOS一样,为新版本OS开发的程序可以运行在老系统上,只要避免使用新版本的API或者根据版本不同调用不同的API。如果和PalmOS一样,开发起来就太方便了,只要安装最新的SDK就可以,不然可比较麻烦,得安装好多SDK。

另外,现在还没有来得及研究如何制作SIS安装文件。

Posted by dumm at 10:07 PM | Comments (9)

May 28, 2004

OpenOffice

Categories:  ItTech

研究了一下OpenOffice的Windows版本,发现它现在对中文的支持很不错,和Microsoft Office文档的兼容性也不错,只有细节部分有一些差异。总的说来,OpenOffice可以满足一般办公的需要。

有一点遗憾的是OpenOffice的中文版本在Windows上显示的界面字体非常难看,无论是菜单、工具栏还是对话框,中文文字都发生变形。好在英文版本的OpenOffice对中文的支持一样很好,界面显示也比较美观,所以现在我就用英文的OpenOffice了。

Posted by dumm at 11:00 AM | Comments (1)

May 26, 2004

Microsoft Office 2004 for Mac

Categories:  ItTech

今天在MacOS X上用了Microsoft Office 2004,很不错。以前版本的中文兼容性问题都没有了。

Posted by dumm at 08:18 PM | Comments (0)

May 25, 2004

SWIG

Categories:  ItTech

今天包装一个C++的模块给Python用,写了一个简单的接口定义文件,用SWIG生成了包装类,很容易就完成了包装任务。

SWIG是一个给C/C++模块生成其他语言接口的工具,支持Guile、Java、Ocaml、Perl5、PHP、Python、Ruby、Tcl、Chicken、C#等语言。它的官方网站在这里。不过我这里不能直接访问,需要通过代理服务器访问。郁闷~

Posted by dumm at 09:37 PM | Comments (0)

May 23, 2004

今天自己拼凑了一个TTF字体给Fedora 2用

Categories:  ItTech

在笔记本上装了Fedora Core 2,很不错。感觉整合度不比SuSE 9.1差。用了很多新东西,比如Xorg的X Server,以及IIIMF的输入平台等等。而且速度也挺快,可以尝试一下。
用了网上一个现成的美化包后,显示效果不错。中文用的是simsun,可以用到内嵌的点阵字体。英文字体用Tahoma,平滑后的效果在LCD上比较别扭,老是有彩色。尝试着配置使用点阵的英文字体,效果就好多了。但是如果网页指定了宋体的话,还是会用宋体的难看的英文部分显示。同时宋体内嵌的点阵还是少,只有12、14、16三种。有些情况需要显示更小的字体时,显示的仍然是算出来的,效果不好。
总之不完美,为了在Linux上用一个比较好的TTF,决定自己作一个。当然不是从头画起,而是用现成的字体拼起来。
要解决的问题是宋体的英文难看,同时希望能嵌入更小的点阵字体。
英文TTF部分用Tahoma的。更小的汉字全集的点阵字体据我所知只有mingliu.ttf里有,就用它了。英文点阵用了传统的Helvetica。
经过多次实验,总算搞定。现在用的就是这个字体,还是不错的.

Posted by kuuldor at 04:39 AM | Comments (2)

May 20, 2004

Fedora Core 2 Offical Released

Categories:  ItTech

其实昨天就出来了,不过当时在专心调整SuSE 9.1,没顾上看。
这次发布除了提供传统的FTP方式下载,还有BT的种子。我现在正在下载,用Azureus。上次好像暗黑的一个资料片也是提供BT方式发布的。呵呵,看来BT已经开始进入主流社会了。
现在的下载人数也是惊人的,在suprnova上,CD ISO的种子居然有1024个,DVD ISO也有400多个。而下载完成数则分别是618和836。看来还是下载DVD的人多啊。
我下的也是DVD版的。发现有DVD刻录机是好,省了很多麻烦。再不用原来那里一张一张地刻盘了。

Posted by kuuldor at 11:41 PM | Comments (0)

可爱的“准系统”

Categories:  ItTech

前几天给笔记本硬盘升级前,我去了好几个计算机配件方面的网站查资料。无意中我发现了“准系统”这个玩意,才知道原来我早就落伍了。“准系统”在两年前就出现了,而我现在才第一次了解它。

“准系统”简单说就是MiniPC,使用小尺寸的主板和小型机箱,并配有电源、散热系统和其他的组件(如WiFi模块等)。通常只要加上CPU、硬盘和内存,配上外围的显示器、键盘和鼠标就可以构成一个完整的PC。“准系统”体积小、噪音低,非常适合家用(当然商用也可以)。由于散热问题和体积的限制,“准系统”通常无法使用发热量高的配件,而在主板上集成了一些性能一般的部件,例如显卡。另外,“准系统”的主板通常比较小,可扩充的余地不大,对于发烧级的PC玩家来说“准系统”并不是一个好的选择。

对于我这种装好机器两年不改硬件配置的人来讲,“准系统”还是很合适的。下次换PC的时候就用“准系统”了。

Posted by dumm at 08:19 PM | Comments (2)

May 17, 2004

OSX in PearPC on PC!

Categories:  ItTech

前几天我还在讲BasiliskII。现在已经有了PearPC,可以运行Mac OSX。
这世界变化快。。。

昨天从网上下了一个已经安装好的硬盘镜像,体验了一把在Windows下跑Mac OSX的感觉。用的是最新的PearPC 0.1.1,版本还很低,但是运行OSX已经很不错了。
当然速度很慢,不过没有主页上讲的那么夸张。感觉比真机的1/40还是快不少的。和我前天在体验中心摆弄了一会的那个eMac相比,界面的响应速度慢不多了多少。当然没有特效就是了。主要是启动程序时比较慢,不知是磁盘的性能差还是CPU运算频繁。总之还是可以体验一下的。我用里面的拼音输入法打了一小段话,发现还是可以的,不算太难用。

在windows下网络没法用,今天回去准备用Linux试一下。

现在正在用安装光盘的镜像在从头安一份。毕竟吃人家嚼过的饭有点别扭。
从2点左右开始的,现在已经两个小时了,安装界面上还显示“剩余时间: 大约1小时15分钟”。呵呵,确实安装是慢了点。不知安上Xcode和X能不能跑起来。如果可以,我关心的一些问题就都可以先亲自尝试一下了。

贴张安装中的图片:

Posted by kuuldor at 05:17 PM | Comments (0)

May 14, 2004

系统日志中的大量DCOM错误之补充

Categories:  ItTech

今天发现还需要屏蔽TCP的445端口才能完全杜绝系统日志中的DCOM错误。

Posted by dumm at 12:59 PM | Comments (0)

May 13, 2004

系统日志中的大量DCOM错误

Categories:  ItTech

这段时间计算机的系统日志中记录了大量的DCOM相关的错误,内容如下:

Access denied attempting to launch a DCOM Server. The server is:
{00020906-0000-0000-C000-000000000046}
The user is Unavailable/Unavailable, SID=Unavailable.

这种错误只有在拨号上网的时候才发生,如果是通过网关上网,则没有这个问题。初步判断应该是不断的遭到攻击造成这个问题。于是用netstat命令检查上网时来自公网的Socket连接,发现1025端口和135端口很可疑。在防火墙中屏蔽了这两个端口后,问题解决。(只屏蔽一个端口似乎不能完全起作用,还会有一部分DCOM错误记录下来,只是频率降低了。)

Posted by dumm at 10:00 PM | Comments (1)

May 12, 2004

我的Windows XP无法在线更新了!

Categories:  ItTech

好多天我的Windows XP都无法在线更新(正版的)。开始我还以为是网络的问题,可是发现每次自动检测更新内容的时候,用的时间都极其长,IE没有一点反应。于是我就怀疑是出问题了,在Google上搜索类似的问题,结果发现有一大堆原因可能出现这种现象(包括错误码:0x800A138F)。晕~

已经折腾了两个小时还没有搞定这个问题,继续奋斗……

Posted by dumm at 11:09 PM | Comments (1)

May 11, 2004

用Delphi开发Palm Conduit

Categories:  ItTech , PDA

Delphi Conduit Library是一个开源项目,实现了一套Delphi下开发Palm Conduit的库。这个库提供了开发COM类型的Palm Conduit的便利手段,还提供了一些工具帮助Delphi程序同HotSync Manager打交道,例如枚举用户信息、安装文件到Palm等。

这个项目的官方网站在这里

Posted by dumm at 12:03 AM | Comments (2)

May 10, 2004

MSN Messenger协议的一些资源

Categories:  ItTech

今天继续研究MSN Messenger的协议和实现,找到下面的一些资源:

一些资源的汇总:
MSN Messenger Protocol

和Delphi有关的资源:
XcomMsn
Regnessem

Posted by dumm at 08:00 PM | Comments (0)

May 09, 2004

MSN Messenger 6.2去除广告和其他

Categories:  ItTech

MSN Messenger 6.2才出来不久,去除广告和启动多个实例的方法就出来了:

去除广告:0xE5D9B和0xE5DD3两处的0x74改成0xEB;
启动多实例:0xDFF8A处的0x85改成0x86。

Posted by dumm at 05:39 PM | Comments (1)

May 07, 2004

Draco.NET

Categories:  ItTech

Draco.NET是一个dotNET自动编译测试工具,基于BSD License开放源码。

使用测试驱动开发的团队应该试试这个工具。它的网站在这里

Posted by dumm at 10:34 PM | Comments (0)

May 06, 2004

There's something about Mac. Or Apple?

Categories:  ItTech

呵呵,借了个电影的名字。纯粹是因为要写的东西和电影的中文名有点相似之处吧。

下午写了个关于Basilisk II的Blog,里面没什么连接。这个里面给些关于Mac和Mac模拟的连接,有兴趣的人可以去看看。当然,主要仍然是一些旧时的回忆。我是不是老了?开始回忆了。

其实一直很喜欢Mac,或者说苹果电脑。虽然我自己没有买过一台Mac。

我的电脑启蒙可以说就是从苹果开始的。初一的暑假,学校开了计算机兴趣小组,我也被挑选加入了。在那之前,也接触过一种简单的机器,Laser 310。这个机器和后来的小霸王学习机类似,一个键盘,直接连接电视。可以使用Basic语言,CPU是Z80的。但是当时可以说对计算机还是只通半窍,只会把现成的程序输入进去,看执行结果。哈哈。
当时学校在计算机竞赛里连续三年得了全省的个人第一和团体第一,于是省里奖励了20台Apple IIe兼容机和2台原装带软驱的Apple IIe,建立了一个机房。在后来高中开设计算机课之前,这个机房就是我们小组专用的啦。我在这个机房里泡了3年,从Basic开始,后来陆续又学了6502汇编和Pascal,还玩了一段Logo。编了不计其数的作业题和一些小游戏。
还记得当时很流行的一种玩法,是写一行程序。Apple II的Basic程序,一行的字符数目是有限制的,应该是250左右吧。同时多个语句可以用:连接写在一行里面。一行程序,就是要在这250个字符之内,写出解决问题的程序来。当时有个很有名的计算机报纸,叫做儿童计算机世界。上面每期都会等一个题目,大家就可以寄去一行程序的解法,下一期挑最短的登出来。现在看来,这应该是属于无用的技巧,对编程习惯有不良的影响。但是当时大家都乐此不疲,类似一种智力游戏吧。有一期的题目是高精度除法,就是给两个数,给出任意指定位数的相除结果。我做了一个很短的结果,当时小组里其他人都比我的做法长。我就很得意的把结果寄给报社。谁知下一期的报纸登的并不是我的结果,我一数,发现比我的还少3个字符。呵呵,强中更有强中手啊。
在小组呆的时间长了,逐渐从老老实实作编程题的菜鸟变成组里的前辈,于是就开始玩游戏了。起初只是偷偷地玩,怕老师发现。同学之间也互相拷贝游戏。但是因为我们用的机器都没有磁盘驱动器,所以只能用磁带机录在磁带上。用的是一般的录音磁带,不是服务器上用的专用数据磁带。当时一盘60分钟的磁带大概可以拷贝7、8个游戏,现在想想大概有200K左右吧,效率还是很低的。后来资格老了,和老师关系也好,就开始替老师管机房,带低年级的组员上机,于是也可以用老师专用的原装机了。原装机带磁盘驱动器,就开始用磁盘拷游戏了。Apple II的驱动器是单面的,而我们能买到的磁盘都是双面的。为了避免浪费,我们就把磁盘的另一边也刻出写保护缺口,反过来插进驱动器,这样就可以用到第二面了。
Apple II上令人难忘的游戏太多了!PacMan(我们当时叫大食客)、Lode Runner(警察抓小偷)、Karate(我们叫英雄救美)、CrossFire(我们叫十字枪战),都是经典中的经典,让我多年以后仍然非常留恋。
玩PacMan时,我们着力研究的是吃掉大豆后可以连吃4个鬼的路线。记得前7关我们都找出了全部4次吃到4个鬼的路线,走起来一点不能差,每个转弯都必须严格按照时序进行。甚至还要故意挑逗鬼,才能达到最佳吃法。
Lode Runner不用说了,直到现在仍然有各个平台的移植版,同样是风靡不衰的经典。在Apple II上,画面虽然简陋,但是精髓已在。我甚至觉得,后来的其他平台的移植版虽然画面好很多,但是都没有Apple II上的好玩。也许有点初恋情结,但是确实这些经典游戏引人入胜的关键不在画面画质。看看现在的很多游戏,精美的画面难掩其空洞的内涵。游戏,游戏,可玩性仍然是第一位的。
Karate可能是最早的格斗游戏了,空手道高手在日本音乐的伴奏下杀入重关,最后救出PLMM。虽然游戏的操纵很简陋,只能一维移动,攻击也只是上中下三段的拳和脚。但是后世的格斗游戏需要的精确判断和距离感同样不可或缺,甚至更重要,因为这里可没有什么必杀技,都得老老实实一拳一脚打过去。这个游戏最有意思的是,最后打通了以后,见到MM要按空格,然后跑过去拥抱。如果仍然以格斗的姿势移动过去,会被MM一脚踢毖,闪无可闪。开始我们一直没有发现这一点,导致无数次通关后惨死MM脚下。弄得我们毫无办法,最后气得管要救的MM叫女妖。直到有一天,一个同学不知从何处得知了这个秘密,在面临MM时,悄悄的按下了空格键。然后我们就第一次看到了最后的拥抱场面。大家万分激动,大嚷大叫,弄得老师都过来干预。大家之后就逼问那个同学怎么做到的,开始他还故作神秘,在大家的有力专政之下,很快老实交代了。之后大家才能够真正地打穿这个游戏。
CrossFire是一款射击游戏。但是除了它以外,我没见过任何一款和它类似的射击游戏。怎么说呢,它的射击是同时向4个方向进行的。可能是绝无仅有的吧。游戏的内容很简单:画面被16个方格分成了横3纵3的十字路。画面的最外围是一些鬼怪,游戏开始后就在十字路中移动并开火。你操纵的也是一个十字架似的东西。在十字路上可以4方向移动,4方向开火。呵呵全是十字,难怪叫Cross Fire。这个游戏听起来简单,玩起来就不是一回事了。用8个键控制,四个方向,四个火力。对二维射击游戏来说,这控制键的个数还是真是空前绝后的啊。要用两个手来打,一个手管方向,一个手开火,玩起来真可以说需要你眼观六路耳听八方。新手常常两个人合打,一个人管方向,一个人管开火。这样虽然容易些,但是水平是绝对涨不上去的。一定要一个人双手配合,才能逐渐熟练起来。游戏的每一关都是一样的,只是鬼怪活动的速度和开火的频率越来越快。虽然是简单重复,可是玩起来仍然是乐趣无穷啊。

Apple II玩到高一,之后开始接触PC。当时是长城0520和天津产的XT,有10M的硬盘和DOS,CGA彩显,长城机还有汉卡。和Apple II比起来,不在一个档次,因此被吸引到了最古老WinTel平台上了。这是第一次离开Apple。

第二次接触Apple,是到了大学里。这次的主角,叫做Macintosh。
Apple研制Mac其实很早了,在我接触Apple II以前就已经开始了。那时候我国的计算机应用环境和美国相比,真的落后有4、5年之多。现在则几乎已经没有差距了。更由于盗版的普及,我国的计算机升级换代的速度,比之发达国家更快。盖因软件不要钱,都投入到硬件,而且最新的软件也需要更快的硬件来支撑。这些闲话不说了。我第一次听说Mac,也就是在前面提到的报纸-儿童计算机世界-上。86年时Apple推出了Mac Plus,这个报纸报道了一片短文。文章对Mac的描述语焉不详,大概记者自己也没见到实物,只是翻译外文的报道。但是仍然可以看出Mac Plus和Apple IIe的巨大区别。图形界面、512x342的高分辨率(当时看来)、鼠标、网络,等等之类闻所未闻的东西,让我向往了很长时间。
没想到进了大学,接触的第一种机器,就是Mac Plus。具体的经历我上一篇写了不少,这里就不再重复。主要谈一谈感触:Mac,真的是好东西。GUI,确实是Apple的功劳。
接触过Mac,你就会知道,为什么国外有大批的Mac死忠用户,从来不用PC,甚至抵制PC。Mac确实可以成为你的伙伴,你会对他有感情,而PC只能成为工具。当然,这是一个敏感的话题,类似于Linux和Win的对比。只能说,每个人对此有一个立场,正确与否也许只有天知道了。而立场的形成,源自每个人的经历。我只能说,使用Mac的经历,绝对是令人愉悦的。
关于GUI的发明,也许确实应该归于施乐的PARC。但是我觉得,GUI的成功,一定要归功于Apple。PARC确实有无数的领先的发明创造,但是他们的商业化的动机和能力几乎为0。如果不是Apple,不是Mac,也许我们要晚许多年才会用上GUI。而微软,只是在Mac后面的追赶者和抄袭者。也许经过这么多年的抄袭,微软也开始有了自己的创意。毕竟“熟读唐诗三百首,不会吟诗也会诌。”但是如果一叶障目地认为微软是GUI的救世主,恐怕只能被哂为鄙陋了。
说了这么多,我似乎是Mac的忠实用户了。其实我也不过是一个随波逐流的人。第二次和Apple的分离,仍然是投向了WinTel的怀抱。
大三的时候,系里以优惠价买了一批神通的386电脑。33的主频、4M内存、120M硬盘,在当时也算是高配了。可是矛盾出现,机房的空间是有限的,没地方放这批机器。领导决定,把Mac收起来,给PC腾地方。于是,一部分Mac被束之高阁。随着一批批PC的进驻,Mac逐渐越来越少,直至消失。当然,Mac的消失也是有原因的。机型确实老了,速度不够快,没有硬盘,不支持中文,等等等等。然而不管怎样,我确实离开了Mac;而且,似乎不是那么不情愿。
之后,我就一头扎入了PC的天地。DOS、Windows,Turbo C、Borland C++,x86汇编、Soft-ICE,IPX、TCP/IP,确实有很多很多好玩的东西,我也就一直沉浸其中。后来,接触了Linux,算是部分摆脱了WinTel的控制。不过,我一直保持着一份对Apple和Mac的美好记忆。不过在中国,似乎想对Mac说爱你太不容易。一言以蔽之,贵。真是买不起啊。
幸好,后来接触了模拟器。开始是Apple II的模拟器,我发现了之后。兴奋地找了很多Apple的老游戏来重温。呵呵,还曾经为了CrossFire的颜色问题,做了一点修改,好找到当初绿色屏幕的感觉。后来又见到了以BasiliskII为代表的Mac模拟器,于是开始在网上疯狂的找BasiliskII能用的Mac软件。折腾了很久,总算是有了一个最终的稳定结果。我上一个Blog里展示的就是其中的一部分。
下面给出一些相关的连接:
关于Apple和Mac的历史,http://www.apple-history.com/
BasiliskII的主页,http://www.uni-mainz.de/~bauec002/B2Main.html
BasiliskII的Windows移植,http://gamma.nic.fi/~lpesonen/BasiliskII/
一个加入JIT的Basilisk II分支,http://gwenole.beauchesne.online.fr/basilisk2/
一个Fans列出的能在Basilisk II里用的软件,http://www.myownlittleworld.com/computers/mac68kapps.html
一个老Mac软件的Archive,可以搜索,http://hyperarchive.lcs.mit.edu/HyperArchive/SearchForm.html
Pure Mac,一个Mac软件中心,http://www.pure-mac.com/index.html
Ultimate Mac,顾名思义,最大的关于Mac的站,www.ultimatemac.com


再给几个关于Apple II的模拟器的地址:
模拟器,很多很多,看看这里http://www.zip.com.au/~alexm/faq/,或者自己在google上搜索一下"Apple II" Emulator
这个地方(ftp://ftp.apple.asimov.net),有很多很多Apple II的磁盘映像,估计你想得到的都能找到。

Posted by kuuldor at 01:44 AM | Comments (1)

May 05, 2004

想用Mac吗?试试BasiliskII

Categories:  ItTech

对Mac是不是一直很好奇?那就试试BasiliskII吧。
一个多平台下的Mac 68K模拟器,最高可以运行的Mac OS版本是8.1。
用BasiliskII吧。对用过Mac的人,是怀旧。对没用过Mac的人,是尝鲜。

我接触的最早的GUI就是Mac,91年刚进校的时候。
在那之前,我用过的最好的机器是一台长城386,CPU是SX-16,2M内存,EGA,30M硬盘,跑的系统是DOS 3.2。就这样一台东西,在当时的价格是4万5。现在这台机器还在我爸单位的某个角落。前几年我还打开一次,玩了会最老那个版本的Simcity,缅怀了一下。
当时苹果给系里捐了个Mac机房,20台Mac Plus,一台Mac II作服务器,还有一台激光打印机。在当时的中国,这简直是梦幻配置。我们一进校就可以用这个机房了,现在想想系里对学生还是很好的。GUI、多媒体、鼠标、局域网、激光打印,在当时对我都是天方夜谭似的东西,居然一下子涌到触手可及。我的激动程度可想而知了。
初中时就在报纸上知道苹果出了Macintosh,那时自己还在Apple II上打拼,看了报道心向往之。后来老爸去美国,就想让他买一台带回来。老爸到苹果店里一问,天,都要几千美刀,连型号都没打听就回去了。呵呵,当时老爸那种公派出国的,一个月才发400美刀,连人家救济线都不到。Mac这东西,只能留给美国人用了。
没想到到了大学,居然有整个Mac机房可用,我简直激动的要晕过去了。从此每天晚上只要有空,我就泡在机房里。这一泡就是3年,大二后课没有那么紧了,白天也开始去了。当时在Mac上主要是编程,玩点游戏,听听音乐。哈哈,居然和现在的生活一样,也可见当时Mac的先进程度了。
那时候Windows 3.0刚出来,也号称带多媒体。但是其实就是追Mac的,程度还差的远。而且当时国内还没有Win 3.0,毕竟要在386上才跑的好一点。而国内当时386绝对还是超级奢侈品,286还没普及哪。而我们用的Mac,都是86、87年的产品,在美国已经过时了。想也知道,捐的东西,再好也好不到哪去。可就是这过时的,在我们这也是希罕物。直到两年后,Windows开始流行起来,PC上才能用上GUI。多媒体就要更晚了。
当时在Mac编程都用Turbo Pascal,没办法,系统接口都是Pascal的,不用也不行啊。也有C的编译器,叫LightSpeed C,不过我没用过。呵呵,当时Mac编程搞的我头大。头一次接触Event和Window,很需要一个适应过程。以前都是顺序执行就完了,现在全不是那回事了。还有很多的系统API,都是新概念啊。以前用的要么和系统完全隔离,Basic自给自足。要么就是汇编直接操作硬件,没有中间层。呵呵,在Mac上我才真正接触到现在意义上的编程。到后来学Windows编程时,一看熟啊,和Mac差不多吗,入门就比其他没接触过的人快多了。
游戏,印象最深的就是Lemmings。这个游戏现在Win上也有,可是再晚就没有当时的感觉了。那时候,用鼠标操纵着小小的旅鼠们,伴随着动听的音乐,度过一个个难关,简直是天堂里的享受。当然还有很多其他的游戏也很好玩。有一个战略游戏,是战棋类的,指挥飞机、坦克、大炮和士兵去征服大陆。和现在的即时战略游戏是没法比,但是还是很让人上瘾的,因为可以几个人联网对打,当然协议是AppleTalk啦。哈哈,这是我玩的最早的网络对战游戏。
听音乐是通过服务器来的。因为我们当时用的Mac Plus没有硬盘,只能用一张3寸软盘装上系统启动。之后的操作其实都是调服务器上的东西,只有要保存的文件存在软盘上。其实编程工具和游戏也都是存在服务器上的,不过编译器和喜欢的游戏,都可以拷贝到软盘上。也可见Mac程序不大。但是音乐不行,对软盘来说太大了。服务器上有很多古典名曲,可以直接播放,我们想听的话就打开。我到现在也没搞清楚是哪些音乐是什么格式的,现在想起来估计是MIDI,不过当时听着真的觉得好听。想来Mac的MIDI应该也是用了类似现在软波表的技术。
Mac的多媒体的另一个令我难忘的表现就是文本朗读,当然只能是英文的。但是Mac内置的编辑器就可以做到。记得当时我们常作的一件事就是在编辑器里输入一段英文,然后让它念。还可以选择不同的声音来读。这个其实是系统内置的功能,别的程序通过API也可以调用的。

呵呵,罗嗦了这么多,我就不怀旧了。不过要想想啊,这些是Mac在91年(其实更早,87年的产品)就实现了的东西。真想买个OSX的机器,看看Mac现在怎么样了。

好了,进入正题。讲讲BasiliskII。
BasiliskII是一个模拟器,它模拟的是使用68K系列CPU的Macintosh。要Run起来,必须要一个Mac的ROM文件。其他的使用方式,和其他的虚拟机差不多。需要磁盘映射文件作为硬盘,系统单独安装。目前支持的最高的Mac OS的版本是8.1。硬件模拟功能包括支持声音、网络、CDROM、串口、软驱等等,当然键盘鼠标支持是一定的啦。还可以把"我的电脑"设置成一个网络驱动器在MacOS里使用。

废话不多说了,Show几张图,大家看看。

启动:

桌面:


浏览器:

BBS:

杀毒:


PhotoShop:


其他的就不多上了,服务器空间要节约使用啊。

我现在用的系统就是8.1,英文版的。中文支持用了一个外挂的软件PALE-UniText,加上Mac自己的一个中文支持包。字处理有免费的WordPerfect 3.5。浏览器用IE 4.01或者Netscape 4.08,都很老。最好用的是MacBlue Telnet软件,内置中文的简繁支持和输入法,甚至可以在GB和Big5之间自动翻译。上BBS很好,作为一般的Telnet软件也一点问题没有。

当然了,整个系统只能用了玩一玩,毕竟很多软件早就没有68k的版本了。但是作为了解MacOS的一个入口,或者像我这样怀旧一把,还是没有问题的。

唉,写Blog真花时间啊。这个居然写了近2个小时。Sigh。

Posted by kuuldor at 03:44 PM | Comments (2)

May 04, 2004

安全的OpenBSD

Categories:  ItTech

以前用到BSD Unix的时候一直使用FreeBSD,今天我突然对OpenBSD感兴趣,访问了它的官方网页。OpenBSD真是一个安全的OS,在它的网站上竟然看到下面这句话:

Only one remote hole in the default install, in more than 8 years!

有多少OS能有这样的安全性呀~

Posted by dumm at 10:06 PM | Comments (0)

May 03, 2004

新的冲击波病毒

Categories:  ItTech

今天给一台机器打补丁,防止新的冲击波病毒,真是“分秒必争”呀:由于必须上网下载补丁,所以就要冒着被攻击的危险。下载了好多次,都由于被攻击而重启机器。好在就快放弃的时候,终于在被攻击的前几秒下载并安装了补丁,重启后一切正常。

Posted by dumm at 10:28 PM | Comments (2)

April 30, 2004

Squeak

Categories:  ItTech

说到面向对象的程序语言,不得不提Smalltalk-80;想用Smalltalk,试试Squeak:D

Squeak是一个Free的跨平台Smalltak-80实现,非常不错。从上面给出的网址可以下载到最新版本,不过从我这里无法直接打开,必须通过代理服务器:P

Posted by dumm at 08:18 PM | Comments (2)

April 29, 2004

UML Tutorial from SmartDraw

Categories:  ItTech

今天找UML资料的时候,发现SmartDraw的UML教程不错。可以从这里下载。

另外,SmartDraw是一个不错的绘图软件,值得一试。SmartDraw的官方网站在这里

Posted by dumm at 02:25 PM | Comments (1)

April 28, 2004

want - Delphi的构建工具

Categories:  ItTech

昨天研究了一下want,这是一个用于Delphi的构建工具,和Apache的Ant项目类似。

want支持Delphi项目的构建,还支持CVS、InnoSetup、Zip、GZip等操作;对于自动测试,want支持DUnit。

want作为一个自动构建工具基本可用,不过还有一些有待完善的地方。文档的匮乏是want的最大问题,为了检查一个任务、属性的用法常常需要查看源码。

want在Sourceforge.net上的页面在这里

Posted by dumm at 10:23 PM | Comments (0)

April 27, 2004

FCKeditor

Categories:  ItTech

今天在Sourceforge.net上浏览的时候无意中发现了FCKeditor项目。这个项目实现了一个在线(浏览器中)的HTML编辑器,功能非常强大,除了支持常见的功能(字体、字号、颜色等),还支持表格、Form等。

FCKeditor的官方网站在这里。在官方网站上还有一个在线的演示

当前FCKeditor对IE的支持很好,不过在我的Mozilla Firefox中不能正常工作。从官方网站上得到的消息表明FCKeditor的开发小组正在实现其对Mozilla的支持。

Posted by dumm at 10:39 PM | Comments (1)

April 26, 2004

昨天的PHP中应用XSLT的问题解决

Categories:  ItTech

不知是不是由于PHP对Windows的支持不是很透明,要解决昨天的问题,需要下面两种方法:

第一种方法,在xslt_create后立即使用下面的代码:

$fileBase = 'file://' . getcwd () . '/';
xslt_set_base ( $xh, $fileBase );

第二种方法,对xmlfile和xslfile的文件名做类似的处理:

$xmlfile = 'file://' . realpath("order.xml");
$xslfile = 'file://' . realpath("order.xsl");
Posted by dumm at 09:32 AM | Comments (1)

April 25, 2004

PHP中应用XSLT转换XML的问题

Categories:  ItTech

今天测试PHP中对XSLT的支持,试验下面的代码:

<?php
$xmlfile = realpath("order.xml");
$xslfile = realpath("order.xsl");
$engine = xslt_create();
$output = xslt_process($engine, $xmlfile, $xslfile);
print $output;
xslt_free($engine);
?>

执行出现这个错误:

Warning: Sablotron error on line 1: XML parser error 4: not well-formed (invalid token) in c:\inetpub\wwwroot\test\order.php on line 5.

可是下面的ASP代码却正常运行:


<%@LANGUAGE="JScript"%>
<%

var xmlDoc = Server.CreateObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(Server.MapPath("order.xml"));

var xsltDoc = Server.CreateObject("Microsoft.XMLDOM");
xsltDoc.async = false;
xsltDoc.load(Server.MapPath("order.xsl"));
	
Response.write(xmlDoc.transformNode(xsltDoc));

%>

研究了很久,也没有找到问题所在。奇怪……

Posted by dumm at 10:17 PM | Comments (0)

April 23, 2004

开始练习打字了-Dvorak

Categories:  ItTech

键盘的布局有很多种,最常用的当然是Qwerty布局。不过,Qwerty并不是最优的布局。从学习速度、打字速度和人体工程学的角度来看,Dvorak布局更优。

这是Dvorak布局的键盘示意图:

Dvorak Layout

从图中可以看出,字母、符号的位置同Qwerty布局相比有了很大变化。

为了学习这种新的布局,首先需要在Windows中安装Dvorak布局支持。这非常简单,在输入法设置中增加英文输入法,其中有一种就是Dvorak。

Dan Wood的在线教程很不错,在这里:ABCD A Basic Course in Dvorak

Posted by dumm at 09:48 PM | Comments (2)

April 21, 2004

NAnt

Categories:  ItTech

NAnt是一个.NET的自动编译工具,适用在自动编译.NET应用的场合,例如.NET项目的每日构建(nightly build)。这个工具和Apache项目下的Ant非常相似。当然,和Ant一样,NAnt也是一个开源的项目。

官方网站在这里

Posted by dumm at 11:20 AM | Comments (0)

April 20, 2004

Mozilla Firefox

Categories:  ItTech

竹笋炒肉的BLOG上看到了关于Mozilla Firefox的东西,正巧这几天我一直在用这个浏览器,也来谈谈……

Firefox是基于Mozilla内核的浏览器,可以运行在多种操作系统上,我用的是Windows的版本,当前版本号为0.8。

Firefox对中文的支持很好,除了具有普通的浏览功能外,还具备一些Internet Explorer没有的特性:

Firefox支持Tab模式的浏览,这个特性非常好,再也不会在同时浏览很多网页的情况下Windows任务栏上出现一大堆按钮了。不过Firefox内置的Tab浏览功能不是很强大,可以下载安装功能更加强大的Tab模式的插件。

Firefox支持更换界面主题,我用的是Smoke主题,非常素雅。

Firefox支持大量的第三方插件,上面提到的Tab浏览的扩展就是其中之一。初步研究了一下,大多数插件是用Mozilla的内置程序引擎实现的,是XML格式的脚本程序,很有意思,在Google里可以找到很多这方面的开发教程。

Firefox只是Mozilla项目的一个部分。Mozilla项目还有Email客户程序等其他的软件,值得一试。

Mozilla的官方网站在这里。在官方网站上,可以找到Firefox的各种资源(主题、插件、开发文档等……)。

Posted by dumm at 10:50 PM | Comments (0)

April 19, 2004

MSN Messenger in Python

Categories:  ItTech

今天继续研究MSN Messenger的机器人相关技术,找到了基于Python的库:msnp.py

到目前为止msnp.py支持MSNP8的部分功能,和昨天研究的DotMSN库比,明显少了文件传输功能。

Posted by dumm at 08:15 PM | Comments (2)

April 18, 2004

DotMSN

Categories:  ItTech

今天突然对MSN Messenger的机器人感兴趣,在Google中搜索一些关于实现机器人的技术,发现了一个比较好用的库:DotMSN。

DotMSN是一个用C#实现的库,实现了MSN Messenger的协议(当前是MSNP8协议)。用这个库可以方便的开发基于MSN Messenger的应用。

DotMSN的官方网站在这里

Posted by dumm at 09:18 PM | Comments (0)

April 14, 2004

移除MSN Messenger 6.1的广告

Categories:  ItTech

在Windows-Help网站上看到了移除MSN Messenger 6.1的广告的方法:

编辑Program Files\MSN Messenger目录下的msnmsgr.exe,将0xD71F1和0xD7235两处的0x74替换为0xEB即可。

出处在这里

Posted by dumm at 11:18 AM | Comments (0)

April 03, 2004

Akeysoft Group的新版网站

Categories:  ItTech

经过好几天晚上的奋斗,新版网站终于做好了。这次抛弃了数据库,用XML保存数据,用Schema验证数据,用XSLT转换出HTML页面,开发效率更高,更容易维护和升级。

新版网站在这里

开发过程中使用XMLSpy作为IDE,感觉用它开发XML应用非常方便。可惜试用期快到了:(

Posted by dumm at 11:08 PM | Comments (0)

March 17, 2004

SQLite

Categories:  ItTech

今天升级POPFile的时候注意到它用的是SQLite引擎。到Google中搜索到SQLite的网站,上去看了看,原来这是一个轻量级的嵌入式数据库引擎。它支持大部分SQL92标准,数据文件可以用在各种字节序的机器上,具有多种语言的非常简单的接口。

SQLite官方网站

Posted by dumm at 09:26 PM | Comments (0)

March 11, 2004

Gaim

Categories:  ItTech

Gaim是一个非常棒的IM客户端软件,支持流行的IM系统,例如:AIM、ICQ、Yahoo! Messenger、MSN Messenger、Jabber、Gadu-Gadu、Zephyr、IRC等。Gaim是Open Source的软件,支持很多操作系统:Linux、BSD、MacOS X、Windows等。

当前的Gaim版本是0.75版。非英语国家的Yahoo! Messenger用户使用这个版本还无法登录,Gaim的作者声明这个问题将在下一个版本中解决。

相关链接:Gaim官方网站

Posted by dumm at 10:34 PM | Comments (0)

March 08, 2004

屏蔽一些垃圾

Categories:  ItTech

现在有一些网上的垃圾非常烦人,在论坛里经常看到大家发泄对它们的愤怒。我一直用hosts文件对这些垃圾进行屏蔽。下面是Hosts文件的内容:

127.0.0.1 bar.baidu.com #百度IE搜索伴侣
127.0.0.1 download.3721.com
127.0.0.1 3721.com #3721网络实名
127.0.0.1 3721.net #3721网络实名
127.0.0.1 cnsmin.3721.com #3721网络实名
127.0.0.1 cnsmin.3721.net #3721网络实名
127.0.0.1 download.3721.com #3721网络实名
127.0.0.1 download.3721.net #3721网络实名
127.0.0.1 www.3721.com #3721网络实名
127.0.0.1 www.3721.net #3721网络实名

我用的系统是Windows XP,Hosts文件在Windows\System32\Drivers\Etc目录下。其他的系统可能位置不一定一样,不过在系统目录下一定可以找到。

Posted by dumm at 09:50 PM | Comments (0)

March 06, 2004

Razor!

Categories:  ItTech

Razor!是一个PalmOS上的游戏引擎,在MIT许可证下发布,可以免费的应用在商业软件中。

点击这里访问Sourceforge.net上的Razor!项目。

Posted by dumm at 02:56 PM | Comments (0)

March 04, 2004

用OnBoardC开发PocketC库程序

Categories:  ItTech

研究了几个晚上,终于在OnBoardC上搞出来了PocketC的库。

所有代码可以从这里下载。下载的压缩包里包含了OnBoardC的工程、库源码和PocketC上的测试程序。

Posted by dumm at 07:45 PM | Comments (0)

February 21, 2004

PCCTS--一个C++的Parser生成器

Categories:  ItTech

今天用了用PCCTS,觉得不错。

关于PCCTS可以看这里

它有一个进化版本,改名为ANTLR,是基于Java的,可以生成Java、C++的Parser。可以通过访问它的网站获得详细信息。

Posted by dumm at 08:57 PM | Comments (0)

February 16, 2004

不可靠的增量链接

Categories:  ItTech

从昨天开始同事调试一个程序总是出问题,今天下午无意中采用rebuild all重新编译了一遍程序,结果就没有任何问题了。经过分析,应该是VS.NET 2002在链接的时候增量链接的错误……

这样的问题我以前也遇到过。通常一个项目越来越大的时候,完全编译一次可能需要很长时间,因此越来越少的进行完全编译,就有可能遇到这个问题。增量链接特性还是不值得信任呀!

看来以后吃午饭的时候最好开始一次完全编译……

Posted by dumm at 09:14 PM | Comments (0)

February 09, 2004

GBKOS

Categories:  ItTech

GBKOS,一个Palm OS上的中文系统。最初是我和dumm开始做的,在tompda上发布后,又逐渐有几位网友加入了team。但是已经很久没有更新了。现在的状态是:可以显示汉字,但是没有输入法,也不支持OS5。

最初想做这个东西,是在我把CJKOS改成支持GBK之后.......

当时我的改版在echoice(那时候国内最大的Palm论坛,tompda的前身?)发布后,不少胖友都给我发消息。我和dumm也是由此在网上结识,到现实中会面。我们交流的主题之一,就是想给Palm写一个OpenSource的汉字系统。

但是我是一个超懒的人,真的。这个想法仅仅作为想法存在了近半年之久,直到一个机会出现。这个机会就是非典。

2003年3月底,非典在北京造成了很大的损失,然而却直接造成了GBKOS的出现。

当时我们公司和大多数单位一样,实行了在家办公,时间长达一个月。虽然远程支持的工作还是不少,但是相对平时的工作量可以说闲了许多。而且不再需要在路上花去2个多小时,每天的时间一下子多了起来。

一天,我在MSN上和dumm聊天,又说起汉字系统的问题。一番讨论之后,我开始动手。第一步目标,是替换系统的显示调用,将汉字编码的2个字节显示成一个汉字,而不是原来的两个西文符号。为了简单起见,我们决定先把所有汉字都显示成一个字,重点调试对系统函数显示功能的替换。经过一个下午的努力,这个目标达到了。这是非常初级又非常重要的第一步。

之后开始了将近半个月的密集工作,我们不断的加入功能,调试错误。终于,我们的汉字系统可以用了。我们准备在tompda上发布,需要起一个名字。dumm想起一个OpenSource式的名字,类似SeaMonkey这样既有意义又比较偏僻的单词,可是我们一时间没有找到合适的。最后用了我起的这个名字,其实就是对Palm上最杰出的汉字系统CJKOS的一个类比。

之后就是加入各种机型的支持。Sony的高分机、日文机,都让我们花了一定的力气。之后shellcode加入了我们的team,从OS5的API里抠了Palm Hi-Res的头文件,奠定了对Palm TW和Acer S系列高分机支持的基础。

我们还计划着其他功能的加入:输入法、字库压缩、甚至OS5支持(如果可能的话).....

可惜不久之后,在家办公结束了,我的空闲时间又锐减。GBKOS的更新慢了下来,最后趋于停顿。有时胡思乱想,再来一次非典,就又有时间做GBKOS了。

...................................

...................................

...................................

其实,没有时间只是我的借口,真正的原因是因为我懒。

真的,我很懒。我的工作,大多数是由情绪驱动的。当开始的激情过去之后,让我完成一段成规模的工作越来越困难。尤其是想到无法一下子做完,更让我提不起劲来。期望有一天,对GBKOS的激情又回到我身上。

GBKOS是我和dumm合作的第一个项目,在这里记录一下。希望有一天再合作。

dumm,我觉得和你合作很愉快,你呢?

Posted by kuuldor at 11:21 PM | Comments (4)

January 18, 2004

关于Google和在Eclipse中开发PalmOS程序

Categories:  ItTech

今天在论坛里碰到一个开发者问如何在Eclipse中配置Prc-tools开发PalmOS程序。很奇怪,既然知道问题,为什么不用Google搜索一下eclipse和prc-tools这两个关键字呢?一搜就能搜到结果。

既然说到Eclipse开发PalmOS程序,我就多说两句。

虽然有很多种语言可以开发PalmOS程序,但C语言应该是首选的PalmOS开发语言,因为PalmSource提供的开发包就是基于C语言的。PalmOS程序开发用的C语言的编译器主要有两个,一个是Metrowerks提供的CodeWarrior的编译器,一个是源于gcc的prc-tools(当然是开源的)。CodeWarrior基本上是官方指定的PalmOS开发环境,具有完整的IDE;prc-tools则是一套命令行工具,本身不具有IDE。Falch.net推出了基于prc-tools的IDE,可惜是收费的。在寻找各种编译器和IDE的组合过程中,我最终选择了eclipse和prc-tools的完美结合。

eclipse是一个通用的开发环境,支持Java、C/C++等语言,在安装了prc-eclipse后经过简单的配置就可以开发PalmOS程序,包括编辑、编译、调试等。可惜的是eclipse中没有可用的RCP资源编辑器,因此RCP文件还需要手工撰写,或者使用外挂的编辑器,例如Falch.net PilRC Designer。不管怎样,有了eclipse和prc-eclipse开发PalmOS程序,总比直接使用prc-tools好多了。

Posted by dumm at 06:03 PM | Comments (0)

January 17, 2004

使用Image.getGraphics需要注意!

Categories:  ItTech

为了解决昨天Image.createImage的问题,在网上狂搜索了一通,没有找到解决方法,倒找到了另外一个相关的注意事项:

在新版本的Nokia Series 60的机器上,Image.getGraphics的实现和以前不同。在老版本中,对一个Image实例多次调用getGraphics方法返回的是同一个Graphics实例;而在新版本中则每次返回不同的实例。因此,如果使用下面的代码:

class Test {
    private Image img; 
    ...
    public void draw() {
        Graphics g = img.getGraphics();
        ... // 使用g进行绘制
    }
};

如果多次调用Test.draw(),则会出现Memory Full错误,最后退出。正确的方法应该是:

class Test {
    private Image img;
    private Graphics g;
    ...
    public void init() {
        g = img.getGraphics();
    }
    public void draw() {
        ... // 使用g进行绘制
    }
};

在调用draw前,调用一次init,然后再多次调用draw就没有什么问题了。

Posted by dumm at 06:01 PM | Comments (2)

January 16, 2004

开发J2ME程序遇到垃圾收集方面的问题!

Categories:  ItTech

今天做了一天的J2ME程序,发现J2ME的程序在手机上耗用内存很厉害,使用了Nokia Series 60开发包中的几个FullCanvas实例和几个Image实例后,就耗用了接近1M的内存,手机内存不够用!

为了减少内存耗用,只好把原来的多个FullCanvas实例变成一个实例,让不同的界面代码公用一个FullCanvas,减少了部分内存消耗。

不过有一个问题很奇怪:Image.createImage(String name)创建出来的Image实例使用后,即使赋值null,垃圾收集器也不对它进行回收(Nokia 3650上是这样,在模拟器上似乎没有问题)。我怎么改也无法让Nokia 3650对createImage创建出来的Image实例进行回收,只好做了一个图片资源管理对象,用该对象保存已经创建过的实例,在下次调用的时候直接使用,而不再创建。这个方法虽然解决了部分问题,但是内存不能回收在程序中留下了隐患。如果有哪位朋友知道解决方法,请一起交流交流。这里先谢过啦!

Posted by dumm at 06:00 PM | Comments (1)