It was 8am and I was ready for more talks!

The second day of the PyCON conference started with a talk by the Dropbox guys. The first half of it was not really interesting but things go better on the second half when they started to explain the technical bits. Then Guido was interviewed and answered some questions that the community had elaborated for him. One of the things he said is that Python 3 is closer than you think. I can tell he is right since many sprints at PyCON were about porting existing libraries to Python 3 and there is a general momentum going in that direction. Then they gave him a big cake representing the 20th birthday of the language.

PyCON moment where Guido is given a big cake representing the 20th python birthday

Then I learned about the new Selenium 2 and that it doesn't need the ugly selenium-remote-control if you just run it on your own machine so that becomes much easier to use. The speaker was showing how to write tests using the python client library and it looked very very good.

After that talk I went to the zc.buildout talk where Jim Fulton explained how they deploy python projects based on buildout on Redhat based systems. Something very similar to what we do at Yaco. On the reasons they do this is because Zope Corporation hosts their own applications so their sysadmin department and their development department need to play well with each other. He explained how the have two different buidouts for each application: one for the application itself and a different one for its configuration. You can read more about his great talk at http://www.riversnake.com/pycon2011/full/ or, if you are in a hurry, just check out his slides

Jim Fulton speaking about zc.buildout

Then I went to the talk Alex Martelli gave: API design anti-patterns. and these are some of the things I learned:

  • You better have a API for your software because you are going to need it sooner or later. Otherwise programmers are going to start using your applications in very nasty ways you can't even predict.
  • APIs don't just grow up magically, you have to deeply thing about them. It's harder to change an API than to change the user interface of your software because the consumers of the former (programms) are so much less flexible than the consumers of the later (humans)
  • A good way to design an API is to use it by yourself in your own software. This forces you to think what's the main thing that my program does and what the absolute minimum amount of features that should go into the core. I believe we are doing the right thing here in Merengue :-)

After that, I went to the talk about http libraries in Python. It was given by a Mercurial guy who did a very good analysis of how bad all Python http libraries are except for pycurl, which is very difficult to use. That's why he wrote his own library for this job and I think it is very good if you need some advanced http features and a very fast library.

To finish the day I went to Tarek's talk bout distutils 2 and I listened excited about the state of this project and how it is going to make our lifes so much easier. Distutils 2 is going to be part of Python 3.2 and you will be able to use it as a separated module starting with Python 2.4! There are only two problems to be solved: it is not finished yet (this is easy, just help him!) and it won't support all the things that setuptools does, like entry_points among other things. We will need some other library for this since there a bunch of us that uses these features. By they way, I'm the one that ask Tarek about entry_points at the end of his talk. I agree with him that they should not be part of distutils2 but that does not solves the problem. We need a full replacement!

Tarek is the man behind distutils2

That afternoon I went to an open space to talk about the future of the Zope community. After that I got to go for dinner with the Zope guys to a nice mediterranean restaurant. I was invited by Zeomega company and I enjoyed the dinner a lot. I've been reading and following some of these guys for a long time and it was very cool to talk to them face to face. By the way, I talked with Jim Fulton about Spain since he has been there recently and he liked it a lot.

happiness = getMultiAdapter(zope, dinner)

Next day there were some more nice talks. One guy from Threadless gave a very funny talk. Unfortunately my english is still not that good and I didn't get all the jokes. After that the people from Disqus gave a very interesting talk about their product and how they did it using python tools: celery (for asynchronous tasks), graphite (for monitoring), sentry (for exception monitoring), coverage.py, pep8, pyflakes and may more. The only thing they didn't like about Python is the current state of packaging, which I have to agree with.

After that I went to see the co-routines talk but I didn't quite understand them yet. I'll need some more reading because it looks like they are getting pretty big nowadays.

To end the conference days there was the poster session. I have to admit I didn't have big expectations on this but I also have to admin that I was nicely surprised. There were lots of good posters and I discovered a bunch of really interesting projects:

  • askbot.org , a stackoverflow clone written in Python
  • Allura , the code behind Sourceforge
  • Fudge, which is very cool for mock testing. For example if you need to test a software that makes http connections but you don't really want to make them for testing. It's monkey patching done right.
  • Open States , and open goverment initiative
  • There was a guy with a wheel chair doing some astonishing job with a kinect device. Sorry I don't remember the name of his project :-(
You would not believe what this guy just did with a kinect and a lot of courage

By the way, PyCON does a marvelous job by recording all the talks and puting them online. So, in case you couldn't come, just watch the  talks They are worthy!