New forum for Ubuntu NL
Ubuntu NL has a new forum! Tonight I switched it from punbb to smf, solving a few encoding bugs on the go. The smf importscripts are not the fastet, importing 32000+ posts took over 90 minutes.
Ubuntu NL has a new forum! Tonight I switched it from punbb to smf, solving a few encoding bugs on the go. The smf importscripts are not the fastet, importing 32000+ posts took over 90 minutes.
Douglas R. Hofstadter: Gödel, Escher, Bach: an Eterbal Golden Braid (20th anniversary edition)
Page 56, sentence 5:
The amount of money in our pocket will not change as we walk down the street, jostling it up and down; the number of books will not change if we pack them up in a box, load them into our car, drive one hundred miles, unload the box, unpack it, and place the books in a new shelf.
Instructions:
September 5 2008, a day that will never be forgotten! Exactly 5 years after our relation ship started, Merel and me celebrated that we love each other and want to stay together for the rest of our lives. Our families and best friends celebrated this with us during a great ceremony and an excellent party, I’ve never been more happy than on that day, the honeymoon in Vienna that followed and pretty much ever since :)

So, to all the people who were wondering where the hell I’ve been lately and what I’ve been up to: here’s your answer :)
Last friday the mails Launchpad sends out for changes to Ubuntu packages changed. The changelog2rss script now knows about that and feeds are being generated again.
OK, I’ll bite the meme:
Theme 1: military aircraft, used for home machines, appliances and ‘my’ machines at work
Theme 2: insects, used for servers for ubuntu-nl.org
Edit: Added hornet, my colleagues gave us a pink eeepc as wedding present :) First thing I did was installing ubuntu on it.
I’m currently migrating all ubuntu-nl.org services to a set of new servers and I’m trying to tidy most of it up in the mean time. That means trying to sanitize authentication for several services. LDAP of course is a sensible choice for authentication, as it’s supported by PAM and lots of applications (in our case: exim, openfire, dovecot and more). WIth help from the MoinMoin community, I even got the moin instance behind www.ubuntu-nl.org to talk to ldap for authentication.
Django does not support LDAP authentication, but has its own authentication and user management framework. Fortunately it’s pluggable and with only little effort I could make django talk to LDAP. A bit of cleanup later and it also synchronizes firstname, lastname, email and groups.
Thanks to a vodafone mobile internet dongle and openvpn I could do all this safely from the train (including this blogpost :)), with the django app running on my laptop and slapd running on one of the Ubuntu NL servers. If you also want to make your django app talk to LDAP, grab auth_ldap.py and read the comments at the top. It’s configurable from your settings.py.
It’s been a while since I published a traincoding snippet. Here’s a small one for your .bashrc that creates ‘alias host=ssh host’ for all hosts you know. It helps if you disable HashKnownHosts in your ~/.ssh/config.
if [ -d ~/.ssh ]; then
# Touch files we expect to exist
if [ ! -e ~/.ssh/config ]; then touch ~/.ssh/config; fi
if [ ! -e ~/.ssh/known_hosts ]; then touch ~/.ssh/known_hosts; fi
# Parse ~/.ssh/known_hosts and ~/.ssh/config to find hosts
for x in `sed -e ’s/[, ].*//’ ~/.ssh/known_hosts; awk ‘/^Host [^*?]+$/{print $2}’ ~/.ssh/config`; do
# Don’t override commands
type $x > /dev/null 2>&1 && continue
alias $x=”ssh $x”
# Remove the domainname
y=${x/.*/}
if [ "$y" != "$x" ]; then
if ! type $y > /dev/null 2>&1; then
alias $y=”ssh $x”
fi
fi
# Remove prefix. Add prefixes you want removed here
y=${y/pf1-/}
y=${y/pf2-/}
if [ "$y" != "$x" ]; then
if ! type $y > /dev/null 2>&1; then
alias $y=”ssh $x”
fi
fi
done
fi
If you add this to your ~/.bashrc, the following will be done when you start a shell:
alias pf1-foo.bar.com=”ssh pf1-foo.bar.com”
alias pf1-foo=”ssh pf1-foo.bar.com”
alias foo=”ssh pf1-foo.bar.com”
This helps a lot if you connect to a lot of machines with names like annoyingprefix-machine1.annoyingly.long.domain.name (Guess what I need to connect to often :))
It checks whether a command with a certain name exists already, so it won’t do things like alias svn=”ssh svn.gnome.org” which would be annoying.
This morning I was slowly waking up when the kids in the neighbourhood started banging on the door. They do that sometimes so I usually just ignore that. Then Merel told me that the phone and the fridge were not working. Looking at the laptop, I saw that the power just failed. So I went to look at the fusebox, which is in a sort of mini-cabinet just outside our apartment.
Opening up the door gave me a good wake-up call. There was nothing wrong with our fuses, but there was a firetruck just outside and firemen were unloading their gear. Instead of fixing electricity, I ended up helping the firemen drag their firehoses toward another apartment in the building, a mere 3 apartments away from me.
Shortly after that, when all firemen were in position, the building was evacuated and we had to spend the rest of the morning outside. The burning apartment was completely ruined and 5 more were slightly damaged. Our apartment had no damage.
Quite a few small children live in this building, which worried the police since they didn’t see that many outside. It turned out that a lot were on holiday or on a sleepover somewehere else. Nobody gut hurt in this fire, which for me was only too close for comfort and for some others has ruined their holiday/year/…
I’m so glad that my girlfriend bought her weddingdress a few weeks ago. Right now a building next to the weddingdress shop is burning down and the smoke is blowing over it, probably ruining all of the dresses. It was already hard to find an affordable, beautiful dress, this surely would have made it harder.
Yesterday was the first meeting of the Ubuntu EMEA membership board and I think it was a great success. We managed to process 13 membership applications,10 people were accepted as Ubuntu members. This is a huge improvement for prospective members who now do not have to wait for the Community Council to meet, but can turn to local membership boards. So there are now 3 ways to become Ubuntu member:
There are now 378 Ubuntu members, that is 378 people who made significant contributions to Ubuntu and the Ubuntu community. There are many more of you out there who make such significant contributions, so this delegation will make sure all those contributions will be recognized!
Ubuntu-nl has outgrown its server. To reduce load on it, I’ve moved the USN and -changes feeds to feedburner. Here are the updated locations:
Argh, as part of a top 25 of “Bad but Gold” songs (think YMCA and co), TMF just aired Rick as well. RICKROLLED!
Inspired by the latest launchpad news, here is a better version of launchpadduser.py. It does more sanity checking, can be used as a module and allows you to use a different name locally than on launchpad (eg sudo ./launchpadduser.py –launchpad-name kiko christian) Enjoy!
In related news: It’s now happened too often that I had to walk a user through the boot with live cd/find partition/chroot/passwd hoops after they forget the password for their account. So I whipped up a shellscript that one can wget and run from a live cd. It searches for partitions with linux installs on them and allows you to the password for any account on them that has a usable password. So now these hoops are reduced to:
Fact one: Women who have their monthly problems need chocolate and preferably lots of it
Fact two: My girlfriend like to bake pies
Fact three: She has her monthly problems now (why else would I be blogging instead of spending time with her)
Result:

Now this is bad for you but tastes soooooo good!