Sunday, February 25, 2007

PyCon 2007 Day 2

Day 2 at pycon came and went faster than day 1. Another exciting day, with lots of stuff to talk about.

Keynote: Adele Goldberg - eLearning Does Not Belong in Public Schools

Keynote with Adele Goldberg

While I highly respect Adele for the contributions she has made to Computer Science, I was very disappointed with this keynote speech. She gave a very impassioned diatribe which basically said that eLearning is why public education is as bad as it is today. This is one of those subjects that's much like trying to argue politics, or religion, or vi/emacs :) I have thought about all the things that I would like to say about this, but then I would basically be no different, so I will leave it at that. Though I will add that I found it highly entertaining that after this long invigorating speech, she then demoed the "new" eLearning software that she is developing.

soaplib: an easy-to use SOAP library

I am very excited about this project. Python has needed a good, pythonic, easy to use SOAP library for a long time. If you have ever used soappy or ZSI in a large production environment, you will know what I mean :) soaplib makes it super easy to expose SOAP web services in python. And guess what! No writing WSDL!!!!!!! :) It was also nice to see that out of the box, it will support integration with Oracle SOA Suite, Axis 2, .NET, and Java 1.6. While it is still a bit young, they are heavily using it at their company Optio, and it seems to have a growing community coming around it as well.

The Star Schema in Python

This was a highly entertaining talk about how he used python to implement the star schema pattern. He showed how there are times you can do things efficiently directly in python without the overhead of a database. I think that unfortunately several people got lost trying to figure out what a star schema is.

Scaling Python for High Load websites

I was disappointed in this talk as well. I'm very involved at work with improving the performance of our web applications, and was hoping to learn some nuggets that might be able to help. Unfortunately, they brought up some of the first things that you look at. The one thing that they were way off on though, was suggesting to cache static content (javascript, css, images, etc.) with memcached!!!! Please!!!! Don't do that!!!! Use a squid cache or a separate media server instead to serve the static content.

UPDATE -- Please read Jamie's comment below as he clarifies what they were presenting. Thanks Jamie!

Extracurricular Activities

Hanging out with some of the Pylons and SQLAlchemy guys was a lot of fun. Dinner was great, and I really enjoyed getting to know them better. I also got to hang out while some of the TurboGears and Pylons people had some amazing discussions. Before I knew it, it was 12:30! Sometimes I feel like a fly on the wall when history is being made, and a big thank you to those guys for letting some random geek hang out.

3 comments:

Angie said...

Comment from Ed:

soaplib?? Seriously??

Cool, I MUST take a look at this. It may make it easier to integrate with crack-headed .NET SOAP APIs.

Oh, I just said it, didn't I...

Angie said...

Comment from Jamie Turner:

Chuck,

Hey, thanks for attending our talk.

We tried to make it clear, but maybe we didn't succeed: we weren't suggesting you use memcached to hold static content. nginx does not yet include a built-in caching module (it only support lookups in memcached), and putting another layer (squid) in the mix was far too complex for a demo. But we did, in fact, suggest that you explore using squid for this as well.

It did give us a chance to put the dynamic stuff (pulled from the db) in memcache, however, and talk about the memcached project in general, which is a cool one to make the audience members aware of.

As (again) we mentioned in the followup, someone should write a true caching module for nginx. Then you can toss squid out, not (mis)use memcached in this way, and have something a bit closer to ZXTM, which is the actual solution we use. That combination (integrated load balancer + cache) is an excellent, and the integration pays off in terms of management and reporting. Also, in 2007, I think the caching system should be (ncores * worker_thread) and event (epoll) based, not prefork.

Anway, I've seen these misconceptions flying around a bit, and hopefully this reply will clarify our intent--we weren't attempting pitching specific techniques in 35 minutes on a laptop! Just trying to introduce the kind of high-level ideas that go into exploring optimization steps. You may not have been the target audience.

I wish a BoF had materialized so we could all have talked further and gone into more depth on things.

Angie said...

Comment from Chuck:

Hey Jamie,

Thanks for the comment and the clarification. That does make more sense now, as memcached can be a very powerful tool to use when scaling your site. I have updated my post to make sure people read your comment. Thanks again!