So, saturday has come and gone - most of it found me heads-down working with Rhamphoryncus (Adam) on the python-safethread(freethreading) project trying (and succeeding) to get the code ported to my OS/X box. Good times. Yesterday the keynotes were fairly interesting - Glyph and Duncan got up and made a great Twisted announcement, namely that twisted is now a recognized non profit software foundation (Twisted Foundation). That's great news - and they also announced their first sponsors as well. Congratulations to the twisted guys.
After that, there was an amusing, and very good talk by Brian Fitzpatrick called "You *can* fool all of your users all of the time". In it, he outlined a lot of great points about listening to your users, customer service, and putting the users first.
I think he had a lot of good points that get forgotten by a lot of people in software - he also outlined the tenants which have helped make google successful (Putting your users first, speed matters, etc.). He really is a fantastic speaker, and I hope people keep his points in mind.
One of the best points he had was that all abstractions leak - and many people spend their time trying to close off those leaks. He countered with "keep it leaky" - the reason being, is that you make an abstraction to keep it simple for some users, but keeping it leaky means that users with more technical aptitude can then use it in m ore advanced ways. The example he gave was the google search page - most users type a string in, advanced users use statements, formulas, etc.
The second (3rd?) Keynote was done by Van Lindberg, a lawyer primarily focused on IP. In it, he outlined some less than popular views on Intellectual Property. I really appreciated his outline of how it came into being, the economics of knowledge outline, etc.
I can say that a lot of people were grumbling to many of his points - a good chunk of the people in the room are IP absolutists, leaning towards the more RMS view of IP in totality. I really did enjoy it, and I thought he raised some interesting food for thought for many people.
Admittedly, the patent system in the us is broken - no one disputes that, but knowledge does in fact, have a cost to create, and like any creation, people will want to be able to use that knowledge to gain wealth. This concept is not exclusive to the concept of open source/etc.
But that's all I'll say about that. I think Van was a decent speaker, he stumbled at times, but his presentation was filled with good information.
I ended up having to leave early to run to an open space talk on Multicore programming with Bruce Eckel/Ted Leung and others. Catching the tail end of the discussion, they were primarily focused on the Actor Model and how to use it within Python/how it's implemented in other languages. A lot of the concurrency discussion at the conference has been primarily focused on alternative interpreters - namely Jython, PyPy and IronPython.
Given I only caught the tail end, I suggested we have another discussion on concurrency later in the day (more on that later).
After that, I slipped in to catch the middle/end of the "Decorated State Machines" talk - I missed the intro, so coming into it late, given the density of the information, made it incredibly difficult to grok what was going on.
So, I skipped over to "Managing Complexity (and testing)" which was Fantastic - Matt Harrison did an excellent job outlining key concepts for code coverage, code complexity and designing/testing properly. He also outlined the key measurements used in code coverage and how best to apply them - I really learned a lot from his presentation. He's uploaded his slides here.
Next up, the ever effervescent Alex Martelli's talk on "Callback Patterns and Idioms in Python" - again, another fantastic, information rich talk. I can't say enough about this talk too. From a technical bent it was spot on and didn't bog down at all. You can get his slides from here.
The next hour or so was a blur - why? I was heads-down working on the free threading stuff.
So, the next time I came up for air was for the py.test talk, which was quite interesting, and I'm going to followup on using it + nose for some internal work. A lot of great information, if not a rough presentation.
I dropped out of the lightning talks to attend the open space discussion on concurrency - a lot of people showed up, and a lot of good ideas were talked about. I took some time to pimp processing.py and the free threading work. It definitely does seem like there is an itch in the community to scratch.
The biggest thing I can say to that though, is that people need to realize that simply dismissing threading, shared memory and existing methodologies to building parallel/concurrent applications as "wrong headed" is a bad idea.
The last thing we want as a community to simply dismiss these - instead we should approach the problem with a multi-homes approach. Work on fixing threading, support the Actor model and look into a functional and OO method of concurrent programming. (More on this later).
Lots of thoughts about this really, and I, as well as others need to realize there are many, many problems in this space looking for solutions, and no one solution/tool will address all of them.
And, I got the free threading stuff compiled on OS/X. Woop.