My Pomodoro

Do you know Pomodoro technique? I like this technique, which can make me work more productive. That is why, I installed tomate in Linux. It is a very simple application with only a click at the system icon (tray icon). However, there is no way for me to customize “tomate”. So, I tried to write my own Pomodoro application with GTK+. Now, let me share about my recent programming experience.

From C to C++

I love C language, as it is a low level programming language comparing to C++, Java, Python, etc. Yet, it is more portable than assembly language. The C functions allow shared library to be used by other application written by other languages. How good it is! That is why I like writing libraries, functions, command-line, instead of designing GUI (graphical user interface). Because designing GUI involves usability engineering, user experience, and user centred design. That means, developing GUI application should study about the targeted audience. However, I wrote the programs for myself only, I am the user.

Today technology, is more to cloud computing. Everything is about Internet, networking, social networking, web-based application, online games. People will focus more on PHP, MySQL, HTML5, CSS, Javascript, jQuery, Google Chrome extensions, other PHP frameworks such as CodeIgniter, CakePHP, or other languages such as Ruby and Python. Yeah. I know these except Ruby, which I haven’t touched about it yet. I was wondering why? In my opinion, there are several factors:

  • Cross-platform – As we only need a web-browser, we can access any website. We can use Linux, Mac, Windows, or FreeBSD.
  • Useful – Connect everyone, provide information, searching, entertaining (playing games, listen musics, watching video (Youtube))
  • Multi-disciplinary – Programmers can develop the system, designers can design user interface, marketing staff can use internet for advertisement, photographers and writers can do blogging, etc
  • Easy – Anyone can use.

So, I was wondering from the programmer aspect, why theses factors exist. Firstly, a designer can simply design the website easily with HTML and CSS. The design of HTML is based on DOM (Document Object Model). A programmer, needs to have the knowledge at least Javascript, and a server scripting language, such as PHP. Javascript, supporting object oriented, and PHP is influenced by C++, also object oriented. The PHP frameworks such as CodeIgniter and CakePHP are also object oriented. The XML is also using DOM. JSON is also an object. So, everything point to object. Even my favourite GTK+ is also using GObject. Even more, the “string” in C++ is much useful than C string. So, I admit that, C language is powerful, but C++ is even more powerful.

From GTK+ to gtkmm

Since I am moving from C to C++, and since I chose GTK+ instead of Qt because of the C language, so I am moving from GTK+ to gtkmm as well. Since I am using gtkmm and developing the GUI, I try to make the development easier with Glade. I am really glad with Glade. With Glade, GtkBuilder and gtkmm, I can develop the applications more rapidly.

Finally, my Pomodoro is only an alpha version, and I haven’t made it open source. You can download here. It contains both Win32 version and also Linux version.

Pomodoro
Pomodoro on Linux