Monday, February 27, 2006

PyCon 2006 - Day 3

We have made it home now and my brain has had a chance to catch up now. PyCon was a blast this year, and I look forward to going next year. Here's some summaries of what happened the last day.

Keynote: A Conversation with Bram Cohen of BitTorrent

I wasn't sure what to expect of this keynote. It was very interesting, but the best tibits were from when Bram got totally of track and talked about things that were unrelated. One of the first rabbits that he chased was talking about version control and how difficult merging is. Evidently he has been working on some version control problems. He seemed pretty proud of it as he continued to talk about it throughout the interview. When asked about developing the first version of BitTorrent, he started into this long story about being out of a job, and living on savings. He soon ran out of savings, and figured out how to rotate through 0% intrest credit cards. He then figured that he couldn't keep applying for more credit cards so he let all the credit card offers stack up and applied for them all at once (kids, don't try this at home). Overall it was a very enjoyable talk.

The Rest Of The Web Stack

Ian Bicking gave a great talk about all the things that we tend to not want to think about when developing web applications. He showed tools that he has been working on to make things like project creation/management, deployment, configuration, handling multiple installs of applications for multiple clients, testing, etc much easier. He is focusing all those administration type things that we as programmers tend to overlook and get us in trouble. His tools are begginning to show up in frameworks like Pylons to help in these areas. I commend Ian for doing the work that most of us either overlook or just have a hard time getting ourselves to do.

Effective AJAX with TurboGears

This was a pleasant introduction to AJAX. He covered a lot of the things that you can do in AJAX to improve the end users' experience, and some good use cases for using it. Some of the pitfalls of Ajax development were also covered such as the back button and bookmarking (both of which Dojo is supposed to have libraries to handle), and creating user interfaces that the end users don't expect. Though TurboGears wasn't heavily emphasized he showed some nice exmples of how each of the use cases could be implemented.

Django How-To

Jacob gave a pretty cool demo of implementing a Sudoku puzzle in Django. It could even walk you through the steps to solve the puzzle. He had planned to demo actually deploying the app to the live Lawrence.com web site, but the network connection wasn't good enough to facilitate it. I was still hoping to hear some about the new upcoming changes to Django like AJAX, but was still very effective at showing how simple it can be developing web apps with Djano.

Lightning Talks Round 2

A second round of lightning talks was scheduled today due to the overwhelming demand. While not quite as exciting as the first talks, there were several interesting things talked about.

Ian Bicking introduced his ideas for the new SQL-API library. The emphasis is to make DB-API simpler and will include things like handling database connections, logging, database abstraction/portability, and a SQL abstraction library similar to sqlbuilder

A guy demoed Testosterone. At first I was like "Oh no! Not another testing framework!". It seems we are about to have more tesitng frameworks than we do web frameworks. It did have an interesting UI for interactive unit testing. I hope that it can integrate with other testing frameworks such as Nose, and py.test.

Matt Croyden showed off some of the other batteries included stuff that you get with Django such as additional Admin functionality, generic views, incredibly easy RSS framework, and user extensible filters and tags to be used in the templates

There was a cool demo of the REST mode for emacs. Too bad I don't use either :( But it was almost cool enough to make me want to play with both.

Beyond Scripting: Using Python to Create a Medical Information System with Graphical Template and Database Schema Design

These were the guys that hosted the wxPython BOF. The first part of the presentation was a bit dry, but the demo was killer. The coolest part is their implementation of a dynamic form generator that is created for the end users. The idea is to take the form generation away from the programmers, and let the users handle it as they understand the domain better. It seemed to get several people excited about wxPython development.

Closing Remarks

This being my first Pycon experience was one that I will not forget. I felt like such a small fish wondering around the Pycon area. Everyone was super nice. I was able to meet many of the people who I read online or author the tools that I work with. The Python community must be one of the best, and I'm looking forward to going next year.

Saturday, February 25, 2006

PyCon 2006 - Day 2

Another great day at PyCon. Here are some quick summaries of the sessions that I visited today.

State of the Python Universe Address

This was a great presentation from Guido about what is up and coming in future versions of Python. Python 2.5 is coming out shortly and has some nice new features. I'm looking forward to the enhanced exception handling capabilities and the with statement. The with statement should make a lot of things easier in Python. A quick example looks like:


with open(filename) as f:
for line in f:
print f


This would open the file and print each line. A nice addition is that the file will automagically be closed after the with block. This will also be able to be used with locking and database transactions.

He also noted that the ElementTree, ctypes, wsgiref, and setuptools packages will also be added to the standard library.

wxPython and Chandler BOF

I started the day off with the wxPython and Chandler BOF discussions. It appears that wxPython has made a lot of progress over the years, and some people are doing some really cool stuff. One in particular was a demo of a very nice drag and drop UI creation tool. It was also nice to see apps like Chandler really start to mature. wxPython still seems to have some dificulties with printing, html/pdf like output, and rich text editing, plus still being a bit behind and slower on the Mac.

The folks from the OSAF are a great bunch. They gave a demo of the new features and answered a lot of questions. Some of the cool up and coming features include a table view of the calendar where items can be grouped in various ways, and other general improvemets. They are also focusing on being able to aggregate data from various sources including web pages, and then being able to link the various pieces of data together. An obvious example would being able to have a contact and then see all the related info to that person that you may be tracking like blog entries, flickr feeds, etc. Very promising stuff. I'm looking forward to when they have improved imap support to do a little hacking myself.

New Tools for Testing Web Applications with Python

Webapps are becomming more and more testable with all these new tools coming out. The speaker described a project called Funkload and how it can be used for functional, load and stress testing web apps. It also can generate some nice reports and graphs after the tests are run. This looks very promising, and I'm going to have to recommend it to our team.

He also touched on Selenium, which I have been using quite a bit. I'm very impressed with how much can be done with it, and how easy it is to generate tests with the selenium-ide plug in for Firefox. If you need to do functional testing of your web app, this is a great tool worthy of considering.

Lightning Talks

Lightning Talks are 5 minute talks on just about whatever the speaker wants to talk about. Some may remember that this is where Django made its first public appearance at last year's PyCon. There were so many scheduled that they added another set of talks tomorrow that should be interesting.

David Creemer from MerchantCircle.com gave a talk about his experiences with his Python startup and the good, the bad, and the ugly of the technologies that they chose. Over all they have had some good success, and are yet another example of a successful company using and enjoying Python.

Ben Collins-Sussman from Google gave a very amusing talk about how he created an IRC bot to replace himself as he wouldn't have much time to chat on IRC now that he is working at Google.

The irclib.py and ircbot.py scripts evidently made it incredibly easy. He included a couple of conversations that were very funny, and included that his next project is to create a Python based Z Machine interpreter (Adventure, Zork, etc.) that will run over IRC. Hmmm... Perhaps it is time to create my ScottBot :)


