Re-wrote “Cut the Rope” look like app using C++ on iPhone

Successfully re-wrote the “Cut the Rope” look like app using C++ to run on iPhone.  This simple app uses Box2D for physics and some algorithm classes to handle creating and cutting of the rope.  I’m quite happy with the performance 60 frames per second shown in simulator and now i can feed the hungry crocodile with pineapple 🙂

Next.. i will like to feed the crocodile in Android platform haha..


Ported App using Box2D to run on Android :-)

No doubt that almost every game needs physics engine. So i need to have a physics engine like Box2D available on my multiplatform game. I make a simple step by porting a simple app using Box2D that i created for iOS to run on Android.

How fun it is just to drag and drop code that has been done in XCode to Eclipse 🙂


Back to C++: Ported Simple TD Game for Android

I successfully ported the same source code of Simple TD Game in iOS to Android and i’m quite happy with it :-). I will code my game in C++ from now on and throw away that shitty paid game engine coz with this i can create multiplatform game with flawless performance and the best thing of it that it’s FREE wohoooo..!!! 


AJAX – Getting Started ExtJs with Perl CGI

I usually use ExtJs with Struts, PHP, or Google Web Toolkit (GWT). Here i will create a simple tree panel sample using ExtJS and Perl CGI.

Here is our directory structure:
-extjs (directory)
-JSON (directory)
-data.cgi (file)
-index.html (file)
-JSON.pm (file)

1. Download the latest Ext Js from here and extract the archive files to extjs folder
2. You have mod Perl cgi enabled with your apache server, you can see my post at Perl for how to set up mod mod Perl CGI in apache
3. JSON module for Perl, you can download it from here

Enough talk, let’s start coding!

Filename: index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css"
	href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all-debug.js"></script>
<script type="text/javascript">
	Ext.onReady(function() {
		var Tree = Ext.tree;
		var tree = new Tree.TreePanel( {
			el : 'tree-div',
			autoScroll : true,
			border: false,
			title: 'My First Panel',
			animate : true,
			enableDD : true,
			containerScroll : true,
			loader : new Tree.TreeLoader( {
				<strong>dataUrl : 'data.cgi'</strong>
		// set the root node
			var root = new Tree.AsyncTreeNode( {
				text : 'Ext JS',
				draggable : false,
				id : 'source'

			 // render the tree

<div id="tree-div" style="overflow:auto; height:300px;width:250px;border:1px solid #c3daf9;"></div>

As you see above code, the treepanel gets the data url from data.cgi. What is this data.cgi produce? the data.cgi will response JSON type to the html, JSON is optimized version of XML.

2. data.cgi

#!/usr/bin/perl -w
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use Storable;
use JSON;
$page = new CGI;

print "Content-type: application/json\n\n";


$text = objToJson(\@mydata);

print $text;
exit (0);

Open your browser and point to http://localhost/extjstest/index.html. If everything fine, you should see a treepanel displayed.


Arduino for hardware software hobbies


Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.

1. Download arduino software
wget http://arduino.googlecode.com/files/arduino-0013-linux2.tgz
2. You will need to install some programs to use Arduino under Linux (the way you do this depends on your distribution):
* sun’s java runtime (jre)
* librxtx-java (Java communication library)
* avr-gcc (aka “gcc-avr”)
o Version 4.3.0 has a major bug which affects multiplication of long int’s. This is the default version in Ubuntu Intrepid (8.10). Check using “avr-gcc –version” and upgrade if necessary.
* avr-libc

3. tar xvf arduino-0013-linux2.tgz
4. ./arduino from command line
5. Where to start: http://arduino.cc/en/Tutorial/HomePage
6. Project samples: http://www.arduino.cc/playground/Main/HomePage

enjoy :).
– if you love software so much, you’ll create your own hardware- NN


Compiling gumstix buildroot on Ubuntu 8.04


Compiling gumstix buildroot on Ubuntu 8.04

1. These are minimum requirement for ubuntu users:
# sudo aptitude install build-essential libncurses5-dev bison flex texinfo gettext autoconf zlib1g-dev libssl-dev subversion
2. download gumstix buildroot, you can get it from subversion:
# svn co http://svn.gumstix.com/gumstix-buildroot/trunk gumstix-buildroot
3. go into directory gumstix-buildroot
# cd path-to/gumstix-buildroot
4. remove default .config file first
# rm .config
5. run make defconfig
# make defconfig

You might be asked to choose the desired target platform during the process, so select the xscale CPU (#11) at 400MHz clock frequency for connex boards (verdex is iwmmxt (#12) with 400MHz or 600MHz)
6. run make

and wait for some time. Then wait for some more time. If the process finishes successfully, your buildroot is done and you are ready to go.
7. After successfully building the default image you can start modifying the buildroot and e.g. add additional packages:
# make menuconfig
# make

8. This compiling will setup gumstix buildroot in host computer which you can customized it to build the linux kernel, in my current gumstix is using linux 6.21. this process also produce 3 images file: rootfs, uImage, and u-boot. you will need these files to reflash your verdex board. please see my next post in how to reflash the verdex board.

9. Usually, to make it easier for me cross compiling code to run application on verdex which is build in host computer, i added path to my environment path for arm-linux compiler: edit /etc/profile and added these two lines.

export PATH