Friday, March 28, 2008

Reality Graph

This seems to very true, as I remember clearly from my J2EE days and what I see here.

Of course, my first real response upon looking at this graph was pretty certain knowledge this was cooked up in Graphviz.

Wednesday, March 26, 2008

Need better charting for Python

With the release of Pyglet 1.0, I'm hoping that we get better chart support in Python. Yeah, I know that ReportLab does it, but I need prettier charts.

Of course, if I were more adept at manipulating graphics, I would cook this up myself. Thats my excuse and I'm sticking to it!

Monday, March 24, 2008

Django at Pycon

Pycon 2008 was notable not just because it was my first Pycon, but because the scope of the Django presence. It was huge. There is some talk of a spin-off convention for the Django folks. Wow.

Django is good stuff. Regardless of what naysayers say, they've been moving towards a more Pythonic and WSGI compliant way of doing things. Sure, it calls things in the MVC stack by funny names, but who really cares? At first I was apprehensive about Django templates, but while its very rich in what you can do with filters, you are really blocked from doing logic in views. I like the ongoing SQLAlchemy integration and the hesitancy to lock the core framework into a particular JavaScript library.

More important is that the leadership seems on the ball. Sure, they invented a bunch of their stuff again, but thats the way things used to be. And they've been becoming more compliant ever since.

I'm looking to doing some Django work. And I'm looking for how it will fit into the various other WSGI compliant frameworks in the days/months/years to come.

Meeting Plone friends at Pycon

Lennert Regebro is one of the guys who did Five for the Zope and Plone world. He's smart, fun, accessible, and seems to live out the ideals of open source. He's famous for talks on the mistakes his frameworks of choice have made, and enjoys sharing it with the new kids like Django, Pylons, and TurboGears. I'm of the firm opinion he should run classes/tutorials at the next Plone/Python conference.

I also bumped into Christian Theune, a German Zope/Plone guy who isn't just smart, but also good to be around. Wish I had found time to eat dinner with him again.

Calvin Hendryx-Parker made his presence there known too. He's another sharp guy and is part of Six Feet Up. Which reminds me, I need to look into some Python hosting.

Note: Lennert Regebro's role in Five has been updated.

Pycon Wrapup

I meant to write this sooner, but I came back to my 10th wedding anniversary. So whatever makes up my audience has had to wait. Waiting is over so here we go:

Bring more business cards
I ran out of my own business cards the first day. Next time I go to a conference, I'll bring a hundred of them.

Tutorials were worth every penny.
Don't go to these conferences and miss out on the tutorials. Much of the rest of the conference is hallway conferences, short presentations, and sprints. The tutorials are hours of focused training given by really smart people. You hurt yourself if you don't make time and money for these things. On the other hand, 16 hours of training on multiple topics after traveling to get there is not super ideal. I was sad to have missed out on the middle slot, but on the other hand I was really focused for all the training I did get. I think two days of tutorials is better than one really long day.

Mt first tutorial was Numpy, which exposed me to the crunchy fun of the real grinding power of manipulating giant data sets at speed. The multi-dimensional arrays are really powerful, and I suspect that if used correctly 2-d arrays could make standard SQL database number munching look anemic when it comes to doing calculations. It might be interesting to create some tests comparing MySQL to Numpy for doing sums and the like. Another thought is fetching out data and using other Python science tools to generate charts and graphs. I've got a page full of ideas and I can't wait to try them out.

Second was Agile Testing and the experience was great. I've been a big fan of this since my Java days, and loved DocTests for Python. Up until my current big project, I did tons of testing in everything I did, and used Selenium for things where I wasn't happy with the system's test suite (that was with Plone until October 2007). Anyway, we were walked through Stupidity Driven Development (write code and write tests for things that break), Nosetests (a global test suite that just plain makes writing tests easy), Twill (simple dialogue for writing HTTP tests), and a number of other useful tools. While there I met Remco Wendt for the first as well plus the noted Larry Hastings of Facebook.

Keynote Talks
I liked all the keynote talks. Sure, Guido might be giving the same one on Python 3 each year, but besides Youtube I've never seen it before.

