Nederlandstalige Planet

Vanaf heden is er ook een Nederlandstalige Planet Fellowship. Ik wil hier zelf in deze kikkertaal gaan posten over vrije software en de FSFE en hoop dat anderen dit voorbeeld volgen. Ik zie met name uit naar het overmatig gebruik maken van de lange samentrekkingen die de spraak in de lage landen rijk is.

Je kunt op je Fellowship blog je posts indelen onder de categorie “Dutch” om ze op deze planet terug te zien. Je moet natuurlijk wel eerst je blog aanmelden aan de planet.

Hasta luego.

Demanding Free Software in a business context

People who hire companies or freelance programmers to write code for them should demand a Free Software license. This time not even because of ideology, or the higher goals of Software Freedom. Nope, just because it makes sound business sense and saves a lot of money!

There are many non-IT companies who pay other self-employed programmers, or companies to program for them. Most of the time they have some sort of issue, or specific need that’s holding back their normal business operation as it is. So they decide to throw some money at it and voilà, the problem is solved with some code tailored to their need, sitting cozily on their server. Oblivious of the code’s license, the customer is happy with another fixed “problem”, not aware of the future issues this approach might impel.

Let me describe a typical work day:
A customer rings me up. After months and months of neglecting their webshop, they noticed that it’s time to do something about the situation. Their Magento site needs to be upgraded from version 1.3 to 1.6 and since there’s no “click here to upgrade” button in the backend, they need me to do the job. “No problemo”, I say. “I’ll migrate your webshop to my development server and upgrade it bit by bit. Any issues, or installed modules that resist the upgrade will present themselves easily and they’ll be fixed before you can pronounce ‘gelegenheidsgorgelaar’. After this I’ll just migrate everything back, making sure no orders and sheep are left behind and Bob’s your uncle.”

I wish it was this easy, because more often than not I find myself held back by proprietary Magento modules that simply refuse upgrading. Sometimes these have been purchased by the customer, looking for a quick solution, but quite often they have been coded by a former contractor, to tailor fit their situation. Finding proprietary software on top of a Free Software stack can be very annoying, but one situation, which in my view could be fixed easily, strikes me the most. When people hire programmers they rarely inquire after the license the code will be under. Most of the time the resulting code (in case of scripting languages like PHP) will mention no specific license at all, which means it’s thrown in the bottomless pit called “All rights reserved”. This is a shame, because when you need someone else to code on your software stack in the future they can’t build upon this code. If the code breaks when you upgrade your site it is rendered utterly useless, and in the meantime you’ve literally flushed hundreds of euros down the drain, because all the work needs to be done again, from scratch. It’s like getting a contractor to build you a new bathroom, only to find you’ll have to break it down completely when he’s unavailable to fix your leaky bathtub a year later.

So the next time you get someone to code for your, demand they use a Free Software license. You’ll find that most web developers are actually happy to do so. Most of them are using Free Software anyway, and you’ll find that many of their websites actually promote the use of Open Source by sporting the Open Source Initiative logo (most of the time not knowing where the image came from). Often they recommend the use of WordPress, Drupal, Magento, you name it. It’s of great added value to web developers to use FLOSS, and the business owners could even help them further by demanding their entire IT-stack is Free Software, head to toe. This will create a beautiful world for webdevelopers like me. Websites will be easy to upgrade and change, it will be more easy to swap contractors, and business owners will have more money, aka time, to watch their little children blow bubbles!

Post scriptum:
While I’m at it I also like to take the opportunity to recommend a Free Software license to use for these endeavors. I would advice demanding the use of the GNU Affero General Public License. By using this license you not only ensure that the contractor after your current contractor will be able to do her work properly, but also the people after that. You’ll make absolutely sure you can’t be locked away from the code you paid for, even if it’s moved onto an external server.

Booting from USB with Grub2

