Archive for the ‘Open Source’ Category

Evolution Bugfix

Saturday, August 23rd, 2008

Patched bug 547822 in Evolution mail client. The patch removes 6 lines and adds 18. A user filed the bug because both task list and appointment list show “Upcoming Appointments” in title when printed or exported in PDF. The patch changed the titles to “Tasks” and “Calendar.”

gvocab IPO

Sunday, October 14th, 2007

gvocab has a new home at google code. There is also a link at gnome files.

gvocab 0.2 “You must die! I alone am best!”

Saturday, October 13th, 2007

Here is the second release of gvocab, the vocabulary builder. New features:

  • gvocab remembers session state after closing
  • mistakes are crossed out, hints are bold
  • faster start up time with a progress bar for reading the words xml file

Click to view the screenshot:
GVocab 0.2 Screenshot

It turned out that gconf recommends to not store anything except properties in the gconf database. gvocab stores session state in ~/.gnome2/gvocab/session.xml, similar to gedit, which stores its own session information in ~/.gnome2/gedit/sessions/gedit-*.

For the next release, I am planning improvement to the teaching algorithm. I think a word should not be marked as learned the first time the user guessed its meaning right. Repetition is essential to learning.

gvocab 0.1 “She ain’t got no alibi”

Monday, October 8th, 2007

Here is a GTK vocabulary builder with 5k+ words. Key advantage: it will not get off your back until you have learned every single word.

GVocab

In the next release I want to use gconf to remember the learning progress.

Upgrade

Sunday, August 12th, 2007

Gutsy

Upgraded to Gutsy Gibbon on my Medion MD2900. I like that it boots faster and has newer software, especially the new Appearance Preferences. However, the fonts became tiny for some reason. I had to switch from 10pt to 12pt everywhere. Too bad that my 4+ years old laptop keeps sporadically committing suicide via overheating in idle. Can’t wait to get a new one.

Feel good feature of the day

Recently noticed an awesome but sparsely known feature in Deskbar. I can search for a word in my clipboard if the following option is selected:

Deskbar Preferences

Now I can browse through NYT or WP, select the word viscerally, press Alt-F3, and select Dictionary. Sweet.

Accepted patch to gtk-doc

Friday, August 10th, 2007

Found a bug in gtk-doc and solved it :)

Show Your Monitor Who’s the Boss

Thursday, July 19th, 2007

Monitors eat up lots of power. To save it, tell the monitor to shut off after one minute of inactivity by

  1. Adding this line to Section “Monitor” in xorg.conf:
            Option "DPMS" "True"
  2. Adding this section to xorg.conf:
    Section "ServerFlags"
            Option "OffTime" "1"     # turn off after 1 minute
    EndSection

If you are watching a long movie, disable power management using:

$ xset -dpms

Then enable power management again when you’re done, use:

$ xset dpms 0 0 60

Fore more information, see the manpages:

$ man xorg.conf
$ man xset

Visit Powertop for useful tips on saving power.

Kernel Affairs

Thursday, June 14th, 2007

I am giving back to the society by helping the Powertop project, which aims to reduce the power consumption of Linux on Intel. As part of the effort, I needed to cast away the already elderly 2.6.20 kernel that comes with Feisty. Thus I came face to face with the beast called git. To my pleasant surprise, the beast did not bite. It obediently filled up my hard disk with hundreds of megabytes of the fresh Linux source. The simplicity of its language manifests the beauty that we all cherish in Linux:
$ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6

Binary Decision Tree

Thursday, May 3rd, 2007

I created a binary decision tree program that constructs the smallest possible (I think) decision tree given a set of examples. This was for Tino’s class again.

There are two caveats. First, there are no command line options. So the program only reads in the file “input.txt” in certain format specified by FileFormatPolicy.java. Second, the generated tree may not be minimal.

This program has awesome domain-driven design. I reused old ugly code for drawing the tree, but the rest is brand shiny new.

Design Image

Neural Network Learner

Thursday, April 26th, 2007

I used the examples from FANN to make a neural network learner with easily modifiable options for Tino’s class. The options are:

  • –train <file>, -t <file> This is input file.
  • –save <file>, -s <file> This is output file.
  • –input <integer>, -i <integer> The number of input neurons.
  • –output <integer>, -o <integer> The number of output neurons.
  • –hidden <integer>, -h <integer> The number of hidden neurons. The default is input+output neurons.
  • –connection <real>, -c <real> Connection rate for neurons between 0 and 1. The default is 1, i.e. fully connected network.
  • –epochs <integer>, -e <integer> Number of iterations. The default is half a million.

As you might have guessed, this neural network creates only 3 levels of neurons: input, hidden, and output. The input file has to be in the following format:

<elements #> <input neurons #> <output neurons#>
<input value 1> <input value 2> <input value 3> . . .
<output value>
. . .

The program requires the FANN library. I was able to install it using apt-get install libfann1 libfann1-dev in Ubuntu. Compilation is as easy as ./configure && make && make install. Example use is: nn -t end-game.data.nn -s end-game.nn -i 64 -o 1. Enjoy.