Friday, December 28, 2007

Puyo Mobile 0.3 has been released.

At last I've got some time to add the sound features to Puyo Mobile. Various minor issues on Nokia phones have also been ironed out. In addition, the project file is updated so that you can download the source file and load it in Netbeans 6.0.

This is the direct download link for the zipped jar and jad if you're eager to try it.

Have fun!

Thursday, December 27, 2007

Update from Netbeans 5.5 to Netbeans 6.0

When I update from Netbeans 5.5 to 6.0, I can't start the emulator for J2ME development anymore. Later I've found that the problem is that Netbeans 6.0 is bundled with WTK(Wireless ToolKits) 2.5.2, whereas the 5.5 uses WTK 2.2. Then I go to the menu "Tools"->"java platforms" and remove the WTK 2.2. After removal, you'll see the project icons using J2ME show some errors in the "Project Navigator" view. Don't panic. Just go to the "Project Properties" dialog to ensure the "Emulator Platform" is WTK 2.5.2. Click OK button and you're done!

Wednesday, December 26, 2007

autostart scim under KDE4

Yesterday I installed KDE4 on my linux system. I wanted to automatically start the chinese input method support scim after log into the KDE4 desktop from kdm. I took some advices from internet and added .xim in my home directry. The content of the .xim is as follows:

export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE=scim
export QT_IM_SWITCHER=imsw-multi
export QT_IM_MODULE=scim
scim -d

However it didn't work. I checked the .xsession and found that the .xim was not called at all. After grepping in /etc, I found that KDE4 uses its own Xsession under /etc/kde4/kdm instead of the standard one under /etc/X11/xdm. After I added this line

[ -f $HOME/.xim ] && . $HOME/.xim

before calling startkde in the Xsession file, it worked like a charm!

Sunday, November 04, 2007

crysis demo looks nice.

Yesterday I downloaded the crysis demo and played a little bit. The graphics and physics effects look great. On my 3-year old laptop with a 1.6G centrino CPU and Raedon 9700 graphics card it runs still quite fluently.

Some tips if you're new to this game:
1. Don't waste your ammo. It's limited! However you can pick up guns when killing an enemy and take their ammos.
2. Use the jeep equipped with a machine gun, which seems to have infinite ammo. Mind your driving!
3. Press "V" key and try some options there.

Good job, Crytek.

Thursday, September 27, 2007

general makesis

When I'm trying to pick up some dev work on my mirrlicht project, I came across a little annoying problem for Symbian development. That is to write a small tool which can take symbian package file containing relative paths. The relative paths make it easier to switch between different SDK installations.
There is a tip here suggesting to use option -d"Your epoc root dir" when you call makesis. However it would be better to pass the epoc root directory automatically.

I've found a way to do this using the command "devices" provided with the symbian SDK and a dos batch file.

@echo off
set filename=yourproject
if "%1"=="gcce" set filename=yourproject-GCCE
for /F "usebackq tokens=3 delims= " %%i in (`devices -default`) DO (
for /F "usebackq tokens=1,3 delims= " %%j in (`devices -info @%%i`) DO if "%%j"=="Root" makesis -d%%k %yourproject%.pkg

Note that the second "for" statement is in one line. I've tested this on S60 SDK. But it should also work for UIQ.

Friday, May 25, 2007

OpenGL ES problem on N73

I've recently got an N73 from my company. Since this phone (or mobile computer if you prefer to call it this way) includes a software OpenGL ES renderer, I'm eager to try if the sample programs included in the Nokia OpenGL ES 1.1 plugin run on a real device. After I compiled a very simple sample SimpleCube and installed it on my N73, the testing result is disappointing because the rotated cube flickered all the time. I googled but haven't found many useful information for this issue. Later I found that the problem is caused by fast periodic refreshing. The timer in the example is set to 100 microseconds. However it seems that the software renderer can't finish the rendering in such a short time. Therefore the next frame starts to render before the first rendering comes to an end. By setting the timer (the second argument of CPeriodic::Start) to 30000 microsecond, the animation now runs very smoothly. Hurah!

Tuesday, March 27, 2007

online siggraph presentation videos

2003-2006 siggraph presentation videos are online available at It's great! I find the courses presentations are very useful for graphics people.

Friday, March 09, 2007


Recently I came across to the mesh library "vcg"(browse source , project page) developed by Visualization and Computer Graphics Lib in Italy. In one of the header file, I saw the term "wedge". Then I looked up in wikipedia and didn't find this term pertaining to computer graphics. After a short while googling, I found that this was originally described in the following paper.

Hugues Hoppe. Efficient implementation of progressive meshes. Computers and Graphics 22, 1 (1998), 27–36.

The main purpose of wedge is to allow represent discontinuities of material attributes on a mesh, as illustrated on the above image taken from the paper.