I wanted to check out LiveUSB-OpenBSD, because I’m pondering about switching to OpenBSD for my daily desktop. However, my stubborn laptop acted up again and refused to boot from the USB drive I carefully put OpenBSD on. So I decided to take a trip down search engine lane and see what different ways there are to boot from a usb. It appears you can easily boot from a USB drive with Grub2 and here’s how to:

  • Boot into Grub and press c to get into the command line
  • If you’re running Trisquel GNU/Linux like I am, you’ll be confronted with a user/password question you probably haven’t seen before. Don’t panic, you are (probably) not an amnesiac. Trisquel automatically generates a password for you when you install this sweet flower of the GNU/Linux garden. You can find it in /etc/grub.d/01_PASSWORD. If you want to get rid of it you can comment everything in that file and run sudo update-grub. But since I like this whole secure by default thing – which is one of the reasons I want to check out OpenBSD – I decided to just use the login name and password mentioned in the file.
  • When you’re logged in you’ll see a shell which you can use to do all kinds of Grubby goodness. I always thought LILO was good enough for me, but now I’m beginning to understand why a beast like Grub2 can be nice to befriend. Anyway, to see all the devices and their partitions you can use the command “ls“. There I found the device I wanted to boot from (in my case “hd1”).
  • To actually boot from it I used the following commands:
    set root=(hd1)
    chainloader +1
    boot
  • Bob’s your aunt (I don’t believe in gender conformity :- )

GNUstep on Trisquel Taranis

If you are like me and you’re running the excellent Trisquel Taranis you may have noticed that on AMD64 the vanilla GNUstep packages from the repo’s are broken. Ubuntu 10.04 has the same problem and I’ve read that this also occurs with certain Debian installations. Since a life without GNUstep seems pointless or at least very grim I’ve installed everything you need to run and compile GNUstep applications manually. Here I’ll describe the magic incantations I used.

Disclaimer: the Trisquel installation I used isn’t a virgin. I fondled quite a lot with the package management system, installed a bunch of programs with a truck load of dependencies, apt-got all my daily necessities and compiled and installed a bunch of libraries from source. So this might not work for you. It may or may not blow op your computer, change the way you dress or make your computer become attracted to a nihilist lifestyle.

With all the legal work out of the way let’s explain what I did to make GNUstep work.
First off I downloaded all the source I needed from http://www.gnustep.org/resources/sources.html. At a minimum you’ll need all the packages (except the examples package) from the ‘core’ directory.

After this I’ve installed a bunch of requirements:

sudo apt-get install build-essential gobjc libffi-dev libicns-dev libtiff4-dev libart-2.0-dev libfreetype6-dev

When you’re done with that you can start compiling gnustep-make:
Extract the gnustep-make package, go into the directory and:

./configure
make
sudo make install

This should work perfectly if you’re me and running my particular system and chanting the right Slayer lyrics while tapping your foot and rotating your head counter-clockwise (maybe those last steps aren’t required, I haven’t tried it without them).

Now listen carefully, whenever you feel like it’s a good day to compile and install a GNUstep application from source you’ll need to:

. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh

You can also put it in your .profile when you grow extremely fond of compiler screensavers like me. Read GNUsteps howto on environment setup for more info.

Now you can configure/make/sudo make install gnustep-base. After this I started gdomap, which is an essential daemon used by GNUstep, but it will also be launched automatically after you launch your first GNUstep application :

sudo /usr/GNUstep/Local/Tools/gdomap -p

Next I installed gnustep-gui using the same steps and finally gnustep-back.

With gnustep-back you can choose the graphics library you want to use. Since GNUstep is highly portable you can use it with many different graphics libraries. I chose to use libart for no particular reason, it just seems to work fine :-).

To configure gnustep-back to use libart use:

./configure --enable-graphics=art --with-name=art

After this you can compile it. To make sure GNUstep uses the right graphics backend you’ll need to:

defaults write NSGlobalDomain GSBackend libgnustep-art

This should be enough to get you up and running. The next step (pun intended) might be to try some applications from the examples package you find in the core directory. This way you can see if everything works like it should. If you like to do some developing of your own you can simply install ProjectCenter and Gorm from the dev-apps directory.

I’d love to hear whether or not this works on your box, please comment if it does, or better yet when it doesn’t so I can update this post!

OpenRespect

You may have noticed the heated discussions on Ubuntu and Canonical lately. The decision to move to Unity as the main desktop shell for Ubuntu 11.04 and Canonical insisting on developers assigning their copyright to them hasn’t made them many new friends. Whether you agree with Canonical or not some people seem to speak very harshly of their latest actions and deviate from a well-mannered debate. There seems to be an increase of rudeness in the open source / free software debate. To counter these tendencies Ubuntu’s community manager Jono Bacon launched openrespect.org.

On 26th October I read this dent from @jonobacon:

