GPL and the web

A few years ago (two or three), I saw Richard Stallman at FISL where he said that things like Webmail were bad ’cause you don’t have any control over the software it runs in the server. In a way, he is right: How do you have any control over your data if you don’t have any control over your software? How can you be sure that the server isn’t doing something nasty with your information since you have no way to request the source code?

Requesting the source code is one of your rights if you are using a GPL-licensed software. That way, you can be sure that the application is not sending your information to someone else or looking for things it shouldn’t. But the GPL says that distributed software should have its code available; in a web 2.0 world, nobody is distributing any software: it simply is there. Therefore, even if you run a GPL application, do lots of modifications, because you’re not distributing it, you don’t need to make your changes available to the world.

The thing that was bothering me, though, is related to some web apps/websites I used at some point. They had this pretty cool thing and I was wondering “Is that something I know, like WordPress, Drupal, Joomla or whatever?” but, in the end, I couldn’t find anything that would say what they were using in the backend. And, just now, I was wondering how the GPL would apply to such websites.

Besides the GPL, there is another very useful license: The modified BSD license or simply “BSD”. The only rule the BSD license requires (compared to the “5 freedoms” GPL enforces) is that you can’t remove the copyright from the original authors. You may add your name, but the original copyright must appear somewhere. I wondered, then, if the GPL would have such requirement. I’m not a lawyer, but I think this does:

5. Conveying Modified Source Versions.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

That, to me, sounds exactly like the BSD. So, if you’re using a GPL software in your webserver, you must point, somewhere, that the engine behind your powerful site is copyright the original authors.

Now you must ask yourself this: How many websites out there are using WordPress with a modified theme that completely removed the “Powered by WordPress”? Or sites that chose (not sure why) the GPL version of the jQuery and didn’t mention that anywhere?

OSDC 2008, day 1

Ok, first “real” day of the conference.

The opening keynote was made by Chris DiBona, Google open source manager and license extraordinarie (or something along those lines.) He made some points about the grown of Summer of Code in Australia (with the sad note that only 7 students registered, even with 68 tutors), the number of licenses used by Google, Google usage and contribution of open source code… And yes, suddenly, it start sounding like “Here, Google is a friend Open Source!” propaganda, but DiBona manage to point that most of what he was talking was to make a point to other companies and how they could make a step into and alongside open source. But, apart from the little propaganda side (I can guess that it was completely unintentional), the graphs he showed, like the number of students and tutors through the years of Summer of Code in Australia and the number of licenses used by Google and other small peals, where really interesting.

The first session I saw after the opening keynote was Michael Neale talking about “Rule based systems – using rules to manage business logic”, mostly because I worked with a system written in C where we had to write all the business rules and such. Well, I surely wasn’t expecting a talk about decision trees, expert systems and logical programming, but it was interesting nonetheless. The interesting bits to me were some talk about logical programming and how rule based systems approach that. Even more interesting was knowing that Clips can generate rules by analyzing other rules.

Then I went to see Nicolas Steenhout talk about “Web accessibility and Content Management Systems”, mostly ’cause I’m terrible annoyed by websites that force me to use the mouse (looong time memories of using Lynx/Links ’cause it was the only thing that run properly on Linux and because I’d like to be a “real nerd”) and ’cause I really dislike the way sites are built these days. He pointed the current state of WCAG (Web Content Accessibility Guidelines): 1.0 is too old and 2.0 is not finished yet. He also mentioned the problem that the Sydney Olympics 2000 website had due not having any accessibility (they were sued about that) and how Target was also sued for not providing accessibility in their website.

Third session was Tennessee Leeuwenburg and “Google AppEngine + ExtJS prototyping demonstration.” That was one presentation that didn’t went well. Because the wireless was down and everyone had no internet at all, there was no prototyping and, obviously, no demonstration. So we saw some nice screenshots about AppEngine and some ExtJS screenshots and… that was it. I’m pretty sure the 30 minute space to talk about a topic was also a problem.

Next was Thomas Lee and “Python Language Internals: From Source to Execution”, which was a pretty good demonstration of the Python code. And by Python code I mean the very core of Python. What he did was, using the trunk code of Python, add a new command, from the parser, to the very end of creating a bytecode for it. Really impressive and, honestly, a big surprise that Python code is clean even when it’s not written in Python (most of the changed code was C code.)

Then Andrew Bennetts and “Python’s Unittest module: an under appreciated gem”. I was expecting a lot of weird tricks with unittest, but it seems that after a whole year using it, there was nothing new I could get from it. On the other hand, I got some pretty good list of extensions for Unittest, which provide a few more things that I may use in the future. The canonical (pun intented, as you’ll see) of such extensions is in Pyunit-Friends project in Launchpad.

“Extending Nagios with Python Plugins” by Maneschi (whose name I managed to completely lose somewhere) was more about Nagios than Python which was completely my fault. Anyway, it was an interesting talk, pointing some code used to collect information to Nagios.

Lastly, I went to “Getting Your Average Joe to use Open Source Software” by Peter Serwylo. Nothing new, I know, but he pointed some “gentler” methods to make people use Open Source (like keeping the user files and such — something that I barely thought after being constantly annoyed by “technical support” calls from my parents.) I think the way he described his methods were more in the way of “show the users what they can do” than “convert them!”, which seems to be the most commom way of making people use free software.

And I completely skipped the Lightning talks, and the Dinner Keynote.