A few weeks ago, I discovered pam_mount. This wonderful piece of software allows you to type in a single password, log into your system and mount all encrypted drives at the same time, by using the same password for your encrypted drive as your login password. While this makes your encryption password slightly less secure, as there is a hashed version of it available, it also makes it so much more convenient to use ecryption in the first place. If you would go unecrypted otherwise, it is definitely worth a look.
Hassle-free Encryption
July 12th, 2008Funderbird
July 12th, 2008Finally 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, 2007An 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, 2007After 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, 2007Usually, 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, 2007Today, 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, 2007As 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, 2007Often, 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, 2007After 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, 2007After 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.