When doing web development you'll often have domains/hostnames like
hahler.local (instead of
Having a separate hostname for a lot of projects will result in some inconvenience though: you have to setup those.
Until recently, I was adding them to /etc/hosts (or the counterpart on Windows), like so:
127.0.0.1 hahler.local whissip.local
This however does not allow wildcards (like
*.hahler.local), and having something like
127.0.0.1 *.local would be much easier to maintain (no adding to this file for a new setup/project).
dnsmasq to the rescue!
dnsmasq is a lightweight DNS forwarder and I was using it already to cache DNS queries locally, for faster browsing etc. Since it answers my DNS lookups already, it should be able to make *.local work for me.
I've created a simple file
/etc/dnsmasq.d/my-local with just a single line:
And after restarting dnsmasq, *.local gets resolved to 127.0.0.1.
Instead of "local" you can (and should probably) use another domain, like "dev" instead, because using "local" conflicts with Avahi/mdns, but this can get solved as follows:
Avahi/mdns defaults to ".local" as its TLD and therefore you have to adjust the "hosts" line in /etc/nsswitch.conf and put "dns" (which is dnsmasq in this case) before mdns4_minimal (which is avahi in this case), or remove the NOTFOUND=return, so that "dns" would get used even when mdns4_minimal returns NOTFOUND (which it apparently does for requests in its domain (typically ".local") it does not know anything about):
Quite a while ago I've installed etckeeper and changed the configuration to use Bazaar as its backend for myself (and sponsored/helped with a patch to change the default in Ubuntu).
At that time I've thought, that Bazaar would catch up, and they (luckily) have done so in some areas, but Git is still a lot faster.
Therefore I've decided to change the repository from bzr to git. I've done so on my home machine and will do so on my dedicated server boxes in the next days, so it's a not only a recommendation but also documentation.
Howto convert a bzr repository to git (etckeeper)
Open a root shell, then you should export $GIT_DIR first:
The following will then convert /etc from a bzr to a git repository ("fast-export" is included in bzr-fastimport - you may have to install this first):
bzr fast-export --export-marks=$GIT_DIR/bzr.mark /etc | git fast-import --export-marks=$GIT_DIR/git.mark
After this (which will take a while depending on your history) you want to adjust the VCS setting in etckeeper.conf (uncomment VCS=git and comment VCS=bzr):
sed -i -r -e s/'#\s*(VCS="git)"'/'\1'/ -e s/'VCS="bzr"'/'# \0'/ /etc/etckeeper/etckeeper.conf
I don't remember correctly, but the Git repository was not really setup correctly in the end - but the following fixed it:
I've done some benchmarking, comparing "$DVCS status" against each other. This will look if there are any files modified in the current tree, and it's what etckeeper does before and after upgrading (IIRC).
The following shows the commands with cold and warm caches (I've cleared the disk caches when changing to a new set).
What you can see is not only that "git status" is twice as fast with a cold cache (and even more with a warm one), but also that bzr takes even more time to print a single line of "It sure does!".
$ sudo time git st
0.01user 0.04system 0:05.61elapsed 1%CPU (0avgtext+0avgdata 0maxresident)k
29232inputs+688outputs (113major+1605minor)pagefaults 0swaps
$ sudo time git st
0.02user 0.02system 0:00.06elapsed 59%CPU (0avgtext+0avgdata 0maxresident)k
16inputs+688outputs (0major+1716minor)pagefaults 0swaps
$ sudo time bzr st
0.14user 0.06system 0:11.74elapsed 1%CPU (0avgtext+0avgdata 0maxresident)k
17840inputs+8outputs (36major+3750minor)pagefaults 0swaps
$ sudo time bzr st
0.16user 0.03system 0:00.32elapsed 62%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+3787minor)pagefaults 0swaps
$ sudo time bzr rocks
It sure does!
0.20user 0.05system 0:08.19elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
17392inputs+8outputs (34major+3422minor)pagefaults 0swaps
$ sudo time bzr rocks
It sure does!
0.16user 0.01system 0:00.20elapsed 92%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+3458minor)pagefaults 0swaps
I'll update this post when scripting for the update of my various OpenVZ containers, but the basic information should stand.
From now on, I will save 5+ seconds on any "aptitude safe-upgrade". Hopefully this multiplies somehow, so the time investment into this post pays back..
Ubuntu 9.10 AKA "Karmic Koala" wurde heute freigegeben.
Mal wieder ein Release, an dem ich nicht soo sehr aktiv mitgewirkt habe, aber immerhin eines, dessen Bugs mich am Ende sehr geplagt haben.
Eine Übersicht der neuen Features gibt es auf ubuntu.com.
Auch Planet Ubuntu ist voller Screenshots und Release-Posts, u.a. deswegen von mir jetzt auch nicht viel mehr..
To configure my Kingsis Peripherals Evoluent VerticalMouse 3, I've added the following fdi (HAL configuration info) to
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
(see also https://wiki.kubuntu.org/X/InputConfiguration for more information)
Update^3: This is bugged in Ubuntu Lucid.
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.
Thanks to Antti-Juhani Kaijanaho I could improve the performance of dpkg/apt on my old Ubuntu system (upgraded since I've started using Linux/Ubuntu in 2005):
I've written a small script, according to Antti-Juhani's post:
# via http://antti-juhani.kaijanaho.fi/newblog/archives/521
if [ "$(id -u)" != "0" ]; then
echo "You must be root."
My results show that /var/lib/dpkg has gone from 195M down to 154M and calling
apt-get upgrade (not a good test probably) went down from 10.024s to 5.764s (after dropping all caches, of course - "echo 3 | sudo tee /proc/sys/vm/drop_caches").
This should get considered to be done during Ubuntu upgrades.
Having the possibility to report bugs against tools and applications you are using to report bugs in other applications can lead to a whole stack of browser windows, things and stuff being open.
Especially if there are bugs in the application to report the oh-no-it's-starting-to-recurse bug report (Yes, I'm looking at you, Launchpad).