Funderbird

July 12th, 2008

Finally I found out how to bring my Thunderbird back to speed. The extremely simple solution was to move all e-mails out of my inbox and create a dedicated folder for those that I want to keep. Simple and effective. Now Thunderbird is fun to use again ;-)

EDIT: I should also mention that I have tried several alternatives, like claws-mail or KMail and while they are definitley good mail clients they did not provide the features (especially live virtual folders) and stability I was used to from Thunderbird.

Crossloop

November 26th, 2007

An important addition for the non-local friendly administrator: CrossLoop. This is a piece of software I have long been looking for. Often I have to give computer support over the phone to friends and relatives. I have always wanted to set up a VNC or Remote Desktop connection but have feared either security or complexity issues (or both). With this tool, both problems have vanished. Just download, install and start. Let your friend tell you the security number displayed in large friendly letters and connect to his computer via an encrypted VNC channel that will find its way through NAT and firewalls.

On the the downside: It is “just” freeware (and not open source) and it is “just” VNC and not NX Server (NoMachine, FreeNX) or Remote Desktop but hey, its free its usable and its drop-dead easy to set up.

Local Wikipedia Installation

November 26th, 2007

After reporting on how to obtain your offline installation of a great online dictionary, I want to point out how you can create an offline installation of a great online encyclopedia. I stumbled upon an article that describes just that. You have to download a Wikipedia dump. The rest is done by the package provided in the article. Be aware though that you will need around 9GB of storage during the preparation. Moreover, it took 24 hours to complete on my computer (1.7GHz Pentium-M Laptop). After that you you will just need the split dump files and the index. I put the index into a SquashFS container to save considerable space on in. I ended up with a compressed local Wikipedia installation (without images) that is relatively quick and inhabits around 4.1GB of HD real estate.

dict.cc for Offline Use

November 22nd, 2007

Usually, I use either dict.cc or LEO as online dictionary or DING as offline dictionary. Both online dictionaries have the advantage of providing more information while the offline dictionary is, well, available offline and faster too. Recently, I discovered that dict.cc can be downloaded for personal use as well. As they have had some severe copyright infringement issues, where a company downloaded their dictionaries and claimed them their own, you will get a personal and traceable version of the current online database. The format of the file is exactly the same as the database of ding. (The database of dict.cc was originally based on ding’s database.)

This way, you can combine the best of two worlds: A comprehensive and current database and fast offline lookup.

LaTeX and Graphviz

November 19th, 2007

Today, I had to create a few simple graphs to be included in a LaTeX document. As they were really simple I thought, I could probably produce them directly with LaTeX and would not have to switch back and forth between e.g. OpenOffice Draw (that I use for everything else, by the way). After some time I stumbled upon the combination of Graphviz, an extremly powerful graph generation toolkit and an apropriate way to plug it into LaTeX with the help of a simple macro
graphviz.tex.

It takes a graphviz description, writes it to an output file and includes the generated postscript file. Unfortunately, it ceased to work after processing 15 files. This is due to creating a new latex write channel for every file operation. While I have not found out yet how to free such a write channel (it remains active even after closing the file), I have changed the macro so it reuses the channel. Here is the Modified Graphviz Macro. Be cautious however, as the original macro does not state a license so I am not sure wheter I may change and redistribute it.

This macro provides a really powerfull and elegang combination of two outstanding pieces of open-source software. Now I can create simple graph descriptions right inside the LaTeX document that includes the rest of the Text.

Command History in DrScheme’s REPL

July 25th, 2007

As I like to use a Scheme REPL as a sort of (very) advanced pocket calculator. I frequently would like to refer to results of previous calculations. Although you can paste previous inputs (<Esc> P), I prefer having a special symbol I can use in a subsequent calculation, like in Mathematica or Axiom. Fortunately, this is very easy to achive: DrScheme lets you change its REPL’s constituents so executing the following code will make a global variable “%” available that always contains the result of the last calculation. Moreover, the list “%%” is created that will hold all of your previous results. Best of all its just nine lines of code:


(define % '())
(define %% '())
(current-eval
 (let ([orig-eval (current-eval)])
   (lambda (sexp)
     (let ([result (orig-eval sexp)])
       (set! %% (cons result %%))
       (set! % result)
       result))))

ICQ Messages from Your Server

July 3rd, 2007

Often, I have long running jobs on various headless machines. Sometimes, I am eager to get the results, but get tired watching the console. Therefore, I wrote a small shell script that will send me an ICQ message once the job is done. To distinguish between several jobs, the message contains the original command and the last 10 lines of the result. This script takes another command as paremeter and also prints out the command’s stdout and stderr.


#!/bin/zsh
doReport() {
SINK="$HOME/.micq/scripting"
echo "msg NICK" > $SINK
echo "command: \"$@\":" > $SINK
tail > $SINK
echo "." > $SINK
}
$@ |& tee >(doReport $@)

It also requires a running instance of mICQ under the specified username. Due to the nice scripting interface of mICQ, automated sending of messages is made extremely easy. You have to replace NICK with the intended receiver’s nickname in mICQ.

Git

June 21st, 2007

After enthusiastically playing around with Git for a few days, I wanted to share my expirence. It is an extremly powerful, yet (by now) easy to learn version control tool. More and more I start to share Linus Torvalds opinion that everyone who does not use Git is “ugly and stupid” ;-)
Here are some key advantages compared to the version control tools I have previously used (RCS, CVS, SVN):

  • Truely distributed (every developer has his own repository), therefore, its fast and disconnected operation is no problem at all
  • Native handling of branches. The working copy of your branch will be exactly where your original trunk was (no problems with absolute paths [beware!]). Moreover, while branching is not too difficult with other systems, with git even merging is not only easy but fun. It is so much fun that I deliberatly create several development branches just to be able to merge them later. So you can develop every feature in its own branch. When you get distracted and have to do some other work just make a preliminary commit and switch to another branch, continue working there and at any time switch back.
  • Merge history. When you merge several branches you will retain the full history of all branches that you merged.
  • Amendable Commits. Like mentioned previously, it is no problem if you botch a commit, because you forgot a file. Just amend your last commit.
  • Objects are tracked by content (actually their SHA1 hashes). If you synchronize your repository with someone else’s who happens to share a few commits, files or tags (because you have worked together before) these overlaps will be detected and can be incorporated into your version history. Your history is secured against corruption: The content can be verified to still produce the same hash it had when it was checked in. This makes it possible to give a sensible meaning to signing commits (e.g. for approval).

In short this is one of the nicest software development tools I have stumbled upon recently. You should definitely take a look.

Thunderbird Dictionaries (for Gentoo)

June 21st, 2007

After struggling every time I want to install new dictionaries in thunderbird, I think its time to write it down. Once and for all. It is as simple as that: Take a dictionary in the appropriate format (*.{dic,aff}, for exmple from the thunderbird homepage or openoffice myspell packages) and drop it into /usr/lib/mozilla-thunderbird/dictionaries. Done. The xpi packages do not work for me, neither installing into either /opt/thunderbird/components/myspell/, nor /usr/lib/mozilla-thunderbird/components/myspell.