Best. PyCon. Ever.
And since PyCon is like my Christmas (in the 5-year-old sense: "I get new toys to play with!"), that's extremely high praise.
This isn't a proper retrospective - don't know if I'll have time to write one - but I just wanted to give thanks and glory to Jesse Noller, the entire volunteer staff (from whom I was notably absent), the proud ranks of the sponsors, and the awesome participants (the word is definitely "participant", not "attendee"). If you were wondering if PyCon's magic could scale, be reassured: the rainbows only proliferate.
PyOhio CFP should be out within a couple weeks, too.
Monday, March 12, 2012
Sunday, February 26, 2012
SENDING TO EVERYONE. PASS IT ON.
I think I need to create a script that
1. Scans my gmail inbox for any mail whose subject line uses ALL CAPS and which urges me to forward it to everyone I know;
2. Searches snopes.com for the message body;
3. Replies with a link to the top Snopes hit and its text, plus a preachy little sermon by me on the importance of Truth
... all automatically.
What sort of tools can I use to make such a script?
If you don't know, please forward my question on to everyone you know. It's very important. It probably involves President Obama and/or dead babies.
1. Scans my gmail inbox for any mail whose subject line uses ALL CAPS and which urges me to forward it to everyone I know;
2. Searches snopes.com for the message body;
3. Replies with a link to the top Snopes hit and its text, plus a preachy little sermon by me on the importance of Truth
... all automatically.
What sort of tools can I use to make such a script?
If you don't know, please forward my question on to everyone you know. It's very important. It probably involves President Obama and/or dead babies.
Wednesday, February 22, 2012
slides from Saturday class
Hi, Python students from Saturday! Hope you enjoyed the class, and thanks for your patience as we struggled with wireless issues.
Here's the updated class materials I promised - if you can, install Visual Python on your machine and try out some of the suggestions given in the comments at the bottom of move.py and gravity.py.
I'm very fortunate to be able to go to PyCon this year, and I plan to come to the Dayton Dynamic Languages meeting the following Wednesday (March 14) bubbling over with stuff I learn there - I'd love to see you there! Bring whatever Python project you've been working on and we'll help push you over any bumps you've hit, or strategize on ideas for new projects.
Here's the updated class materials I promised - if you can, install Visual Python on your machine and try out some of the suggestions given in the comments at the bottom of move.py and gravity.py.
I'm very fortunate to be able to go to PyCon this year, and I plan to come to the Dayton Dynamic Languages meeting the following Wednesday (March 14) bubbling over with stuff I learn there - I'd love to see you there! Bring whatever Python project you've been working on and we'll help push you over any bumps you've hit, or strategize on ideas for new projects.
Tuesday, February 14, 2012
Growth in PyCon sponsorship
When I teach Python, I usually include a slide or two about Python's importance and growth. At this point, that's begun to feel unnecessary - but I think I will include this illustration, because it's a neat one.
In 2004, I'd just started looking at Python. When I found out that PyCon would be just a few miles from my sister-in-law's house, I thought, "Why not?" - and I fell in love with the Python community forever. PyCon 2004 had nine sponsors.

This year, I barely squeaked my registration in before the blast doors slammed shut. Here are PyCon US 2012's sponsors.
In 2004, I'd just started looking at Python. When I found out that PyCon would be just a few miles from my sister-in-law's house, I thought, "Why not?" - and I fell in love with the Python community forever. PyCon 2004 had nine sponsors.