Unlike some people, I didn't mind the presence of White Oak's Chris Hagner giving a speech on why Python rocks in their corporate world. He gave a good speech and showed how WOTI uses their knowledge of open source to increase the worth of US tax dollars spent. This is important to me because I see so much waste living as I do in the Washington, DC area. I've seen mediocre developers leave their positions to become Enterprise Architects for projects that really just needed a CMS like Plone or a number crunching application best served by Django. Money wasted on these tools could be invested into Open Source efforts, the same way that Apache has benefited by patronage from IBM and other large firms. Remember kids, with some good leadership on the OS side, you get this equation:
patronage != control of open source project

Van Johnson's speech on Intellectual Property was really good. I take a Lawrence Lessig approach to the whole thing so listening to him as sort of like being in a church and nodding to the pastor. Sure, I had my differences, but its good to see an Open Source lawyer explain the real world to the masses. I don't want to get in trouble for not paying attention to the particulars, so this was good for me. I've heard/read much of it before, but the refresher was important to me since its so easy to forget the particulars and get yourself into trouble.

Session Talks
I went to a lot of these, and rather than repeat my notes I'm just going to review highlights and the odd lowlight.

An early favorite was Chris McDonough's talk on repoze. I had seen it before in November at ZPUG but this time he demonstrated something stunning. This time he got Trac to work inside of Plone. How cool is that?

I had hoped for more on the Stackless Python talk. However, that was not meant to be. The original presenter cancelled out and he was replaced by someone who was not good at oration. Also, the slides were the same as a presentation 2 years ago. Lastly, the speaker couldn't properly answer any questions so basically was just clicking slides.

The SQLAlchemy talk was great. The package has really come a long way. A lot of features probably aren't needed for most efforts, but having them there means you have to dip less and less into SQL and database specific items. I like how you can do Sqlite purely in memory for testing, which means for development on the genwriter project its perfect.

I've been a fan of Alex Martelli since I first opened the Python Cookbook. His talk on callback patterns was like a firehose of really useful knowledge and lessons learned right into my brain. People left early and I guess I pity them. Sure, some of the stuff he talked about was advanced, but it wasn't that bad.

Also of good note was the Pyglet talk. Pyglet is a cross-platform multimedia library that lets you code in graphics and audio for anything you want. Unlike Pygame it uses the OS standard bits to do its media actions which means technically its core cpython. I downloaded one demo that is a fractal terrain generator and didn't download the 3-D shooter. Yes, someone made a half-decent 3-D shooter using a high level language. Wow.

I went to the Iterators talk which taught me about namedcollection.tuples. This is good stuff because you can stick complex data into a list-like object and then do fun stuff like easy sorting and other interesting things.

In retrospect I wish I had gone to the talk on python containers but the one on Nose testing was not bad. The speaker, also the creator, was not good at speaking. But his philosophy and tool are great. Very simply, Nose is a script you call that runs all the tests inside what you point it at. It runs anything that looks like a test. Sure, it doesn't have as much finesse as other tools, but its easy to use. And in my opinion, when testing is hard to do, it means you tend not to do it as much as you should.

Finally I was impressed by Mark Ramm of TurboGears. His talk was not so much on his framework but on that with WSGI all frameworks just become glue bits for bigger and better things. He wants people to play together and adhere to standards so if you want something else to use, you can do so without breaking your tools.

Lightning Talks
I wasn't that much impressed by them. There were, as Bruce Eckel pointed out, too many commercial based talks which generally were hiring spiels. I've got nothing against recruiters, but lightning talks are supposed to be technical, with maybe a '...and we're hiring' at the end. So what happened is I didn't pay attention to a number of them, and they blurred together. there were some awesome things presented there, like Larry Hastings of Facebook or Zed Shaw's great humor, but most of it was rather bleah. So sad that makes me.

Summary of Pycon
I'm not done yet! Lots more happened like a BOF or two, touching OLPCs, shaking Guido's hand, eating the odd good meal, and the sprints. That will come in a later post.

Tuesday, March 18, 2008

First side consulting project hits the world!

I didn't work on this as much as I would have liked, since February was really busy at work. Nevertheless, I did play a part, and it got my CSS skills back from the side of the pit and into active practice.

Thank Alex!

Saturday, March 15, 2008

I contribute to Python

I'm going to be hosting a open discussion tonight with Bruce Eckel and Barry Hawkins. The topic is on selling Python to Management.

