Sunday, March 21, 2010

New Resolution - Pick up Distributed Version Control

I'm starting with Mercurial, because Joel Spolsky wrote a tutorial on it. I admit I had a hard time trying to pick up Git and Perforce (is that a DVCS?), but I am starting with Mercurial.

I've just started on the first chapter at

Thursday, March 18, 2010

Mercurial is a modern, open source, distributed version control system, and a compelling upgrade from older systems like Subversion. In this user-friendly, six-part tutorial, Joel Spolsky teaches you the key concepts.

Wednesday, March 17, 2010

Collection of Code Snippets

Why do programmers/developers bother to rewrite the same code skeletons all the time? Do it once (or not at all), share it, and benefit from others' contributions!

Monday, March 15, 2010

JQueryUI - Superb GUI Toolkit

There are a lot of tool-kits and software that are purportedly very powerful, flexible, feature-packed etc. But most of them are rather difficult to setup, or have a steep learning curve, or lots of documentation to read,

... ... or ... ...

all of the above.

JQueryUI is the first tool-kit I've used that has instructions in a few succinct lines that I can easily understand, use, and just get it to work!

Highly recommend JQueryUI (and of course, JQuery) for all web GUI development work.

Thursday, March 11, 2010

Python Tools for Web Form Interaction

If you are like me, who, needs to write custom automated testing software to interact with devices with web interfaces, the tools you choose will definitely make a big difference to your productivity.

I've discovered ClientForm
... a Python module for handling HTML forms on the client side, useful for parsing HTML forms, filling them in and returning the completed forms to the server.
that is very good news for me, since I have to automate several tasks working with devices that provide only an interactive web interface. Activities like logging in, updating code, resetting the device, etc, that require more complicated mechanisms like cookies, hidden fields, and random nonces, prohibit the use of statically configured form submissions.

I had started off sniffing and dissecting web pages to manually discover the required information to submit dynamic forms. This activity can take me a whole day for just a simple user interface login. ClientForms, by doing all the hard work of parsing the form, has enabled me to cut this down to 15 minutes. I guess the only difficulty remaining is with forms being manipulated by Javascript during submission. I am still learning more about ClientForms but there is much more in the Python community (and for that, Perl) that can be harnessed to make life for programmers more productive.

I shall leave you here. In a subsequent post, I shall share some of the other tools that I have found, and also some history of my programming experience.

Thursday, February 18, 2010

Dell Internal Wireless Channel Problems

I've had a hair-pulling week trying to setup a couple of new wireless access points in the office.

Using the default of auto-channel selection on the AP, it selected channel 1 to be the cleanest channel. However, all our Dell Latitudes D610/D620/D630 did not manage to "connect" to the AP when using the internal wireless card.

My mobile phone could connect fine, so did an external adapter. Only the internal wireless didn't work.

I brought the AP back home, and it could connect flawlessly. I brought it back to the service center, and it worked too.

Then I tried changing the AP channel to some other channels and I was able to connect. Is there something with older Dell Latitudes with working on channel 1?

Sunday, January 10, 2010

Canon P-150

Despite the 'P' Prefix, this is a scanner, not a printer.

I just bought this from Challenger yesterday instead of ordering it from Amazon and having it shipped. The difference is about $80, good enough for a cool date night out in town.

Change default input method on Windows Mobile

Changed the default input method on my Omnia2 (WM6.5) from the Samsung keyboard to Swype.

Set HKEY_CURRENT_USER\ControlPanel\Sip:DefaultIM to "{7D51A54F-14D0-4eda-AC8D-0AE175C344E8}".

Follow the link in the title for the post where I first saw this information. I'm going to reproduce it here:
  1. Run registry editor on the Windows Mobile device.
  2. Navigate to the following registry key:


  3. Locate a registry entry named DefaultIM. Change the string value data for DefaultIM to the following CLSID according to your preference of input method.

    To make Letter Recognizer as default input method

    To make Block Recognizer as default input method

  4. Soft reset the device after change to make the new default input method effective.
  5. To revert and change back to the default original Keyboard input method, the value data of DefaultIm for keyboard is {42429667-ae04-11d0-a4f8-00aa00a749b9}.

If you have other input method, most of its CLSID is stored at HKEY_CLASSES_ROOT\CLSID registry key branch. Locate the full complete CLSID for the input method, and change the “DefaultIM” value data accordingly to set different input method as default to use and activate in Windows Mobile device.

How to disable "message sent" bubble in Omnia2

Omnia2 from M1, Singapore, running Windows Mobile 6.5. Searched high and low on the Internet, but all the forum postings are copied from the same two sources, including the typos.

Tried setting these keys to '1' but still to no avail.


Somehow, Samsung's own messaging application is not reading these settings.


Omnia2 Tweaks + FAQs

Click on the link in the title ...

This is a comprehensive list of very useful tips for the Omnia2. Start here for more information.

Omnia2 - Enabling the Lunar Calendar

Edit registry key: Hkey_Local_Machine\Software\Microsoft\Calendar

Set "ShowLunarCalendar" to 1

Open your calender program and click the on right-bottom Menu -> View -> Lunar

Windows Mobile /WinCE Registry Editor

On my Omnia2 running Windows Mobile 6.5, I am using Schap's Registry Editor for WinCE (click link in the title of this post). This is good for editing registry keys which remote editors are not allowed to access/change, probably denied by ActiveSync.

CERegEditor runs on the desktop PC connected to the Windows Mobile phone (I'm doing this via ActiveSync/USB). This is very useful for "downloading" large sections of the registry to find where certain configuration settings are stored.

Omnia2 - Change Touch Vibration Strength

Omnia2 (GT-I8000) running Windows Mobile 6.5 has a vibration feedback for taps on the screen. It happened to me suddenly, that the vibration was gone, even when I enabled it in the Settings, Sound Settings, Touch Alert, Alert (set to "Vibration" or "Sound + Vibration").

Searching the Internet for this turned up more noise than signal. So, digging into the registry, I found this key HKEY_CURRENT_USER\ControlPanel\VibeTonz.

It turned out that the strength of the vibration could be configured, and it was set to 0.

TouchVibeStrength (DWORD:0-5) controls the strength of the vibration.
TouchSoundOn enables sound feedback.
TouchVibeOn enabed vibration feedback.

Disable Threaded SMS on Omnia 2

Device: Omnia2 (GT-I8000)
OS: Windows Mobile 6.5

Get a registry editor (I used CERegEditor by mdSoft)

Open the key HKEY_LOCAL_MACHINE\Software\Samsung\JINBOX. Samsung's messaging application are stored inside here.

Set "ThreadedViewDisabled"=dword:00000001