Interrogation marks and keyboard layouts

I recently switched from KDE to XFCE because I could not stand KDE bugs anymore. The upside is that XFCE is super simple, fast, and minimalist. The downside is that everything looks "blocky" (as in "lego blocks").

Anyway, two issues have been bugging me these past few days and I finally got around them today.

Accented characters displayed as interrogation marks in terminal

I write in French and English so I sometimes need to type accented characters on the command line. Unfortunately, after installing XFCE on archlinux, I found that every time I typed an accented character in the terminal, it was replaced by an interrogation mark.

After messing around with my configuration files for three days, I finally found the solution on the archlinux wiki:

    # in ~/.bashrc
    export LC_ALL=
    export LC_COLLATE="C"
    export LANG=en_US.utf8
Read More →

HelloWorld moving to Posterous

After evaluating blogging, micro-blogging, and sort-of-in-the-middle blogging platforms, I decided to leave my self-managed wordpress tech blog and transfer all my posts to posterous.

Although my tech blog started well (they all do), I never found the motivation to post regularly. It is surprising how logging to your own website/blog can be a deterrent. I must say that fighting with the editor was not pleasant and left some scars: publishing code is a pain and line breaks seem to be interpreted randomly in wordpress post editor (it is slightly better in blogger's post editor, but not perfect).

Still, there are many small things I would like to post regularly so I tried to find a blogging platform that would suit my need. After a big two hours of research, I selected Posterous because:

  1. You can post by email and
Read More →

gitli: Lightweight Issue Tracker for git

Last week, I wanted to track issues (bugs, tasks, enhancements) for a private project and I could not find an issue tracker that was lightweight (command line) and dead easy to install and use. Trac is very nice and easy to use, but installing and configuring a trac instance is far from a walk in the park.

I considered using ticgit, which is a true distributed issue tracking system, i.e., tickets are hosted on a git repository and multiple contributors can manage the issues. Unfortunately, to avoid ticket number clash (e.g., you don't want Bob and Alice to create ticket #3 at the same time on their own repository), the ticket numbers are hash values like d7f2d8f6d6ec3da1a1800a33fb090d590a533bac or d7f2d8. That's just unacceptable to me because my brain is not wired to think about ticket d7f2d8. I don't see

Read More →

Category not showing up in Eclipse Update Site

This issue has plagued my update sites for years and I finally found a workaround.

The problem: you create an Eclipse update site, you add a category, then you add a feature under the category. You build the update site (using either Build or Build All). Sometimes, when you try to install the features from the update site with "Install New Software..." you don't see your category and you need to uncheck "Group items by category". Even if you try to rebuild everything, delete the artifacts.jar and content.jar, you still cannot see your category. Annoying isn't it?

The solution: remove the category and the features from your update site. Save. Add them again. Build All. You need to do this every time you make a change (e.g., update the version number of a feature). This is a

Read More →

Updating MoinMoin - Major Python Update on ArchLinux

This morning, I upgraded my server, which runs ArchLinux. As you may know, ArchLinux recently updated their Python packages so that the default python points to python3. Python 2.6 was also updated to Python 2.7 (accessible from python2) Everything went relatively well, but I had to recreate all my virtual environments because they were too tightly integrated with python 2.6. I have one virtual environment for each big application running on my server (Trac, MoinMoin, and my ph.d. project, recodoc) and it took longer than expected... MoinMoin must be the worst wiki on earth because every time I want to update it (either MoinMoin or Python), I get a few extra gray hairs. Here are the steps that worked for me:

  1. Stop your wsgi/fcgi server (in my case, gunicorn)
  2. Backup wiki config (share/moin) and
Read More →

A New Recipe - How to get a list of fully qualified names from a simple name at runtime

All right, this one isn't exactly exiting, but while working on Py4J, I encountered the following problem (that had to be solved in Java):


  • Given a simple name, return a list of fully qualified names accessible at runtime.

  • In other words, implement the auto-import feature available in popular Java IDEs,

  • but at runtime. For example, given List, you should return [java 1="java.awt.List" language=".util.List,"][/java].
  • I had no idea how to do this, so I asked a question on stackoverflow, but to my dismay, the only answers I got were "it can't be done". It hurts because one of the commenters was an expert in classloading/reflection issues on StackOverflow. Still, I wanted a best effort solution (not a 100% accurate one) and in a general programming language like Java, "it can't be done" is not

Read More →