A fanboy at Pycon 2008


And so much more. This is pythonista heaven.

Now if only it were easier to get palatable food.

Friday, March 14, 2008

Zed Shaw and me

I accidentally bumped into Zed Shaw while he was hanging out in the 'Python Ghetto' book seller. Nice guy who believes in standards. He should have been in Python years ago. If you don't know who he is, just know that he is a very contentious figure in the Ruby on Rails community.

In any case, I can claim that I was the guy who first steered him towards zc.buildout.

Thursday, March 13, 2008

Numpy Tutorial overview

My first tutorial was on Numpy, which was also had bits from MatPlotLab and Scipy. Really awesome stuff that lets you easily play with arrays of many dimensions, and is actually a set of Python wrappers for C. The end result is that it is 5-20 times faster than regular pythonic list manipulation of these sorts of things. The long and the short is that this will let me optimize certain things to an unprecedented degree. Better yet, the room was filled with Engineer, Mathematicians, and Scientists and it was awesome to hear these people talk things out. I grokked bits of their dialogue, and looked up things I didn't understand at the time.

Got lots of notes, lots of great ideas, and can already cook up useful applications for things learned today. Awesome stuff!

Monday, March 10, 2008

2 days until Pycon and Chicago

Am I excited about Pycon 2008? Heck yeah!

Do I care about being in Chicago? Erm. Not really. I've never been but I don't like it when its cold and windy. And I doubt staying in a hotel park next to the airport is conducive to doing anything noteworthy in a city. Naples was filthy, but historical. The food was all really good. We walked a lot. Drank cheap but incredible table wine. Sampled pizza and pasta at places in gastronomical history.

Someone give me something fun to do or a good place to eat in Chicago.


Replacing a legacy CMS with Plone

At work we have a legacy home grown CMS that I've been forced to maintain under protest for a little over 3 years. After yet another problem report, I decided to apply Plone as a possible solution.

20 Minutes later I had duplicated all of the functionality in the home grown CMS and by default added in search, 508, usability, performance, RSS, user groups, and so much more. Skinning it to look like a modernized version of the old CMS would be easy. The hard technical part would be migrating the data from the old CMS into the new Plone version, but with Generic Setup I don't expect it to be too hard.

Convincing the powers that be that this sort of conversion effort would be a good, cost effective thing will be the real challenge.

Anyway, this is the sort of thing that Plone 3.x feels made to do. I bet with a couple weeks of work this could be done. I'll keep my fingers crossed for now.

Thursday, March 6, 2008

Django fun

  • Very predictable behavior with a few weird exceptions. Learning curve is very gentle compared to Plone's big hump.
  • I couldn't seem to use inheritence in my data models, but I'm wondering if they use old style classes. In which case I think I have to run the __init__ method on classes when I inherit them.
  • Django templates are nice. IMHO, better than MYGHTY, GENSHI, or KID. For non-XML I would say its as good as TAL. For XML, TAL has the lead since its easier to read. One nice thing is how you are really blocked from doing any logic in templates and when you do call logic its done in an elegant way. Yeah, the other methods have it too, but the Django way is fun.

Tuesday, March 4, 2008

Pycon 2008 travel update

  • Got my plane tickets purchased.
  • Hotel reservations complete. I'll be at a DoubleTree Inn. I wonder if they have laundry I can use?
  • Conference registration delayed. Can't pay cause no option to pay is listed! Submitted a ticket but have yet to receive a response!

Sunday, March 2, 2008

Working from Panera today

Working from the Falls Church Panera today. Things on the to-do list:
  • Work on a ticket for Plone Software Center.
  • Work on a ticket on a project worked with is mostly CSS.
  • Work on a Django project James Saint-Rossy.
  • Working some stuff for the day job with NASA that is Plone 2.5.4.

Saturday, March 1, 2008

Mistakes not to make again

Its not good to check in your code after working 16 hours and then not run a test on it the following morning. I made this mistake this week. Ack.

If you see 'trunk' as a package directory on a server, don't delete again without checking for links. Even if you think you accidentally created it with a svn checkout yourself. Ack.

Work at a job where managers are where they are supposed to be so you can get all your Pycon 2008 papers approved and signed right away.