Development, Homepage Posts, Musings

Back to basics in Mobile Development

I’ve been holding off starting iPhone development for some time. The recent iPad announcement coupled with the lack of progress in the Windows Mobile world has lead me to making a decision to try out a new platform (finally). With the purchase of the MacBook Pro, it’s time to dive right in and start from basics again. I first started in Palm development (horrors of C++), moved on to .Net (C#) and now with Objective-C, it seems “C” is the common thread linking my mobile development path.

Time to dust off the great “C – How to Program” and gettting started with the first book “iPhone SDK Development“!


Solving a small issue with Paypal standard payment

Was testing out a site that was about to go live and came up with this error even though the sandbox account worked ok. It seems that the live merchant account wasn’t setup properly.

The error upon submitting the payment data to Paypal

Data does not match input character set or default encoding. For more information, please contact the merchant.


Log into your PayPal account
Go to your profile
Under the selling preferences column, select Language Encoding
Make sure your website language is set to Western European Languages
Click the more options button
Make sure encoding is set to windows-1252 or UTF-8.
Then save settings

Development, Musings

Day 2 with Google Wave

Impressions after more partipants have gotten their invites. Wave is a huge mess once everyone tries to talk (not unlike a real life meeting). You can also hijack a person’s message if you want to so that can be rather distracting. Still not sure how it’s going to work unless we work on a project using only Wave (I wonder if Sales could be convinced to use this though).

Performance-wise, its rather bad once a huge wave or even an ongoing one with 2 people starts to load, cpu utilization goes up and it definitely feels laggy. KC mentioned that he had shown me a similar XMPP style code collaboration tool in Eclipse so real-time messaging isn’t something new.

On the plus side, I really liked SAP and Salesforce demos especially the customer support bot.  Check it out here.  Can’t wait to see what gadgets are being developed!

Some things I’ve found out to make it a better experience if you’re starting out the first time

To add a wave to the public timeline, do this

  • Add contact “” , force add it even if the submit button remains disabled.
  • Add “” as a participant in the Wave.

More waves are appearing locally and here’s an effort to organize them
Making a Singapore Google Wave List

Actual Waves (about Singapore) , you can search by doing this “with:public singapore” or whichever keyword you want to look up. You’ll need wave access for following links.

Tweety, add to your wave and once you authorize in the pop-up (lower right bottom corner of Chrome), you’ll be able to post to Twitter and read status updates within Wave itself.

Most importanly, treat this as a new experience and forget about Outlook and Notes (I try everyday to forget I’m using it). Wave is messy, its gory but what’s not to like about a mash of IRC, ICQ, Forums, Search, Widgets(or Gadgets) and Google way!

Development, Musings

Day 1 with Google Wave

Managed to get Google Wave access yesterday and have been testing out the various features. An area of interest to me is how to best reduce the UI clutter of various windows and incoming streams as I keep up to date with news and try to work at the same time.

The concept of waves to mash up all the various streams into conversation threads seems like a great idea but definitely requires more polish to succeed.  I can see myself using it if gmail was tied directly in today. The idea of “wiki” style collaboration on documents in real time could really improve how things work in most places. However the barrier would be resistance to change (happens in any product that dramatically changes how people work). Google’s idea of pushing their brand and products to schools (great work on signing up MOE) is definitely the right step to get young minds hooked and warm up to the idea of new ways to work and collaborate.

Some gadgets I’ve tried

While waiting for the invite (took 2 weeks!) I  came across some good reads and discussion on this very early dev release (thanks Google for the invite, hopefully more will be able to experience a more polished product soon).

Lastly, here’s an embedded wave just to test out the interaction

[wave id=”!w+3ZQOxMf0E”]

Development, Musings

How many languages do you know?

Sudden thought occurred to me that I’ve been learning programming since 1989 and how quickly its now 20 years.
Here’s a chronological order of the languages picked up so far.

I’m looking forward to doing more of PHP, Objective-C, Ruby and HTML 5! and who knows what else in the coming years. Might even re-visit Java since Android needs it.

For code editing, after a few years of using Visual Studio, I find myself using Dreamweaver and Eclipse more. Apatana and Netbeans have also taken residence so shall see which IDE takes over. Otherwise there’s always Notepad++.

Updated for 2010/2011:

  • Comfortable with: jQuery
  • Still Learning: Ruby (+Rails), Objective-C, jQuery Mobile, HTML5/CSS3
  • Trying best not to take up Java (with Android)
  • Development on new Macbook Air, getting to love console again 🙂
  • More Git, Less SVN. Loving Heroku

Technorati Tags: , ,


A Robust Rule-Based Event Management Architecture for Call-Data Records

Presented at KES 2004: Wellington, New Zealand

A Robust Rule-Based Event Management Architecture for Call-Data Records


Rules provide a flexible method of recognizing events and event patterns through the matching of CDR data fields. The first step in automatic CDR filtering is to identify the data fields that comprise the CDR format. In the particular case of the Nortel Meridian One PABX, five different call data types can be identified that are critical for call reporting. The architecture we have proposed will allow for line activity analysis while continuously publishing action choices in real-time. For performance evaluation of serial-line CDR data communications, an approximation to the CDR record loss rate at different simulated call traffic intensities was calculated. Here, the arrival process represents the arrival of newly generated CDR to the output buffer and the service process represents the process of transmitting the CDR over the serial connection. We calculate the CDR loss rate at different arrival intensities and observed that the CDR loss rate is negligible when the CDR arrival rate is less than 4 CDR per second.


Rule-based system, CDR loss rate, event filtering and correlation.


Network Programmer for Société Générale

Client: Société Générale
Business Type: Banking & Finance
Project: CDRTool
Duration: July 2002 to Nov 2003

A major European bank, the Société Générale Group is recognised for its profitability and its capacity for innovation.

Whilst studying to acquire my degree, I had the opportunity to collaborate with Société Générale, a major European bank, to develop CDRTool, a PABX Monitoring System as well as office automation and network monitoring projects.

CDRTool was designed and implemented around J2EE architecture to provide a robust mechanism for call data record monitoring and fraud detection. By using J2EE design guidelines, the system is able to be fault-tolerant and provides real-time monitoring of calls in progress to the system administrator.

I also co-authored and presented a paper at KES™2004 (Knowledge-based Intelligent Information & Engineering Systems) on the topic of “A Robust Rule-based Event Management Architecture for Call-Data Records“.

  • Final Year Project Industrial collaboration with Societe Generale
  • Rule-based correlation and Filtering of Call Detail Records for Societe Generale
  • Industrial Attachment with Societe Generale.
  • CDRTool – Developed a PABX Call Monitor System that was successfully deployed in Singapore, Hong Kong, Tokyo and Seoul.
  • Lead programmer for SC443 Game Programming Demo
  • Lead programmer for SC207 Software Engineering Project
  • Participation in Gigahertz 2003 IT Competition
  • Sub Committee Member for Japanese Appreciation Club 1999/2000