March 12, 2010
Paul Cobbaut
We zijn in 2010!

Deze reeks bevat fotos van 280x180 en 280x140 pixels. Een resolutie van 1024x768 of zeker 800x600 lijkt me een minimum om in 2010 van een foto te spreken.
Dries Buytaert
Druplipet, a Drupal chia pet
And the answer to yesterday's "Eye grow Drupal" question is: Druplipets. Hundreds of cute little Druplipets, your friendly Druplicon chia pet. Druplipet is the newest member of the Acquia and Drupal Gardens family and will be making appearances at industry events this year. It is making its first appearance at SXSW along with a fun contest. Needless to say, Drupal chia pets are fun and powerful stuff!
March 11, 2010
Frank Goossens
Speed up your (WordPress-)site!
Google likes fast! Visitors like fast! So why don’t you go make your site really fast?
Suppose you just bought yourself hosting and you just installed WordPress for blogging or lightweight-CMS-purposes, how can you improve your site’s performance in that case? Easy!
- speed up PHP: use a caching optimizer (I use APC) to significantly speed up PHP performance (don’t bother signing up for shared hosting with a company that doesn’t offer PHP with acceleration).
- cache dynamic output: install the “WP Super Cache” WordPress plugin. Configure and then forget about it; if you create/edit a blogpost, impacted pages are automatically removed from cache.
- optimize CSS and JS: install the “CSS JS booster” WordPress plugin, which (amongst other things) grabs all CSS and JS from WordPress and Plugins and outputs it in one CSS- and one JS-file (some plugins, e.g. Sociable and WordPress Mobile Pack, might need tweaking of the css media-attribute though)
- avoid calling 3rd party javascript: tracking (e.g. Google Analytics, which I removed), widgets (e.g. Twitter badges) or other 3rd party gadgets (e.g. AddToAny, which I removed) can slow down your site’s performance significantly
- optimize images: fire up your favorite photo editor and make that image just a bit smaller, use an acceptable level of compression (I end up between 70 and 80% for JPEG’s, depending on the image) and upload to smushit.com to squeeze out the last optimization-drop (example; I used a 20KB picture from Flickr, resized it to 80%, saved it with 77% compression and smushed it to end up with a mere 6KB).
The impact of a number of these steps can be measured easily; below are the response times of my blog’s homepage (the html including css, js and images) as measured by Pingdom Tool’s Full Page Test.
- default Wordpress (on a Linux VPS with 320Mb RAM memory): 6.5 seconds
- (1) with PHP APC activated: 4.1 seconds
- (2) with WP Super Cache: 3.1 seconds
- (3) with CSS JS Booster: 1.3 seconds
So there you have it, from 6.5 to 1.3 seconds in only 5 easy steps! WordPress specific, but easily applicable to other platforms as well. Now go and make your site fast! And then go and make it even faster!
Possibly related twitterless twaddle:
Leo Eraly
Resizing/Adding VMware disk + Linux guest
You have Linux guest running on top of a (recent) VMware esx and you want to extend one of the disks (Not the root fs) ? You can do it without a reboot/downtime
- Resize the disk on VMware (e.g via virtual center)
- Go to the Linux guest os and run:
echo "1" > /sys/class/scsi_device/your_device/device/rescan
Check with dmesg is the kernel sees the new size. Should show something like this:
SCSI device sda: 209715200 512-byte hdwr sectors (107374 MB)
sda: test WP failed, assume Write Enabled
sda: cache data unavailable
sda: assuming drive cache: write through
sda: detected capacity change from 85899345920 to 107374182400
Now you can use parted or some other tools to resize the partition+filesystem.
Suppose you added a disk to a running VMware instance. No problem
- From within the Linux guest OS run:
echo "- - -" > /sys/class/scsi_host/host0/scan
Check with dmesg if the system sees the new disks
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
0:0:1:0: mptscsih: ioc0: qdepth=32, tagged=1, simple=1, ordered=0, scsi_level=3, cmd_que=1
target0:0:1: Beginning Domain Validation
target0:0:1: Domain Validation skipping write tests
target0:0:1: Ending Domain Validation
target0:0:1: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127)
SCSI device sdb: 1048576000 512-byte hdwr sectors (536871 MB)
sdb: test WP failed, assume Write Enabled
sdb: cache data unavailable
sdb: assuming drive cache: write through
SCSI device sdb: 1048576000 512-byte hdwr sectors (536871 MB)
sdb: test WP failed, assume Write Enabled
sdb: cache data unavailable
sdb: assuming drive cache: write through
sdb: unknown partition table
sd 0:0:1:0: Attached scsi disk sdb
sd 0:0:1:0: Attached scsi generic sg1 type 0
Another interesting (related) read: http://www.vmware.com/pdf/esx3_partition_align.pdf
Dries Buytaert
Eye grow Drupal
Frederic Descamps
openERP spec files
As requested by Pieter, here are the spec files I used to create the openERP rpms for fedora and centos.
As some packages have different names or different user management commands, I need two different spec files for same pakages in each distro.
(only the client can be the same)
I wait for your feedback
| Attachment | Size |
|---|---|
| openerp-server_centos.spec | 3.48 KB |
| openerp-web_centos.spec | 1.74 KB |
| openerp-client_centos.spec | 2.21 KB |
| openerp-server_fedora.spec | 3.63 KB |
| openerp-web_fedora.spec | 2 KB |
| openerp-client_fedora.spec | 2.25 KB |
March 10, 2010
Dries Buytaert
City of Athens using Drupal
The City of Athens has launched a new Drupal site to serve as its official website, along with a Drupal-based site at http://www.breathtakingathens.com/ that provides visitor and tourism information.
Athens is a large city (3.5 million residents and 6 million tourists each year), with a large tourism base due in part to its role in the 2004 Olympic Games. To support the city's needs, the site includes a large calendar of city events, a comprehensive map-based index of city services and interactive tools that allow citizens to access city resources. The site builds on Drupal's multilingual capabilities to provide information in both Greek and English.
March 09, 2010
Kris Buytaert
DevOPS, SecOPS, DBAOps, NetOps
This post is long overdue, as the idea struck me when dicussing with Lefred while preparing his Fosdem talk on Maintaining too big tables
I got triggered finishing this post by Mr BuidlDoctor
Fred has been struggling with a typical DevOps problem resulting in the most unmanageable database setup possible, there's little room for him to move but he managed is way out .. because he is good at his job
It set the mark for me that because in different organisations even the Opsteam is fragmented `in different groups that there also we need to get the Devops idea going.
Typical setups here are the Network guys vs the Platform guys , specially with the growth of virtualization where the network stack doesn't stop at the physcial switchport anymore but the vlan trunks go deep in to the VM's a lot of discussion happens. There where traditionally the story for the network engineer stopped at the switch they now want control much deeper in the infrastructure.
But an even bigger group that needs integration are the security folks, it's no secret that in some organisations the security guys job is to be the bad guy, their default reply to something is NO. Specially to people wanting to drill holes in their architecture .
Patrick wonders if its the specialist vs generalist dillemma, I think it's the Web vs Enterprise IT way of thinking ..
DevOps first gained ground in Web environments , the battle has only started ..
We still have a long way to go before in say a banking environment the Devs and SecOffs' and the DBA's and the Ops are on the same line ... they all need to break the walls of confusion, they all need to come out of their silos. And when you are a generalist in charge of a bunch of these things you have to make sure your tuesday afernoon security persona talks with his other persona's from time to time ... otherwise you are really gonna need those meds :)
Trackback URL for this post:
Frank Goossens
Fix iframe-positioning problem with frameMagic.js
A short followup on my previous post about iframes; as I happen to like simple drop-in solutions, I updated the javascript that handles the ‘blank 2nd page in an iframe bug’ to automagically work upon inclusion in the html.
So if you happen to have problems with the positioning of 2nd (or later) pages in iframes (due to the top part of the iframe not being visible in the ‘viewport’), just upload frameMagic.js to your webserver and add the following to the head of your html to ease your iframe-blues;
<script type="text/javascript" src="path/to/frameMagic.js"></script>
Optionally you can specify which iframes are to be treated this way (excluding the other ones) by doing
<script type="text/javascript">
var fM_conf="iFrame1,iFrame3";
</script>
You can find more information and examples on http://futtta.be/frameMagic.
Possibly related twitterless twaddle:
- 5 tips to tackle the problem with iframes
- HTTP upload MIME type hell
- AddToAny: removing the “spy” from the share-ware
Philip Paeps
Why I gladly suffer jetlag
23:56 JST
The weather today was disgusting. Rain, rain rain. Horizontal sheets of water. Really unpleasant.
This morning, we went to see the giant panda at Ueno Zoo, but it turned out that Ling Ling died of a heart attack a couple of years ago. Perhaps I need to rethink my fondness of Japanese cuisine a bit. Happily though, there were many other animals to cover for the disappointment. Particularly interesting was the aye-aye forest. Most of them asleep, but the one or two who were awake were highly entertaining. There was also a hyperactive Galapagos Tortoise, but of course it can't compete with an astro-chelonian.
Pity about the Panda. There's one in the Berlin Zoo I've consistently failed to visit for the past couple of years though. Maybe next year we should visit Berlin a couple of days early and see about the Panda.
Dinner this evening reminded me of why I don't mind sitting in a small metal tube pointed at this island for all too many hours. We spotted the restaurant by the (very!) cute waitress letting out the previous party. It was a tiny place. Three tables only. The kind of place I gravitate to.
Our starter was sashimi, including a bowl of small living fish. I'm actually not sure which fish they were. It was not ikizukuri, which I've had in Kyoto two years ago, but a bowl of small eelish creatures. I understand other people's sensitivities towards things like that, but really - carrots weren't uprooted by choice either, get over it. Just bite once and the vital problem isn't so vital anymore. Also on the plate were uni and some other tasty things. It was realy, really tasty
This was followed by a fried fish and udon and then cold soba. Yum yum!
All this was of course accompanied by some tasty sake.
The cute waitress disappeared at some point, but the food made up for her absence. We have the address of the place, we'll be sure to visit it again.
I asked Sato-san to ask Them to turn off the rain. It seems They have misunderstood though, and it now started snowing. This is suboptimal. I'll have to spend more time in restaurants. I'll end like the Panda, mark my words!
Geert Vanderkelen
There are only bad habits
Vacation, and the mind is free. Then I scribble something, unleash it upon Earth where only a handful might read it:
Stop for a moment And watch around Hush for a second And hear the sound Think of your past step And watch the road ahead Pick up a fight And try to flight Break your habits Stop living by one's wits Take another curve And make some surf
Thomas Vander Stichele
ski
As we are deluding ourselves here into thinking it’s snowing in Barcelona, I thought it appropriate to post some videos from the past few snowboarding trips.
Coincidentally, this is my first foray into the HTML5 video world – more on that later.
Let’s start with my favorite, the one where I show off how years of gymnastics in my youth help me keep my body in one piece:
Could not use HTML 5 or Flash for playback. You can download the file as MPEG4/H.264 or Ogg Theora file.
(Also notice the cool new orange snowboard pants that I settled on. Snowboard fashion was really boring this year, mostly grey and black only, with some ugly flashy colours as exceptions. I leave it to you to judge whether orange is one of them).
We spent eight full days in Tignes, France, with only about three days of sunny weather, and the rest filled with clouds and snow.
My goal this year was to learn how to do a 180. With the help of an instructor, that’s exactly what I did! Here’s an admittedly simple one – all the good ones are not caught on video.
Could not use HTML 5 or Flash for playback. You can download the file as MPEG4/H.264 or Ogg Theora file.
Here’s a more aggressive one with a bad ending:
Could not use HTML 5 or Flash for playback. You can download the file as MPEG4/H.264 or Ogg Theora file.
A few weeks before our snowboard trip, we also had a business planning weekend which included one day of skiing. Xavier risked life and limb following me around with his iPhone to record this. It’s not the most exciting descent in the world, and he ended up missing my one fall in it, but I was surprised to see how short the whole descent really is if you don’t take any time to stop!
Could not use HTML 5 or Flash for playback. You can download the file as MPEG4/H.264 or Ogg Theora file.
And here are Xavi and me relaxing over cheese fondue and raclette the day before the skiing:

Some notes about the HTML5 video part:
- there is an enormous difference in colour between playing Ogg in Firefox, MP4 in Safari, and MP4 in Quicktime, on the same MacBook. My pants range from a soft orange to a bright red. Something is obviously up!
- To learn about HTML5, I started with Dive into HTML5 Video, then learned about Video for Everybody, some web code that handles all of the stuff I don’t know how to do for me and just makes sure the video can play on Firefox/Chrome/Safari/iPhone/…
- Then I looked for WordPress integration, and found a plugin with a long name that implemented most of Video for Everybody. I modified it a little to do something more sensible for the poster image in case it’s external, and to accept .mp4 as an extension instead of .m4v (which is not suggested by Dive into HTML)
- I configured our transcoding platform to generate the three types of output file needed to support HTML5: the thumbnail, Ogg/Theora/Vorbis, and .mp4 with H264 and AAC.
The embedded video should work fine in Firefox/Safari/Chrome/iPhone/Opera (except in Aitor’s “I plug mplayer into Opera” case), and work fine in Explorer too where it falls back to Flash.
I couldn’t get this to work in Android. 2.0 is rumoured to support the video tag, but so far no dice, and I couldn’t find a single HTML5 video page online that the Android phones over here can play. If you can see these videos embedded in Android, or know what I should to fix them, please do let me know!
March 08, 2010
Philip Van Hoof
The future of the European community, a European Monetary Fund.
I’m worried about the EURO’s M3 if a European version of the IMF (a EMF) is to be installed.
Nonetheless, I think the European community should do it just to strengthen Europe’s economy. I’m not satisfied by Europe’s economic strength: I want it to be undefeatable.
We must not let the IMF solve our problems. Europe might be a political dwarf, but we Europeans should show that we will solve our own problems. We’re an adult composition of cultures with vast amounts of experience. We know how to solve any imaginable problem. And let’s not, in our defeatism, pretend we don’t.
A EMF is a commitment to future member states: Europe often asks them fundamental changes; economic strength is what Europe offers in return. This needs to come at a highest price: Greece will have to fix their deficit problem. Even if their entire population goes on strike. Greece will be an example for countries like my own: Belgium has to fix a serious deficit problem, too.
An EMF comes at an equally high price, and that frightens me a bit: I don’t want the ECB to go as ballistic on money creation as the FED has been last two years. I want the EURO to be the strongest relevant currency mankind has ever created. No matter how insane the rest of the world thinks that ambition is: I believe that keeping the EURO’s M3 in check is a key to creating a wealthy society in Europe.
Politically I want European nations to negotiate more and more often. The European Union is a political dwarf only because finding agreement is hard. But in the long run will our solution be the most negotiated, most tested on this planet.
Together we can deal with anything. That doesn’t mean it’ll be easy; it has never been easy: just seventy years ago we were still killing each other. We’re all guilty of that one way or another. And before that it wasn’t any better. Today, not that many people still care: “it wasn’t me”, right? So stop being a bitch about it, then.
It’s time to let it be. It’s time to start a new European century that will be better. With respect for all European cultures, languages, nations, nationalities, values, borders and interests.
But also a European century with economic responsibilities for each member. It’s our strength: we figured out how to keep our population wealthy: let’s continue doing so in the future.
Dries Buytaert
The history of MySQL AB
MySQL, the open source database product that puts the "M" in LAMP, was created by MySQL AB, a company founded in 1995 in Sweden. In 2008, MySQL AB announced that it had agreed to be acquired by Sun Microsystems for approximately $1 billion.
The story of MySQL AB is pretty amazing, so I unleashed my "inner academic", did some research and compiled a timeline of MySQL AB's history. This timeline is assembled based on different resources online, such as MySQL press releases (example 1) and interviews with MySQL AB executives (example 2, example 3), etc.
Things to add? Let me know in the comments and I'll update the post.
1995
- MySQL AB founded by Michael Widenius (Monty), David Axmark and Allan Larsson in Sweden.
2000
- MySQL goes Open Source and releases software under the terms of the GPL. Revenues dropped 80% as a result, and it took a year to make up for it.
2001
- Mårten Mickos elected CEO at age 38. Mårten was the CEO of a number of Nordic companies before joining MySQL, and comes with a sales and marketing background.
- 2 million active installations.
- Raised series A with undisclosed amount from Scandinavian venture capitalists. Estimated to be around $1 to $2 million.
2002
- MySQL launched US headquarters in addition to Swedish headquarters.
- 3 million active users.
- Ended the year with $6.5 million in revenue with 1,000 paying customers.
2003
- Raised a $19.5 million series B from Benchmark Capital and Index Ventures.
- 4 million active installations and over 30,000 downloads per day.
- Ended the year with $12 million in revenue.
2004
- With the main revenue coming from the OEM dual-licensing model, MySQL decides to move more into the enterprise market and to focus more on recurring revenue from end users rather than one-time licensing fees from their OEM partners.
- Ended the year with $20 million in revenue.
2005
- MySQL launched the MySQL Network modeled after the RedHat Network. The MySQL Network is a subscription service targeted at end users that provides updates, alerts, notifications, and product-level support designed to make it easier for companies to manage hundreds of MySQL servers.
- MySQL 5 ships and includes many new features to go after enterprise users (e.g. stored procedures, triggers, views, cursors, distributed transactions, federated storage engines, etc.)
- Oracle buys Innobase, the 4-person Finnish company behind MySQL's InnoDB storage backend.
- Ended the year with $34 million in revenue based on 3400 customers.
2006
- Mårten Mickos confirms that Oracle tried to buy MySQL. Oracle' CEO Larry Ellison commented: "We've spoken to them, in fact we've spoken to almost everyone. Are we interested? It's a tiny company. I think the revenues from MySQL are between $30 million and $40 million. Oracle's revenue next year is $15 billion."
- Oracle buys Sleepycat, the company that provides MySQL with the Berkeley DB transactional storage engine.
- Mårten Mickos announces that they are making MySQL ready for an IPO in 2008 on an projected $100 million in revenues.
- 8 million active installations.
- MySQL has 320 employees in 25 countries, 70 percent of whom work from home.
- Raised a $18 million Series C based on a rumored valuation north of $300 million.
- MySQL is estimated to have a 33% market share measured in install base and 0.2% market share measured in revenue (the database market was a $15 billion market in 2006).
- Ended the year with $50 million in revenue.
2007
- Ended the year with $75 million in revenue.
2008
- Sun Microsystems acquired MySQL AB for approximately $1 billion.
- Michael Widenius (Monty) and David Axmark, two of MySQL AB's co-founders, begin to criticize Sun publicly and leave Sun shortly after.
2009
- Mårten Mickos leaves Sun and becomes entrepreneur-in-residence at Benchmark Capital. Sun has now lost the business and spiritual leaders that turned MySQL into a success.
- Sun Microsystems and Oracle announced that they have entered into a definitive agreement under which Oracle will acquire Sun common stock for $9.50 per share in cash. The transaction is valued at approximately $7.4 billion.
Frederic Descamps
openERP 5.0.7 for Centos and Fedora
I created rpms for CentOS and Fedora of openERP 5.0.7
I didn't test them yet but you can try them and send me your feedback to improve them.
| Attachment | Size |
|---|---|
| openerp-server-5.0.7-1.noarch.rpm | 14.56 MB |
| openerp-client-5.0.7-1.noarch.rpm | 847.93 KB |
| openerp-web-5.0.7-1.noarch.rpm | 1.52 MB |
| openerp-server-5.0.7-1.fc12.noarch.rpm | 14.32 MB |
| openerp-client-5.0.7-1.fc12.noarch.rpm | 833.84 KB |
| openerp-web-5.0.7-1.fc12.noarch.rpm | 1.48 MB |
Geert Vanderkelen
How do you name the device found in your pocket?
Since a few decades, humanity got more and more cursed and/or blessed with a little device now fitting perfectly in a trousers' pocket or womon's purse. But how do you call it these days? Here are some possibilities which crossed my mind:
- Mobile
- GSM
- Handy (German)
- iPhone
- MP3 player
- Walkman
- PDA
- Alarm
- some kind of berry
- Book
- .. or.. Phone?
I just read my first book using Amazon Kindle on my iPhone. Although odd at first, it was surprisingly pleasant. Old books mind you, like ‘Adventures of Sherlock Holmes’. I still prefer the normal, papered books, but reading using one's phone is sometimes handy (pun intended). Suddenly, my phone turned into a .. a book.
Raf Nijskens
OSD2010: Day 2
Day 2 at the conference was much more interesting then day 1, cause it the talks way more technical.
Only on the lego talk I had some comments: java on embedded devices --> WTF.
Sejo had some issues with his server while doing his presentation on djagios, but nevertheless it was like the best talk I saw.
For both lunch and dinner we ended up in Haiku sushi which was VERY good. For dinner we took a bunch of people with us, cause the lunch was so good. So if you're in Copenhagen and like sushi, that's the place to be!
Philip Paeps
Back in Japan
16:49 JST
Hard to believe another year went by. I got back to Tokyo last Friday via Copenhagen. I tried to burn some expiring miles to upgrade Kristof who is travelling with me to business class too, but it turns out they gave him the upgrade without deducting my miles. Very nice. Conversation made the flight over much less boring than usual.
So far, the food is working out very well. Last night, Sato-san recommended us a yakiniku-style establishment in the vicinity of Shinjuku station. The one with 200 exits and millions of people using them all at once. Despite the daunting location, we found it very easily. And the food was scrumptious, as expected.
Earlier today, we met up with the Italian invasion and went to check if Meiji Shrine was still where it was last year. While taking my annual picture of the enormous wooden structure leading to the shrine, a Dutch voice over my shoulder wanted to know if we were sure we could take pictures. Turned out to be Paul and Cor. Bumping into familiar people by accident in a city the size of Tokyo is a bit unexpected. On the other hand ... can't avoid the Dutch, right? ;-)
Food tonight promises to be interesting again. Watch this space!
Amedee Van Gasse
I Love Lucy
Is het alweer een maand geleden dat ik nog een blogpost gedaan heb? Hmmm, rap mezelf eens een schop onder m'n kont geven. 
Ubuntu Lucid Lynx komt er aan, en ik heb het risico genomen om nu al een upgrade te doen van 9.10 naar 10.04. Hey baby, take a walk on the wild side!
Eventjes dit intokkelen:
sudo do-release-upgrade -den een dik half uur later was de upgrade afgelopen.
In de known issues staat wel het volgende:
The fglrx binary driver for ATI video chipsets does not yet support the X server in Lucid. As a workaround, users should use the open source -ati driver instead. (506656)
Inderdaad, na reboot kreeg ik een waarschuwing van Xorg en werd mij een failsafe scherm voorgeschoteld. Nu heb ik 2 schermen, met verschillende afmetingen, en met een failsafe configuratie tonen ze alletwee hetzelfde beeld. Dat is dus niet de bedoeling.
Mijn oorspronkelijke xorg.conf was aangemaakt met de Catalyst Control Center voor ATI Radeon, fglrx-amdcccle, met vrij veel details (zie bijlage). Ik heb die radicaal verwijderd zodat Xorg automatisch zijn configuratie vaststelt. Beide schermen heb ik met behulp van lxrandr op hun maximale resolutie gezet: 1920x1080 en 1280x1024.
Het was mijn bedoeling om daarna de onderlinge positie van de verschillende schermen in te stellen met grandr, maar daar kreeg ik deze vriendelijke foutmelding:
User set screen size larger than max screen size
Oeps. De wijziging kan niet opgeslagen worden.
Geen probleem, Google is mijn beste vriend en zo kwam ik terecht op http://www.thinkwiki.org/wiki/Xorg_RandR_1.2. Met behulp van xrandr kan je op de console hetzelfde doen als met de gui-tool grandr.
Eerst vraag ik de informatie van mijn beeldschermen op:
amedee@fangorn:~$ xrandr -q Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 3200 x 2048 VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 375mm x 301mm 1280x1024 60.0*+ 75.0 1024x768 75.0 70.1 60.0 800x600 72.2 75.0 60.3 640x480 75.0 72.8 59.9 720x400 70.1 HDMI-0 disconnected (normal left inverted right x axis y axis) DVI-0 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 477mm x 268mm 1920x1080 60.0*+ 60.0 1440x900 59.9 1280x800 59.9 1152x864 75.0 1024x768 70.1 60.0 800x600 60.3 56.2 640x480 66.7 59.9 720x400 70.1
Daarna probeerde ik de schermen in te stellen:
amedee@fangorn:~$ xrandr --output VGA-0 --auto --left-of DVI-0 xrandr: screen cannot be larger than 2048x2048 (desired size 3200x1024)
Hetzelfde probleem dus als met grandr, maar deze keer met wat meer details.
De oplossing was het aanmaken van een eenvoudige /etc/X11/xorg.conf met uitsluitend dit:
Section "Screen"
Identifier "Default Screen"
DefaultDepth 24
SubSection "Display"
Depth 24
# ADD A VIRTUAL LINE TO PROVIDE FOR THE LARGEST SCREENS YOU WILL HOTPLUG
Virtual 3200 2048
EndSubSection
EndSectionNa herstarten van X hadden grandr en xrandr geen probleem meer met de nieuwe ultrabrede desktop. Zie ook de screenshot in bijlage.
Voor de rest werkt Lucy perfect! 
| Bijlage | Grootte |
|---|---|
| 2010-03-08--1268011498_3200x1080_scrot.png | 1.36 MB |
| xorg.conf-backup-100307180651.txt | 2.74 KiB |
| xorg.conf_.txt | 295 bytes |
March 07, 2010
Philip Van Hoof
Emotional (and social) intelligence
It was the dawn of the 1970s, at the height of worldwide student protests against the Vietnam War, and a librarian stationed at a U.S. Information Agency post abroad had received bad news: A student group was threatening to burn down her library.
But the librarian had friends among the group of student activists who made the threat. Her response on first glance might seem either naïve or foolhardy — or both: She invited the group to use the library facilities for some of their meetings.
But she also brought Americans living in the country there to listen to them — and so engineered a dialogue instead of a confrontation.
In doing so, she was capitalizing on her personal relationship with the handful of student leaders she knew well enough to trust — and for them to trust her. The tactic opened new channels of mutual understanding, and it strengthened her friendship with the student leaders. The library was never touched.
(More available at the flash preview widget’s page 21)
– Daniel Goleman, Working With Emotional Intelligence, Competencies of the stars. 1998
In Working with Emotional Intelligence, Daniel Goleman explains several practical methods to improve the social skills of people. Before I bought this book a year or two ago, I read Daniel’s first book Emotional Intelligence. This weekend I finally started reading Working With.
I recommend the section Some Misconceptions. Regretfully ain’t this section available for display in the flash preview widget. Instead of violating copyright laws by typing it down here, I’m recommending to just buy the book.
You can find audiobooks online. The section about misconceptions is at track three. Track five talks about two computer programmers, which is very illustrative for many of my blog’s readers (and possibly myself). I hope you wont illegally download using torrents. Instead, buy the material.
Also very interesting is this lecture by Daniel:
Here you can also find a Authors@Google talk by Daniel Goleman:
What distinguishes Daniel Goleman from old line proponents of positive thinking, however, is his grounding in psychology and neuroscience. Armed with a Ph.D in psychology from Harvard and a first-grade journalism background at the New York Times, Dr. Goleman has authored half a dozen books that explore the physical and chemical workings on the brain and their relationship with what we experience as everyday life.
– Peter Allen, director of Google university, introduction to Daniel Goleman. August 3, 2007
I hope readers of my blog will shun away from pseudo science when it comes to emotional and social intelligence, but instead read and learn from authors like Daniel Goleman. I also (still) recommend the books available at The Moral Brain by for example Dr. Jan Verplaetse.
Dieter Plaetinck
Uzbl, monitoring, AIF talks
I recently did two talks, for which the videos are now online.
- Uzbl lightningtalk @ fosdem 2010
- Open Source Monitoring tools lightning talk @ Kangaroot showcase 2009. This one is password protected. If you were a participant, you should have received the pass
If all goes well, I'll be at ArchCon this summer, where I'll be doing these talks:
- AIF: The Arch Installation Framework
- Uzbl – web interface tools which adhere to the unix philosophy. Whereas in the fosdem talk I had to focus a lot of information into a short timeslot, here I'll elaborate a bit more
We're not sure yet if those talks will get videotaped.
March 06, 2010
Chitlesh GOORAH
Floorplanning with Magic, how hard can that be ?

Kris Buytaert
Better days Arrive when Dev Meet Ops
A couple of weeks a go Brian Profitt pinged me for a chat about Devops , the result of that chat , his article can now be found on the Zenoss blog, it's titled Datacenter Barometer: Better days arrive when dev meets ops
It's a very nice read with some pointers to places regular readers of my blog should already know ;)
So with lots of leading Open Source infrastructure companies on different levels, such as config management (OpsCode and Reductive Labs) , monitoring (Zenoss) , deployment (openQRM, RPath, and obviously Consultancy companies , the upcoming Devops conferences around the planet promise to be a lot of fun ! ;)
Oh, and apparently there is some more on the story on /.
Trackback URL for this post:
Ruben Vermeersch
GSoC Infosession at K.U.Leuven next week

Google Summer of Code 2010
Bram Luyten (mentor at DSpace) and Vincent Verhoeven (2 year as student) will do most of the talking, but as I happen to work there, I (2 times student and now GSoC admin for GNOME) will be present too and talk about doing a GSoC with GNOME. Obviously there will be plenty of time for questions as well.
If you want to be the next GNOME rockstar, this is your chance, come over and have a chat!
More info
Raf Nijskens
OSD2010: Day 1
I have to say we didn't see that much talks at day 1. First of all day 1 is the commercial day and second we had some things to do.
As we, Sejo and I, are now members of the exherbo infra team, we had to introduce us to all exherbo people here and start our contribution to it.
So we ended up in the cafeteria ( best place for wifi access ) setting up some virtual machines for the infrastructure we want to setup and debugging some issues with bind for delegated subdomains.
The only talk we did see, was the nokia talk about QT. After that one we left with a bunch of guys to eat something downtown. We called it a day after some more drinks in the hotel with a few people of the dinner.
Bert de Bruijn
HZ divider effect on timer interrupt overhead
I did a little test today to see what difference that makes when running CentOS5.4 on vSphere. Tests were done with the current 2.6.18-164.11.1.el5 x86_64 kernel in a single vCPU VM. These are the results from my test environment:
- standard settings: HZ=1000: 60 MHz cycles used when idle.
- divider=2: HZ=500: 36 MHz cycles used when idle.
- divider=5: HZ=200: 25 MHz cycles used when idle.
- divider=10: HZ=100: 20 MHz cycles used when idle.
- divider=25: HZ=40: around 10-15 MHz cycles used when idle (results slightly variable, also for higher dividers)
- a nohz "tickless" kernel (I used 2.6.24.7-146.ay, not currently available in RHEL/CentOS by default) used 70 MHz cycles when idle in my test environment. This is a surprise, and I don't have a good explanation (yet) !
On your own machines, you can easily check:
- the current divider setting by looking at the currently active kernel parameters: cat /proc/cmdline . No divider parameter means divider=1, the default.
- the measured timer interrupt rate (close approximation of HZ value): dstat -i -I timer
Summary: before RHEL 5.4, divider=10 was recommended for timer accuracy. This is no longer true, but as I've shown, it still helps lowering the timer interrupt overhead. Don't forget that the ideal divider setting depends on your application: thread wake-up delays can occur in high divider scenario's, and responsiveness could potentially suffer because of that.
March 05, 2010
Philip Van Hoof
Tinymail 1.0!
Tinymail’s co-maintainer Sergio Villar just released Tinymail’s first release.
psst. I have inside information that I might not be allowed to share that 1.2 is being prepared already, and will have bodystructure and envelope summary fetch. And it’ll fetch E-mail body content per requested MIME part, instead of always entire E-mails. Whoohoo!
Wouter Verhelst
Netgear WNDR3700 and OpenWRT
I wanted a machine on which I could easily run OpenWRT. So I'd went to the #openwrt channel on freenode a while back, and just asked for suggestions; people suggested to me that the Netgear WNDR3700 was a good choice, so I ordered that.
I assumed that it would be easy enough to install OpenWRT on this device, but hadn't actually looked into it, planning to wait with that until the device had arrived. Little did I know that the machine actually comes with OpenWRT preinstalled. Now there's an interesting twist.
Now you do need to run some "telnetenable" thingy to be able to get a shell, after which "telnet <device>" gets you a root shell (with no username or password by default). Supposedly you should update that by using "passwd", but they managed to break that in the firmware that comes with the device.
I am missing a few things, though.
root@WNDR3700:/bin# dmesg /bin/ash: dmesg: not found root@WNDR3700:~# uname -a /bin/ash: uname: not found root@WNDR3700:~# hexdump /bin/config |more /bin/ash: less: not found
Unh?
root@WNDR3700:~# alias more='less' vim='vi' root@WNDR3700:~#
Aahh.
And for those who were wondering: no, it does not have any 'vi' installed, either.
Oh well.
The fun thing is, this device has a USB connector, too; so it should be possible to connect a USB storage device, install Debian, and use it as a very potent home server/router/switch/whatever. That'd require me to understand how hostap works, though, which I haven't played with yet. I'm sure I'll figure that bit out -- at some point.
Raf Nijskens
OSD2010: Pre notes
Because of the injury of my colleague Sejo I had to go with him to OpenSourceDays. One of the Exhebo developers, Ingmar, joined us.
As Sejo doesn't like to take a plane, we drove all the way up here. After some detour and two border controls we arrived at Copenhagen after a 13 hour drive. ( Me likes! ) Was a very nice roadtrip!
We did meetup with some people of the organisation and after checking it at the very fine hotel ( A big thanks to the OpenSourceDays organisation ) we went out to dinner. ( First food of the day ). After that we called it a day.
Frank Goossens
electro-jazz-folk: Bibio hartje Pentangle
Ge zou het misschien niet geloven, maar ik luister niet alleen naar Gilles Peterson. Akkoord, de man draait mooie plaatjes en toen ik in de aflevering van afgelopen zondag Ali Farka Touré hoorde, was ik weer totaal overtuigd van het genie van Mr. Brownswood. Maar ik mag niet zo overdrijven, mensen hebben dat niet graag, zo van die blinde idolatrie.
Dus nee, deze blogpost gaat echt niet over Gilles Peterson. Als ik niet in een eindeloze loop naar GP’s Worldwide luister, stem ik dikwijls af op KCRW, een radiostation uit California, USA. En wat ik daar hoorde heeft me blij gemaakt;
Bovenstaand YouTubeken is “Ambivalence Avenue” van Bibio (zie ook z’n myspace pagina), artiestennaam van de Brit Stephen Wilkinson, die iets geloofwaardig met electro en folk doet. Ge moet maar eens rondsnuisteren op YouTube, hij heeft zo nog leuke melodietjes.
Het zal wel iets met het grondwater of met Stonehenge te maken hebben, maar Bibio’s vernieuwingsdrang is niet nieuw. Eind jaren ‘60 begin jaren ‘70 bijvoorbeeld, deden Terry Cox, Bert Jansch, Jacqui McShee, John Renbourn en Danny Thompson samen prachtige dingen met jazz, folk en blues. En nu ik zo geheel toevalligerwijze aan Pentangle (want zo heette hun groep) heb, ben ik ervan overtuigd; Bibio is ook een fan en onderstaande “Light Flight” heeft hem diep geraakt;
Possibly related twitterless twaddle:
- Hollandse trauma’s
- The devil in Ms. Sandoval & Massive Attack (NSFW)
- Gratis te krijg: Google Wave invites
March 04, 2010
Fabian Arrotin
Extending (live) a SR (storage repository) on XenServer 5.5
For my new job I have to learn how to deal with Citrix XenServer (yeah, because of a mixed workload of CentOS domU’s and Windows TSE servers, for which XenServer has been optimized). I liked the fact that I’m directly feeling “like home” , as Citrix XenServer dom0 is based on CentOS (still 5.3 at this time though). One of the things i had to do was to extend a Storage Repository served from an IBM DS3200 through dual HBAs, and using mpp/rdac (the default on XenServer 5.5 when it sees a rdac disk storage backend). Great, I’ve never had problem doing this on plain RHEL or CentOS machines, so after having extended the LUN on the IBM DS3200, I was back on the XenServer side. I always like to read the official documention before doing something (and it’s even faster when you know what you’re searching for) and I found this on the Citrix XenServer documentation : “How to resize a Storage repository after changing the size of an LVM-base storage” . Hmmm, WTF ? Their recipe is : “live migrate the guests, restart the host and proceed for each host”! . No, it has to work without a reboot, we’re not Windows admins, right ? Here is what i did : (that was tested on a test machine !)
We have first to list the current status/size :
[root@xen1 ~]# xe sr-list
uuid ( RO) : c945d1bb-2432-36ac-2766-ebd2bc7f2e81
name-label ( RW): Hardware HBA virtual disk storage
name-description ( RW): Hardware HBA SR [IBM - /dev/sdb]
host ( RO): xen1
type ( RO): lvmohba
content-type ( RO):
[root@xen1 ~]# xe sr-param-list uuid=c945d1bb-2432-36ac-2766-ebd2bc7f2e81|grep physical-size
physical-size ( RO): 85886763008
[root@xen1 ~]# pvscan|grep c945d1bb-2432-36ac-2766-ebd2bc7f2e81
PV /dev/sdb VG VG_XenStorage-c945d1bb-2432-36ac-2766-ebd2bc7f2e81 lvm2 [79.99 GB / 16.12 GB free]
Now we’ll extend with the IBM DS StorageManager script editor : “set logicalDrive ["XenPool1"] addcapacity=139 GB;”
Back on the xen host we have to rescan for the new size (using a MPP device presented as /dev/sdb on the xen host) and confirm with dmesg|tail
[root@xen1 device]# echo 1 >/sys/block/sdb/device/rescan ; dmesg|tail
sdb: detected capacity change from 85899345920 to 235149459456
[root@xen1 device]# pvresize /dev/sdb
Physical volume “/dev/sdb” changed
1 physical volume(s) resized / 0 physical volume(s) not resized
[root@sicxen1 device]# pvscan
PV /dev/sdb VG VG_XenStorage-c945d1bb-2432-36ac-2766-ebd2bc7f2e81 lvm2 [218.99 GB / 155.12 GB free]
PV /dev/sda3 VG VG_XenStorage-9c1e7a2a-2fc0-83eb-3e32-7cea2c9e9d93 lvm2 [60.59 GB / 60.59 GB free]
Total: 2 [279.58 GB] / in use: 2 [279.58 GB] / in no VG: 0 [0 ]
Rescan now that SR :
[root@xen1 device]# xe sr-scan uuid=c945d1bb-2432-36ac-2766-ebd2bc7f2e81
[root@xen1 device]# xe sr-param-list uuid=c945d1bb-2432-36ac-2766-ebd2bc7f2e81|grep physical-size
physical-size ( RO): 235136876544
Done ! and i confirm that the CentOS domU’s were still running after that …
PS : while talking about Citrix XenServer, I have to add that I used only ssh/xe to manage it, as their XenCenter gui app is a Windows only GUI (relying on .Net). But I found several days ago an interesting GPL project: OpenXenCenter, something to keep an eye on as it’s still alpha but quickly involving …
Guy Van Sanden
Microsoft proves it has a sense of humor
You really have to hand it to Microsoft, apart from bad software and a lousy OS, they also produce their fair share of comical material like the Get The Facts campaigns.
But the guys in Redmond are rarely satisfied with any great piece of work, so their humor department produced this very funny article in Computer world.
Their Senior Chief Clown is suggesting to put a general tax on internet-connected computers to pay for the cleanup of botnet/virus/malware infected windows PC.
Very funny and probably not so unrealistic since it would be hugely cheaper to pay for the cleanup costs of botnets than fix an OS that is broken from the ground up, I'll give them that.
So, thanks again to MS for starting out my day on a comical note and pointing out to people once again why they should be running GNU/Linux or FreeBSD or even OS X. Though if everyone did that, Microsoft would probably run out of funds to keep their humor department... That's the one product of theirs actually worth any money.
March 03, 2010
Kris Buytaert
Apparently Devops is not a JobTitle
Devops, Devops, Devops, everybody talks about it but we're still defining it ...
There's so many different interpretations possible for the term Devops , It's automated infrastructure, it's agile infrastucture, it's getting devs and ops closer to eachother, it's briding the gap between devs and ops , it's agile system administration, it's the movement , it's the mindset , it's the spirit.
Lots of people, lots of opinions .. Indeed some people have been doing this kind of work for ages, some claim the cloud is what makes devops become visible (but we've been doing cloud since before the cloud marketeers called it cloud)
Some define the devop as a European based , open source backgrounded , thirtysomething senior sysadmin , or should I say infrastructure architect , originated concept . Others claim it's developers gone sysadmin gone partly developer again ..
But it seems like lots of people claim that Devops is more about the team, not about the unique individual doing a job.
You'll have to agree however that our jobs are significantly different from the system adminstration type jobs you'll find at the average IT department. With that in mind: How shall we call this breed of people cooking up chef stuff, playing the puppeteer or cranking up the CFEngines ?
And no I don't like Devministrator :)
Trackback URL for this post:
Dries Buytaert
Mollom CAPTCHAs are "intelligent"
Every other week or so, someone asks me the following question: How are Mollom CAPTCHAs better than those created by CAPTCHA module?. This is an important question, and understanding it is central to understanding our philosophy with Mollom.
First, when using Mollom in "text analysis" mode, a CAPTCHA is only displayed when Mollom is uncertain about whether a message could be spam. Mollom analyzes the text of comments and combines that analysis with what it knows about the internal reputation of the posters, to determine whether a message is "spammy". Non-spam submissions are accepted without a CAPTCHA, and posts that are certainly spam are rejected automatically. By only presenting a CAPTCHA when necessary, we avoid penalizing normal (non-spamming) users with CAPTCHA challenges. The CAPTCHA module is different in that it does not perform text analysis and therefore must always display a CAPTCHA challenge.
Second, the Mollom module for Drupal has a "CAPTCHA only" mode, which is useful when clients would prefer not to use text analysis, or for when the forms have almost no text to analyze (like Drupal's user registration form). In "CAPTCHA only" mode, the user experience of the Mollom module is very similar to that of the CAPTCHA module -- the user is always prompted to complete a CAPTCHA in order to perform a certain operation. The similarity ends here, however. While the user experience is the same, the actual CAPTCHA generation is not. Mollom CAPTCHAs are "intelligent", in the sense that Mollom tracks the behavior and reputation of IP addresses from all sites using Mollom. A known spammer, operating from a known IP with a poor reputation, won't be able to complete a Mollom CAPTCHA no matter how hard he tries. And, as more users install Mollom, its performance increases as it learns from the additional data. A stand-alone module like CAPTCHA doesn't learn from user behavior, as it simply generates CAPTCHAs without regard to their context and delivery.
This second difference between the Mollom and other CAPTCHA modules is, in fact, huge. When we analyze our server logs, we see that 20% of all correctly completed CAPTCHAs are submitted by known spammers. Spammers don't seem to solve CAPTCHAs algorithmically; instead, they persuade humans to solve CAPTCHAs for them by using botnet infected machines. Two blog posts that detail this process are How to defeat Koobface and Breaking Koobface's CAPTCHA solving process. As spammers evolve and their arsenal of tools become increasingly powerful, CAPTCHA solutions must keep up to remain effective. We believe Mollom's "intelligent CAPTCHA" processing represents a significant benefit from traditional CAPTCHA generation and is one way we'll continue to stay a step ahead in our goal to eliminate posting spam.
Different protection modes in the Drupal module for Mollom.
Frank Goossens
5 tips to tackle the problem with iframes
Iframes have always been frowned upon by web-purists (confession: myself included). But things are never black and white and sometimes iframes can be the best solution for a problem (you could substitute “‘iframes” with “Flash” in the previous 2 sentences, but that’s another discussion). So here are 5 quick tips which might lessen some of the SEO- and usability-problems associated with the use of iframes;
1. Google loves doesn’t hate iframes done right!
Although Google is rather vague about the subject, iframes and SEO do not have to be mutually exclusive. But you will have to make sure it’s your main page that shines in search results, not the iframe-content. The main page (where the iframes are defined) has to be more then a mere placeholder for one or more iframes. Migrate as much information (titles, description and other text) from the iframe-content to your main page, which should describe what goes on in the iframe(s). Use the iframe title-property and insert alternative content between opening and closing iframe-tags. A quick example:
<h2>Calculate your mortgage rate</h2>
<p>Calculating your mortgage rate was never easier; just enter the loan-amount and the duration below!</p>
<iframe src=”http://page.url/iframe-container-page1″ … title=”Calculate your mortgage rate here”>Your browser does not seem to handle frames properly, but you can calculate your mortgage rate <a href=”http://page.url/iframe-container-page1″>here</a></iframe>
2. Own the stage
Avoid visitors viewing the iframe-content out of the context of the main page (e.g. because they followed a link in search-results). Add javascript to the iframe-content to check if it is accessed stand-alone and redirect to the main page (or explain and provide link to the main page) if that is the case.
if(self.location==top.location) top.location.replace('http://contain.er/page-url/here');
3. Don’t draw blanks
When a visitor clicks a link at the bottom of a long page inside an iframe and the target is a shorter page inside the same iframe, then he/she will see a blank page which is … well not very usable, no? The (hackety-hack) solution; tell the browser to scroll to the top of the iframe each time a new page in it is loaded, by calling the function below (with the iframe id as parameter) when the iframe’s onLoad event fires:
<script>
var firstrun = new Object();
function frameMagic(el) {
if (typeof firstrun[el] === ‘undefined’) { firstrun[el]=true; }
else { document.getElementById(el).scrollIntoView(); }
}
</script>
<iframe id=”iframe” onLoad=”frameMagic(‘iframe’);”>
4. Your users really do need scrolling=”auto”!
Help your visitors access all iframe content no matter what configuration they’re using: don’t disable the iframe scrollbars! Disabling them will render the iframe partially inaccessible for some of your users, because the size your iframe-content needs depends on things outside your control such as operating system & versions (e.g. font & screen resolution), browser (e.g. css-implementation) and browser configuration (e.g. non-default font-size). Instead define a reasonable iframe-width and height, make the iframe-content width flexible (fluid) and let the browser decide if a vertical scrollbar is needed.
5. Smart sizing without scrollbars
If you really really really don’t want scrollbars, if you want your iframe to adapt to the size needed by the iframe-content automatically and if you’re not afraid to experiment; there are some nifty javascript-solutions that allow the iframe-content to communicate the required height to the main page. Check out Framemanager (stand-alone, has some issues though) and the JQuery-postmessage iframe-example (which does everything in javascript, which isn’t really ideal from an accessibility point of view).
Conclusion: iframes aren’t necessarily evil (either), but you’ll have to make a small effort to render them somewhat SEO- and user-friendly.
Possibly related twitterless twaddle:
- Fix iframe-positioning problem with frameMagic.js
- 5 valuable Cufón tips
- Embedding YouTube HTML5-video with newTube
Wouter Verhelst
dpkg vs RPM
Thomas blogs about some issues he had with his N900's facebook plugin. This post isn't about that, as I don't use facebook.
But as part of his blog post, he mentions the following:
This reminded me of a pet peeve I have with those people who claim Debian’s packaging system to be far superior to rpm – apparently dpkg doesn’t have any equivalent of rpm -qv which allows you to verify that the files that should be installed by a package are indeed on disk
True, probably because the script would be so trivial:
for i in $(cat /var/lib/dpkg/info/nbd-client.list) do [ -f "$i" -o -d "$i" ] || echo "$i missing" done
There, that wasn't hard, was it?
Now I'm not sure whether rpm's -qv option actually checks the checksum of the files, too. If it does that, then the semantically similar way would be:
(cd / && md5sum -c var/lib/dpkg/info/nbd-client.md5sums)
... except that MD5 is totally and utterly useless these days, and that we should be changing to something else. And that md5sums is an optional feature, provided by some, but not all, packages. And it may also be that maemo packages don't have md5sums (which would make sense). But, anyway.
March 02, 2010
Dries Buytaert
Open Source in the Enterprise and in the Cloud
In a couple of weeks, I'll participate in a panel discussion on The Future of Open Source in Business. In preparation for that discussion, I figured I'd write down my current thoughts and solicit some feedback. I'll talk about two important trends relevant for the future of Open Source, but there are certainly more.
First, Open Source adoption in the enterprise is trending at an incredible rate -- Drupal adoption has grown a lot in 2009 but we saw by far the biggest relative growth in the enterprise. Fueling this movement is the notion that Open Source options present an innovative, economically friendly and more secure alternative to their costly proprietary counterparts. Second, Cloud Computing is a transformational movement in that it enables continual innovation and updating - not to mention a highly expandable infrastructure that will reduce the burden on your IT team.
Two years ago, when starting Acquia, we predicted this would happen so it is no surprise that Acquia's strategy is closely aligned with those two trends: Drupal Gardens, Acquia Hosting and Acquia Search are all built on Open Source tools and delivered as Software as a Service in the cloud. Combining Open Source tools and Cloud Computing makes for the perfect storm for success. It provides real value to end-users and it enables companies to monetize Open Source. It creates a win-win situation.
At the same time, I think we have an opportunity to go beyond that, and to redefine the Software as a Service model based on Open Source values, almost exactly like we started doing 10+ years ago with off-the-shelf software. Almost all Software as a Service providers employ a proprietary model -- they might allow you to export your data, but they usually don't allow you to export their underlying code. While a lot of these services might be built on Open Source components, they have a lot more in common with proprietary software vendors than Open Source projects or companies.
There is room for Open Source companies to disrupt this model, and it is probably not something that can be done without the help of Open Source companies. Drupal Gardens provides a good example of this model.
For example, users of Drupal Gardens can help improve Drupal Gardens, simply by contributing to Drupal. By staying close to the Open Source project, everyone can help shape the service. Along the same lines, we want people to be able to export their Drupal Gardens site -- the code, the theme and data -- and move of the platform to any Drupal hosting environment. By doing so, we provide people an easy on-ramp but we allow them to grow beyond the capabilities of Drupal Gardens without locking them in.
It is Software as a Service done right -- it will offer enterprises a much more secure and low-cost alternative to proprietary counterparts and provides many Open Source projects the opportunity to have a much bigger reach. It creates a triple win scenario -- for the customer, for the Open Source project and the Open Source company -- in a way that wasn't really apparent five years ago. At least not to me.
Have you taken the 2010 Future of Open Source Survey yet? If not, please take a few moments to share your thoughts on where you think Open Source is headed.
Matt Casters
Kettle log text capturing
Dear Kettle fans,
As you know, Kettle 4.0 received a new logging framework not so long ago. It allows us to know exactly where a log-line comes from, even in complex ETL situations.
So when codek asked to know the cause of errors in a job, it was quite easy to implement this.
Here is a single screen shot that should explain it all (click to open image):
Until next time!
Matt
Philip Van Hoof
An ode to our testers
You know about those guys that use your software against huge datasets like their entire filesystem, with thousands of files?
We do. His name is Tshepang Lekhonkhobe and we owe him a few beers for reporting to us many scalability issues.
Today we found and fixed such a scalability issue: the update query to reset the availability of file resources (this is for support for removable media) was causing at least a linear increase of VmRss usage per amount of file resources. For Tshepang’s situation that meant 600 MB of VmRss. Jürg reduced this to 30 MB of peak VmRss in the same use-case, and a performance improvement from minutes to a second or two, three. Without memory fragmentation as glibc is returning almost all of the VmRss back to the kernel.
Thursday is our usual release day. I invite all of the 0.7 pioneers to test us with your huge filesystems, just like Tshepang always does.
So long and thanks for all the testing, Tshepang! I’m glad we finally found it.
Litrik De Roy
Afvalkalenders.be
Earlier this year I started collecting all afvalkalenders for 2010 that people have created and shared in Google Calendar on afvalkalenders.be. Currently the site lists 43 calenders.
So far the response I have received about this small crowd sourcing project has been very positive.
If you have created an afvalkalender in Google Calendar for your town let me know so I can add it to the list.
Wouter Verhelst
Geekdinner: weinig inschrijvingen
Het ziet er naar uit dat het een 'klein' geekdinner gaat worden de komende week; tot dusver zijn er maar 13 inschrijvingen.
Als er nog mensen zijn die wel willen komen maar zich nog niet hebben ingeschreven, laat het dan zo snel mogelijk weten -- morgen (enfin, ondertussen al 'straks') moet ik immers de definitieve aantallen doorgeven.
Voor zij die gaan komen: tot donderdag,
March 01, 2010
Thomas Vander Stichele
N900 Facebook plugin problems
One of the things I really love about my N900 is the ease with which I could share photos. You take the picture, click a few buttons, and there it is, your photo on flickr on Facebook. I’m sure other devices offer a similar experience, but this really is the first time I’ve been able to appreciate
Since a few weeks my Facebook sharing has stopped working. At first it only seemed like a missing icon and broken config. But I had a really really hard time to figure out the problem, much harder than it should have been for a mostly open platform. Of course, for some reason this sharing part is closed, which doesn’t make much sense at all. What secrets can Nokia possibly have invested in some code that pushes photos to flickr or Facebook.
So, as part of the debugging process, over various weeks, I’ve seen and done the following:
- When sharing through the Facebook account, the little ‘I’m sharing’ icon that pops up in the status area went away almost immediately, compared to sharing through Flickr
- Sharing stores outgoing stuff in $HOME/.sharing/outbox – files were piling up there
- At first I thought I had some login details problems, so I went to Settings > Sharing accounts and clicked on the Facebook account. That didn’t do anything at all, no dialog popped up. Since the Delete button is in that popup, I also couldn’t use the UI to recreate my Facebook sharing account.
- I started learning about where the N900 stores account info, following some dubious posts until I found out about signond, a daemon running as root that stores login information. This daemon uses the file $HOME/.signon/user_db.xml (You get no points at all for correctly guessing whether this file contains XML data, but please do go look for yourself!)
- I moved this file around to force recreation of data, which seemed to work after a reboot, since my Flickr data was now gone, as well as the Facebook one. I was able to click Flickr in Settings > Sharing accounts, but the Facebook still didn’t pop up a dialog. At least this narrows down the problem I should solve for now: I can’t even configure the service from scratch even when deleted, so let’s focus on that first.
- I reinstalled the package that contained the facebook sharing plugin. This restored the icon, but the popup still didn’t work.
- Usually I would just strace the relevant binary, but I considered the friction too high at first since there is no strace in fremantle, and I would have to set up a chroot for this.
- But what binary ? I didn’t even know what program handles the settings. After comparing a few ps listings, I figured out the program was controlpanel.
- Interestingly, you can just ssh into the device as the user, and execute controlpanel, and it will pop up the binary on the phone (even with X forwarding), which I didn’t expect, but is fine by me. This gave me a message like “sharing-accountstore.c 516 sharing_account_store_add_account Last added id exists: 35
” which I wrongly took to mean that adding a facebook account was failing because it was still somehow present in the config. This is when I figured out that this code is closed, because I wasn’t able to figure out where to get accountstore.c and look at what it is doing. I’m pretty sure it’s not storing its settings in gconf (at least I couldn’t find anything related to facebook sharing when walking the gconf tree), and it doesn’t seem to be in any dot folders in my home dir. Anyone know ? - Finally, I gave up, set up the chroot, and straced that binary. And I should have known this would have led me to the right solution. Among all the noise, there were some calls trying to open a library. It’s normal for a bunch of calls to fail as it searches the whole LD_LIBRARY_PATH, but usually the last one of those in an strace log should succeed. But they weren’t; apparently /usr/lib/libfacebookcommon.so.0 was missing!
- Looking for that file on disk confirmed that it wasn’t there, and doing dpkg -L feedservice-plugin-fb-common showed that it should in fact be there. This reminded me of a pet peeve I have with those people who claim Debian’s packaging system to be far superior to rpm – apparently dpkg doesn’t have any equivalent of rpm -qv which allows you to verify that the files that should be installed by a package are indeed on disk. This would have saved me *a lot* of time figuring out this problem, and is typically the first thing I do on an rpm-based system where things act funny.
- With my first real clue in hand, I used ldd to verify that indeed there were libraries missing:
ldd -r /usr/lib/sharing/plugins/libfacebooksharingservice.so
…
undefined symbol: facebook_credentials_free (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: facebook_request_reset (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: network_utils_post_multipart_with_progress (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: facebook_get_email (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: facebook_login (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: generate_signature (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: facebook_store_credentials_to_gconf (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: facebook_request_new (/usr/lib/sharing/plugins/libfacebooksharingservice.so)
undefined symbol: facebook_request_free (/usr/lib/sharing/plugins/libfacebooksharingservice.so) - Using dpkg -S to figure out what package this belonged to, I apt-get remove’d that package, then reinstalled it and dependencies.
- Still didn’t work, so repeated the process, this time libfeeserviceutils.so.0 was missing, so reinstall feedservice-utils and dependencies.
And finally! The sharing plugin can again be configured, and all is well. But this experience was needlessly painful…
For the record, I didn’t tinker with any package files by hand (anyone who knows me a little knows my stance on packages and /usr), and I have no idea what I did to get into a situation where files that should be on disk aren’t. And I’m worried about what else is missing, so if anyone can point me to some resources explaining how to verify installed package manifests, that would be awesome.
Philip Van Hoof
Invisible costs
We would rather suffer the visible costs of a few bad decisions than incur the many invisible costs that come from decisions made too slowly - or not at all - because of a stifling bureaucracy.
– Letter by Warren E. Buffett to the shareholders of Berkshire, February 26, 2010
Philippe Delodder
Belgacom Speed Upgrade: Speedtest
February 28, 2010
Serge van Ginderachter
La vie s’en va de nous
Soms.
La vie s’en va de nous
Maar eigenlijk te vaak.
Bert de Bruijn
Volkswagen UHV bluetooth touch adapter & its problems
But progress will have its way, no matter what happens. So in comes the "bluetooth touch adapter". Instead of a phone-specific adapter, this is a small touchscreen device that slots into the UHV dashboard mount. Connecting a phone is very different now:
- the Bluetooth Touch Adapter connects to the "VW UHV" device via bluetooth
- the phone connects to "Touch Adapter" device, also via bluetooth
But it's not just good news: because the audio link from phone to car isn't direct, non-call audio functions don't work. The phone thinks it'll receive audio through BT, so doesn't use its own mic, but there's no BT audio feed because the BT Touch Adapter knows there's no call going on. And maybe worse: from time to time, I've experienced connection problems in step 1: the Bluetooth Touch Adapter fails to connect with VW UHV. With the limited UI of the device, this is almost impossible to troubleshoot. This seems to happen mostly after I've unlocked the car, and then closed it without ever turning on the ignition. On opening and starting the car minutes later, the connection failure happens.
the only remedy I've found is to turn on the ignition, "open" the VW UHV for new connections (press the phone button on the steering wheel twice), and keep doing that (every 5 to 10 seconds) until the unit connects. If it still fails, keep "opening" the VW UHV unit and use the "Settings", "Bluetooth", "Connect UHV" function on the BT Touch Adapter to retry. I'm hoping this will be fixed in a firmware update some day...
February 27, 2010
Mario Verbelen
my new cheap green backup solution
This is my new backup solution
A sheevaplug computer running debian
And as storage an ICYBOX with a 500G sata disk
you don't get high bandwidths but for a backup storage this rules for home usage
At first I was trying to backup with rsync over ssh with blowfish
But this was to slow, I just get 50mbit
(ssh blowfish encryption was to heavy for this 1,2GHz arm processor)
so I decided to use rsync deamon
My backup is syncing now at 100mbit ;)
(I now rsync is not a backup, but I just want a copy in case of crash)
I also found that pulling the usb plug shuts down the harddisk
so I will check later to unload the usb after the backup has finished and when I got the time
It could save power

Thomas Vander Stichele
Book: 33 1/3 – Pixies – Doolittle
My latest Amazon order arrived at work. One of the books was the Doolittle book in the 33 1/3 series. For those who don’t know, this series dissects an album track by track and tells stories about the recording. The first one I read was on Afghan Whigs’s “Gentlemen”, for obvious reasons.
These books tend to be a little top-heavy, saying less about the band and more about the reviewer, and they can be hit-and-miss because a lot depends on the actual writer/journalist. It seems the band remembers little about making the album. Two things stick after reading this one:
- Apparently I’m as prone to mishearing lyrics as anyone else. This book tells me that the first lines of La La Love You are “Shake your butt / Not too hard”. All my life I’ve been hearing that as “Take the bus! Not the car!” Somehow I’m going to keep preferring mine, although I have to admit shake your butt makes more sense in the context of the song.
- If you’ re doing a 100+ page book on Doolittle, how on earth do you manage to not talk at all about the hidden mini-album in Doolittle that you get when you play the tracks as numbered in the CD booklet ? Gouge away/Mr. Grieves/Dead/Wave of Mutilation/Tame/Hey/I Bleed/Monkey gone to Heaven tell a very different story than the main album. If there’s one question I’d ask mr. Thompson about Doolittle, it would have been about this one…
The book was written before the recent Doolittle tour, as it mentions Silver has never been played live by the band. Which I’m going to assume was correct before that tour since I have no bootleg evidence to the contrary…
February 26, 2010
Elise Huard
Choosing an authorization framework for rails
At my main customer’s we needed to choose an authorization framework. This is for a complex enterprise application, and requiring fine-grained authorization on:
- roles
- actions
- model: most users can only access their own objects.
I’d had a look around, and after some digging ended up looking at 3 plugins, Declarative Authorization, grant and cancan.
Grant fell off almost immediately. It centered all authorization in the model, and I felt it was a bit too lightweight for our application.
Then I looked at declarative authorization and cancan.
At first sight, declarative authorization looked like a winner: I’m a believer in open source natural selection, and with about 650 people watching the plugin on github, it looked like a lot of people had found it a good fit. It’s also been lovingly polished since september 2008, so the kinks have probably been ironed out.
I cloned both plugins, and looked at the code and documentation.
Cancan is partly based on declarative_authorization. What struck me at first sight, is how simple cancan looked. Much less code, much less meta-monkey-magic. And a very friendly DSL and documentation.
And get this: I ran reek on both plugins (it’s a hobby of mine). And cancan came out practically clean ! That’s like having an alien in the living room ! It *never* happens ! Run reek on your own code, just for laughs, and you’ll see what I mean.
So we ended up choosing cancan, although declarative_authorization might have more features out of the box, we feel we’ll be able to extend cancan with much more ease, if at all necessary. It feels better to have a clean, fathomable codebase, than a larger engine. I’m aware that cancan has the unfair advantage of having learned from its predecessors, and kudos to the maintainers of declarative_authorization for having inspired others.
Note: I’m aware there are quite a few other plugins out there. If you found another one and you’re very happy about it, please share.

Serge van Ginderachter
First impression of comparative tests on virtualisation technologies
I’m working on doing some tests to compare different virtualisation technologies. Whilst those tests are far from finished, I got some numbers this afternoon who give a quick first impression.
What is being tested here?
- Running some specific processes
- Timing how long they run
- On a virtual guest (1 for now) on different platforms
Host environment?
Five servers, each running a different virtualisation platform, running on a machine with 4 quad cores Intel(R) Xeon(R) CPU E5520 @ 2.27GHz with 12GB RAM. One 160GB SAS disk per server, of which around 120GB is used for the guest disks (LVM).
The 5 different platforms are:
- VMWare ESXi 4.0
- Red Hat / CentOS 5.4 with Xen 3.0
- Red Hat / CentOS 5.4 with KVM 83
- Debian Lenny with Xen 3.2
- Ubuntu Karmic with KVM 0.11
Guest environment?
All the guests are running Debian Lenny, in a vm with 512M Ram, with 2 virtual processors. And a file system of around 6GB. Virtual disks are LVM logical volumes on disk on the server host. Xen guest are runnig in paravirtualisation mode with the domU kernel available in Lenny, KVM guests are configured with virtio hardware. VMWare emulates Intel(R) PRO/1000.
There are 20 clients deployed on each server. So far I ran tests on 1 concurrent guest only. The dual concurrent client tests are running whils I write this, I’ll hope the scripts will keep running during the weekend
A quick peek in the test logs showed me following numbers. The items should speak for themselves, tthey are noted as
platform-test=time_in_seconds_to_run
A smaller number means better performance.
Lame
Converting 10 wave files to mp3
debxen-lame=44
ubukvm-lame=45
vmware-lame=45
rhtkvm-lame=47
rhtxen-lame=53
Unzipping a kernel tarball
debxen-zip=78
vmware-zip=78
ubukvm-zip=81
rhtkvm-zip=83
rhtxen-zip=94
Untarring the tar archive
vmware-untar=25
debxen-untar=27
rhtxen-untar=27
ubukvm-untar=30
rhtkvm-untar=40
Compiling that kernel
ubukvm-kernelcompile=3789
vmware-kernelcompile=3879
rhtkvm-kernelcompile=3918
debxen-kernelcompile=3999
rhtxen-kernelcompile=4906
The biggest thing to note would be a lesser performance of Redhat + Xen when it comes to processor load, but keep in mind that this is an older version of Xen. On the other hand The respective older version of KVM on Red hat plays rhather well. I expect Xen to perform better when it comes to disk access.
There are other tests being processed also (iperf, iozone, tbench, dbench) but I can’t give a quick overview of those as the time to run is irrelevant for those.
More to come.
Ruben Vermeersch
Hackfests
Could we please have a GNOME usability hackfest every year or so? The magic that comes out of those is awesome.
That will be all.
Joeri Poesen
Drupal.org Redesign Sprint II
Paris, France
Local project organizer
Frank Goossens
Hollandse trauma’s
Ik ben een Hollander. Daar, nu weet ge het allemaal; Getuige van Jehova, gewetensbezwaarde en nu ook nog Hollander! Het is allemaal de fout van de vrouwen in m’n stamboom. Zowel m’n moeder als grootmoeder langs vaders kant kwamen van over de grens, uit gehuchtjes in Zeeuws-Vlaanderen. Zeeuws-Vlaanderen, alsof dat iets zou goedmaken. Niet dus, zeker niet voor de klasgenootjes in de Gemeentelijke Lagere School Blaasveld (Willebroek). Want ook al was m’n vader Belg en hadden zowel m’n moeder als m’n grootmoeder de nationaliteit verworven door met zo’n domme Belg te trouwen, dan nog vonden die speelplaats-treiteraars dat ik een Hollander was. Ik had het vuile plaatselijke dialect immers niet onder de knie en sprak iets wat toen nog ABN heette en dat hen ongetwijfeld als “Algemeen Bekakt Nederlands” in de oren klonk. Dus ik was een vuile Hollander.
Dat alles om maar te zeggen dat ik recht van spreken heb, als het over Hollandse taalgevoeligheden gaat. Want ik heb me gisteren ongelofelijk zitten ergeren. M’n vrouw heeft me verplicht om “De eenzaamheid van de priemgetallen” van Paolo Giordano te lezen. Aangezien Paolo een Italiaan is, heeft hij die titel niet zelf in het het Nederlands gezet. Nee, Mieke Geuzebroek en Pietha De Voogd hebben dat voor hem vertaald, daarin aangemoedigd door het (Nederlands) Fonds voor de Letteren. En Mieke en Pietha, dat zijn dus Hollandse meiden. Echte Nederlanders, geen drie-kwartjes zoals ik. Dat leid ik alleszins af uit hun bijwijlen tenenkrullende vertaling. Want Mieke en Pietha; als Alice “in haar broek poept” en een pagina later “de gore derrie naar beneden voelt lopen”, dan knapt er iets in mijn getraumatiseerd taalgevoel-orgaan. Poepen is lekker, derrie bestaat niet en Goor is een voetballer of wielrenner, ik wil ervan af zijn. En als Mattia naar een partijtje mag in hoofdstuk 2, gaat dat dan over D66 of de ChristenUnie?
Versta me niet verkeerd, het is een mooi boek -beetje dramatisch misschien- en de vertaling leest verder best wel vlot. Maar ik wou dat ik een Italiaan was, of tenminste voldoende Italiaans verstond om het origineel te lezen. Of dat ik dan toch een echte Hollander was, want dan zou ik ook niks gemerkt hebben?
February 25, 2010
Thomas Vander Stichele
Our little platform is streaming the big Lawrence Lessig tonight
I’ve seen other people blog about it as well, so I shouldn’t stay behind – obviously it’s noteworthy.
In a good seven hours, our platform will be streaming a talk by the eminent Mr. Lessig from Harvard. Apparently the stream is going to be projected in various locations around the world as well where people will gather to follow the speech. While we’re only the technological medium and hence a small piece in making this possible, it still makes me proud to be part of this chain. It’s moments like these participating in a chain of openness that make me think business and technology can be used for the greater good.
For more info, see our blog. I’ll be tuning in after landing in Brussels at midnight tonight!
Philip Van Hoof
The Euro skeptics and pro Europeans are finally united in an opinion!
We both agree that Nigel Farage is a complete moron.
Perhaps we should put a damp rag like the one he mentions in his mouth next time he opens it?
Nigel Farage, you’re an disgrace to yourself. The European parliament is no place for personal attacks, and you aren’t fit to carry the title Member of the European Parliament. Please keep the honour to yourself and resign.
Every sensible person outside of the U.K. thinks you should. Even the Euro skeptics do. You’re an embarrassment for your country and its culture, so I hope for the people in the U.K. that they’ll kick you out of politics.
I fear you’re just playing the populist card, and that you’ll even get votes for this from other morons.
Philip Paeps
Pairing Bluetooth headset
I am the proud owner of a Bluetooth headset. My laptop also speaks Bluetooth. Getting the two of them to talk to each other is less than obvious though. There seems to be plenty of documentation for ancient BlueZ versions, but none for more recent ones.
For future reference.
First put the device in pairing mode
Now use a cleverly hidden Python script (which depends on dbus and gobject, of all things) to do the pairing. I have no idea how I stumbled into this, and the only way to figure out what it does was reading it through. Highly intuitive!
# python /usr/share/doc/bluez/examples/simple-agent hci0 XX:XX:XX:XX:XX:XX
The good news is, once the thing has been paired, it Just Works[tm]:
# mplayer -ao alsa:device=bluetooth foo.ogg
I have Opinions on dbus.
Pieter Colpaert
Free and Open Source Software

Dries Buytaert
Drupal 7 status update and release plan
Drupal 7 is moving along nicely, and is becoming increasingly stable. We just released a second alpha release, fixing a number of critical bugs, following our initial alpha release in January. Alpha releases are to give Drupalistas something to download and test, so they can report and help fix bugs.
When will we switch to betas? We will switch to betas when the upgrade path from Drupal 6 to Drupal 7 is working. Once we hit beta, we will become increasingly strict about accepting any more changes and we'll also commit to making HEAD to HEAD upgrades work.
Finally, we'll start rolling release candidates once the number of critical bugs is zero (or close to zero). To help us focus on critical bugs, we're working on adding a 'major' severity level to our ticketing system, making the options 'critical', 'major', 'normal' and 'minor'. 'Major' bugs would be really bad, but not necessarily block a release. For example, bugs that don't prevent Drupal from working, or that only affect a fraction of the Drupal population would be prioritized for fixing in follow-up releases. Critical bugs are those that badly break Drupal, or that are a major regression compared to Drupal 6.
Where are we right now? There are currently about 150 remaining bugs that need to be fixed. These bugs are real, and not always trivial to fix because a lot of background and domain expertise can be required. As a result, some bug reports seemingly depend on one or two people to fix them. Therefore, it is very important that we encourage and mentor new people to help fix some of these difficult bugs. I'd like to ask all sub-system maintainers to watch their sub-system's issue queues closely (like Moshe did recently), and to provide the leadership to help us make progress. If we do and we work hard, I think we can still release Drupal 7 in Q2. If not, I'm worried that Drupal 7 might not be released until Q3.
In other words, let's all try to put some extra time and effort into fixing the remaining bugs, and let's start to be laser-focused on the critical ones. It would make for quite a party if we could roll a first release candidate in time for DrupalCon San Francisco on April 19th. I would have to sing on stage from happiness, or something. Thanks!
February 24, 2010
Timothy Parez
Creating a custom protocol dissector for Wireshark
Wireshark is an open source network protocol analyzer and quite probably the best
of its kind. If you are a developer working with a lot of networking code, it's a must have!
It can recognize many standard protocols such as POP3, NTP, Jabber, etc.
Most of the development I do is related to communicating with hardware devices
using TCP/IP. These devices implement their own communication protocol unknown to
Wireshark. While I can still use Wireshark to monitor the raw data, I thought it would
be much better if I could actually tell it what my data is so it can be displayed properly.
Litrik De Roy
Slow Ubuntu 9.10 on a Dell Inspiron 6400
After upgrading a Dell Inspiron 6400 laptop from Ubuntu 9.04 to 9.10 the machine was so slow it was barely usable. top was showing a load average of 7 after opening Firefox or OpenOffice.
Strangely no command was using more than 10% of the CPU, memory consumption seemed pretty normal and there was barely any disk activity. But the system was painfully slow.
After a couple of hours I decided to follow some obscure forum post (link lost, sorry) and I deleted the xorg.conf file and rebooted the machine. After the reboot the machine was as snappy as before the upgrade.
Weird.
Technorati Tags: 