Party at Nerd Books!

If you haven't been to NerdBooks.com yet, I suggest you go check it out. They have great prices, and you can even pick the books up at their warehouse! I picked up a just released copy of Python Essential Reference, 3rd Edition and Python Cookbook, 2nd Edition. They also had over 50 pizzas and various chips and other snacks. This was a great success, and I will definately be a future customer of NerdBooks.com

That about sums it up for today. Tomorrow I am looking forward to Ian Bicking's talk on web development plus another TurboGears and Django talk.

Friday, February 24, 2006

PyCon 2006 - Day 1

Here are the highlights of the pycon sessions that I attended today:

Keynote: Plone - It aint about the software

Don't get me wrong when I say this, as I am a fan of Plone and think it is a great CMS, but the keynote was a bit dry. It mostly focused on some of the past wins of Plone, and was a little light when they talked about future plans.

As I thought about it more though, there were two pearls to be gleaned from the session:


  1. "Middle class software" is where all the money and cool projects are.

  2. It is easy to build frameworks in Python but the only re-useable pieces are libraries and apps.



These two ideas got me to thinking quite a bit, and it seemed that the themes seemed to keep popping up in other talks as well. Both of these statements need some further explanation and I hope to further expand on some of these thoughts in a later post... stay tuned!

I also can't finish without sharing this great quote from the session:

