NMBS well done!
Let's say a student creates an interface to allow mobile clients to look up train hours in an easy way. Let's say that the student informs the train company 2 years ago?
What would you a normal company do: Hire him and pay him to make it better. What does the Belgian NMBS do? Send a cease and desist!
Link below: (Dutch link) http://blog.tuinslak.org/2010/06/stopping-irail-be/
To the Belgian NMBS: A year ago I had to take the train (for 6 months) to my work. I've never been late that often and I couldn't keep evening appointments due to you abominable service. I wish there would have been a better online tool as on my mobile (not an iPhone) your website runs as smooth as a car with rectangular wheels and with an engine of an 20 year old lawn mower!
Just to be clear: I will do my utter best to avoid taking a train from now on. I rather sit in traffic for an hour more than support a company that has no respect for the people who pay them and takes legal steps against a student that provided a service that you couldn't.
laptop woes
\\//!
- The last few weeks I've been looking for a new laptop for SeJo-IT. I had following wishes:
- 13" (not 14" nor 11")
- 4G mem
- 256 ssd
- >=5h battery time
- bluetooth
- wireless
- 1Gb network
- decent CPU (core duo or intel 5/7), no atom nor mobile stuff.
I've researched and contacted (not all though) HP, Dell, Sony, Lenovo, Acer. Basicly Sony does not allow me to build to order, nor does Lenovo. Dell doesn't offer that with a 13" machine and neither does HP. Acer doesn't offer it neither.
I've been known to always want Apple machines, well I really did my best to find one that wasn't apple. The closest I got was a Vaio z series, but those have 4x64G ssd and you need a software raid to get a bigger disk.. (not doing that!).
- I had 2 options:
- buy the laptop I wanted (apple did offer it)
- lower my standards
I bought a Macbook pro... I hope I explained myself well enough for all you Open Source Zealots who think I am in an alliance with the devil... *grin*
llap!
Mail migration postfix-dovecot to zarafa with SASL on Centos
\\//!
One of the first tasks at hand was to switch from a simple virtual mail setup to zarafa. I'm going to use the calendar a lot and wanted to be able to share my calendar. I did not want an external company to have control over my appointments so Google Calendar was out.
I checked out all the options and settled for zarafa. The setup is not that hard, pretty easy. The hardest part was getting saslauthd working with OR sql OR rimap. I spent a while trying to get it working with sql but in the end I just switched to rimap.
Took me a lot of research but it was well worthed. I have full syncing with my n900, easy maintenance and no more manual file editing to add users to my mail setup.
w00tness!
llap!
freelancer
\\//!
As of today I can finally tell the world that I'm starting as a freelancer. As of July first you will be able to hire me for all things related to system engineering, team or project management!
All information can be found here: http://sejo-it.be
w00t!!!!!
llap!
PS: Yes that means I'm no longer an Inuit from that point on!
mobile internet
\\//!
I'm currently searching for a good international mobile internet solution. I prefer an usb stick that I can use with my laptop. At this time Proximus' solution is just too expensive. Remember that I do not own a company nor have a VAT. Thus I'm looking for a not too expensive solution...
Anyone an idea?
llap!
redmine awesomeness
\\//,
For Inuits (and some clients) I've setup Redmine. Redmine in it's core is a very good tool but with plugins it's pure awesomeness. Let me describe how we use Redmine.
With Inuits we have several internal projects that need to be managed. Because we all are consultants we cannot continuously work on internal projects nor are we sitting in the same office. So the need of a good management tool is a must. Hence Redmine. The way we use it now (with the scrum_pm and Kanban plugins), it allows us to define sprints, setup our stories, manage the backlog and have a nice Kanban overview.
We also installed the scheduler plugin that allows us to manage the schedule of the consultants who move a lot over different clients. This allows us to have an overview of who is working where and when they will be available.
Admitted there are some things that could improve but that's the greatest part, over time we see the new updates on the different plugins and sometimes they are useful and other times not. But we get to use the features others like and implemented for free! Open Source awesomeness at max speed!
Let me draw a small overview of our plugins:
- Kanban is written by Eric Davis and allows us to use the Kanban methodology with redmine.
- scrum_pm is written by Marcin Jędras and allows us to use the SCRUM Methodology!
- scheduler is written by a company named goyello and is used to manage the resources.
llap!
PS: I also want to thank the guy that introduced me to Redmine: Frederic Descamps
It's been a while
\\//,
It's been a since I updated my blog. Real time and online things came together and didn't exactly make my life easier. A small summary of the last few weeks.
- Open Source Days in Copenhagen
I was happy that Raf could drive me to Copenhagen as I was not allowed to drive after my knee surgery. We drove from Belgium with 3 Raf, Ingmar and me. The trip to Denmark was pleasant and with regular stops I did not have much issues with my knee. Once in Copenhagen we met up with Alexander. This to drop of Ingmar. We decided we would go for dinner in the city. Raf and me proceeded to drop our stuff off at the hotel and relax a bit. The Hotel was pretty nice, the rooms weren't that big but we had all the luxury we needed. Before we went to dinner we made a quick stop at the venue where Alexander could set some stuff up. We met up with Bryan there and had a nice chat. Afterwards off for dinner at Jensen's Bøfhus where we had a good meal, but as we were completely dead from driving we made it an early night.
Day 2 we went to the venue and met up with Pim and the exherbo team. We there decided to start helping out with the exherbo Infrastructure team. We didn't see that many interesting talks that day as they were mostly commercial minded and we had some work for Inuits to do. Also I kinda needed to prepare my talk.
The evening was spent in the center of Copenhagen with dinner and afterwards Pim, Raf and me went to the hotel for a small drink and our beds.
Day 3 was more interesting there was Pim's talk, mine and the android talk that we really looked forward to. Pim and I did great (eh eh eh) but the android talk was basicly not good. The guy talked about setting up android on a never heard before board and all the steps he did to get it (not natively) working. I fell asleep. For lunch Raf and me went to Haiku Sushi and kinda liked it, so we decided to take Pim, Bryan, Ingmar and zlin (exherbo KDE dev, has no blog) for dinner there. They will not easily forget us there and we will not really forget in neither! Sushi was great Sake was better and plenty grin. Back at the hotel Pim, Raf and me made plans to take over the world and went back to sleep.
- NOiV Conference in Utrecht
I went to the NOiV conference in Utrecht where the day was filled with information about Open Standards and how to use them with Open Source software in Governments. There was one talk that was extremely good and that was the talk of Olle Johansson about Open Communication. He talked about his experience with communication (phone, email, jabber,...) and the things that are lacking to make all communication open. He also stated his belief that the new phone number will be in the email format. I don't know if his talk is public but I'm thinking about inviting him for FOSDEM.
- Renovations
I am in the midst of some home renovations (well only 40% of the house will be rebuild so technically it's still a renovation). Currently we are redoing one of the bedrooms to be our new bathroom and hopefully by the end of next week it's finished. Also the top floor will be redone with wooden floors.
- Exherbo infra team
I joined the Exherbo infra team to help them with their infrastructure, right now we are waiting on some hardware to be colocated, but once that arrives Raf and I will be jumping on the work. First thing we will do is setup a redmine server and an openldap. The redmine is to allow Raf and I to follow up our sprints.
- Freenode staff resignation
Due to lack of time I resigned my staff position at Freenode. It's been a blast and I really enjoyed it but lately I couldn't find enough time to help out users on the network. So I decided I should stop as I want to focus on all the infra jobs I do in the OS world. I will miss the team and the job also but I can still help out when I find time. And you can still find me in a lot of channels there.
On a side note I switched my laptop from Fedora to Exherbo. The problem I had with fedora is that I needed to compile my own kernel, and a dozen more apps to have a working system for me. And If I use a distro I want the distro to do it for me. Basically I think I've been using source based distributions too long to be able to enjoy others :p.
I will not promise to update this blog more regularly as I prefer to blog when I have something to say :p.
llap!
Almost no Open Source Days in Copenhagen for me!
\\//!
Sunday I was in my garden burning some small wood. When I crouched to pick op a piece op paper and got up again, I got a pain shock in my knee and couldn't stretch it any more.
As I used to play a lot of basket and already had some issues with my knees that always disappeared in an hour or two I decided to wait it out. That didn't help, so my wife took me to the ER.
At the ER they informed me that I needed surgery but they suggested to wait until Monday to get it confirmed by the surgeon. I really liked that idea (and hoped it wouldn't come to that) so Monday morning I was at the Hospital.
I didn't like what he said though... I needed the surgery... He did give me a heads up and told me that if it was only the meniscus it wouldn't be that bad...
This did impose a possible problem. My talk @ Open Source Days in Copenhagen would be an impossible thing to do :/
This morning I had the surgery... I had a really rough time getting awake no idea why. Last time I was put under I woke up and after an hour I was ready to go home... Now it took me more than 4 hours (recovery room included) to be awake. It's almost midnight here and I never thought I would be awake like this (read can't sleep).
About the knee: Part of the meniscus was torn off and blocked the joint. But good news is that it was only a block and that there was no damage to the joint nor the ligaments. This means that by next week Thursday I should be enough recovered (especially as I can walk on the leg already).
There were a few remaining problems...
- I can't drive to Denmark (not allowed): solution --> Raf Nijskens will bring me
- Need someone to help me with the luggage etc: solution --> Raf Nijskens will help me!
- Extra hotel room and ticket to the event: solution --> OSD will take up the bill!
So as you can see Open Source Days organisation and Raf really helped me out to make sure I can still present Djagios at the event. I should mention that the company I work for Inuits sponsors the 2 days for me and Raf Nijskens, Which is a nice and cool effort!
Thanks!!!!
llap!
Squid and Surftracker
\\//!
A client of mine asked for a proxy and an analyser for the results. This because their site is in use 24/7 and they wanted to verify if all traffic is legal/SFW.
So we quickly decided to go for squid, I set it up against their AD so only users that are in their domain could access the web. The easy part was changing the browser settings as they can only surf through Citrix.
As analyser we tested a few that are listed on the squid website but only one passed the bar for the client. And that's Surftrackr. A Django (jeej) based analyser that is clean and easy to use. The only negative point for that tool was it's non-compliance with Django > 1. I needed to install Django-0.96. That done the tool does it's job pretty well. I'm currently contemplating whether I'm going to pursue the creator and help him convert it to the latest Django version... I probably should do it, but my time schedule is cramped already.
I did some more goodies over there but that will be part of another post :p
Syncevolution
Today I installed SyncEvolution on my n900, with this app my last peeve about not being able to sync my calendars has been removed.
So as of now my n900 does everything I need and even more! I also installed and tested bluemaemo which will help me a lot with presentations!
If you have more cool n900 apps to tell me about, do not hesitate to comment!
And before I forget: I bought World of Goo and it totally rocks!!!!
Import wordpress into django-mingus
\\//!
Ok I fixed a small script that added all my wordpress posts to django-mingus.
How did I do it?
1. Export the wordpress posts (tools/export)
2. write import_posts.py like below
import sys
import os
from django.core.management import setup_environ
import settings
from django.template.defaultfilters import slugify
from django_proxy.models import Proxy
import elementtree.ElementTree as ET
from basic.blog.models import Post, Category
tree = ET.parse('/tmp/wordpress.2010-02-13.xml')
for item in tree.findall("channel/item"):
post = Post()
post.title = item.find("title").text
post.slug = item.find("{http://wordpress.org/export/1.0/}post_name").text
post.body = item.find("{http://purl.org/rss/1.0/modules/content/}encoded").text
post.created = item.find("{http://wordpress.org/export/1.0/}post_date").text
post.status = 2
post.publish = post.created
post.save()
categories = item.findall("category")
for c in categories:
try:
cat = Category.objects.get(slug=slugify(c.text))
except:
cat = Category()
cat.title = c.text
cat.slug = slugify(c.text)
cat.save()
post.categories.add(cat)
post.save()
p = Proxy()
p.title = post.title
p.description = post.body_markup
p.pub_date = post.publish
p.active = {'status':2}
p.content_type_id=15
p.object_id = post.id
p.save()
3. put the file in your django-mingus/mingus folder 4. run it with python import_posts.py
llap!
First Post in django-mingus
\\//!
I’ve updated my blog to django-mingus, Simple reason in that as a Django lover I should at least have my own blog in Django.
Django-mingus does already a lot and has been written by reusing as many existing projects as possible. Which is the Django way of working. Also it allows me to write my blogs in reStructuredText and that is awesome!
anyway I’m going to try to import the blogs I wrote on wordpress… let’s hope it works!
FOSDEM Beer Event Boycot
There are people preparing to boycott the beer event just because Google sponsors the free beers. The boycott would be by refusing free beer. If people do not want free beer that is their own choice.
However (and I'm very clear about this) I will not tolerate flyers to be handed out or any lobbying at the event. If I see people doing this I will remove them and refuse entry. Google is our sponsor and we are happy they are! If you really want to boycott stay away from FOSDEM as Google also sponsors the event itself!
The event is a private event and supposed to be free, as stated before FOSDEM has no political nor religious goals and will always refuse to be a part of that.
So In case you are still wondering: People actively pursuing a boycott will be removed!
update: I got contacted by Jan saying he will not continue and I'm happy we can resolve this!
Open source days March 2010
I'll be going and on Saturday I'm going to do a talk about Djagios!
I'm pretty happy about it and can hardly wait....
afk now, just wanted to let you guys know!
Today is a sad day
Yesterday night our veterinarian operated Muffin. She had malformed teeth and when we started noticing something was wrong, we went straight to Stefan Haustraete. He called us this morning at 00:30 to tell us the operation went fine and that I could pick her up this morning. As operating on chinchilla's is not without risks we were now hoping she would start eating again. This morning I tried to feed her every hour but she wouldn't swallow.
At 12:15 Muffin stopped fighting and choose to go to Mulan. Her friend that left us a few years ago. I buried Muffin around 13:00, tears in my eyes and while writing this I have difficulties holding back.
Muffin, I hope you'll find all the raisins you want now. Don't worry we'll miss you and will never forget you. Thanks for letting me be a part of your life!

compiz and fedora12
On my fedora install I enabled compiz, which works correctly. The only problem were the keybindings that weren't responding, no matter to what I set it.
On the compiz irc channel (irc://irc.freenode.net/#compiz) soreau told me to edit the /usr/bin/compiz-gtk file.
You will see in the line where it launches compiz "glib gconf" ond must replace that with ccp. Then it will recognize your settings which need to be configured again!
Now Super+# does switch the desktop! w00t
redmine
For Inuits I installed a redmine. At first it ran with fcgi and apache but Karl Vogel stated that it would run better on Phusion Passenger.
The Passenger install is pretty basic and explained (all the way at the bottom of the page) on the redmine Howto configure Apache to run Redmine, but they forgot to mention that you need to remove the .htaccess file!
Otherwise you get weird errors like this:
Processing ApplicationController#index (for 84.192.162.68 at 2010-01-08 11:19:21) [GET]
ActionController::RoutingError (No route matches "/index.html" with {:method=>:get}):
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/rack/request_handler.rb:92:in `process_request'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/railz/application_spawner.rb:385:in `start_request_handler'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/railz/application_spawner.rb:343:in `handle_spawn_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/utils.rb:184:in `safe_fork'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/railz/application_spawner.rb:341:in `handle_spawn_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:352:in `__send__'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:352:in `main_loop'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:163:in `start'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/railz/application_spawner.rb:209:in `start'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:352:in `__send__'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:352:in `main_loop'
/usr/lib/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
/usr/lib/phusion_passenger/passenger-spawn-server:61
openldap en 3 AD servers
Recently I had to use 3 AD's for the login on one application. The only solution I could think of was to proxy the requests from a local openldap towards the correct AD. Problem lied in that those 3 AD's were on different networks and not linked to each other. Luckily there were no duplicate users on the 3 different AD's
As I had a bit more issues to get it setup here are the steps:
1) create a schema that defines sAmAccountName and add it to slapd.conf:
attributetype ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' EQUALITY caseExactMatch SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
2) Add following config (change for your needs) to slapd.conf
# settings for AD3 database meta suffix "dc=ad3,dc=grouped,dc=all" subordinate uri "ldap://ip3/dc=ad3,dc=grouped,dc=all" suffixmassage "dc=ad3,dc=grouped,dc=all" "ou=users,ou=bleh,dc=blah,dc=be" rewriteEngine on RewriteRule "sAmAccountName=(.*),dc=ad3,dc=grouped,dc=all$" "%1ou=users,ou=bleh,dc=blah,dc=be" ":" idassert-bind bindmethod=simple binddn="dn3" credentials="pw3"
# settings for AD2 database meta suffix "dc=ad2,dc=grouped,dc=all" subordinate uri "ldap://ip2/dc=ad2,dc=grouped,dc=all" suffixmassage "dc=ad2,dc=grouped,dc=all" "ou=users,ou=foo,dc=bar,dc=be" rewriteEngine on RewriteRule "sAmAccountName=(.*)dc=ad2,dc=grouped,dc=all$" "%1ou=users,ou=foo,dc=bar,dc=be" ":" idassert-bind bindmethod=simple binddn="dn2" credentials="pw2"
#settings for AD1 database meta suffix "dc=grouped,dc=all" rootdn "cn=user,dc=grouped,dc=all" rootpw "userpw" uri "ldap://ip1/dc=grouped,dc=all" suffixmassage "dc=grouped,dc=all" "ou=users,ou=fuu,dc=bal" rewriteEngine on RewriteRule "sAmAccountName=(.*)dc=grouped,dc=all$" "%1ou=users,ou=fu,dc=bal" ":" idassert-bind bindmethod=simple binddn="dn1" credentials="pw1"How does this work? Well the last entry (must be the last!!!) is the basedn that you will search with your application and it user the "user" as login. This will be tho top level and underneath the 2 subordinates will reside (dc=ad2|3,dc=grouped,dc=all). If you do not use the subordinate it will not search users in the ad2|3. The rest should be pretty obvious and basic... llap!
kvm and exherbo
Been playing with exherbo and first thing I needed to fix was to have a kvm image with a dvorak keymap layout...
You can find it here: http://sejo.be/exherbo_amd64_dvorak_120909.xz
Abuse at you will, no support will be given!