Prayer Clock 1.0.0

Finally I release the Prayer Clock with version 1.0.0. For the internal engine, there is not much change. For the deployment, I tried to make several changes.

Firstly, I am using autotools (autoconf and automake) for the project, so that it is easier for me to maintain the project. Because this project targets for cross platform. Yes, I learnt quite a lot of things about autotools, really nice to use.

Secondly, I continue maintaining the Debian package. Actually, I target on Arch Linux, but I found that Debian and Arch Linux is binary compatible (for my project, I am not sure for others). So, I use Arch Linux to package it in Debian using dpkg. And I also make the PKGBUILD for Arch Linux package build. I choose Debian (not RPM), because previously I used Ubuntu. Besides that, I also follow the specification for the icon and desktop entry. As a result, after installation, we can run the application from the menu item (just like Windows start menu). Because of this deployment, I change the file hierarchy based on Linux/Unix, which I am not familiar about this before.

Thirdly, since I am developing this project primarily in Linux, but yet Windows is also widely used, so I use MinGW32 cross compiling environment. Yeah, this is really a great project, because I can cross compile my project targeted on Windows using Linux. Moreover, the result is a standalone executable application without DLLs dependencies. I still using NSIS to deploy the program.

So, whoever likes the source code (I don’t think so), now can download the source code tarball which is generated by autotools.

Portable version? Yeah. the program is still portable. For Linux, download the Debian package, and extract it, it is portable. But make sure to run the application from bin/ as the working directory, else cannot read the data files. For Windows, it is also same method, running the file from bin/ directory, but I don’t provide portable installation in NSIS, (I may consider this for next release). That is why I do not provide portable version in any more.

For the JPrayer Clock 1.0.0, I will not come out with it so soon since Prayer Clock (C++ version) fulfils my need. However, it is open source, anyone who likes it (but I don’t think so), just contribute.

The next plan for this project is to restructure the coding, because current one is quite messy.

Finally, I am proud of my new icon (I think so). Edited with GIMP. Great open source tool.

(Actually my next step is to continue with the game development which I am too slow.)

Prayer Clock icon

C, C++, Java, Python, Mono (C#)

Cross-platform programming language, is still a little bit far away from me. Recently, I ported Prayer Clock to other programming languages. One of the reasons is to learn more programming languages, another reason is trying to solve the cross-platform problem.

C and C++, my most preferred language(s), with the help of GTK+, can perform well in Windows and Linux. But I didn’t tried on Mac OS X. This is because it needs to be compiled on the OS, rather then cross-compilation. That is why, I ported it to Java before. Though Java claims be WORA (write once run anywhere), yet running in different OS might produce “some” problems, such as minimize to system tray in Linux. And, running on Mac OS X also does not minimize to the system tray as expected.

Then, I tried to port to Python recently. Translate the source code from C/C++ to Python is interesting. Especially when I am using PyGTK, translating from GTK+ user interface is really easy, since it is a scripting language, with dynamic data typing. I tried to use Python since it is running with an interpreter, thinking it is possible to run as cross-platform. Yet, I haven’t tried the PyPrayer Clock on Windows and Mac OS X. But I found that, running PyGTK on Mac OS X is not that easy as it is in Windows.

So, next try, I choose to use Mono (C#). I choose it instead of .NET Framework because firstly, .NET Framework is a bloatware for me; secondly, I prefer GTK# rather than Windows Forms. Translating the source code is even more easier, since C# similar to C, C++, and Java. Since I am using GTK#, GTK+ can be translated easily as well. After finish compiled on Linux (Ubuntu), I tried to install Mono in Windows, and tried to run the pre-compiled binary (by Linux) on Windows. However, fail! I thought since Mono is using .NET Compatibility Class Library, there should have no problem, but, it is still a little bit far for me.

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.

So, I just used NSIS to make a setup file for Prayer Clock.