Plone is a gateway drug to Python


Python in Your Pocket: Python for Series 60

It is very cool to see how far Python has come on the Series 60 phones in just a year. I have installed Python on my phone, but still haven't had the time to play with it. Perhaps I will need to make some time now. Some noteable points were:

  • Great UI integration with the appuifw module

  • Tons of extra libraries to access different parts of the phone like system info, the camera, graphics, inbox, contacts, or the calendar

  • Some cool apps are starting to surface, and more are to be expected

  • He mentioned something about Nokia developers having ported Apache and mod_python as well which could lead to some very intersting applications

  • There is still no word though as to when the version will get updated (still Python 2.2.2)



Python Can Survive in the Enterprise

This was a great session by two guys from American Greetings Interactive. If you have recieved an email card lately, it was most likely from one of their services. They send over 200 million greetings per year, and peak at 90+ million page views a day. And they do all of this from Python!

I thought it was great to hear about a another major company that uses Python as a "secret weapon."

pysense: Humanoid Robots, a Wearable System, and Python

This talk was a little over my head, but was really interesting. Basically they have been working on a wearable system that "learns" as it follows what a person does. It tracks things like hand positions and how they interact with objects, your posture as you perform acts, etc. This information is then analyzed and used with humaniod robots to perform very complex tasks. Such as being able to pick up an object such as a pencil and being able to tell which end is the point, or putting a ring around a pole, all with only vision sensors.

Most of this code is first prototyped in Python, and then if it needs to be faster, it is ported to C++ and wrapped in SWIG.

I was excited at first as I was hoping that some of this could be transfered to the new Lego Mindstorms sets coming out, but I soon found out that the processing requirements were quite high. Oh well, maybe in another couple of years...

Using Django to Supercharge Web Development

I was a little disappointed in this presentation as it was the same old marketing song and dance that many have seen several times before. Perhaps I just wasn't the intended audience for this talk and I will get more of what I am looking for in Jacob's talk on Sunday.

He did mention his latest project at the Washing Post and how it wowed the Java guys that currently work there. Evidently they are now looking more closely at Python and Django. Way to go Adrian!

TurboGears How-To

So I stayed for the TurboGears presentation right after the Django presentation. This was a bit more informative, showcasing some of the latest improvements. The online editing of model data was very impressive, and I liked the look of the new widgets. I really wished he would have spent a little more time showing off the new widget system. There were also talks of possibilities of using other ORMS with the systems (like SQLAlchemy). These are exciting times for Python web development!

Bazaar-ng Distributed Version Control

This was the final talk of the evening for me. I was really interested at seeing how this project was coming along. At work we have recently switched from Bit Keeper to Subversion. While subversion has worked very well for us, I miss the destributed nature of BK and some of the advantages it gives such as managing branching. Hopefully I can get some of my co-workers to take a look at this.

Canonical (the cool guys that brought us Ubuntu) support and use this project extensivly for creating their distribution and have built several tools around it. The biggest selling point is how well it handles branching and merging even when the base file is not immediatly identifiable.

Closing Thoughts

Two things have really stood out so far.

This seems like the year for web development in Python. A great deal of the talks this year are about various aspects of web programming. I'm very excited to hear what Guido has to say in his key note tomorrow, and if he will reveal his findings in the web world. I am also looking forward to hearing Ian Bicking's talk about web development.

A lot of companies are using Python for web development, and even enterprise development. I was amazed at how many flyers were being handed out saying "We're hiring Python Hackers!" from various companies (don't worry John... I'm not going anywhere :) ). It's also good to hear how other companies are successfully using python in their products.

Lots to look forward to tomorrow...