Upgrade from Ubuntu 12.10 to Ubuntu 13.04

Latest release of Ubuntu Raring Ringtail was released few days ago. I always eager to upgrade to the latest greatest stable release since we can get better drivers support or bug fixes of the latest Linux kernel 3.8. Upgrade process was painless but it still took me almost 12 hours to download and upgrade all installed packages. As usual, some post-installation adjustment are needed.

Our local .my mirrors are just pathetically dog slow compare to our neighbouring countries (.sg and .id). Change the repository mirror by
System Settings
-> Software & Updates
-> Ubuntu Software
-> Download from
-> Others
-> Select Best Server

Unity launcher. Sigh. Still as useless as ever. Why can't we move the bloody panel to the bottom of the screen? Yes I know there are justifiable reasons but seriously? Stick to my favourite lightweight panel, Plank.

Privacy. Remove Amazon search results
System Settings
-> Privacy
-> Search results
-> Include online search result (Off)

Or remove this feature totally.
$ sudo apt-get remove unity-lens-shopping

Disable activity logging.
System Settings
-> Privacy
-> Search results
-> Record Activity (Off)

While this machine (Thinkpad E420) was certified for Ubuntu, I still occasionally suffered from random freeze during bootup and shutdown ended up with reboot issue. Everything was perfectly fine with this release.

Survive on $16k/year in Malaysia ?

Clean up my bookmarks, found this old link via Slashdot on a foreigner claimed to be a programmer managed to survive on $16k/year (not including his travel) budget living in Malaysia.

USD 16k which roughly equivalent to MYR 48,560, according to today rate or USD 1 = MYR 3. Assuming that he works 5 days per week, or 25 days per month, or 300 days per year, and 8 hours per day. If we break this figure down,

In USD, 16k/year, 1.3k/month, 53.4/day, 6.7/hour
In MYR, 48k/year, 4.0k/month, 162/day, 20.3/hour

He is considered very well off being single with no dependencies and a monthly salary of USD1,300 / MYR 4,000. He can live comfortably with the remaining cash of USD 500/ MYR 1,600 after deducting his house rental (3 bedrooms where he can rent out the other two rooms) of USD 800/MYR 2,400.

Initially I thought the guy manage to survive by MYR 16k/year, but after further reading, I believes is USD 16k/year. Which make me think, it is possible for a person (single with no dependencies) survive in the big cities like Kuala Lumpur or Johore Bahru, with a yearly net pay of MYR16k / USD 5.3k or monthly net income of MYR1,300 / USD 428 ? If so, how?

Starting next month, except for mortgage loan, I will try to survive on my monthly budget of MYR 1,300 or less. Like they said, spend less than you earn and live within your means. This sure going to be a fun experiment.

Solve The Right Problem

"It took me almost 20 years of hardcore programming to realize it wasn't the programming that was interesting to me. I didn't give a whit about new languages and frameworks and new design patterns. What I cared about was the creation of something from nothing. What I cared about was the ability to conceptualize and immediately materialize: ideas leading to moving digits on a keyboard leading to product."

"Starting my own company, releasing my own software, interacting with my own users and reveling in their praises or reeling back from their complaints: that's software brought to life and that's what keeps me going."

-- saddino, emphasis mine
Assuring comments from an average age of 40+ years old programmers on continue your career as a developer even after you've reach 40+. Pick and solve the right problem. My priority right now is to fix myself. Stay healthy and keep your mind alert and body in shape. Aware of your thought and action, make the right decision.

Running Cron Job as Specific User in Ubuntu 12.10

My mailbox was flooded with notification emails due to wrong user permissions running the cron job. No good. It seems I don't know how to use crontab properly.Let's say we have a sample shell script, /home/foobar/foobar.sh and we want to run it as foobar user for every hour. Crontab line as follow:
0 */1 * * * foobar /home/foobar/foobar.sh

Apparently, there are three ways to run a cron job as specific user in Ubuntu.

1. Edit /etc/crontab and append above line to the file. Not recommended as it may lost due to package update or upgrade.

2. Create a file call foobar and put the above line in /etc/cron.d. Recommended as all users cron jobs are located in one location.

3. Create a crontab using that user. Workable but not located in centralized location like in (2).
$ sudo crontab -u foobar -e

Common Commit Messages Format

Inspired by the recent change log of nginx, a HTTP and reverse proxy server [2]. We have standardized on a common format for all commit messages to our Subversion repository. All commit messages are prefixed by these keywords:

- Change : If we modify the default behaviour of the system
- Feature : Add new stuff to the code base
- Bugfix : Fix existing issues with ticket id or example

Also, the title of our todo items or user stories (if you like to call it that way) also follow the same naming convention. Just for the sake of consistency. Why? To help us summarise and create weekly changelog in a readable and consistent format easily.

Unfortunately, we're still stuck in the Subversion mindset and can't commit and merge as often as we like like the other Distributed Version Control System (DVCS) like Git or Mercurial. Actually you can, just create a feature branch and commit as often to it and summarize your changes during merging.

Next steps ? Increase the test coverage and improve the schedule estimation.