OSDC, Day 3

The last day of OSDC started with Andrew Tridgell, of Samba and Rsync fame, talking about the fight with Microsoft for the protocol documentation. And, just because I wasn’t paying enough attention, I learned that it was Sun who started the request for protocol documentation, not the Samba team, although, in the end, it was only the Samba team and the FSF Europe in court with Microsoft to get the documentation. In the end, they created a foundation, Protocol Freedom Information Foundation (PFIF) to allow anyone to read those documents, which encompass more than just the SMB/CIFS protocol. Also interesting was the fact that Tridgell heard that some people inside Microsoft really wanted to make those protocols open, to prove that they were really good programmers and did not need to hide behind closed doors. The keynote ended with Tridgell pointing that Microsoft did a public release of their protocol documentation, including more protocols than the ones listed in the PFIF directory. And, because they are public now, you don’t need to be a sub-contractor of the PFIF to get the documents.

After the keynote, I went to see the Python presentations. The first one was “The State of Python” by Anthony Baxter. He spoke about the current changes in Python 3.0, which is at full swing in the news (like Reddit, Ars Technica and such) and I knew most of the changes by going to the SyPy meetings. If you’re not aware, Anthony put a collection of a few links in in a TinyURL link. The things you probably don’t know (and I wasn’t aware till I saw the presentation) is that there will be a 2.7 release in about 8 months to provide further information how to convert your applications to Python 3.0, there should be a 3.0.1 release around 6 months with bug-fixes and a 3.1 in about a year with some better standard modules (and I’m guessing it means that modules will adhere more to the PEP8.) He also mentioned that a “Programming in Python 3.0” book should be available in the US in about a month.

Still in the Python line, I went to see Michael Hudson talking about “The PyPy Project And You.” PyPy is a very interesting project but something keep me distracted enough to not take enough notes (note to self: do not open IM when in a conference.) What I noted is that they have what they call LOP architecture/problem: A language L, for an output O, for a platform P. Because of the way PyPy is designed, they can take any language L, generate an output O for a platform P in any possible combination (when they have such L, O and P, of course.) They can do what IronPython and Jython do, taking Python as a language and generating an CIL/JVM output (which are basically “platform-less”, since the VM itself doesn’t change in any platform.)

Last Python talk in the conference was Alex Holkner with “Game development with Pyglet 1.2”. My flatmate keeps talking wonders about Pyglet and, after this, I have to agree with him. The API is incredible clean and, as I’m saying recently about my small projects, it’s pretty cute (and Pyglet having way more lines of code than mine, you can be pretty sure it’s as cute as this.)

After the Python sessions, I went to see Stewart Smith talking about “LD_PRELOAD for fun and profit (or evil)”. For those that don’t know, LD_PRELOAD can be used to load libraries before the code execution, so you can, as Smith shown, create a library with redefines fsync() to not do anything. Just as an example, Smith pointed that some tests, which took around 23 minutes to complete, took only 6 with the “hacked” version of fsync(). He also demonstrated how to use LD_PRELOAD to load a library that overwrote open(), close() and the family to get a backtrace.

Jonathan Lange closed the sessions before the lightning talks with “Your code sucks and I hate you! Code review for human beings”. He spoke about the experience of the Bazaar team with code reviews, not only pointing how you could ask for code reviews when sending patches to other projects but also how to answer code sent by other people for reviewing (kinda like an “etiquette of code reviewing”.)

After the lightning talks (which I won’t say what I saw ’cause I’m still ashamed that I didn’t wrote the speakers names again), Adam Kennedy (which, yet again, I didn’t wrote down, but Slashdot saved me) took the stage to talk about “The Sekrit”. He spoke about this story with Perl, his “distribution” (I think I can call it that) “Strawberry Perl” and how he managed to make a distribution of Perl 6, which he gave to Larry Wall. Also, he told us that he was approached by a Microsoft employee asking if he needed any help. If you clicked the link above, you’ll notice that Microsoft is offering free virtual machines with almost every single supported Windows version for free for all CPAN users to test their modules.

The closing keynote was Pia Waugh talking about the OLPC-AU project. The “One Laptop Per Child” is starting its way into Australia, but Pia followed the distribution of the laptops to children around the Pacific and how kids love their laptops. For us, developers, she pointed the OLPC-Friends website, where we can help improve the OLPC “from the inside”.

And that was it for the OSDC 2008.

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.

OSDC 2008, Day 0

No, I’m not using a developer’s way of counting (’cause every good language starts counting in 0, anyway — like the GPL v2 had a “rule 0”), but the first day I can’t really call it a “conference”. It was more like “Google Showing You What They Have — And helping you building stuff with that”.

They shown three of their open technologies: OpenSocial, OpenLayers and AppEngine.

OpenSocial is the API for building social network applications, something like the Facebook API for applications. Not hard, just a bunch of JavaScript commands you can use to get the current user, the
user who’s the owner of the profile, the profile information of the user looking at the page and things like that.

OpenLayers should be the API for accessing Google Maps but the really gem in the presentation was Mapstraction, a JavaScript API layer abstraction (what a mouthful) to several map providers, like Google Maps and OpenStreetMap. And, because it’s an abstraction, you can easily switch between providers without having to rewrite your whole application.

AppEngine is the famous web-app development environment that Google provides for free, unless you have a huge userbase and need more space/bandwidth. Honestly, it looks a lot like Django, except that
the configuration files are WAAAAY simpler and the API looks a little bit more logical to me: you have an URL, which points to an object, which should have a get() and a post() methods, which are called depending on the HTTP call the application received. The hard bit is the DataStore object. You create your databases model much like Django models (with a few diffrent properties) but there is no relational
references in that. Google answer is that it’s hard to keep relational data safe when you’re using a cloud and massively distributed databases and, with my experience with a simple MySQL replication I have to agree with that. So, because you don’t have relationships, you need to build things using a flat table all the time (in other words, goodbye database formal norms.) It’s a little bit tricky to get over it, but not impossible.

The coolest thing of that is that, after about 20 to 30 minutes of explanation and some URL pointing, you were given a task to build something using those tools. And you had like one hour to put something together. I failed my OpenSocial application (still want to complete that), my Maps looks a little bit cool (you can see it here) and I had some issues with that flat structure of DataStore, so I couldn’t finish my project (but I still want to complete that and put it online.)

Besides that, nothing else. But, for a “Developers” conference, it was pretty cool.