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!
inuits background
collaboration...
I just wish those collaboration tools like zarafa, zimbra, openexchange,... have a real FULL free version for open source projects... :/
Still looking for a good solution! Anyone ideas?
I need: - calendar collaboration - full sync on symbian/iphone - multi domain - ldap integration - APIs!!!
#devopsdays ranting
\//!
Last week this time I was 100% enjoying Devopsdays. I'm not going to talk about the talks that everyone followed, as you probably have read/heard that multiple times.
What I am going to talk about are the talks I gave (yes yes I have a big ego).
The first thing I initiated was an Open Space about DVCS. I spoke about the advantages, the reasons why you should use it and more importantly the mind switch you need to make. Koen Van Exem (sorry don't have your blog) called DVCS a checkout checkout system. I did not agree with him and in the end I learned from him and how people look at DVCS. Others were also interested and ended up explaining how to incorporate it into a team of devops. So on my todo list I added writing a paper about DVCS and why it's not a checkout checkout system. :p
The second Open Space I did was about Djagios. The talk went pretty well and got a lot of response an it, still have to learn to talk slower! The questions that were asked were interesting and I learned that I really have to work an the multiple server stuff. I got one of the coolest compliments from Lindsay Holmwood about Djagios.
The third thing was a hands-on for Django which was (like all others) unprepared and without slides. I went too fast in there, someone just stopped following as he could not follow (and that was my fault! sorry for that). So another item on the todo list is creating a "screen"play for a hands-on.
Those things were nice but the best thing about the conference was the networking. At one point I ended up explaining how I work when I lead a team and what are my weaknesses and my strengths. I spoke with a lot of people, some gave me their card some not... but all of them were interesting! Thanks for a cool conference!
llap!
Open Source and Support 2
In one of the last blog entries I made I talked about the concept "support" in Open Source and the reason why there isn't really a market for it. In the end I promised I would talk about my view on the legal part of it.
I did have discussions about support and maintenance, in my opinion maintenance is what you need for the daily operating of the product (product stops working because network issue, disk full, someone removed a critical file etc), support is what you need when all else fails when you have figured out that it is actually the product!
However let me be 100% clear this blog is my opinion, I'm not a lawyer I'm just an Open Source user. The reasoning that follows was formed by experiences in the Belgian and Luxembourg(ian?) IT landscape.
So what is my take on it? First let me share an experience: At one of the companies I worked all the operating systems were bought with official Support even the OS ones, at a certain point of time we came across a problem strictly related to operating system X. We had a 500 licenses of the highest support licenses for that operating system. When trying to get support and getting the problem fixed we were continuously running into walls or got standard answers that the problem did not lie with them. We however could disable the error by recompiling the kernel without 1 of the patches they made to a file system. Eventually it got fixed, by a new major release of X, more than a year later.
We could however take legal action but that would probably have lasted until the major version was out... So the support we payed was worth nothing in the end!
What I want to show with this experience is that legal reason for wanting support is a meager reason. How many companies do you know that have actually started a legal action for support reasons? Even in the closed source world that does not happen that much. Each time I found it might be an option the companies all responded with: "It's not worth the effort".
There is another reason why I think that legal options should not be a reasoning for not choosing Open Source solutions. This is for me the biggest reason. if you are owner of a company and your team decides to go with product Y because they believe it's a good product, you pay up for it. When after a while it looks like you are running into a bug and you go talk to your lawyers you will almost always return with empty hands. Why? Licenses! 99% of the commercial products in the world have licenses that protect the companies behind it in case bugs are found. Mostly the license states they should fix the problem but only if they deem the problem severe enough. Most of them actually do fix the bug but on their time and tempo It's even worse 99% of the products are bought through vendors and you are obliged to use them as intermediary party for your problems (like Christophe stated as comment on previous blogs!). If however you wish a feature implemented you might be further from home... All the valid reasons why you should ask support for products are invalid through legal reasoning. Nothing new here, a good thing is made (licensing, support contracts) but it's abused and twisted around until it is rendered unusable.
I have lost all confidence in support contracts and there are only a few products left that actually try to do it the correct way.
Someone stated that finding external knowledge as support for a certain product is hard and yes sometimes it isn't all that easy, but I prefer to search for knowledge a tad longer than to pay for support that isn't support (which is exactly that in most cases).
I rest my case and you can start bashing!
djagios katala (0.1.3) released today!
\\//!
I released katala (0.1.3) today. To know about the feautures/bugfixes please read http://djagios.org/releases.html
About the naming: In the 0.1.x releases I use names from Raymond E. Feist's Rifwars Saga. But I only switch if new real features are added.
llap!
django documentation issues
I'm using Django for Djagios and use Sphinx for the docs and website. However I've been trying to incorporate my documentation as much as possible into the code. So I started using attribute docstrings on my models. Right now it's in a separate file (http://docs.djagios.org/core/models.html).
You'll notice that it's a huge list of attributes. Now the problem lies in Django's way of working with attributes, set me demonstrate the problem:
[python] class Author(models.Model): name = models.CharField(max_length=100) """Docstring for name"""
class Book(models.Model): name = models.CharField(max_length=255) """Another Docstring""" author = models.ForeignKey(Author) """Each book has an Author""" [/python] Will result in a documentation with only the docstrings of Book.author.
painfull!
Open Source and Support.
I often get asked (and so do other Inuits) why Open Source products have no support or where to find "support" for application X?
I'm going to give you an answer but first, humor me and let me describe a real life situation...
In Company X they use application Y as a data source solution because it is widely used and because there are a lot of companies that have certifications on Y. This makes the CEO feel good as he will always find people to support it. There are some minor disadvantages however, it is expensive and the cost to brand/adapt/improve is huge. Not to mention that the biggest knowledge stays external. Advantage is you do not have to search people to support it, they will be probably be kissing your .... the minute you bought it.
Now imagine that you choose application O (:p) that has no official support but you have the sources and you can hire people that can brand/adapt/improve but instead of giving support they teach your team how to work with application O and how to solve 90% of your problems/requests. This means you pay the initial fees for the implementation and training but not the yearly license and expensive initial buy-in. The remaining 10% can be filled up by hiring someone who will then teach your team again how to solve that problem in the future!
If you reach this paragraph and you still like to know why you need support for Open Source applications... start again and read in again!
It's not official support that is important it's the knowledge that is on the market about the product that is important!
update: about legal reasons you will find a followup soon!
