On 26 February 2009 30 python enthusiasts gathered in Arnhem for the 3-monthly Dutch python user group ("PUN") meeting. Like the previous two times, there were two half-hour talks and five five-minute lightning talks.
Last time there was a short lightning talk, now there's the full version. Christo Butcher, the presenter, was troubled with RSI and couldn't really type a lot anymore. So speech recognition to the rescue. He can type most of the day now, but still uses speech recognition a lot as it works well for many purposes. You have a huge vocabulary as a person and one word takes the place of many characters.
Two well-working solutions exist: Dragon NaturallySpeaking and windows speech recognition (vista). Nothing for linux, sadly, as it is just not economically feasible.
Speech recognition is currently very good for human language. So "typing text". There's also "command mode": "search wikipedia for dragonfly. That's something that really makes speech recognition useful.
In answer to a question: yes, he writes python code by talking to the computer. So he's real happy that python is so readable. He actually wrote most of the dragonfly code by speaking! He promised a demonstration later on.
He mapped many of the internal speech recognition building blocks in a quite straightforward manner to python built-ins or specific classes. Once returned as those built-ins or those classes, you can work with it reasonably comfortably. The core problem, however, is human language. Human language is complex. With loads of exceptions to any rules you can devise.
His personal holy grail is writing computer code by voice. It is actually reasonably easy as code by definition is very structured. Way more structured than human language. It should be ridiculously powerful.
http://code.google.com/p/dragonfly and easy_install dragonfly.
Tim's first go at deployment was a bunch of small scripts. Every update was scary as he frequently lost an hour or so in fixing small mistakes. That ought to be improved. And there ought to be a load of existing solutions. So an email to the Dutch python mailinglist was in order. Most of the emails mentioned "buildout" so he gave it another look. He's pretty enthusiastic about it.
Every web application of reasonable size (in Tim's case django websites) consists of multiple components. Django itself, some custom python packages (so handled just fine with setuptools dependencies), a javascript library, a packer, etc. Buildout handles those setuptools dependencies just fine as it uses setuptools internally. And it has all sort of additions ("recipes") that do extra tasks (like handling backups, cron jobs, etc.).
Many of those extra recipes are released on pypi, so make sure you do some searching there to make sure you're not missing out on lots of automation.
Martijn Faassen thinks the brilliant thing about buildout is its extensibility. Everyone can contribute recipes. Open source power. Everything is on pypi.
I made two comments:
The lack of hassle is worth the effort you put into this. It saves hair and time. It makes deployment much more enjoyable.
An important note even for one-person projects: after half a year you're somebody else. You won't remember parts of what you've done half a year before. So make it explicit and repeatable. "Explicit is better than implicit".
Also mentioned: fabric for easily running commands remotely on a server.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):