May 18, 2011
Arabic character shaping has been added to CyanogenMod 7 for built-in applications (browser, calendar, etc) and external applications (GMail, Android Market, etc).
This version is based on Android 2.3 Gingerbread and works in a number of devices including smart-phones. Note that to get it installed, you need to have root access to your handsets!
Official arabic support from Google for smart-phones is expected to come in Q4 2011 as part of the next iteration of Android: Ice Cream Sandwitch.
February 10, 2011
Raymond Chen has a pretty old post on Windows’ equivalent batch script for `which` command in linux.
Instead of doing Google Search every time I need the script, I think I will just make a post in my own blog.
So here is the script’s content:
@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i
See Using batch parameters to understand the script.
January 28, 2011
Every-time Google announced new version of its Android Operating System, I have always find out if it supports Arabic. And now, there are very good signs that native full Arabic supports are coming to Android 3.0 Honeycomb!
Here are some snapshots taken from Android 3.0 Preview emulator:
Thanks to vRaMi for the hints.
Related issue in Android’s issues tracker
Other sources: ArDroid; xda-developers
*Update:*
According to Kenny Root‘s Buzz, Arabic support is brought to Android by Doug Felt. Kudos to Doug and the Android team. I hope this two years old issue can finally meet its end of life.
*Update 2:*
CyanogenMod 7 brings arabic support to smart-phones!
October 1, 2010
When writing a dictionary or an associative data structure in eMbedded Visual C++ 4 (eVC4, yes, it is still alive and kicking) and Microsoft Foundation Classes (MFC), my first try was:
#include
struct MyData { WORD w; /* and some other data */ };
CMap myMap;
But lo and behold! I got an error:
error C2440: ‘type cast’ : cannot convert from ‘const class CString’ to ‘unsigned long’
A quick try on VS2008 results in a similar error:
error C2440: ‘type cast’ : cannot convert from ‘CString’ to ‘DWORD_PTR’
So it was not just eVC4 trying to pick on me. After browsing ‘afxtempl.h’ for a bit, I figured that I need to use LPCTSTR for the ARG_KEY. Here is the fixed code:
CMap<CString,LPCTSTR,MyData,MyData&> myMap;
Update: It turns out Google Search for CString CMap produce a sample code on how to use CString with CMap
September 15, 2010
My first attempt to recover my FileZilla password was by doing a google search on “FileZilla password recovery”. The first result actually pointed to a commercial application and several subsequent results also requires additional application.
Fortunately, Google Instant/Auto-suggest points me to another keyword: “FileZilla password location“.

The passwords turned out to be unencrypted (plain text) for FileZilla 3.3.4.1 and they are located at %APPDATA%\FileZilla . Look out for sitemanager.xml and recentserver.xml for your passwords.
The default values for %APPDATA% can be found in Wikipedia. They are C:\Documents and Settings\{username}\Application Data on Windows XP and C:\Users\{username}\AppData\Roaming on Windows Vista/7
September 8, 2010
I have a DLL library project that produces abc.dll and abc.lib and because of a name conflict with another library, I need to rename my DLL file and tell my application to load the new DLL file name.
My main application use a #pragma comment(lib,”abc”) to link to abc.lib, so after I rename the library from abc.dll to xyz.dll, I change it to link to xyz.lib. It turned out that this is not all I need to do. I cannot simply rename the .lib and .dll since my main application will still look for abc.dll when it starts up.
After several minutes of try and error. I figured that I need to change the library name inside the .DEF file (Module Definition File). After I change the LIBRARY section of the file and recompile, viola, I get my main application to load the new DLL file name.
February 13, 2010
Lately I have been having a very slow internet connection in my office around 9am to 11am. Fortunately, around the same time, I found a way to use my home’s StarHub MaxOnline fixed broadband internet connection from the office using SSH Tunneling.
Rather than trying to explain it myself, there are already some nice introduction to SSH Tunneling and how to do it.
I am using Tomato Firmware and PuTTY to create a tunnel to my home’s router. I do have a DreamHost account with SSH access but I can’t create a tunnel there during internet slow down. I will only get a connection timeout.
You can also make use of this technique to bypass many restrictions that exist when you are browsing from within Nanyang Polytechnic (NYP). Just take note that you may need to change your SSH server port to 21 since NYP blocks most of the ports for outbound connections.
There are things that remain a mystery for me:
- Why does my office’s internet connection slow down around 9am to 11am.
- Why am I able to connect to my router (it took a while) when browsing other local Singapore websites took forever? My office’s Internet Service Provider (ISP) is different from my home’s ISP.
Update: It was probably caused by worms or virus having some parties in the network.