Open Source ERP Profoss, part I and the definition of success.
Wed, 19 Nov 2008 10:42:47 CET
Yesterday was probably the best Profoss session up to now. Too bad, only 30-ish people showed up, but the quality of the discussions was pretty high. It was also one of the first Profoss'es where business models and market promises of Open Source software vendors stood central. Too bad, however, that all four speakers (OpenBravo, OpenERP, Compiere and Adampiere) were not very proficient in English. You could tell after 5 words where they came from (The Netherlands, Belgium, France and Germany). :-)
One thing which got stuck in my head was a remark form the Microsoft representative in the audience. He mentioned that all the industries in Europe where we've been doing very well and are successful with worldwide, are in sectors where Intellectual Property rights are very well protected and laws are in place to do so. He gave the pharmaceutical industry and the GSM communication standard as examples.
Now, he might be right for certain definitions of ``success''. They are the industries where venture capitalists like to live. They are the sectors with the so called money-printing companies. But, as someone in the audience gave as a remark, haven't they stretched the limits of profitability too far? Isn't the financial crisis we are in right now a symptom of that?
The Microsoft guy went on to express his fear that by adopting the Open Source idea so quickly, Europe is putting itself in a more vulnerable position as compared to the rest of the world where huge companies are still being formed around (software) patents. And that's where I strongly disagree.
I believe, and not only for the software industry, that the Open Source philosophy forms the best sustainable business models, as a whole and in the long-term. Janssen Pharmaceutica might never have been so huge without it's patents on the medicines they ``invented'', but now it appears that for the last 25 years the whole company just survived on those few patents. Now that they have expired, all of a sudden Janssen is in trouble and recently had to lay down some thousands of people. However... now that alternatives for those medicines are allowed, they all of a sudden become far cheaper as the factor of choice appears. So which Europe (or Belgium, for that matter) is the most ``successful'': the one where huge companies can get monopolies and allow some to get astonishly rich, or the one where medicines are affordable by anyone (without the need of too much medical insurance intervention)?
Isn't the reason that Europe became what it is right now because of the rapid and free expansion of science and exact knowledge? ( As a matter of fact, I agree with Michael H. Hart that Isaac Newton has had a greater influence on our every day life than Jesus Christ. But that's a different discussion. )
But... doesn't Janssen deserve to be paid back and generate revenue to support further research and development of other, great medicines? Well, of course they do. But why didn't they do it then? Why are they now, after 25 years of artificially stretching the time constraints of their patents, getting in so much trouble? Haven't they had the time to invent something else profitable? ( One could also argue that for matters as health and hygiene, research should be left to public entities as universities. Again, that's another discussion. )
The other example I want to tackle is the GSM one. GSM is, in my eyes, one of the great failures of humanity. Compare it to, say, TCP/IP. Both are communication protocols. One is proprietary and heavily regulated. The other is open and free. A couple of years after it's existence, TCP/IP shaped the Internet, changed our entire world and allowed millions of business and even completely new business models to flourish on top of it. On the other hand, with these stupid mobile phones, after 10 years we still can't do anything but calling and sending crappy text messages. MMS was supposed to be a big innovation. Ironically, we had to wait for TCP/IP to arrive on our mobile devices, before we could start doing useful stuff with them. Before we could do fun stuff that we didn't have to ask permission for. Before we could be free.
Why is the iPhone such a success? Surely not because it supports GSM.
Just like Janssen, the great mobile operators might get in trouble when everybody starts using VoIP on their mobile phones. Sitting on top of their governmentally protected industries, they have done nothing to protect themselves.
Yes, GSM regulation has made it possible for huge companies to form where, in Belgium, Mobistar, Proximus and Base are offsprings off. But it has killed all innovation around it.
So again, what's the most successful Europe?
Those Open Source ERP vendors might not get the big venture capitalists backing them. And none of their CEO's will be the next Bill Gates. But they are forming the shape of the software business of tomorrow.
Posted by Bart Van Loon | Permanent Link | Categories: Open Source Adventures, Life, the Universe, and Everything, Business
What is Open Source?
Sun, 02 Nov 2008 00:30:19 CET
What is the definition of Open Source?
I find this a very hard question to answer. Thrown at the crowd at CloudCamp last week by Raphaël, most seemed to have trouble coming up with an answer too. Notably, only one guy raised his hand.
Apparently, there is such a thing as an ``Open Source Definition''. It's used by the Open Source Initiative to determine whether or not a software license can be considered Open Source. Hmmm... I'm doubting this is what Raphaël was looking for.
Even after many years of being active in the Open Source community as a (little) developer, (big) evangelist, (sporadic) documenter, (furious) discusser and (big time) user, I still won't know how to define Open Source. I'm not even sure if I should categorise it as a technology, a movement, a software distribution model, a software license category or whatever else.
Kris, I really wonder what your definition would be? Or anybody else's, for that matter.
First Brussels CloudCamp
Fri, 31 Oct 2008 17:40:04 CET
Yesterday, I attended the first CloudCamp in Belgium, which was held in Brussels. It was at a very nice venue, and the attending and presenting crowd was of very high quality.
There was much to be seen and more to be learnt. However... it wasn't an unconference at all. Yes, at the end of the schedule there was a piece left ``unscheduled'', but that time was wholly consumed at the bar.
Oh, wait... so maybe it was an unconference after all then... :-)
I especially enjoyed the talk of Raphaël in which he stressed the need for openness in the cloud, as that is exactly what made the Internet such a success. If the ``cloud'' is willing to turn into this next layer on top of the Internet, it indeed will have to make sure that it's as open as can be. Otherwise, all we'll get is another useless network like we have today with the mobile phone network and it's few übermasters.
By the way... MyOwnDB is as open as can be! ;-)
Posted by Bart Van Loon | Permanent Link | Categories: Open Source Adventures, Life, the Universe, and Everything, Business
Is the blogosphere the new usenet?
Sun, 12 Oct 2008 15:38:57 CEST
Dag,
In follow-up to your PS, I would like to refer to a statement I did in the past about blog comments (4th paragraph). Please also mind the spam notice.
I'm sure you knew already, however. :-p
I must agree with Philip that Usenet remains the best platform for online non-real-time discussions. May we welcome you at be.comp.os.linux?
Automated spam <vs> Normal people
Sun, 12 Oct 2008 14:49:16 CEST
Dag,
Thank you for follow-up.
I recognised the difference between automated spam and normal people trying to advertise commercial websites through on-topic comments. But from the point of view of my original post, they are the same. They both consist out of normal, plain <insert a language here> text with more or less correct grammar and spelling. When manually put into the SPAM marked auto-learning queue or self-learning spam filters, they both result in too strict scanning, as the distinguishing line between unsolicited email and genuine messages gets blurred more and more.
In Mollom speak, this results in the widening of the ``unsure'' strip in between the ``spam'' and ``ham'' extremes.
RE: from Hanna
Tue, 30 Sep 2008 09:54:57 CEST
I'd like you to meet Hanna, a charming blue-eyed blonde, brunette with brown eyes.
Did you get the ``mistake'' in the previous sentence? Without reading it twice?
Today, the following mail made it past our spamassassin installation:
I am a charming blue-eyed blonde, brunette with brown eyes, and I'm looking for an intelligent man to communicate by e-mail, Skype, or on real dates! Write me a message by email: Hanna@superflh.com
I find it very interesting to see spam mails like this appear. Nothing is being sold here, no links are being made to commercial websites, no attachments came with it, ... and it's clearly an autogenerated text, meant to make sense in a way. So what is the purpose?
I guess they are trying to hit the so-called self-learning (mostly bayesian) spam-filters at their weakest point: that they are but computers. In many situations, mails like this will be manually marked as spam, and this make it into their learning system as such. Many of these mails eventually lead to spam-filters marking legitimate mails as spam, which for many people is totally unacceptable. And those people might just turn off their spam filters because of that. They ``don't work'' anyway, right?
Similar things happen elsewhere too, apparently, trying to fool Mollom.
Does this reasoning make sense?
Anyway, Hanna does seem interesting to me. Let's drop her a line... ;-)
Google pagination rounding
Thu, 25 Sep 2008 23:01:24 CEST
Hmm, I just found out something strange.
- Click this link: http://www.google.com/search?hl=en&safe=off&q=%22mieke+van+loon%22&start=20&sa=N
- How many pages with search results does Google return? (6)
- How many search results? (1,330)
- Now click on Next at the bottom
- How many pages with search results does Google return? (5)
- How many search results? (1,330)
- Now click on Next at the bottom again
- How many pages with search results does Google return? (5)
- How many search results? (46)
Can somebody explain?
Doesn't this make all those ``proofs'' based on Google fights moot? I can understand Google is not counting exactly how many results a search query resulted in for optimisations sake, but going from 1,330 to 46... that's a but far off, isn't it?
(And, for the record, Mieke Van Loon is a member of my family and I was looking up her personal web page.)
pyfconfig -- how to get ifconfig data without regular expressions
Thu, 25 Sep 2008 21:49:02 CEST
After reading this post about ifconfig output parsing by Kris, I remembered I once needed a cross-platform way to get the IP address of an interface in Python.
Of course I could just parse the output of `ifconfig`, but I really don't like such ugly hacks. I guess I've got too many (bad) experiences with libwww-perl scripts I wrote for web harvesting various stuff. Basically, this is output parsing too, as HTML is generally the result of some server side script. Each time the webpage changed the way it looked (non-CSS changes) or worked, my scripts started to fail.
That's when I decided I'll always try to avoid such clumsy dependencies on third party software.
So, back to the Python question. I set out for a short adventure on comp.lang.python and came up with a solution after some fiddling: pyfconfig, a cross platform Python module to query for the IP address of an interface. Tested on FreeBSD x86, GNU/Linux x86 and GNU/Linux x86_64, with Python 2.4 and Python 2.5. Works just fine.
1 #include "Python.h" 2 3 #include <sys/types.h> 4 #include <sys/socket.h> 5 #include <netdb.h> 6 #include <netinet/in.h> 7 #include <unistd.h> 8 #include <arpa/inet.h> 9 #include <stdio.h> 10 #include <ifaddrs.h> 11 #include <string.h> 12 13 // parameters: string (interface name) 14 // output: string (ip address of interface in decimal notation) 15 PyObject * ipaddr(PyObject *self, PyObject *args) { 16 17 char ip[ 200 ]; 18 char *itf; 19 20 if (! PyArg_ParseTuple(args, "s", &itf)) { 21 PyErr_SetString(PyExc_Exception, "no interface given!"); 22 return NULL; 23 } 24 25 struct ifaddrs *ifa = NULL, *ifp = NULL; 26 27 if (getifaddrs (&ifp) < 0) 28 { 29 perror ("getifaddrs"); 30 return NULL; 31 } 32 33 for (ifa = ifp; ifa; ifa = ifa->ifa_next) 34 { 35 socklen_t salen; 36 37 if (ifa->ifa_addr->sa_family == AF_INET) 38 salen = sizeof (struct sockaddr_in); 39 else if (ifa->ifa_addr->sa_family == AF_INET6) 40 salen = sizeof (struct sockaddr_in6); 41 else 42 continue; 43 44 if (strncmp(ifa->ifa_name, itf, sizeof(itf))) { 45 continue; 46 } 47 48 if (getnameinfo (ifa->ifa_addr, salen, 49 ip, sizeof (ip), NULL, 0, NI_NUMERICHOST) < 0) 50 { 51 perror ("getnameinfo"); 52 continue; 53 } 54 break; 55 56 } 57 58 freeifaddrs (ifp); 59 60 return Py_BuildValue("s", ip); 61 } 62 63 static PyMethodDef pyfconfig_methods[] = { 64 {"ipaddr", (PyCFunction)ipaddr, METH_VARARGS, "ipaddr(string)\n"}, 65 {NULL, NULL, 0, NULL} 66 }; 67 68 DL_EXPORT(void) initpyfconfig(void) 69 { 70 Py_InitModule3("pyfconfig", pyfconfig_methods, "Provides a function to get an ip address of a certain interface.\n"); 71 }
Compile with gcc -fPIC -shared -Wl,-soname,pyfconfig.so -o
pyfconfig.so -I/usr/include/python2.5/ pyfconfig.c (for
Python 2.5) and after an import pyfconfig, pyfconfig.ipaddr('lo')
should return '127.0.0.1' (YMMV).
No dependency on the output formatting of ifconfig. Less bugs.
SEO
Tue, 02 Sep 2008 08:59:51 CEST
I have been blogging (infrequently) for only about seven months now and I must say I got more reactions already than I thought I would ever have. Still, visitor statistics and Google showups remained fairly low. Especially after my last post, I became quite surprised. When Googling for ``poor man's NTP'', the first result returned was Kris Buytaerts reaction. Moreover, my original article was nowhere to be found in the search results.
This made me thinking...
For years now, my webpage is found by the keywords ``Gentoo'', ``Macbook'' and ``ING'', mainly because of some articles I wrote. But none of my blog posts seemed to get indexed.
I'm not going into detail here, but after 5 minutes of thinking, 5 minutes of tinkering with my Apache setup (I removed a 301-detour towads my blog) a little sed-action later (nanoblogger is great!), Google seems to love me much more.
Try it! :-)
Poor man's NTP
Wed, 13 Aug 2008 10:07:44 CEST
Yesterday I had to quickly (more or less) synchronize the clocks of a handful of computers I was working on. I didn't have the time to work out an NTP based solution, so I came up with the following simple trick:
1 for i in `seq 1 6` 2 do 3 ssh root@192.168.1.20${i} date `date +%m%d%H%M%Y.%S` 4 done
Needless to say... it worked. :-)
[office] scantopdf revisited
Sun, 13 Jul 2008 18:48:19 CEST
At the airport. Bored. Started hacking up my scantopdf script to cater for multiple page documents and a simple scanner.
1 #!/bin/sh 2 3 # scans an A4 image and saves it as a pdf file with given filename 4 # supports multiple page documents 5 6 colourmode="Gray" 7 depth=8 8 resolution=300 9 10 while getopts cd:r: option 11 do 12 case $option in 13 c) colourmode="Color";; 14 d) depth=${OPTARG};; 15 r) resolution=${OPTARG};; 16 ?) printf "Usage: %s [-c] [-d depth] [-r resolution] filename.pdf [number of pages]\n" $0 17 exit 2;; 18 esac 19 done 20 21 shift $(($OPTIND - 1)) 22 23 filename=$1 24 25 numpages=$2 26 if [ -z ${numpages} ] 27 then 28 numpages=1 29 fi 30 31 getpdf() { 32 /usr/bin/scanimage --mode=${colourmode} --depth=${depth} --resolution ${resolution} -x 215 -y 297 \ 33 | /usr/bin/pnmtops -noshowpage -equalpixels -dpi=${resolution} \ 34 | /usr/bin/ps2pdf -sPAPERSIZE=a4 - "$*" 35 } 36 37 TMPDIR=$(/usr/bin/mktemp -d) 38 39 currentpage=0 40 while [ ${currentpage} -lt ${numpages} ] 41 do 42 currentpage=$((currentpage+1)) 43 echo "Please insert page ${currentpage}/${numpages}." 44 read -p "Press enter to continue..." 45 echo "Scanning..." 46 getpdf ${TMPDIR}/page${currentpage}.pdf 47 echo "Ready!" 48 done 49 50 /usr/bin/pdftk ${TMPDIR}/*pdf cat output ${filename} 51 52 echo "Result is ${filename}. Individual pages can be found in ${TMPDIR}."
It depends on some external tools though and I don't really like the way their paths are hard-coded now, but it's useful as is, still (and very easy to change). Make sure you have pdftk, scanimage, netpnm and ghostscript installed or it won't work for you.
Curious if it will work when I return to the office. :-)
Listening to my Macbook
Thu, 26 Jun 2008 00:55:43 CEST
My Gentoo on a Macbook article, although more than 18 months old now, is still attracting quite some eyeballs and emails with questions and remarks. I was helping out someone getting Gentoo configured on his Macbook, when he told me he saw a funny red light coming out of his headphone plug. All I knew was that you could control the light playing with the IEC958 switch in alsamixer.
Being reminded of it, I decided to give it a better look this time. I found out that it actually is an optical port of the internal sound card. Hmmm... as I happen to own one of these 5.1 systems of creative (which I absolutey love, by the way). I checked available input connectors, and yap... it had an optical in. Took me a while to find it, but eventually, I got an optical fibre cable with a mini adaptor, so it fitted in my Macbook connector.
Five minutes of playing later, I had a fully working, remotely controlled, DTS and Dolby Digital capable surround system, accepting AC3 pass through sound, capable of doing movie and music up mixing and giving me the true 5.1 surround experience.
Just the idea that I have been running around with this feature on my laptop without even realising it!
Feels good to use the hardware you paid for just that little it more. :-)
Open Nordic + eZ conference + midsommernatten = fun!
Sat, 21 Jun 2008 10:53:19 CEST
Live from the Gardemoen airport in Oslo. I'm getting better and better in getting free internet access at airports lately. :-)
The last two days, the small town of Skien held three conferences at once: Open Nordic, the eZ conference (including the amazing eZ awards event) and the very first Mobile Open Nordic.
I learnt one interesting fact. Most of the current Web 2.0 revolution we see now, happens on top of the LAMP stack. Let's have a look where these technologies come from:
- Linux:
- started in Finland (Linus Torvalds)
- Apache:
- mainly American, but apparently has many Nordic contributors
- MySQL:
- Swedish/Finnish company
- PHP:
- started in Denmark/Greenland (Rasmus Lerdorf)
I was very happy to see that Nokia (+ Trolltech), Sun, IBM and other big players were represented by technical people, not by marketing people. In fact, the most interesting talks I attended, were presented by people of those larger companies. They really are trying to keep up with current trends.
Most interesting was also the main keynote speaker and opener of the conference on the first day: Bart Hanssens from the Belgian federal government (Fedict). He held a talk about the recent ODF guideline implementation at our federal government.
Personally, I had a wonderful time. Met many new people, mostly of the eZ crew and realised the sheer joy of such an internationally orientated SME (especially at the midsommernatten BBQ the last day). It felt great speaking 4 languages through each other once more, especially increasing the level of my Norwegian again. :-)
Yes, Norway... I completely fell in love with the country just once more...
Posted by Bart Van Loon | Permanent Link | Categories: Open Source Adventures, Life, the Universe, and Everything, Business
Fixing your laptop through init
Wed, 18 Jun 2008 23:24:44 CEST
Today, I ran into a pretty annoying problem with my laptop. I booted up, and got one of these once-in-every-24-mounts fsck's of my root partition. Nothing to worry about, unless it turns out that there is a non-trivially fixable problem which shows the well-known "enter your root password to fix or press ctrl-D to continue" line. Again, nothing to worry about... until you realise that your keboard isn't available yet at that point of time in the boot-process! (I don't have USB support compiled into my kernel, and Mac connects it's laptop keyboards through USB.)
Important to note: I was at the airport at that moment, with no other hardware or cables or whatever with me to help me out. And knowing that you'll be away for 4 days (I'm at Open Nordic now), you really want your laptop to work.
After thinking about it for a while, I got the solution. For
some reason, my keyboard does work while in the GRUB menu. I found
out that I could pass about any script or command to the init
kernel parameter.
kernel /vmlinuz root=/dev/sda3 init=/sbin/fsck -y
/dev/sda3
did the trick. :-)
Note that there are no quotes around the
parameter value.
init="/sbin/fsck -y /dev/sda3"
won't work!
I'm compiling USB support into my kernel right now.
Another one...
Fri, 06 Jun 2008 21:01:44 CEST
Again, a website from our federal government is down. Nice to see though that Drupal seems omnipresent up there (looks like Accenture didn't get all their business after all :-p).
Again, it's a database problem. I guess Dries is right when he says that the database is the hardest part of a Drupal installation to get right.
Luckily, there will be a really good solution for that! As soon as we have a PHP connector to MyOwnDB out there, installing Drupal won't require any local database administration any more. Let alone taking care of backups, scaling up your installation or ensuring high availability of your data... Great times are a-comin'!

![[opengov is down]](/images/opengov.png)