Archive for the ‘Tools’ Category

Funderbird

Saturday, 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.

ICQ Messages from Your Server

Tuesday, 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

Thursday, 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.

Opera and Closing Tabs

Sunday, June 10th, 2007

Choice of of browsers is a delicate topic. While Firefox offers extremely good extensibiliy, it is somewhat slower than Opera. Therefore, I often switch back and forth between the two. One major annoyance of Opera has always been the behaviour of Ctrl-W that closes a tab and brings you back to the most recently used one. In Firefox you have a the choice of what will happen, and as I found out today, Opera does as well, although somewhat harder to “find”. You have to go into the shortcuts preference settings where you can change the behavior of ‘w ctrl’, as it is called there, to ‘Close Page & Switch to next page’.

New Portage Features

Monday, June 26th, 2006

Finally, portage supports hooks for executing abirtray functions during an emerge process. This is done through /etc/portage/bashrc and some knowledge about ebulid(1). I have created this little sample that finally frees me from making a backup of every going-to-be-unmerged package.

# file /etc/portage/bashrc
if [[ ${EBUILD_PHASE} == "setup" ]]; then
einfo “Running quickpkg…”
/usr/sbin/quickpkg `echo ${EBUILD} | rev | cut -f2 -d/ | rev`
fi

SIM History Merger

Thursday, October 27th, 2005

As I use SIM on several computers and wantet to escape the hassle of copying my history back and forth, I decided to write a small tool that can merge the history of two installations. Currently its a proof-of-concept implementation ;-) that will merge the SIM history files from two given directories into a third directory whose contents you can then copy over both installations.

Please find the source at historyMerge.cpp (after it has been moved there, capi: i could not upload the file or copy it there, so it’s still im my home-directory)