Kategorie: musthaves


HAL configuration for Kingsis Peripherals Evoluent VerticalMouse 3

To configure my Kingsis Peripherals Evoluent VerticalMouse 3, I've added the following fdi (HAL configuration info) to /etc/hal/fdi/policy/evoluent-verticalmouse3.fdi:


<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
    <match key="info.capabilities" contains="input.mouse">
      <match key="input.product" string="Kingsis Peripherals  Evoluent VerticalMouse 3">
        <merge key="input.x11_driver" type="string">evdev</merge>
        <merge key="input.x11_options.Emulate3Buttons" type="string">no</merge>
        <merge key="input.x11_options.EmulateWheelButton" type="string">0</merge>
        <merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge>
        <merge key="input.x11_options.ButtonMapping" type="string">1 2 2 4 5 6 7 3 8</merge>

The most important part (for me) here is ButtonMapping: by default only the wheelbutton triggers middle click, but since it's rather hard to press (and I use it often for pasting), I've mapped it to the middle button on the right side, too.
Also, the thumb button becomes "Back" (in browsers) and the lowest button on the right triggers the context menu.

Update: This was meant to included in Ubuntu Karmic (see bug 451729), but then got removed again (not everybody liked it).

Update^2: for udev (which is used solely since Ubuntu Lucid), I've transformed it into the following file (which you can store as /etc/udev/rules.d/90-local-xorg.rules):


ACTION!="add|change", GOTO="xorg_local_end"
KERNEL!="event*", GOTO="xorg_local_end"
ENV{ID_INPUT_MOUSE}!="1", GOTO="xorg_local_end"
ENV{ID_MODEL}!="Evoluent_VerticalMouse_3", GOTO="xorg_local_end"
ENV{x11_options.ZAxisMapping}="4 5"
ENV{x11_options.ButtonMapping}="1 2 2 4 5 6 7 3 8"