amuses me how some corners of the Open Source community assume mal-intent before good intent…we are all on the same side people!

That sentiment seemed to be a precursor for Jono’s blogpost “Making our world more respectful” in which he describes his tiredness of all the bickering in Open Source and his want for a more polite debate.

This all resulted in the OpenRespect website and the OpenRespect declaration with which I mostly agree. To support his cause you can stick a button on your website:

To be clear: I don’t agree with everything Canonical and the people from Ubuntu do. I don’t believe in copyright assignments and think it’s best to not diversify the GNU/Linux default desktops too much so we can share the effort and focus our attention. On the flip side I believe they’re doing much good for GNU/Linux and Free Software in general. They might not place the emphasize on Free Software I’d prefer, but I think they’re doing a wonderful job, and until their actions proof otherwise I will keep believing that! I’ve used Ubuntu for years and I’m using Trisquel GNU/Linux (which is based on Ubuntu) right now so I actually own them a debt of gratitude.

I hope the thoughts behind OpenRespect may have its effect and many people realize the importance of being respectful towards others you strongly disagree with.


post scriptum: In an earlier version of this post i said “To counter these tendencies Ubuntu’s community manager Jono Bacon with help from Fedora’s project leader Jared K. Smith and Debians project leader Stefano Zacchiroli launched”. This is however not right, Jareds and Stefano’s involvement is not what I reported. You can read Stefano’s comment for more information!

Advocacy doesn’t work if you tell someone they’re wrong

Generally it isn’t a good idea to offend someone you’re trying to convince. This is sounding almost too obvious, but offending someone we are trying to get to free software is a tactic we often use unconsciously. Instead of getting your point across it will likely lead the other to strengthen or adopt a contrary believe. There’s much we can learn from social psychology in advocating free software.

I recently joined the fellowship of the FSFE and decided to read the wiki pages on advocacy. The part about how you should characterize a company like Microsoft immediately grabbed my attention. Instead of characterizing them as evil it states you should try to talk about non-free software companies in general as bad examples of how they treat their customers, forcing upgrades or taking away their data in unknown formats. I would like to take this careful approach even further and say that it’s best not to mention them at all, or only sparsely. You might think I’m insane, but bear with me, as there is a lot of science on my side.

The FSFE’s FAQ on advocacy reminds me of my wifes master thesis in which she studied face threatening acts in anti-obesity messages. Governments around the world are trying to convince their citizens of a healthier lifestyle. Here in the Netherlands they can be quite fierce in their persuasion with TV commercials which makes the intended audience (i.e. people with obesity, or smokers) feel uncomfortable. There’s been quite a lot of research on the effect of these campaigns and it turns out that most of them didn’t work at all. Scientists have studied which kind of messages have the best effect and which don’t work.

It appears that one kind of messages never work and that’s the messages that result in reactance. Reactance (in psychology) is an emotional reaction to pressure or persuasion that results in strengthening or adoption of a contrary belief. It is reactance which can cause a Windows user to dig their heels in, even after trying to convince them with your best arguments of why Windows is bad

When you tell a proprietary software user why proprietary software harms their freedom, you are essentially telling them they are doing something wrong. Psychologically they interpret this: “He is telling me I’m wrong”, essentially threatening their face. With face I mean their public self image. Everybody wants to feel good about themselves and likes to believe that what they are doing is right. To impede that feeling is generally a very bad idea when you want someone to lend an ear.

So instead of another round of bashing Microsoft, Apple, Oracle, and so on, I think it’s best we should advocate free software on its own merit. There are a truckload of arguments that speak in favor of free software, without even mentioning proprietary software and I think it’s best we use those. I honestly believe negative campaigning (aka mudslinging) is a bad idea and will most likely only convince those who are already on our side.

New blog.

Jelle Hermsens headWelcome to my blog at FSFE Fellowship Blogs.  I decided to delete my old blog at jellehermsen.nl and redirect the domain to this new place. Being a free software nutter, moving my blog to this place seemed like the next sensible step. I’m not the most diligent blogger, so don’t expect a steady stream of posts from this place. It might develop into a blog with a well filled rss feed, but don’t bet your kernel on it.

When I do decide to blog it might be about the several free software projects I use, or about some programming languages I fancy (I’m quite a code geek). Or I might take a side step and blog about music I love, and my own musical project Alternative Cosmetics.