This year, I barely squeaked my registration in before the blast doors slammed shut. Here are PyCon US 2012's sponsors.
Sunday, February 12, 2012
Free Python class in Dayton
This Saturday (Feb 18, 2012), Sinclair Community College in Dayton will host Python: Programming is Fun Again, a two-hour introduction to the language.
It's a hands-on workshop, so bring a laptop if you can.
I'm teaching, so you can expect some planets to collide. However, this time, the aim is to help you get your own feet wet in actual programming. We'll start with simple 3-D graphical scenarios, and students will decide how to tweak and evolve the programs from there.
Contact Dr. Shirley Stallworth (shirley.stallworth@sinclair.edu) to register and for detailed directions and parking information.
Afterward, you can stop by TechFest, also running at Sinclair!
Pass the word along!
February 18, 2012 10 – 12pm
Python: Programming is Fun Again
It's a hands-on workshop, so bring a laptop if you can.
I'm teaching, so you can expect some planets to collide. However, this time, the aim is to help you get your own feet wet in actual programming. We'll start with simple 3-D graphical scenarios, and students will decide how to tweak and evolve the programs from there.
Contact Dr. Shirley Stallworth (shirley.stallworth@sinclair.edu) to register and for detailed directions and parking information.
Afterward, you can stop by TechFest, also running at Sinclair!
Pass the word along!
February 18, 2012 10 – 12pm
Python: Programming is Fun Again
Sinclair Community College, room 14130
444 W 3rd Street
Dayton OH 45402-1453 USAA free, hands-on introduction to Python programming
Free Python class in DaytonThis hCalendar event brought to you by the hCalendar Creator.
Saturday, February 11, 2012
HTSQL-powered Flask
With seven lines of code, you can plug HTSQL into a web application platform like Flask. Yes, I know that you know SQLAlchemy already; the point is that then your Flask apps can support HTSQL's rich in-the-URL filtering language. (Also, it lets you skip the schema definition step for read-only apps.)
For instance, this app serves reports from HTSQL's sample "University" database. Each report can run as-is
or can accept arbitrary HTSQL filters
The advantage over plain HTSQL is that you can use full Flask power. In this case, the reports come through a template that includes functioning links in each row, so it's a drill-down report:

Here are the magic seven lines:
Now each of your report pages asks for data in the form of an HTSQL query, and the ``data`` function appends any user-supplied filters to that:
full code for the sample app
For instance, this app serves reports from HTSQL's sample "University" database. Each report can run as-is
http://localhost:5000/hardcourses
or can accept arbitrary HTSQL filters
http://localhost:5000/hardcourses?title~'ogy'
The advantage over plain HTSQL is that you can use full Flask power. In this case, the reports come through a template that includes functioning links in each row, so it's a drill-down report:
<td><a href="/departments?code='{{ row.department_code }}'">
{{ row.dept }}</td>

Here are the magic seven lines:
htsql = HTSQL('pgsql:uni') # customize me
def data(qry):
filters = flask.request.url.replace(flask.request.base_url, '', 1)
if filters and ('?' in qry): # this can be fooled by a filtered subquery
filters = '&%s' % filters.strip()[1:]
qry = '%s%s' % (qry, filters or '')
return htsql.produce(qry)
Now each of your report pages asks for data in the form of an HTSQL query, and the ``data`` function appends any user-supplied filters to that:
return flask.render_template('departments.html', data=data(qry))
full code for the sample app
Thursday, January 12, 2012
Movie Night at the user group
At Dayton Dynamic Languages last night, we watched a great video, "Git for Ages 4 and Up". ("WARNING: CHOKING HAZARD - Small Parts. Not For Children Under 4 Years.") We had a great time, and I learned a bunch of things that I literally put to use for work on the bus home that night.
So, what's the difference between watching a video at home and watching it at a user group meeting? The all-important pause key. Every couple minutes, one of us would say, "Wait, what?"; we'd pause and discuss. Discussion is always the best part of a user event; anytime I help organize an event where the attendees don't start talking to each other, I'm disappointed. DDL never has a problem with discussion, but the video acts as a great tool to help seed and drive the conversation.
Now I'm thinking that all sorts of groups may want to add an occasional Movie Night to their regular meeting schedule. There are plenty of great video sources like Python Miro Community, but watching with your friends adds enormously to the experience.
[Hi to all my friends at CodeMash! Sorry I'm not there... next year in Sanduskalem, right?]
So, what's the difference between watching a video at home and watching it at a user group meeting? The all-important pause key. Every couple minutes, one of us would say, "Wait, what?"; we'd pause and discuss. Discussion is always the best part of a user event; anytime I help organize an event where the attendees don't start talking to each other, I'm disappointed. DDL never has a problem with discussion, but the video acts as a great tool to help seed and drive the conversation.
Now I'm thinking that all sorts of groups may want to add an occasional Movie Night to their regular meeting schedule. There are plenty of great video sources like Python Miro Community, but watching with your friends adds enormously to the experience.
[Hi to all my friends at CodeMash! Sorry I'm not there... next year in Sanduskalem, right?]
Subscribe to:
Posts (Atom)

