ConEmu: replacement to windows cmd

Windows cmd is very limited. ConEmu is an awesome replacement to the Windows cmd.


Check it out!

From Singapore to Melbourne and Job Hunting

Melbourne's City Circle TramAs most know I moved from Melbourne to Singapore at the end of 2008. It is now time to move back to Melbourne and experience four seasons in a day!

My time in Singapore so far has been a really good learning experience. I have been the lead for doQer, a startup launched by Remarkable Innovation. It is really exciting as it makes it easy for people to manage and view user manuals. No more downloading huge PDF files and not find the information you were looking for, or being stuck in a flash window inside your browser.

I have been priviledged to have a lot of say in giving direction to the project alongside Mark Reilly. Don’t mind my beloved and super comfortable Aeron Chair (my back thanks you), or really nice dual monitor setup. Finally I was able to mold my development practices to the Joel Test.

For those who don’t know the Joel Test, it is a list of good practices a Software company should have:

1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

I must confess that not all items were ticked off, specially since lots don’t apply to web development. However it is very (very much) satisfying to see development moving to have more solid practices put in place!

Now with my moving back to Melbourne I have to start job hunting. A browse for jobs in Seek was not very exciting. The jobs section at Stack Overflow seems like a better place to start. Too bad most jobs are in the United States.

I am determined to take the inverse approach, find an awesome work place and drop them a note instead.

I would love to know what companies have good development practices in Melbourne. Would appreciate if anyone could drop me a note in the comments, or in this thread I started in Whirlpool!


Must be my lucky day?

Askimet has caught 666 spam

It must be a sign. I am scared!

Joining an Open Source Project

So I have decided to dedicate part of my free time working on an open source project.

Right. No problems coming up with that, but what should I look for and where should I start?

After doing my reading I decided on two main selling points for me to join a project: Fun and Something-I-Would-Use

The first part was easy. Of course it should be fun! It is something I am going to be spending my free time on.

The big contributor to the fun part is doing something that is interesting to me. Although coding itself is already enjoyable, working on something compelling will get me going. How many times have I not gotten too excited explaining how I solved a problem or fixed a bug, when a person expected a simple answer by asking how my day was.

Ted Leung was talking about people who joins open source projects in the Herding Code podcast:

In general the whole thing with open source is you let people work in what they are interested in. They will probably gravitate towards what they are interested in and what they are good at. That means their quality of work will be a lot higher.

I agree. If working with something that interests me will generate quality output, and I get some fun out of it; I am happy with that!

Now the Something-I-Would-Use part. I came to that conclusion reading a post on Steve Yegge’s blog which was not on joining open source projects, but I believe is still applicable to this situation:

So when translated into project selection, Buffett’s and Lynch’s advice becomes: only build what you know. The longer, more accurate of the version of the investing rule — only invest in what you know and are excited about using yourself right now — has a simpler formulation for products and businesses.

Steve was talking about how software requirements are unimportant (not exactly the word he used). Specially if you are working on something that you use, because you know what the requirements are.

Again, I totally agree. People should join a project of a product they use in their own time. It will benefit from the current knowledge and experience of how the product should behave.

So now I am off to Google Code, Sourceforge, and Freshmeat to find a project that is fun and it is something-I-would-use.

A Simple AJAX Example: Searching Australian Postcodes (with JQuery)

Lately I have been writing dashlets for the SugarCRM open source CRM solution. It uses JQuery as part of its JavaScript libraries.

I have really been enjoying writing JavaScript with JQuery; it has saved me time writing concise code which also helps me debug and maintain it. So I thought it would be a good idea to rewrite my Ajax example with JQuery to compare its usefulness.

In my previous code I had to first create the XMLHttpRequest object:

var xmlHttpReq;   
// Determining which browser we are dealing with 
if (window.XMLHttpRequest) 
   xmlHttpReq = new XMLHttpRequest();
else if (window.ActiveXObject) 
   // this is required if the browser is IE
   xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

Then I had to prepare the query string and post to the script that would get the me the details:

// generate the query string to post to the script
var queryStr = 'PostCode=' + escape(postcode);
var strURL = 'postcode_lookup.php';'GET', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpReq.onreadystatechange = displayPostcode;
// post to script

That is too much work! With JQuery things are much easier:

      { PostCode: jQuery('input[@name=PostCode]')[0].value },
         /* Logic to parse data and determine output goes here */
         // Writing output into div

That’s it! All it takes is one function to make the Ajax call and then parse the data from the script.

The jQuery.get( url, [data], [callback], [type] ) function takes four parameters. But we are only using three as the last one is optional:
1. The script: postcode_lookup.php.
2. The parameters for the script contained in an array. In this case the value of the text field:
{ PostCode: jQuery(‘input[@name=PostCode]‘)[0].value }
3. The callback function to handle the data returned from the script.

I am quite happy for the amount of work that it has saved me. However I cannot emphasize enough how important it is to understand how the XMLHttpRequest works.

You can find the working example here.

Finding the closest Melbourne CBD train station with GDirections

Finding the closest Melbourne CBD train station with GDirections

This application> came from my dependence on public transport and possible need to move houses; I wanted to know how close I would be in relation to train stations. There are quite a number of stations in Melbourne, and I don’t have the time to map all of their coordinates, so at the time being it only has train stations from the City Loop.

The application uses GDirections. It lets us load way points and retrieve the route details; such as distance, driving directions, and even an HTML summary of the travel.

I used GDirections in two instances of the application:
1. To determine the distance between my pivot position and the train stations.
2. To plot the route of my pivot point to the closest train station

Continue reading ‘Finding the closest Melbourne CBD train station with GDirections’

Adding Markers on Google Maps (with more functionalities)

This tutorial is out of date as of version 3 of Google Maps. Please see this great answer at Stack Overflow for an updated version on how to add markers.

I modified my previous markers example to show off further functionalities:

  • To pop up an info window with marker description.
  • To handle clicks and create new markers.
  • To use markers with custom images.

Extended Google Map Markers

Continue reading ‘Adding Markers on Google Maps (with more functionalities)’


My name is Marcel Tjandraatmadja, and I live in Melbourne, Australia. I have a special interest in PHP and web applications.
I also enjoy problem solving with C#, C, and C++.

My interests are also Aikido, roller blading, and music from my favorite bands.

Curriculum Vitae

See my linked in page here.


Drop me a message at



html hit counter