(see also https://wiki.kubuntu.org/X/InputConfiguration for more information)

Update^3: This is bugged in Ubuntu Lucid.



Link: http://getpopfile.org/

POPFile lets you easily handle your POP/IMAP email incoming folders and filters your mails into "buckets".

It allows more than the usual "spam" / "ham" buckets - you can use it to filter by language, too.

I have quite a special email setup, and it says currently:

Messages classified:   108,230
Classification errors: 2,948
Accuracy:              97.27% 

My buckets are: b2evo, backscatter, bugs, jedit, logspam, newsletter, personal, server, spam, traffic-watch, ubuntu, ubuntu-ack

Training messages into new buckets is as easy as moving them into another folder, when using IMAP - the POPFile process will recognize the movement and re-train this message.

If you're still using POP3, POPFile is a nice application anyway (it can be used as a proxy), but please consider switching to IMAP for your own sake.



Link: http://vimperator.org/trac/wiki/Vimperator

Vimperator is a great Firefox addon, which adds Vim-Power to Firefox.

It's a Firefox plugin only, but makes it behave a lot differently - adding vim commands to it. This is not meant for the casual user, but somebody who enjoys Vim, will probably enjoy Firefox a lot more when using this plugin.

Favorite commands include ":hardcopy" for the print dialog or the navigation in general.

If you test want to test it, please start with using the 2.0 betas, which are stable already and provide a lot of improvements since 1.2 (current stable).

I've even written my own command already, which allows me to easily switch between development and live server.

After all, it's really powerful and lets you avoid using the mouse even during surfing.. ^^

The help/tutorial is always available with ":help" - and you can still use the mouse (and normal shortkeys, if you use bypass mode (Ctrl-Z / Ctrl-Y), so there's no real excuse after all.. ;)

Update: Vimperator is available in Debian/Ubuntu as "iceweasel-vimperator", although currently only as 1.2-1 - while a few days ago 2.0 has been released and provides a lot of improvements and fixes.
As great as the Debian/Ubuntu package archive is, for plugins like the ones used with Firefox, I prefer the official repositories to (automatically) get any updates.


Vim settings per directory

When hacking on b2evolution using vim, I often forget to ":set noet" (to not expand tabs) and it's really annoying to change this global setting everytime I open a b2evo related file.

According to the mantra, to search for a shortcut when a task becomes repetitive, I've finally searched for it and found a plugin, which looks for _vimrc_local.vim files (in the parent directories (and $HOME)).

Now, I can have a single _vimrc_local.vim file in the directory where all my b2evo related directories/branches reside - and override my global settings therein; It gets sourced/executed whenever I'm opening a file "below".

For more information see the Question on Stack Overflow and the actual plugin by Luc Hermitte. Thanks! :)

Update: as noted on Reddit, you could also use the following code in a vimrc file (e.g. ~/.vimrc):

:au! BufRead,BufNewFile /path/to/project/* setlocal noet

I still like the approach of having local override files in the directory structure though, which might come in handy for projects: if somebody has installed the plugin already there's no need to edit any .vimrc file (if the project ships the _vimrc_local.vim file in the project's root directory).


bzr-pager Plugin

I like the feature in git, where commands that produce long output get piped to $PAGER.
This means, that if you do a "git diff" and its output will not fit into the current terminal window without scrolling, it will get piped to "less" by default, so that you can easily search and scroll in the output. Additionally (and that's the main point IMHO) it does not pollute your scrollback history (when you exit from your pager, the terminal will only display the call to the command, but not its output).

Luckily, there's a plugin for bzr, which provides the same functionality: bzr-pager

You can install it as follows:

mkdir -p ~/.bazaar/plugins && \
cd ~/.bazaar/plugins && \
bzr branch lp:bzr-pager pager

By Daniel in development, Ubuntu, musthaves2009-02-05 English (EU) Email


ack-grep - a source-aware grep replacement (searching for content in files)

Link: http://petdance.com/ack/

ack (or ack-grep) is a nice "grep" replacement, when searching in a directory with source files.

It does not require any path to start searching and the recursive option is enabled by default. Also, it will exclude directories of version control systems (like .svn, CVS, .bzr, .git) and nicely formats hits.

E.g., "ack-grep foo" will search all (relevant) files in the current directory for "foo". And if the current directory is under source control, it will be much faster than using "grep -R foo .", since it excludes the control directories. (Ye

I haven't tinkered with its options or man page, although I'm using it since quite some time now, since the defaults are so good already and it provides a great out-of-box experience and performance boost.

The man page states when to use the "normal" grep:

ack-grep trumps grep as an everyday tool 99% of the time, but don’t throw grep away, because there are times you’ll still need it.
E.g., searching through huge files looking for regexes that can be expressed with grep syntax should be quicker with grep.

Additionally, "grep" appears to be still more useful when chaining commands, e.g. to find all references of "css" in the file list of "ack-grep" ("dpkg -L ack-grep | xargs grep css"). When using ack-grep here, it will also recursively search in all listed directories (as in "for i in $(dpkg -L ack-grep); do test -d $i && echo $i; done").

On Debian/Ubuntu, ack-grep is only a "sudo apt-get install ack-grep" away.. :)

(The ack homepage has some convincing Testimonials, too)

By Daniel in Open Source, Ubuntu, musthaves, Debian2009-01-17 English (EU) Email


Looking for friends on Freenet

Freenet Project ist ein wunderbares Projekt, welches innerhalb des Internets ein "freies" Netz abbildet. "Frei" im Sinne von Zensur und Anonymität.

Im Prinzip hat man einen Dienst auf dem Rechner laufen, der sich in dieses Netz einklinkt, beständig Daten austauscht und über den man dann selber auf dieses Netzwerk zugreifen kann.

Im Grunde also wie das Internet, nur eben das innerhalb des Freenets alles anonym abläuft und man selber als Server fungiert: es werden Inhalte auf dem eigenen Rechner (verschlüsselt) zwischengespeichert, die dann von anderen abgerufen werden können.
Man kann natürlich auch dort seine Identität preisgeben, bzw mehrere Identitäten verwenden, aber es besteht nicht die Möglichkeit, jemanden anhand seiner IP-Adresse zurückzuverfolgen (wie es im Internet möglich ist).

Diese Anonymität ist ein riesiger Vorteil für Menschen, die über Dinge berichten (oder sich darüber informieren möchten), die sie das Leben kosten könnte. Immerhin gibt es viele Staaten, in denen man gewisse Dinge nicht veröffentlichen darf.

Ich nutze Freenet schon seit einiger Zeit mehr oder weniger intensiv und im Grunde ist es schon langsam und schnell langweilig, aber die Idee dahinter gilt es zu unterstützen.
Deshalb rufe ich dazu auf: Installiert Freenet bei euch, und wenn ihr mich (gerne auch im größeren Sinne) kennt, schickt mir eine Mail/private Nachricht, so dass wir uns als Freunde einrichten können.

Jemanden als Freund hinzuzufügen hat den großen Vorteil, dass man sich nicht mehr mit "Fremden" verbinden muss (etwa ab 5 Freunden ist dies machbar) - das erhöht die Sicherheit im Sinne der Anonymität.
Ich habe Freenet lokal auf meinem Rechner am Laufen, sowie auch auf meinem Webserver (der natürlich beständig online ist). Also hättet ihr direkt zwei Freunde, wenn ihr euch mit mir verbinden wollt.

Es gibt übrigens auch einen Freenet Web Proxy, der es einem erlaubt aus dem Internet (WWW) auf das Freenet zuzugreifen. Aus verständlichen (und gleichzeitig ärgerlichen) Gründen werden Bilder allerdings dort nicht angezeigt.
Dieser Proxy bietet zugriff auf die sogenannten "Freesites" (entsprechend der bekannten Websites). Es gibt aber auch andere Dienste, die über das Freenet funktionieren, wie z.B. FMS (Freenet Messaging Service), der ähnlich wie das Usenet funktioniert - also das Austauschen von Nachrichten in "Boards" (zu bestimmten Themen) erlaubt.
Gleichzeitig gibt es auch Programme für Tauschbörsen (wo man anonym Daten hoch- und herunterladen kann) - was aber auch oft direkt über Freesites gemacht wird.

Es gibt viele Leute, die sagen, dass das Freenet die ideale Spielwiese für Pädophile wäre (und in der Tat gibt es dort Kinderpornographie), aber es ist meiner Meinung nach falsch, es deswegen prinzipiell abzulehnen - denn es gibt auch im normalen Internet natürlich Pädophile (und entsprechende Angebote). Es gilt halt, sich in einem "Porn Index" die Titel der Links anzuschauen, bevor man draufklickt.. ;)
Vielmehr geht es darum, dieses Netzwerk und die Idee dahinter weiter auszubauen (wodurch es auch schneller wird).

In dem Zusammenhang auch noch ein sehr berührendes Zitat (kopiert von der Freenet-Seite):

"I worry about my child and the Internet all the time, even though she's too young to have logged on yet. Here's what I worry about. I worry that 10 or 15 years from now, she will come to me and say 'Daddy, where were you when they took freedom of the press away from the Internet?'"
--Mike Godwin, Electronic Frontier Foundation

Deshalb, auch wenn ich mich tagelang auch nicht selber ins Freenet einlogge, stelle ich Bandbreite und Speicherplatz zur Verfügung - beides ist in unseren Breitengraden ja in der Regel zuhauf vorhanden.

Wer Rat beim Einrichten eines Freenet-Clients im OpenVZ-Container (oder ähnlichem) benötigt, kann mich gerne anschreiben oder -sprechen.. :)

Weitere Informationen zum Thema Freenet gibt es in der Wikipedia.

Einen Freenet-Client kann man sich hier herunterladen. Freenet läuft in Java, also im Prinzip auf jedem Betriebssystem (auf dem Java vorhanden ist).