Easy English Android app is launched!

While NetCom project has been idle for long time, over the last few years I have been working on a new hobby project – Easy English.

I had been trying to improve my English vocabulary, there used to be a link on top of this blog, leading to the page where I noted down my vocabulary list. Along the effort, I find that noting down newly learned words in physical notebook or as text file on computer/smartphone can be inconvenient. The traditional way for revision by going through our vocabulary list is far from effective and in fact very boring, hence de-motivating me from continuing the effort. We need fun too while learning something, right? This experience lead me to the idea of building a personalized mobile vocabulary that is fun to use, so that I am able to keep this learning process going on. The app is already available in Google Play Store, listed as Easy English. And… here is the “about” page of the app being referenced from Play Store.

Extra gain from this project? Hands-on Android development experience of course. :)

Linking Boost library from Qt application with MinGW

While integrating NetCom’s app_gui module (Qt app) with GLog module that relies on Boost library, I encountered a long long list of linking errors:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o .\NetCom.exe .\main.o .\MainWindow.o.\TestCaseDialog.o .\RunTestPlanDialog.o .\MsgCommDialog.o .\moc_MainWindow.o .\moc_TestCaseDialog.o .\moc_RunTestPlanDialog.o .\moc_MsgCommDialog.o -L"C:\Qt\2010.02.1\qt\lib" -L"C:\boost_1_41_0\stage\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4 -llibboost_date_time-mt-d
C:\boost_1_41_0\stage\lib/libboost_date_time-mt-d.lib(greg_month.o): In function `ZN5boost9gregorian10greg_month17get_month_map_ptrEv':
c:/boost_1_41_0/libs/date_time/src/gregorian/greg_month.cpp:36: undefined reference to `__gxx_personality_sj0'
c:/boost_1_41_0/libs/date_time/src/gregorian/greg_month.cpp:36: undefined reference to `_Unwind_SjLj_Register'
c:/boost_1_41_0/libs/date_time/src/gregorian/greg_month.cpp:37: undefined reference to `_Unwind_SjLj_Resume'
c:/boost_1_41_0/libs/date_time/src/gregorian/greg_month.cpp:51: undefined reference to `_Unwind_SjLj_Unregister'

It occurred on Windows but working fine under Linux. I had been stuck in this linking problem for the past few weeks (not in full time of course), and eventually I figured out the root cause last night. I built Boost from source using MinGW with GCC library 3, while the Qt’s library for the same toolchain is of version 4. To solve the problem, I only need to rebuild Boost library with GCC version 4. And that’s it!

Moved into new house – Kubuntu 10.04

I just wiped off my Kubuntu 8.10 and installed the newly released Kubuntu 10.04, a.k.a. Lucid Lynx. Below are some of the improvements I’ve notice, comparing to 8.10:

  1. 3G Internet modem support has been integrated into KNetwokManager (though I heard it was already added since 2009).
  2. Overall performance has been improve noticeably, especially the amount of time it takes to boot up and to shut down.
  3. Sound volume issue that I used to have with 8.10 is gone.

However, I do find new problems that I never experience with 8.10:

  1. There is no sound when watching Flash video such as Youtube in browser. I don’t remember I’d ever did any fix for this in 8.10, but many people have this problem since past few releases (an issue from Adobe?).
  2. Network activities take much longer time for address resolution, perhaps requires some kind of tweak.

Build failure with Qt makefile: undefined reference to `_Unwind_Resume’

While building NetCom’s app_gui module through command line with the makefile auto-generated by Qt, I encountered following error:

undefined reference to `_Unwind_Resume'

Just in case anyone makes the same mistake, here is the tip: makefile generated by Qt requires some environment variables to be set up beforehand.  In another word, if you run build from Qt’s command prompt, the environment will be configured for you and you are unlikely to run into this problem. If you have no option and must run the build from standard command line environment, do make sure that:

  1. Variable QTDIR is defined and pointing to Qt framework’s location, i.e. C:\Qt\2010.02.1\qt.
  2. Qt framework’s bin directory has been set in PATH variable.
  3. MinGW’s bin directory has been set in PATH variable.

Take note that I made the build for Win32 and used MinGW as toolchain. I am not very sure if step #3 is related to this error message, yet in my case it is essential in order to make success build. I have not try this for Linux yet as I just messed up my Linux environment. Once tested on Linux will share the result here.

— Updated 2010-05-09 —
Tested on Kubuntu 10.04, and able to build app_gui from command line with step #1 and #2 prepared :)

Conceptual map between SVN and ClearCase UCM

Learnt a bit from new job;
Asked a bit at stackoverflow.com;
Digged a bit around Internet;

So here is the summary of my understanding on this topic. :)

And … useful list of ClearCase commands.

Picking up Rational ClearCase

I just landed on a new job, which requires me to use ClearCase for day to day work. Prior to this, I’d heard a lot of bad things about this monster, and I used to think that I’ll never want to put my hand on it. By quickly googling around you will easily find that most of the feedbacks on CC are condemning it. Perhaps the most significant positive comment you’ll find pertaining ClearCase is that: it is useful to handle certain use cases which involve complicated software versionning model.

Anyway, now I’m still trying my best to pick it up, with a sense of conflict. Probably it’ll take me some time before I’m able to realize its real advantages (if any).

Hits 100th word

I have been taking a more proactive approach to improve my English, since January. Today my list of vocabulary has just reach 100th!

There is still a long way to go… through small but frequent steps. I hope by February 2011 the list will grow to 1000 words.

New project roadmap for NetCom Simulator

Please refer to the roadmap #2:

Roadmap history

Development of GFileSystem module is suspended

Find more details in NetCom Simulator project’s issue tracker:


First post in 2010

Stepping into a new year, here are the topics that I have studied/refreshed over the past three weeks:

  1. Cleared some doubts that I was having regarding ‘static‘ keyword in C++. It may affect certain concepts in C++ such as namespace, storage duration, and linkage.
  2. Studied C++ exception handling more in depth: exception handling for constructor and destructor, and a bit on set_terminate() and set_unexpected().
  3. Makefile! Applied what I learned on makefile into gUtil of NetCom Simulator project.
  4. Reviewed and played around with C++ library creation (this time am using CDT instead of MSVC). Some topics that I regard as relatively advanced were left to be explore in future.

Next, I plan to complete GFileSystem module of gUtil by 27th of this month.