Prayer Clock 0.1.4 released
Prayer Clock 0.1.4 is released, together with JPrayer Clock. Not many changes.
The important change is to solve the relative path problem. This is because if create a launcher on the desktop on Ubuntu, one cannot launch the application. This is because the application will load the XML files in the current working directory, where the current working directory might not be the directory of the Prayer Clock.
Click here to download.
Soul is important, yet do not neglect the body (software development)
I say this statement in the sense of software development. If a software application’s engine is a soul, then the user interface will be the body. You have a good engine, but without a good user interface, people will not use the engine that much, cause not everybody see the soul without looking at the body.
So, if the engine and the user interface is a soul, then packaging will be the body. Your software application has a graphical user interface with a good engine, but they are not packaged. However, package it, so that the user can install and uninstall easily, then, everything will be better.
Password Cipher with GUI
Password Cipher which I have written was in console mode. To make it more usable, I port it into Java, then build a simple user interface. For more detail, please read here.
[caption id="" align=“aligncenter” width=“320” caption=“Password Cipher Java”][/caption]
My first Greasemonkey script
Finally, I wrote a Greasemonkey script. The script is target on a Chinese comic website. You can download the script here. I wrote the script because the links are not named in sequence. To offline read the comic, I would like to download the comic first. Then I can read the comic offline. After that, I can delete the comic.
But the name are not in sequence, I cannot download the comic using batch downloading. Thus, writing this script to produce the link, then from the link, I can download the comic with any download manager.
Move my projects to SourceForge project hosting
I just move my Prayer Clock project to SourceForge.net project hosting. Have a look here.
Regular expression, find and replace using Unix tools
I need to add some text to a lot of text files. Previously, I used jEdit to perform regular expression for several files. But currently, I need to add the text for about 120 files. In order to do this, I tried using Unix tools, “sed”, “grep”, and “xargs”.
Firstly, I tried MSYS, yet it fails. Because the “sed” version was too old. Then, I used Cygwin.
My problem was to add the following text to the text files:
Prayer Clock and JPrayer Clock 0.1.2 released
Prayer Clock and JPrayer Clock 0.1.2 are released. Anyone who likes, you can download. And the source code is also available. Feel free to edit.
My experience of web development
In web development, one should not maintain the data structure concept (C programming) for web application, such as PHP web application. But should use the OO (object oriented) concept. So that, the object created by PHP is easily to be used/re-used. Besides that, though the web development includes interface, it do not bear the same concept like system applications (application software developed by language such as C or C++, or Java).
JPrayer not works in Linux
I just found that, the JPrayer Clock I built cannot run properly in Linux. The prayers didn’t show up, including the tray icon. Might be the file path problem.

From Visual C++ to MinGW/MSYS
Now it is the time to move from Windows to cross-platform, as a developer.
I was using Visual Studio Express Edition (freeware) for Windows development. Now I am using MinGW with MSYS. Cause GCC is a cross-platform compiler. Familiar with GCC allows me to develop cross-platform application. There are a lot of software libraries can be compiled with MinGW.
Using Visual Studio Express Edition, we do not have MFC for GUI development. However we can use Win32 API to create the GUI widget. But this indicates that our source code is highly depending on Windows platform. There are a lot of alternatives for GUI development, such as GTK+, Qt, wxWidget, FLTK, etc. Why using these libraries? If you are depending on these libraries, if these libraries are cross-platform, then your source code will be cross-platform also.