PSF Grants, and some additional color

January 1st, 2012 § 0 comments § permalink

Doug Hell­mann and Mike Driscoll put up an excel­lent post on the Python Soft­ware Foun­da­tion blog about most of the grant-type work that the foun­da­tion per­formed over the 2011 year. To add some color to it — reviews and dis­cus­sions about grants and award­ing this com­prises quite a bit of the board-level work that goes on (exclud­ing indi­vid­ual committees).

You can see from the post quite a bit of the cap­i­tal spent goes to sup­port other con­fer­ences — as I’ve stated before, money that comes into the foun­da­tion in the forms of dona­tions and PyCon “rev­enue” goes back into the sys­tem to be issued out to things like this.

This is why I am so hot to encour­age grants around Port­ing to Python 3 — I think that the PSF can, in the next year, increase grant work for con­fer­ence and out­reach as well as devel­oper work (such as port­ing libraries and other projects). None of these things should be solely focused on CPython alone — PyPy, Jython, etc should all be recip­i­ents of grants.

And therein lies the rub.

The PSF does not “go look­ing” for places to issue grants — the PyPy grant at PyCon 2011 was a bit of an aber­ra­tion in that I pro­posed it to the board directly.

We need appli­ca­tions from the com­mu­nity! We can do things such as cover meetup fees for user groups, or help fund con­fer­ences, or devel­op­ment work. Jes­sica McKel­lar, I and oth­ers recently revamped the PSF grants page to hope­fully pro­vide a bet­ter out­line of how grants work.

If you have more ques­tions — feel free to ask me here or via email — the PSF’s mis­sion is hap­pily broad, and we’re here to serve and rep­re­sent the com­mu­nity as best we can. But we do need to hear from you!

 

 

2011 In Review: The Python Portion

December 30th, 2011 § 1 comment § permalink

As I said in my post this morn­ing — “2011 in Review: The Per­sonal Por­tion” — it’s that time where we’re all tak­ing stock and reflect­ing back on 2011.

In this post’s case, I’m tak­ing stock of the things that changed for me — things that stick out in my mind and projects I’ve either started, floun­dered or run com­pletely into ground.

Design and Expe­ri­ence Matter

Per­haps the biggest shift for me in Python-as-a-whole is a move­ment more towards the social / man­age­ment aspects. I’m a Python Soft­ware Foun­da­tion board mem­ber, so obvi­ously me need­ing to take a “big­ger view” isn’t that sur­pris­ing. What has been sur­pris­ing to me is that every­where I turn, I see things we as a whole can do better.

Now, before you think I’m about to go off the deep end; let me assure you — I wouldn’t trade the com­mu­nity I’m lucky to be part of for any­thing, as I’ve said more elo­quently before. How­ever, only a fool believes that any­thing is per­fect, and only the insane only focus on the flaws.

Tak­ing a step back, I’ve seen more and more things that I think we can do a bet­ter job at, and these real­iza­tions all revolve around my con­tin­ued “tran­si­tion” from more back-end to more front-end design and cod­ing. As I’ve become more focused on the users/community and those who are new, I’ve grown to inter­nal­ize the fact that design and expe­ri­ence mat­ter not only in code, and in a GUI, but they mat­ter to a com­mu­nity and lan­guage as a whole.

I’ve spent the bet­ter part of this past year focused on issues around this — encour­ag­ing peo­ple to get involved in the “softer” side of things — help­ing out with doc­u­men­ta­tion, men­tor­ship and edu­ca­tion, try­ing to get peo­ple to think more about one another and those just get­ting started and intro­duced to things.

I think that we as a com­mu­nity — and I mean every­one — from Django to Plone, from Twisted to Tor­nado, from PyPy to cPython can take a look at the “more human” aspects and find things to improve. Some­times it requires fresh eyes to show you what’s bro­ken — peo­ple who do code reviews reg­u­larly know this.

For an exam­ple, look at Ken­neth Reitz’ Requests mod­ule — billed as “HTTP for Humans” — this might be a per­fect exam­ple of the point I’m try­ing to get across. Built on top of “less friendly” libraries, it’s API is a joy to use. It’s sim­ple, it’s clear — the doc­u­men­ta­tion is well done and the entire project feels very wel­com­ing. Per­haps “Wel­com­ing” is the best word for what I’m look­ing for.

I get stuck in want­ing to fix “all the things” — and I can’t help but get mired down in the details of how we make every­thing more wel­com­ing and the expe­ri­ence bet­ter, how do we lower the bar­rier and reduce fric­tion. The result is that I’ve bro­ken my promises to myself and taken on more things than I can pos­si­bly hope to do justice.

How do we make things more wel­com­ing, how do we help the new peo­ple, how do we help those of us grow­ing stuck in our ways to find and explore new things? How can we do this as a com­mu­nity to lift us all up? What I think we need is a series of small, pos­i­tive changes. Lit­tle things like, say:

  • User friendly READMEs and Doc­u­men­ta­tion. Yes — I said friendly — don’t assume your users are mag­i­cal super smart engi­neers and users. While the arti­cle is more web focused, I enjoyed “The Myth of the Sophis­ti­cated User” — please don’t assume peo­ple are run­ning bleed­ing edge ver­sion of every­thing, and please don’t assume every­one knows 20 years of Python pack­age development.
  • Men­tor­ship! Set up some­thing within your project or team that is focused on men­tor­ing peo­ple to a point where that per­son is com­fort­able to be a con­trib­u­tor.
  • Stop the vit­riol. If you find your­self angry when you’re typ­ing that reply to a mail­ing list; walk away. If you see oth­ers being hos­tile or just flat out rude, call them out on it (pri­vately first, no rea­son to be a jerk). Aim to be polite and welcoming.
  • The next time you’re putting some­thing up on the web? Take a moment to think about or learn about mak­ing some­thing — yes — pretty and usable. Even if it’s some­thing sim­ple, take a moment to real­ize that you’re build­ing some­thing that may be your future user’s first expe­ri­ence with you. It may be as sim­ple as pick­ing up “Design for Hack­ers” (which I quite liked) or just going with some­thing with sane defaults — like twit­ter boot­strap.
  • Speak­ing of sane defaults — please be opin­ion­ated. When a new user wants to install some­thing, don’t give them the com­plete his­tory of pack­ag­ing, just gen­tly explain to them how to do it. Even if I don’t agree with the way you do that, it’s a far cry from 20 years of devel­op­ment his­tory being dumped on some­one when a sim­ple pip install <blah> could work. The same goes for your soft­ware: Pick sane, ratio­nal defaults and abstract away as much as you can. Put exam­ples of usage before the API in documentation.
  • APIs and syn­tax mat­ter: your com­mu­ni­ca­tions chan­nels to your users are APIs and syn­tax just as much as your actual code and libraries.

Mov­ing on — I hate to say it this way; but think of the Users and tar­get audi­ence. Remem­ber, you — the per­son read­ing this — and I — are in a tiny minor­ity of the pop­u­la­tion where soft­ware (for the most part) isn’t magic, we under­stand his­tory and we’re very tol­er­ant of unfriendly things and fail­ures because that’s how we “grew up”.

Not every­one knows how to build an inter­preter; or a web frame­work — it doesn’t mean they still can’t contribute.

The Python Soft­ware Foundation

As most of you know — I am one of the direc­tors of the Python Soft­ware Foun­da­tion, and have been the past two years. 2011 was another year where the PSF got to do some pretty cool things. I’ve been stress­ing and push­ing more and more that the PSF has to be focused not just on the “IP” of Python, or just on cPython devel­op­ment — we have to take a larger view of the entire com­mu­nity — this means encour­ag­ing projects such as PyPy, out­reach work­shops, con­fer­ences, etc via grants and support.

You should really take a look at the Python Soft­ware Foundation’s blog — Doug Hell­mann, Brian Curtin and oth­ers have done their best to doc­u­ment and show­case what the PSF has been up to, and where we’re try­ing to help.

My pri­mary focus has been encour­ag­ing things such as the Out­reach and Edu­ca­tion com­mit­tee, and work­ing behind the scenes with a lot of peo­ple to improve the Python.org infra­struc­ture. More recently I’ve been work­ing on a project which should hope­fully become pub­lic soon — but is tied to my first point about Design and Expe­ri­ence and the PSF.

I want the PSF to grow in the good works it per­forms — more grants as we can afford it, get­ting bet­ter host­ing for things as needed, help­ing out projects like Read The Docs or help­ing push for­ward Python 3. The PSF is the Python Soft­ware Foun­da­tion — we need and should be sup­port­ing and help­ing every­thing from PyPy to PyPI, cPython to Scipy.

I think the best way for me to help here is to pick up where I left off doc­u­ment­ing the PSF. Once again — the design and inter­face matter.

The Sprints Committee

As part of my board work back in 2010 I helped start the Python Sprints project — and under Brian Curtin’s guid­ance in 2011, it has con­tin­ued to make small dona­tions in places it mat­ters. In 2012, I’d like to see if I can spin back around and help it grow more and flour­ish, per­haps even be able to pro­vide more money where it’s needed. It’s growth has been slow — but that’s also due to us see­ing less sprints over­all it seems.

GetPython3.com

Started as a side project (yes. another one. sigh.) Get Python 3 is meant to serve as a pile of infor­ma­tion and resources about Python 3 — and as many of the aspects of Python 3 as pos­si­ble. Where to get fund­ing, how to port, what is ported. I’ve actu­ally got­ten some excel­lent help from oth­ers (see github) and I’m hop­ing to grow it more. I’ve got­ten pretty good feed­back on it — and I never turn down a patch!

Python (Core) Mentorship

Dri­ven from my expe­ri­ence with the first point about being wel­com­ing, I’ve done my best to spin up the Python Core Men­tor­ship group, a team / list focused on men­tor­ing new peo­ple into con­tribut­ing to core Python. To quote the home page:

The mis­sion of the Python Core Men­tor Pro­gram is to pro­vide an open and wel­com­ing place to con­nect stu­dents, pro­gram­mers – and any­one inter­ested in con­tribut­ing to the Python Core devel­op­ment. This project is based on the idea that the best way to wel­come new peo­ple into any project is a venue which con­nects them to a vari­ety of men­tors who can assist in guid­ing them through the con­tri­bu­tion process, includ­ing dis­cus­sions on lists such as python-dev, and python-ideas, the bug tracker, mer­cu­r­ial ques­tions, code reviews, etc.

While traf­fic is low, I think it has done it’s job — as with every­thing else on my list, I’d like to see growth — as it is, due to every­thing else on my plate, oth­ers have stepped up to help lead and guide the group. As it is, I’ve run into a case where as I’ve found with many other projects like this — peo­ple are already “tapped out” — myself included. More on resource con­tention later — and I should really do a poll and gauge the list for the rel­a­tive level of suc­cess they feel the group has engendered.

Python Speed Project

Another side-burner project is the Speed.python.org project — this one makes me sad(der) than my other time-starved projects. While we have finally been able to set it up as a PyPy build slave and have it feed­ing results to speed.pypy.org (see the speed-python results), it has not taken off as much as I hoped. We have a beast of a machine (see my ini­tial announce­ment) — but we’ve hit the resource wall like every­thing else. Not enough peo­ple with enough time and the right skills.

The Ele­phant in the room: PyCon 2012

My sin­gle biggest project this year has been get­ting PyCon 2012 ready to fly — every­thing from get­ting the new web­site launched, the staff assem­bled, writ­ing a code of con­duct, and pro­vid­ing white-glove ser­vice and sup­port (and get­ting) our amaz­ing list of spon­sors.

I can’t really esti­mate how many hours I’ve “worked” on Python — but I can tell you every hour has been worth it. Even though it’s sucked my time from other things and projects, it looks like it’s going to be an amaz­ing con­fer­ence. We have robots, we have amaz­ing talks, amaz­ing keynote and ple­nary speak­ers (Paul Gra­ham and Stormy Peters for starters). We have awe­some tuto­ri­als and even more to come.

PyCon rep­re­sents the sin­gle biggest “com­mu­nity act” that the Python Soft­ware Foun­da­tion per­forms — not only does the PSF fund PyCon, but it man­ages it, assumes the risk, etc. I wrote about it in detail in my post “Mak­ing the Case for Spon­sor­ship” and in the “Every­body Pays” post. I’m hop­ing to con­tinue to write up more and more of the details of the inner work­ings of PyCon, as I think it’s an impor­tant series of data points and lessons. Remem­ber — any funds “left” from PyCon go the PSF which allow the foun­da­tion to issue grants to other con­fer­ences, to devel­op­ers, groups and work­shops. It helps us help you.

PyCon 2012 is the thing I am most proud of; we have 80 spon­sors and part­ners (Such as Open­Hatch and PyLadies), we have a solid team of orga­niz­ers work­ing together to bring PyCon 2012 to fruition. We have a robust finan­cial aid pro­gram as is tra­di­tion. I can only hope that I have the tenac­ity and will to see it come together and be able to look at a sea of 1500 Python­istas — new and old in Santa Clara.

ps: You can reg­is­ter here. :)

Blood from a Stone

How do you get more time from peo­ple who are busy? Time and Time again, I’ve found myself ask­ing that ques­tion. Each one of the projects I’ve listed has hit the same issue over and over again. How do you get the vol­un­teers nec­es­sary to help? Heck, even my call for help with mul­ti­pro­cess­ing in August fell on a mostly flat note — prob­a­bly due to me.

I no longer feel “ok” ask­ing for help with new projects sim­ply due to the fact that I know every­one is busy — it’s insane of me to ask peo­ple to take their time away from their projects or fam­i­lies or jobs.

What that means how­ever is that I have com­pletely failed in the not-taking-on-new-things depart­ment — and I don’t see this chang­ing much with­out me flat out learn­ing to tell myself “no”. I believe in this com­mu­nity — I believe in the peo­ple, the friends I have, the lan­guage and every­thing involved. It’s not just another tool for me; it never has been. I’m still learn­ing, and mostly fail­ing (or flail­ing, depends on where I’m standing).

Fin­ish­ing this one off

Look­ing at the list I’ve typed out above, I sud­denly have the feel­ing that I didn’t actu­ally do much last year, I know thats wrong (a nasty look from my fam­ily mem­bers would eas­ily remind me of that). I have been able to help out where I can mak­ing things more friendly, more wel­com­ing and to reach out when and where I can to offer help, and support.

I’ve watched the com­mu­nity change in some dra­matic ways, I’ve looked on as PyPy has gained amaz­ing momen­tum, more and more ven­dors and com­pa­nies have come out with Python sup­port and stat­ing that they’re using Python (and are hir­ing). I’ve got­ten to work with PSF mem­bers, the board, and many, many oth­ers — all I can do is keep at it, and hope I do things justice.

2011 in review: The Personal Portion

December 30th, 2011 § 7 comments § permalink

Yup; it’s that time — every­one and their brother is doing a post look­ing back at 2011 and tak­ing stock of the good, the bad and the ugly. I’m no dif­fer­ent — 2011 was a year that largely rep­re­sented a mas­sive shift in my life’s tec­tonic plates.

I’ve decided to break this reflec­tion into two related parts — the more per­sonal stuff (this one) and the big-P Python stuff — both have seen shifts and changes worth not­ing, and both are inex­tri­ca­bly tied for me. I’ve inten­tion­ally skipped all of the Python** stuff (includ­ing PyCon) that I’ve been work­ing on — that’s going to come next.

Per­sonal Changes

In late 2010 I was play­ing paint­ball — some­thing which every­one should try at least once — it truly is a blast. How­ever, at the time I was grossly over­weight (280/285 lbs head­ing to 300) and run­ning around out­doors with 20+ lbs of equip­ment. It was a nor­mal Sun­day game when I piv­oted in the per­fectly wrong way — my foot had got­ten stuck in some tree roots and when I piv­oted, my right knee dis­lo­cated and I col­lapsed face-first into a pile of tree branches.

I did not real­ize that my knee has dis­lo­cated, just that my leg wasn’t work­ing. I slapped my knee, hard, bent it and got up and kept play­ing. The adren­a­line kept me going for sev­eral more hours while I con­tin­ued to play on a knee of ques­tion­able verac­ity. When I got to my car a few hours later, all I knew is that my knee felt funny, and my cargo pants where tight where my knee was.

When I got home and changed, the truth came out. My knee had swollen to the size of a can­taloupe and turned sev­eral ugly col­ors. I fig­ured I has injured it, and largely ignored it. Then the pain set in the next day.

Fast for­ward through many doc­tor appoint­ments, MRIs, and two more dis­lo­ca­tions — once get­ting my daugh­ter out of the bath­tub which required my wife to come in and put my knee back into place because I was busy cry­ing on the floor, and the sec­ond just get­ting out of bed. My knee, from that ini­tial dis­lo­ca­tion had become very weak. The doc­tor told me flat out that I needed phys­i­cal ther­apy and rehab, oth­er­wise surgery was going to be required.

He told me I needed to change things. Look­ing at myself in the mir­ror, I real­ized that some­thing had to be done — I was stressed, over­weight and my path was out of whack. I couldn’t deal with surgery with three year old and a now preg­nant wife. I got a cor­ti­sone shot and went up the street to the local Bikram Yoga stu­dio — I had never done yoga before — I walked in, slapped down some money and went into a 120 degree studio.

This is a photo of my from June 2010:

Geliu

 

I became a Bikram con­vert over night — the owner of the local stu­dio Bob is an amaz­ing man, friendly, kind — all of the instruc­tors helped me through learn­ing and grow­ing and push­ing through the pain, the heat and every­thing that comes with a grossly over­weight ex-smoker who was drink­ing 2+ pots of cof­fee a day jump­ing in head first. I quickly ramped to doing classes 3 times a week.

Addi­tion­ally, I com­pletely altered my diet — I’ve long dab­bled in low-carb/no-carb/ketogenic, but this time I jumped in no-holds barred. No sugar, I cut my cof­fee intake to one cup a day, no carbs/gluten, period. 2011 came quickly, and I kept it up. Yoga, diet — lather, rinse and repeat. I shed enough weight that peo­ple at PyCon 2011 didn’t rec­og­nize me. Good. Not good enough. Through­out 2011 I kept this up — drop­ping from an easy 280 lbs to 165 at my low­est. Later in the year I added weight lift­ing with cowork­ers at lunch — even later I started the couch to 5k pro­gram to start run­ning (even doing it the “bare­foot” way).

Now, as the year turns, I weigh a healthy 175 lbs — I’ve put on mus­cle mass, kept my flex­i­bil­ity, kept on my diet which has shifted into a more Paleo form than what it had been (mainly adding fruit back in, but still skip­ping carbs/gluten/sugar — I still mostly only eat meat and veg­eta­bles). I can now run for 30 min­utes with­out feel­ing like death and hit 4.2 miles. My knee still both­ers me some­times, but I’ve dodged surgery. I can now look at my daugh­ters and wife and hope that I’ll be around a lot longer than I would have been had I not done these things. I feel more alive than ever before.

Me, Decem­ber 2011:

2011

 

Dur­ing 2011, I also switched to an all stand­ing desk setup (yup, despite the knee):

I’m happy to say that this con­tin­ues — thanks to an excel­lent gift from my wife, I even have a nice stand­ing setup at home now. It’s been over 7 months since I last sat down at work to work. Sure, I sit at lunch, and in the car — I’m not that weird, but I con­tinue to reap the ben­e­fits I out­lined in those posts.

I also started work­ing on my men­tal health, and focus. Try­ing to learn how to med­i­tate, work­ing on min­i­miz­ing dis­trac­tions and build­ing small improve­ments to my work­flow. Focus­ing on being open to change and crit­i­cism. Focus­ing on things I had ignored for a long time.

You can’t go and just fix your phys­i­cal self — you have to take care of the men­tal aspects as well. I’ve had to learn this over and over the hard way, and it is still a daily fight between what I was, and what I want to me. I have to focus on small changes and improve­ments con­stantly — oth­er­wise it’s deadly sim­ple to fall back on old ways.

I did a post some time ago — “On Fam­ily, Crank­ing and Chang­ing” — I still read this once in awhile to remind myself where I need to go and what I need to accom­plish. I can’t lose sight.

Now for the hard part.

Chil­dren

2011 also brought my fam­ily to the brink — and I mean that in the lit­eral sense. There was a time where my wife and I would look at each other hope­lessly, won­der­ing what we would do and how we would pull through. In June, we had our sec­ond daugh­ter Addi­son Joy. The preg­nancy was really rough and my cowork­ers and boss sup­ported me through the needed “dis­ap­pear­ing”. My wife spent a lot of time in the hos­pi­tal, and there were many times where we were wor­ried that things wouldn’t work out.

Luck­ily, my wife — and Addi­son, pulled through. I don’t know how they did it, and I sus­pect we’ve burnt a life­time of karma and luck in just a few months, but they both came through. Addi­son was born, and I once again new the joys and pains of hav­ing a new born daugh­ter. Through­out all of this, our old­est daugh­ter Abi­gail trooped on through — it was a lot to ask for a 3/4 year old, but she con­tin­u­ally amazed me. To look at her face and see how much she wor­ships and loves her mother — to see how she loves Addi­son — that’s to know some­thing you’ll never see any­where else.

Not every­thing was well — and we didn’t know it yet, but the worst storm was yet to come.

To quote my post — “Thank you — the impos­si­bil­ity of “It’s going to be OK”:

But, so, AJ was born — and at first, every­thing seemed to be fine. 10 fin­gers, 10 toes and poop­ing — that’s sort of what you hope for in a new­born. We took her home, she saw her pedi­a­tri­cian, and that was that.

Well, no. Around the time Addi­son was three weeks old (shortly before my first child’s birth­day) my wife Dusty started notic­ing that Addi­son was behav­ing erratically/oddly — and if you have any expe­ri­ence with infants, you’d know how hard it is to actu­ally deter­mine “odd” behav­ior. Almost every­thing they do is odd, down to tim­ing exactly the worst moment when to spit up on you (point of fact — it is after you’ve show­ered, and are walk­ing out the door).

In this case, the odd behav­ior my wife noticed was actu­ally a pat­tern — and that’s when you need to worry. You want con­sis­tency in cer­tain areas, you want to see con­tin­ual improve­ment, you want them to con­sis­tently eat, poop and sleep. How­ever, a pat­tern of odd move­ments tipped my wife (who is a fan­tas­tic ana­lyst) off that some­thing was not quite right.

What my wife found was that Addi­son for peri­ods of time any­where from 1–2 min­utes her eyes would slit and roll back and she would freeze up. The best way to describe it is it was almost as if she would just “check out” — as if some­one hit a power switch.

It’s still hard for me to read that post — it’s dif­fi­cult for me to com­mu­ni­cate the emo­tions — the fear, the out­right ter­ror of not know­ing what was wrong with our baby girl. More hos­pi­tals, more doc­tors. My new born daugh­ter with a hel­met of leads and elec­trodes com­ing off of her head. Sleep­ing in cots in hos­pi­tal rooms. My wife elo­quently wrote a series of posts:

Some­thing I say in that thank you post is some­thing that will stick in my mind for­ever. When my friends and peo­ple I barely knew in the Python com­mu­nity heard and saw what we were going through as a fam­ily, the sup­port we got was floor­ing. It still makes me tear up think­ing of all the cards, well wishes and other things — a lit­tle toy for Abi­gail, Doug Napoleone com­ing over to help me out with some­thing, every­thing that the Python com­mu­nity did for our fam­ily. It is, and was amaz­ing. I can never thank all of you enough for what you did for us, and how you helped us pull through.

The num­ber of emails I got from other par­ents in the com­mu­nity who suf­fered through things like this, the well wishes — I, I can’t even go into every­thing that hap­pened. Words can not express it. All I can say is that many times, my wife and I found our­selves in tears, cry­ing with one another because of some act or gift or email from some­one in the community.

In Octo­ber, I did a quick Google+ post, pro­vid­ing an update on how things had panned out — quot­ing that post:

Addison’s diag­no­sis — if you want to call it that — is Cere­bral Palsy — Hyper­to­nia (http://en.wikipedia.org/wiki/Hypertonia). This means that she does have a dis­or­der, but it’s not one treated with drugs — just phys­i­cal ther­apy and fre­quent check­ups. We have a nurse and a phys­i­cal ther­a­pist who come weekly and check on her thanks to early inter­ven­tion. She’s devel­op­ing well — she’s eat­ing baby food, smil­ing and gen­er­ally being a nor­mal baby. All we have to do is keep up with the ther­apy and in the­ory her brain will “auto cor­rect” as time goes on. She’s 17lbs and count­ing at just about 5 months and just giv­ing hints of crawling.

In addi­tion to the hyper­to­nia, she was diag­nosed with non epilep­tic seizures — again, not some­thing we can do much about other than to love her, keep up with check­ups and wait.

So that’s where we are — we have a happy, coo­ing, laugh­ing, happy baby and just have to keep a close eye on her and work through things that come up. It’s too early to tell if her prob­lems will have long term con­se­quences. The doc­tors all hope that she’s “error cor­rect” around these things and she’ll be OK. But we won’t know until we see her devel­op­ment at 6 months, 9 months and 1 year — we still have that “threat” that some­thing could hap­pen — her brain could stop devel­op­ing, or con­di­tions could get worse.

But its hard to think about that — because I don’t see the prob­lems — every day, I pick up and hold and play with a beau­ti­ful, cheer­ful baby who wants noth­ing more than to chew on my fin­gers (she’s teething) and laugh. I don’t think about the future much, because it’s unknow­able, and we’ll cross that bridge when it comes. Some­times it pops into my head — that worry, that doubt, and I push it to the side and think of what we’ve already gone through.

It’s now Decem­ber — almost Jan­u­ary. Addi­son has con­tin­ued to thrive — the fear and the worry aren’t for­got­ten — we have reg­u­lar vis­its from a phys­i­cal ther­a­pist and nurse to con­tin­u­ally check on her. She still has some issues we con­tinue to work through, and we’ve got a series of appoint­ments with neu­rol­ogy spe­cial­ists, but its hard to think that any­thing is “wrong” with her at all.

She’s almost 20lbs (huge baby!) — she’s bab­bling, she’s got­ten her first tooth (on christ­mas eve to boot) — she loves her walker and wor­ships her sis­ter. She laughs more than any baby I’ve ever seen, and that laugh is angelic. I don’t know what the future holds, and I don’t know how long our luck will hold out, but what I do know is that I have two beau­ti­ful daugh­ters who have changed my life forever.

I have found friends where I did not expect, com­pa­tri­ots and sup­port. I have found that my cowork­ers, com­mu­nity and friends are more amaz­ing than I could have ever expected. And Addi­son thanks you:

IMG 3672

 

Finally, Work

I love my job, what more is there to say? 2011 was a break out year for me per­son­ally — and a break out year for Nasuni — we’ve built some­thing amaz­ing, some­thing that com­pa­nies want. With any luck, we have begun to change how busi­nesses will store their data and what they come to expect from an enter­prise class prod­uct. I get to do what I love, with peo­ple that are awe­some.

Of course, 2011 found me grow­ing more into doing things I never really expected to be doing — I’ve con­tin­ued a shift from the back end/glue and more into the front-end, spend­ing most of my time work­ing on user inter­faces, beat­ing my head against inter­net explorer. I’ve spent more time in JavaScript than I care to admit. Learn­ing CSS, re-learning design, lay­out, think­ing con­stantly about user expe­ri­ence, star­ing at color palettes for days.

And I — We — are far from done. I’ve men­tally grown into a mind­set that “UI” (user inter­face) doesn’t just stand for the graphic design of a site — and that UX (user expe­ri­ence) isn’t just about how things are laid out on a page. UI/UX has to be thought about from the part the user sees, feels and uses all the way down to the low­est level API of your system.

Good Design (notice the big D) means APIs mat­ter. It means that every­thing from error mes­sages, to doc­u­men­ta­tion to cus­tomer sup­port and care mat­ter. You can’t ignore any of it. You can’t slap a CSS frame­work into place and think you’re done with “Design”. It means car­ing about the user com­pletely, and with­out regard to your biases or skills.

Good Design also mat­ters in com­mu­ni­ties — user expe­ri­ence, inter­faces — think­ing about oth­ers — of course, I’m get­ting ahead of myself and delv­ing into the sec­ond post.

Wrap­ping this one up

On a per­sonal level — 2011 was a year I doubt I’ll for­get any time soon. It’s been a mix­ture of pain and plea­sure and con­stant evo­lu­tion and change. 2011 changed who I fun­da­men­tally am as a per­son, and I hope I’ll never be the same.

Again, thank you all — you know who you are.

And to my fam­ily: Dusty, Addi­son, and Abi­gail (who is so smart it scares me) — I love you.

 

Quick example of extending UserCreationForm in Django

December 19th, 2011 § 0 comments § permalink

I just banged my head against this, and with no good answers float­ing around out there, I thought I’d share. In my case, I just wanted to extend the basic django.contrib.auth.forms.UserCreationForm in order to make it so when a user was added, an email address had to be sup­plied in addi­tion to the user­name and pass­word fields.

Here is a work­ing exam­ple (forms.py) — just so I don’t for­get it:

?View Code PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
 
class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)
 
    class Meta:
        model = User
        fields = ("username", "email", "password1", "password2")
 
    def save(self, commit=True):
        user = super(UserCreateForm, self).save(commit=False)
        user.email = self.cleaned_data["email"]
        if commit:
            user.save()
        return user

You have to mod­ify the save method on the form to add the email to user object returned by the super call. You can use this to expose other fields on the User object as needed.

Porting to Python 3: An offer for you.

December 9th, 2011 § 3 comments § permalink

35gb00

Recent posts and dis­cus­sions around port­ing of exist­ing libraries and frame­works to Python 3 have been pretty inter­est­ing. I think that there have been a lot of good points brought up in the dis­cus­sion (See: Armin’s Post (and fol­lowup), Nick’s entry on Python 3 and Nick’s email to Python-Ideas).

On a per­sonal level; I’ve felt frus­trated that there’s not much that I can do myself — I do believe that 2.7 is the proper end of the road of Python 2, and I do think that Python 3 is the future of the lan­guage. Does that mean Python 3 is per­fect? Oh hell no. Does it mean that we can do work to make Python 3 the “Python 3″ we all want and need?

Yes it does.

So; while there is noth­ing I can do directly other than con­tinue to work on the site I’ve been slowly build­ing — GetPython3.com with help from the com­mu­nity — there is an aspect I can help with from a Python Soft­ware Foun­da­tion / Grants level. That means money (well, not unlimited).

As some of you might know — the PSF has actu­ally issued grants to devel­op­ers who have applied to port impor­tant libraries to Python 3 — as I say on the GetPython3 page:

In short: yes — there’s a bevy of infor­ma­tion, videos and blog posts out there that can help you on your way. Python 3 is the future of the Python lan­guage, and enti­ties such as the Python Soft­ware Foun­da­tion strongly believe in sup­port­ing the port­ing effort.

For exam­ple, the Python Soft­ware Foun­da­tion has issued devel­oper grants to port projects such as the email pack­age, PyOpenSSL, and WebOb. It has also pro­vided devel­oper grants for other gen­eral Python devel­op­ment work, such as to Brett Can­non that allowed him to com­pletely revamp the Python developer’s guide.

The Python Soft­ware Foun­da­tion is here for not just CPython, or python-core, or python-the-language. It is here for Python — the com­mu­nity, it’s efforts, its devel­op­ers, design­ers and people.

Cer­tain projects — most notably PyPy — have already started dona­tion pro­grams to help fund large-scale devel­op­ment efforts to Python 3. Oth­ers may soon follow.

Addi­tion­ally to the grants-to-developers aspect — the PSF Sprints project has been issu­ing grants for Python sprints in gen­eral, which means you can apply / ask for a grant for a port-to-python3 work­shop or sprint any time!

But; back to where I was going…

My offer to you, the com­mu­nity is this — I can not guar­an­tee you will get a grant, or fund­ing — but what I can do, and what is within my power as a fel­low mem­ber and PSF Direc­tor is offer to help write, and review appli­ca­tions to the PSF Board of direc­tors for grant applications.

That’s right — I will assist you in writ­ing an appli­ca­tion that will be sub­mit­ted to the PSF Board for approval, for grants aimed at port­ing libraries or frame­works to Python 3; or doing spe­cific doc­u­men­ta­tion / core work for Python 3. I can help you write it; pro­vide tem­plates, dis­cuss it with you (I may have some elves help me) and ulti­mately help you put it in front of the board for approval.

Obvi­ously; the PSF does not have unlim­ited funds; nor can it spend funds irra­tionally. Python 3 is impor­tant how­ever — crit­i­cally so — and while we can not fund every­thing, we can do what we can. I am aim­ing at libraries/frameworks which are in wide­spread use (e.g. notable) and that other projects/libraries/frameworks depend on heav­ily (for exam­ple, see the Py3k poll).

Before get­ting started, you should read the basic PSF Grant guide­lines and you should look through the infor­ma­tion on http://getpython3.com/.

If you are inter­ested in this; drop an email to jnoller@python.org — I don’t promise imme­di­ate up-to-the-second turn around — I’ve obvi­ously got a lot on my plate right now, but I will do my best to help.

A Christmas Story

November 30th, 2011 § Comments Off § permalink

Pre­am­ble — Mem­o­ries are strange.

Mem­o­ries are strange things. You don’t quite know where they come from — or why a par­tic­u­lar one is more pow­er­ful than another. They pop up unbid­den — some sub­con­scious trig­ger, a smell, a sound, an event causes them to come to the fore­front of your mind and take over your brain and emotions.

Mem­o­ries, once ingrained, are impos­si­ble to rid your­self of, good or bad. You don’t get to choose which ones fault in, and you don’t get to choose which ones are the most pow­er­ful one attached to a trigger.

Some­times, no mat­ter how much you try, no mat­ter how many new mem­o­ries you try to make to replace, or sub­sume a given one — one mem­ory will always stick. It can be good — or it can be bad. You don’t get to choose. When that mem­ory is a bad one, it doesn’t mat­ter how much you stack on top of it, no mat­ter how much you try to for­get — when it comes to the fore­front, that is what you see, what you feel.

We don’t get to con­trol it. All we can do is try to forge new ones and hope that they are more pow­er­ful, more per­ti­nent and more filled with love and hope than every­thing that came before it, so that even if the mem­ory that comes up is a bad one — a hor­ri­ble one — there’s some­thing warm, lov­ing and car­ing to fall back on and hold on to when we lay awake at night star­ing at the ceil­ing trapped in throes of the past.

A story about a boy.

This is a story about a boy. It doesn’t mat­ter who the boy is — and it doesn’t mat­ter who he is now. It is about a boy and a mem­ory, and this story is meant to get you to think about the peo­ple around you in your life, your com­mu­nity and your fam­ily, neigh­bors and friends.

This boy was young — per­haps five, per­haps six — who knows, the exact age is lost in the morass of time — it doesn’t mat­ter. This boy lived with some peo­ple who were bad, very, very bad. They were the most vile of peo­ple. This boy lived with them as, at this age, you don’t get to pick who you live with. This boy, and these evil peo­ple lived together in a home filled with stink, filth and pain.

The boy was alone; the boy wasn’t afraid in the com­mon sense of the word — after all to under­stand fear you have to expe­ri­ence some­thing other than that to appre­ci­ate the emo­tion itself. Lone­li­ness how­ever, is some­thing all humans innately under­stand with­out con­text or teach­ing. We are social crea­tures, we crave atten­tion — good or bad — we crave to walk in the lights of oth­ers eyes and be noticed.

The boy was not noticed.

The time was before Christ­mas time. More than any­thing in the world, the boy loved an old TV show — Frag­gle Rock. This was some­thing that brought him hap­pi­ness no mat­ter how brief. He loved that show more than any­thing else in the world.

One day, the boy was some­place else, with a dif­fer­ent evil per­son. He was sit­ting on a bare floor in a bare apart­ment that stank of cig­a­rette smoke and old peo­ple. He was watch­ing the tele­vi­sion — a cold, but con­stant friend — watch­ing his favorite show.

An adver­tise­ment came on. This adver­tise­ment offered some­thing mag­i­cal, some­thing spe­cial. It was some­thing so excit­ing that he had to call now to take advan­tage of the spe­cial offer. It was a thing tied to his friend, his joy — Frag­gle Rock.

The boy had no money or wealth, and inside he knew that the evil peo­ple around him were loath to give up that which they had. The boy knew that he must have the thing he saw, and while he had noth­ing he knew how to acquire it.

He calmly got up off the floor, know­ing that no one was around to notice what he was about to do. He opened the purse of one of the peo­ple who ignored him — he may have been alone, and might have only known fear, but he was smart. He knew that the thing on TV asked for a credit card, and he knew where to get one. He stole it from the purse, and picked up the telephone.

Some how, per­versely, that boy knew where he lived. Maybe it was because he had had to walk him­self to school so often, or had to be dri­ven home by the police or a teacher from the school he some­times attended.

He called the num­ber he had mem­o­rized in a span of sec­onds. The per­son at the other end of the tele­phone, again, in a strange align­ment of per­ver­sion and odd­ity, did not ques­tion the fact that a child was on the other end of the phone.

The boy man­aged to order the mag­i­cal thing on TV. Using a stolen credit card in an apart­ment that stank of cig­a­rettes and old peo­ple.
Before you think the boy had got­ten away with it — he hadn’t. As he hung up the phone, one of the bad peo­ple came into the room and saw him with the phone and credit card in his hand.

Evil peo­ple do bad things to boy; the screen goes dark and the cur­tains go down. The boy knew that his brief glimpse of hope and joy in acquir­ing that thing from the TV was gone.

The boy went back to darkness.

Christ­mas Day

The boy did not know, or remem­ber the thing from the TV he had got­ten so severely pun­ished for. He knew that it was Christ­mas time only because other chil­dren talked so eagerly about it. The house he lived in was bar­ren, and filthy and undec­o­rated except for a small pine tree in a cor­ner that stood, undecorated.

There was no party, no fam­ily get together on Christ­mas eve. Yet still the boy lay in his bed charged with hope that some­how, some­where, a gift might appear for him under that bar­ren and sad tree the next day. He might not know — he was locked in his room again, but that hope stood out.

Not because he knew what it was, but because he knew what oth­ers had told him, he knew the emo­tions that oth­ers had about this “spe­cial” time.

The boy didn’t sleep well — not just because it was Christ­mas. He never slept well.

Christ­mas morn­ing, let’s say at five o’clock in the morn­ing, the boy was awake as he always was. He got up with trep­i­da­tion and fear for wak­ing the evil peo­ple with whom he lived. He tested the door knob — it was unlocked.

He opened the door and looked around — none of the evil peo­ple were around, there were some­place else. He was alone — and given that this was a state much prefer­able to the alter­na­tive, he was tem­porar­ily happy.

He walked to the bar­ren tree, past the trash and cat waste scat­tered through the house and stood in front of it. At first, his eyes didn’t per­ceive the box under­neath it. He didn’t see a stack of jaun­tily wrapped gifts, or stock­ings hung with care. The boy was filled with sadness.

There was, how­ever, a bag — the type you might get nowa­days from a super­mar­ket for reuse. The boy’s eyes caught the logo on that bad.

Frag­gle. Rock.

Stunned beyond com­pre­hen­sion, the boy walked over slowly, he rec­og­nized the logo, and in fact, he rec­og­nized the bag from the com­mer­cial long for­got­ten. It was the mag­i­cal thing he had been so severely pun­ished for. He looked around, ensur­ing he was alone, and he pulled the thing out of the bag.

It was a Frag­gle Rock record player. That was all — and a sin­gle, small record that con­tained but one song. Shak­ing, he opened the record player, and plugged it into the wall. Gin­gerly, he placed the record on the player and through trial and error, fig­ured out how to make it turn on and play.

The boy cried as the first notes of the one song began to play. So joy­ful was he in this sin­gu­lar moment, lis­ten­ing to the theme song for a TV show that all the lone­li­ness and pain he knew was for­got­ten, replaced with a joy so tan­gi­ble he could hold it close.

In that moment, the boy knew sad­ness as well, as that joy was so pow­er­ful he knew the stark con­trasts in the emo­tions he had known. He for­got lone­li­ness, caught up in a moment so emo­tional that noth­ing else mattered.

In that moment, the boy was happy. The house was filled with that song for hours until the peo­ple he lived with came home, and took it away. In those hours, that boy knew noth­ing but joy, hap­pi­ness and the dark con­trast of sadness.

Back to the beginning.

The boy is now a man, which man is irrel­e­vant. What is rel­e­vant is that when the first chords of the first Christ­mas song begin to play after Thanks­giv­ing — when the first Christ­mas orna­ment go up that boy is thrown back to that mem­ory of that sin­gle Christ­mas day.

No mem­o­ries since that day mat­ter; none of them come up and fil­ter into his con­scious­ness other than that one. It takes over his psy­che at ran­dom, as said before — you don’t get to choose how this works.

So, why?

Why am I shar­ing this story about a boy, or ram­bling about mem­o­ries? Because, despite know­ing that once ingrained a mem­ory can not be for­got­ten, I feel that it is true that you can over­ride mem­o­ries with stronger ones with a more pow­er­ful emotion.

I feel that joy, hope and love are more pow­er­ful emo­tions than fear, lone­li­ness and pain.

I share this boy’s story so that I can get you to think for a moment about the peo­ple around you. Friends, col­leagues, fam­ily — the per­son on the street, on the bus, the peo­ple in your com­mu­nity and the per­son you only know through email, IRC or on Twitter.

I share this to get you to think about those who you don’t think about all that closely. The chil­dren who live as that boy did, or those chil­dren and fam­i­lies that have lit­tle or noth­ing dur­ing this sup­posed time of joy.

I’m not ask­ing you to give up wealth, or toys, or food — those are all fine things, but they are sim­ply tan­gen­tal aspects of how a mem­ory might be cre­ated. I’m ask­ing you to think about all of these peo­ple, even those whom you dis­agree with or hate, or those you never think about at all, and I ask you to take a moment to reach out to them in some way.

Per­haps a toy, a book, a warm coat or meal for those that you do not know well — some­thing that can give them the same joy that that boy felt when that song played. Maybe an email to some­one you haven’t heard from in a while, or warm words to some­one who you nor­mally spar with.

Thou­sands of peo­ple trudge through the hol­i­days, no mat­ter their faith, race or creed — their choice of forums, pro­gram­ming lan­guage, career or school depressed and alone dur­ing this time. They’re trapped by mem­o­ries that should have been replaced long, long ago. Maybe they never will be replaced, but maybe they can be sup­ple­mented and tem­porar­ily displaced.

I am ask­ing you to reach out in any way that you can to help them make new mem­o­ries, ones of joy, love and car­ing — even if it is over the inter­net, or as fleet­ing as being polite to them and think­ing of them when you bump into them on the street or in the mall.

Reach out in all the ways you can, despite times of strife and divi­sion and eco­nomic depres­sion. Help every­one you can be filled with a mem­ory of joy, love and car­ing, give them that moment the boy had even if bit­ter­sweet. Show them your grace, humil­ity, kind­ness and caring.

I still cry when I hear Frag­gle Rock.

PyCon 2012 Proposals Due October 12 — 14 Days!

September 29th, 2011 § 0 comments § permalink

The dead­line for PyCon 2012 tuto­r­ial, talk, and poster pro­pos­als is under 14 days away, so be sure to get your sub­mis­sions in by Octo­ber 12, 2011 (as always, if it’s Octo­ber 12th any­where in the world, sub­mis­sions are still open!).

Whether you’re a first-timer or an expe­ri­enced vet­eran, PyCon is depends on you, the com­mu­nity, com­ing together to build the best con­fer­ence sched­ule pos­si­ble — PyCon is first and fore­most about the com­mu­nity, dri­ven by vol­un­teers both on an orga­ni­za­tional level, and by speakers.

Our call for pro­pos­als lays out the details it takes to be included in the lineup for the con­fer­ence in Santa Clara, CA on March 7–15, 2012. I should note that this year we have gone away from con­sis­tent groups of invited speak­ers — mean­ing, all talks, regard­less of who sub­mits them are not guar­an­teed a speak­ing slot. All talks are judged and reviewed on the mer­its of the talk and the speak­ers themselves.

If you’re unsure of what to write about, our recent sur­vey yielded a large list of poten­tial talk top­ics, and plenty of ideas for tuto­ri­als. We’ve also come up with gen­eral tips on pro­posal writ­ing to ensure every­one has the most com­plete pro­posal when it comes time for review. As always, the pro­gram com­mit­tee wants to put together an incred­i­ble con­fer­ence, so they’ll be work­ing with sub­mit­ters to fine tune pro­posal details and help you pro­duce the best sub­mis­sions. Even if you are still incu­bat­ing a talk idea: sub­mit the pro­posal now in rough form and we can assist you in flesh­ing out and refin­ing the pro­posal dur­ing the review process.

We’ve had plenty of great news to share since we first announced the call for pro­pos­als. Paul Gra­ham of Y Com­bi­na­tor was recently announced as a keynote speaker, mak­ing his return after a 2003 keynote. David Bea­z­ley, famous for his mind-blowing talks on CPython’s Global Inter­preter Lock, was added to the ple­nary talk series.

Spon­sors can now list their job open­ings on the “Job Fair” sec­tion of the PyCon site as we pre­vi­ously announced — pro­vid­ing an excel­lent resource for job seek­ers, and providers.

We’re hard at work to bring you the best con­fer­ence yet, so stay tuned to PyCon news at the PyCon blog and on Twit­ter at https://twitter.com/#!/pycon.

We recently eclipsed last year’s spon­sor­ship count of 40 and are cur­rently at a record 54 orga­ni­za­tions sup­port­ing PyCon. If you or your orga­ni­za­tion are inter­ested in spon­sor­ing PyCon, we’d love to hear from you, so check out our spon­sor­ship page.

And as always — quick thanks to all of our awe­some PyCon 2012 Sponsors:

Thank you — and as always, feel free to reach out to the team or any of the staff with any ques­tions you might have.

PyCon 2012 Sponsorship — Making the case for sponsorship.

September 23rd, 2011 § 0 comments § permalink

PyCon 2012 already has a record-breaking 52 spon­sors! I can not thank every one of them enough (but I will give my thanks again at the end of this post indi­vid­u­ally), and we are always look­ing for more spon­sors to join the ones we have.

I wanted to take a moment to explain what makes spon­sor­ship good for the com­mu­nity, and a sound invest­ment for spon­sors new and old, prospec­tive and future.

This year, as chair, I’ve taken it upon myself to push and man­age PyCon spon­sor­ship (cor­po­rate, non profit, media, etc) for a vari­ety of rea­sons. First, as some­one who has been a spon­sor in the past (and present) and as some­one who spends a lot of time “sell­ing” the Python Soft­ware Foun­da­tion, and the com­mu­nity to oth­ers — I feel very closely tied to PyCon and sponsorship.

Not to men­tion — cor­po­rate spon­sor­ship is what allows us to keep this prob­a­bly one of the least expen­sive inter­na­tional tech­ni­cal con­fer­ences you could pos­si­bly attend this upcom­ing year. With­out spon­sor­ship — and the array of spon­sors we have right now for PyCon 2012, the con­fer­ence could sim­ply not hap­pen at the size it has reached, or have a robust finan­cial aid pro­gram, keep tick­ets and tuto­ri­als cheap, etc. We have, once again inten­tion­ally capped atten­dance at a level to allow for this, and to help keep PyCon’s com­mu­nity feel and closeness.

Run­ning a con­fer­ence is, frankly, a dan­ger­ous game. As I noted in my blog post sev­eral months ago dis­cussing some of the finan­cial work­ings of PyCon and its finan­cial phi­los­o­phy. It is very easy to lose a lot of money, very quickly. PyCon is held / financed / backed by the Python Soft­ware Foun­da­tion. This means lack of spon­sor­ship, low atten­dance, etc could — with a sim­ple mis­step — bank­rupt the foun­da­tion. Spon­sor­ship helps shore up the gam­ble you make sign­ing con­tracts on cater­ing, room book­ings, rental of the space where the con­fer­ence is held, audio/video costs, etc. Although, if you make a big enough mis­take — noth­ing will pre­vent things from going south. This means care­ful plan­ning, bud­get­ing and negotiation.

Also, while PyCon has always been, and will con­tinue to be a com­mu­nity focused and there­fore, low cost and inclu­sive con­fer­ence, not really focused on prof­it­ing from atten­dees, any rev­enue that comes out of PyCon (profit, if you will) goes directly to the Python Soft­ware Foun­da­tion. This money, in turn, is used to improve infra­struc­ture of Python resources, pro­vide devel­oper grants for pro­gram­ming work, pro­vide grants to con­fer­ences all over the world and many other com­mu­nity projects.

In the last few months alone the PSF has issued grants to PyTexas, EuroPy­thon, Python Ire­land, PyCon India, and many, many oth­ers. We have issued grants for port­ing mod­ules to Python 3, ser­vice such as Read The Docs, etc. Any revenue/profit is flipped back into fund­ing PyCon, and the com­mu­nity as a whole.

PyCon pro­vides a very tan­gi­ble entity for cor­po­rate spon­sors — it’s an eas­ier “sell” than direct PSF spon­sor­ship, and there­fore is a fun­da­men­tally bet­ter con­duit for funds into the PSF.

That’s all fine you say: those are great things for the com­mu­nity, and con­fer­ence — but why would a com­pany want to spon­sor PyCon? Sponsors receive tan­gi­ble ben­e­fits such as recruit­ing at the con­fer­ence, adver­tis­ing and mar­ket­ing, get­ting com­mu­nity involve­ment known (call it com­mu­nity karma), etc. Spon­sor­ship isn’t just a mat­ter of ask­ing a com­pany to fund the con­fer­ence because “it’s good for the com­mu­nity” — it’s a mat­ter of show­ing them that not only is it good for the com­mu­nity — it’s good for their goals and needs.

PyCon is an excel­lent recruit­ment tool.

If you’re look­ing for Python pro­gram­mers, a venue filled with 1500 Python hack­ers of all types — from web devel­op­ers, to design­ers, to dis­trib­uted sys­tems engi­neers and oper­a­tions peo­ple is an excel­lent place for you and your com­pany to find “that spe­cial some­one”. I know a lot of Python hack­ers out there who have been hired by com­pa­nies they “met” at PyCon. I also know a lot of speak­ers and tuto­r­ial teach­ers who have received jobs or job offers after speaking/teaching at PyCon.

Just as PyCon is an excel­lent venue for com­pa­nies look­ing to hire, robust spon­sor­ship allows peo­ple at the con­fer­ence know what com­pa­nies out there could be hir­ing Python hack­ers. Com­pa­nies like Walt Dis­ney Ani­ma­tion Stu­dios, Google, Drop­box, and oth­ers as well as com­pa­nies that aren’t well known for being Python shops. It’s a great venue for job seek­ers to find employers.

The Jobs Fair page we added this year for spon­sors, and those look­ing for jobs is a log­i­cal exten­sion of this. Any­thing we can do to con­nect peo­ple and com­pa­nies is great.

PyCon is an excel­lent mar­ket­ing tool.

If you are look­ing to sell some­thing — an edi­tor, host­ing, a ser­vice, etc — PyCon’s 1500 attendee pool pro­vides an amaz­ing cross sec­tion of peo­ple. Not just hard core devel­op­ers — entre­pre­neurs and startup founders, IT busi­ness peo­ple and lead­ers. Python is a lan­guage that as time goes by — I am less and less sur­prised where it pops up — and more sur­prised when it isn’t being used some­where within a company.

It is lit­er­ally every­where — a fre­quently unsung hero for many com­pa­nies. Some­times, com­pa­nies use it with­out even know­ing it.

Python — and it’s com­mu­nity — and there­fore PyCon is amaz­ingly diverse. This means when you spon­sor PyCon, you are adver­tis­ing to an amaz­ingly diverse group of peo­ple. Skill sets from all walks of tech­nol­ogy — and a sur­pris­ing num­ber of peo­ple to whom Python is a tool they use pro­lif­i­cally to get some other job done (like say, video ren­der­ing or con­trol­ling robots). PyCon’s atten­dees reflect the stun­ning makeup of it’s com­mu­nity. You can’t go wrong get­ting your com­pa­nies names on attendee’s lips.

PyCon is a great way to raise visibility.

This is as much a sub-point of my pre­vi­ous note on mar­ket­ing as any­thing else but it deserves some atten­tion. If you’re a com­pany who is try­ing to get the word out, try­ing to spread the news about your new prod­uct or ser­vice, peo­ple notice PyCon spon­sors. Not only are you listed on the web­site, you get signs, booths and entries in the pro­gram guide at the con­fer­ence. It can be en excel­lent tool for buzz and dis­cus­sion about and launch­ing a new prod­uct or service.

Even if you’re not sell­ing some­thing — and you just want to get the word out about your company’s open source efforts, opin­ion and ideas and use of Python — PyCon is a fan­tas­tic plat­form to do so. It can lit­er­ally be a plat­form you use to launch you name and brand into the community’s shared mind.

PyCon spon­sor­ship breeds good will.

I wish I had stud­ies to show it, but peo­ple within the com­mu­nity and at the con­fer­ence itself see com­pa­nies spon­sor­ing PyCon and under­stand that while those com­pa­nies might be sell­ing, mar­ket­ing or recruit­ing — are still doing the com­mu­nity a huge favor by act­ing as spon­sors. As I said before — the com­mu­nity ben­e­fits are many, just as the spon­sor ben­e­fits are. I can not stress this point enough — the com­pa­nies that help PyCon via spon­sor­ship or atten­dance do it for many rea­sons — some of them finan­cial, but the social aspects are some­thing all of our spon­sor from the past can attest to. Python is an open source lan­guage, with a strong open source ethos run­ning through its com­mu­nity — and see­ing com­pa­nies give back both through code and finan­cially means a lot to every­one in the com­mu­nity — even other sponsors.

PyCon spon­sors help set an exam­ple for the com­mu­nity in terms of involve­ment and support.

PyCon spon­sor­ship is a good, sim­ple and cost-effective investment.

wish all con­fer­ence had spon­sor­ship pack­ages as cheap and as robust as the ones PyCon has out­lined in it’s prospec­tus. Heck — a good recruiter to find tal­ent can cost a com­pany $30,000 or more alone — by com­par­i­son, the spon­sor­ship lev­els and prices PyCon has are fan­tas­tic deals (espe­cially when you fac­tor in that com­pa­nies under 25 peo­ple can get a 50% off dis­count on two of those lev­els). For less than a price of a good com­puter and mon­i­tor — you can be a Sil­ver spon­sor. For less than the price if you include the desk and fur­ni­ture or soft­ware licenses? A Gold spon­sor. For less than the price of a good recruiter, or Google Ad cam­paign? You can be a Plat­inum or Dia­mond spon­sor and reach out to not just PyCon atten­dees but to the entire Python community.

PyCon is a pro­fes­sional event.

I swell with pride stand­ing in the shoes of the con­fer­ence chairs that have come before me. PyCon, while focused on the com­mu­nity, the lan­guage, learn­ing, teach­ing, being a ton of fun for all of its atten­dees, and excel­lent loca­tion to hack and net­work is one of the most friendly-yet-professional con­fer­ences I have ever had the priv­i­lege to attend.

PyCon is backed by the Python Soft­ware Foun­da­tion — but it is run by vol­un­teers — even I, as chair, am not paid. For all of us involved, it’s a labor of love. It is a way for us to give back to the com­mu­nity, ecosys­tem and com­pa­nies and spon­sors attend­ing or spon­sor­ing. And while it may be vol­un­teer based — it’s 100% pro­fes­sional. From the web­site, to the pro­gram guide, from talk selec­tion and booth assign­ment — every­thing is treated with sin­cer­ity, respect and trust.

Spon­sors can look at PyCon not just as a good invest­ment, or plat­form — but as a safe one — and if they can not, I have failed as chair of the con­fer­ence. The same applies to every sin­gle attendee.

But too much of a good thing?

As with all things, there is a flip side to this. Spon­sor­ship is great for spon­sors, and the com­mu­nity — but PyCon is fun­da­men­tally com­mu­nity focused, and hence we must walk a line between hav­ing robust spon­sor­ship pack­ages, and going the “full spon­sor­ship monty” so to speak. This means that to this day, I hold firm on the pol­icy that spon­sor­ship does not guar­an­tee or pro­vide tuto­r­ial or speak­ing slots to any sponsor.

At PyCon, we are all equals, espe­cially when it comes to talks. Joe devel­oper from nowhere, Antarc­tica can sub­mit a talk, tuto­r­ial or poster ses­sion as can Bob the devel­oper from a Dia­mond spon­sor and they have equal chances of being accepted. If the talk is good, if the speaker is known to be a good speaker, if the con­tent and sub­ject are com­pelling, a pro­posal will be accepted on its mer­its (but even then we can not accept all the deserv­ing ones).

Other con­fer­ences guar­an­tee speak­ing slots for spon­sors — I feel this runs counter to the PyCon ethos and com­mu­nity phi­los­o­phy. Not only are we open in our source, we treat each other as equals and with respect. Ours is the mer­i­toc­racy of ideas and work — and this point can not get lost or for­got­ten in our — my — work on our spon­sors’ behalf to increase the value and return on invest­ment they see.

We also try to keep the adver­tis­ing and vis­i­bil­ity at the con­fer­ence taste­ful — lim­it­ing ban­ner sizes and loca­tions, focus­ing on the ven­dor area expe­ri­ence while also giv­ing spon­sors free admis­sions to the entire con­fer­ence so they too can par­take in the learn­ing, hack­ing and net­work­ing. We find this to be a good bal­ance between the needs of the atten­dees and the needs and desires of the sponsors.

Trust me, if I thought walk­ing around in a NASCAR-like track suit cov­ered in logos would help our spon­sors, I just might — ask the other staff! But that’s just me.

In clos­ing — I want to encour­age you and com­pa­nies you know or work for, to take part in PyCon and get involved. Even if you can not, or do not want to be spon­sors, I encour­age you to sub­mit pro­pos­als, light­ning talks when the con­fer­ence comes, attend the sprints, and recruit on the “down-low” by just talk­ing and hack­ing with everyone.

I encour­age you, and will work with you day and night to join us as spon­sors — but I value your involve­ment in the com­mu­nity, and the con­fer­ence more. Even by just attend­ing, you are enrich­ing us all. If you have sug­ges­tions on how to make spon­sor­ship bet­ter for spon­sors — or gen­eral com­ments or con­cerns, feel free to email me.

Giv­ing thanks

Finally, I’d like to thank all of our cur­rent spon­sors — and an a yet-to-be-named mys­tery sponsor:

And of course, if you want more infor­ma­tion on spon­sor­ship — visit the PyCon 2012 Spon­sor­ship page.

The Standing Desk Experiment, 5 Months in.

September 16th, 2011 § 6 comments § permalink

My orig­i­nal stand­ing desk post — “Switch­ing to a Stand­ing Desk” has gar­nered a lot of atten­tion — and a lot of ques­tions. I’ve also seen a rise in the num­ber of peo­ple try­ing out stand­ing setups due to that post and the near onslaught of new arti­cles and peo­ple con­vert­ing to a stand­ing setups in the months since. It seems to be quite the trend now. More stud­ies have been com­ing out cit­ing that sit­ting as long as we (pro­gram­mers, writ­ers, etc) do is fun­da­men­tally harm­ful — for me, switch­ing to stand­ing was less dri­ven by those facts, than need­ing a change — leg pain, back pain — I needed some­thing more. I sit enough through­out a nor­mal day.

Stud­ies and articles:

I fig­ured since I’m rapidly approach­ing 6 months into the “exper­i­ment” — I should post a fol­lowup along with my cur­rent thoughts as well as even more infor­ma­tion on how to setup your own rig, new stud­ies, and other arti­cles that have come up.

My orig­i­nal setup was a bit of a rig: I stole (bor­rowed) a table from one of the kitchens in our build­ing and hacked together some­thing that while ser­vice­able, had a few obvi­ous prob­lems — the key one being it was wob­bly (I’m not a light typ­ist). Wob­bly, while annoy­ing, was still tol­er­a­ble and prefer­able to the back pain, lethargy and other things that drove me to try it out in the first place. Other prob­lems included not being at the opti­mal arm-height (it was close) and well — lack of desk space.

Sev­eral months ago, I was lucky enough to have my employer (Nasuni) notice my exper­i­ment and we made a deal — if I stuck to the rig for a month, and still wanted to stand, they would get me an offi­cial stand­ing desk. I exceeded the goal a bit — not only did I stand at the setup for a month — I com­pletely ditched sit­ting the first week. I haven’t sat in a chair in my cube since I started stand­ing months ago. So work pitched in and got me a GeekDesk 2.0 — victory!

Here’s the “per­fect” setup:

IMG 2784

The tran­si­tion itself from sit­ting to stand­ing was pretty easy for me — given the num­ber of changes I’ve made in the past year in terms of weight loss, exer­cise, etc at this point I’m prob­a­bly in the best phys­i­cal con­di­tion I have been in my entire life. So ulti­mately I didn’t have many of the tran­si­tion issues peo­ple some­times cite (foot / leg pain, tired­ness, etc) with mov­ing to a stand­ing desk.

The minor issues I had mainly revolved around:

  • Feet: I had to find a non-bulky, well made pair of shoes. In my case, I started wear­ing New Bal­ance Min­imus Trail style “min­i­mal­ist” shoes — they’re form fit­ting (mean­ing no socks) and have almost no sole to them. Addi­tion­ally, I had already picked up a good com­fort mat to stand on — that way I had some­thing more giv­ing than the car­pet cov­ered concrete.
  • Get­ting things at the right height: I chose the Geekdesk because it’s got hydraulic legs that allow you to set a per­fect height — one where your elbows are at a 90 degree angle when your hands are rest­ing on the key­board, or slightly lower than that. This, plus my stan­dard Microsoft Ergo key­board means my typ­ing pos­ture is prob­a­bly the best that it’s ever been. Addi­tion­ally, while I have a height adjustable mon­i­tor — I used an addi­tional mon­i­tor stand to get my mon­i­tor posi­tion at roughly eye level (I pre­fer the hor­i­zon­tal cen­ter of the mon­i­tor to be slightly below eye level — use what’s com­fort­able). This way I’m not look­ing down/tilting my head an extreme amount, in most cases I’m only look­ing slightly down.
  • Switch­ing posi­tions: When we hack/get involved in some­thing we all have a ten­dency to hold dead still except for our hands — instinc­tu­ally even though I was stand­ing, I would some­times find myself stand­ing rigid, feet shoul­der width apart with my back straight. While fun­da­men­tally not bad this can just cause your body to get tired/sore/whatever. I had to start let­ting my more ratio­nal brain allow my body to move, force your­self to gen­tly shift your posi­tion. In my case I’ve even found myself danc­ing to music slightly, even when deep in cod­ing or writ­ing because my body now knows it can move freely.
    • I’ve actu­ally found myself stand­ing with one leg bent and my foot against the inside of the oppo­site knee. This means stand­ing on one foot — I didn’t notice it until some­one asked me if I was doing yoga in my cube. Between this and the danc­ing at my desk, I think the weird-o-meter is maxed out.
  • Allow­ing myself a break: I set bound­aries for myself — I’m no super­hu­man and genetic aber­ra­tion. My body needs rest. My agree­ment with myself was this — if I stand dur­ing work ses­sions, I will sit dur­ing lunch and take an after­noon break of 15 min­utes and sit, have a snack, some­thing. This way I give my body a chance to relax.

Noth­ing ground­break­ing, really. Allow your­self to move/change posi­tions (my default is back straight, feet shoul­der width apart, knees slightly bent) — get some­thing nice to stand on / some good shoes and set expec­ta­tions. Rev­o­lu­tion­ary sci­ence and advice, I know.

After just a few weeks I noticed a change — I had more energy, I felt more active and alive, I breathed bet­ter (not hunched), I was actu­ally calmer, more reflec­tive and able to focus when needed. My body felt great — my legs felt stronger, my back a thou­sand times bet­ter, my neck bet­ter, etc. I’ve had all the upsides and few down­sides. I lost more weight/gained more mus­cle in my legs and back — good times!

I will say that peo­ple get con­fused — peo­ple walk­ing by, when they see a programmer/hacker hunched over a key­board in a chair, deep in thought see a giant “do not dis­turb” sign. When you’re stand­ing, hack­ing away deep in thought peo­ple tend to have the instinct that you’re more approach­able. And they like to pop in for a quick chat. Noth­ing bad in and of itself — a break never hurt any­one. But cowork­ers who don’t notice your ear­buds in your ears might get con­fused when they have an entire con­ver­sa­tion with some­one who is com­pletely checked out, stand­ing there.

No, I’m not being rude. While I do do yoga, I have not quite reached the level of being able to sense a dis­tur­bance in the force.

Approach­a­bil­ity works both ways though: I find myself more approachable/less hos­tile to peo­ple drop­ping in to talk. I’m more relaxed, less aggres­sive and ulti­mately more at ease when some­one inter­rupts me, or catches me in between things to talk. I enjoy white board­ing with them more, I don’t spin around in my chair and snarl at them because I was elbow deep in an epic yak shav­ing. I just take a breath, turn around and start talking.

I feel more refreshed; and switch­ing “into work” and “out of work” (mean­ing, in and out of a task) is easier/more approach­able. My body feels bet­ter — so much bet­ter that sit­ting actu­ally feels awk­ward to me. Ask my wife, any time I work at home I whine because I end up sit­ting. Sit­ting has become some­thing I do when I want to relax, or because I have to — not some­thing I do auto­mat­i­cally. Not to men­tion, you sim­ply burn more calo­ries stand­ing than sit­ting still. It will help you pay down that debt you had for lunch!

Don’t get me wrong — I like kick­ing up my legs with my lap­top in my lap, and beat­ing away on my key­board. It’s just those times are dif­fer­ent now — almost more spe­cial and valu­able to me rather than the default-of-lethargy that I had before sit­ting all the time. I can say sit­ting here on a plane typ­ing this may quickly drive me insane however.

My two sec­ond review of the Geekdesk? It’s awe­some — it’s the per­fect height, and it can carry enough weight my four year old can ride it like some­thing at a car­ni­val. I’ve stacked my mac pro/books/etc on it and the hydraulic legs don’t even flinch. I can set it at any height, or drop it down to sit (although I never have). It’s well build, sturdy, and had a lit­tle cable run­ner thing attached to the bot­tom of the desk where I can squir­rel cables away (but as you can see in the pic­ture — I’m much to lazy for that). The desk space is enough for me to have my note­book to one side and my lap­top to the other and key­board on the cen­ter with room to spare. It really is great.

That said — is the Geekdesk for every­one? Yes!

Is it pro­hib­i­tively expen­sive, hence why I don’t have one at home right now? Also yes!

Most peo­ple (myself included) can’t find it in our bud­gets to finance some­thing like this — heck, it’s the same thing with good chairs — they run seri­ous cash. Most peo­ple will look to put together a more eco­nom­i­cal solu­tion. In most cases, you can avoid build­ing some­thing your­self if you live any­where close to an Ikea — the cheap­est option I’ve found for some­thing that comes close to a basic set of specs:

  • Decent amount of desk space
  • Doesn’t look like crap
  • Can have the main work area set to the opti­mal height

Is the Ikea Fredrik desk — this used to be called the “Galant” desk, and its setup allows you to put together a stand­ing rig approach­ing a ratio­nal price for your home. It’s also ok for propos­ing to bosses who would beat you with a rolled up news­pa­per if you sug­gested spend­ing 800$ on an ergonomic desk (although — why are you work­ing for some­one like that, Stock­holm Syndrome?).

The Fredrick is the best option I’ve found that’s “off the shelf” — there are plenty of plans out there that describe how to build one — and I applaud those who have the wood work­ing skills needed. Here are some of the var­i­ous plans and pre built desks float­ing around out there that I cite when asked:

Oth­er­wise, if you’re stuck in a cube or office where you can’t chuck the exist­ing decor for some­thing more civ­i­lized (mean­ing, it’s bolted to the walls or the cube farm would col­lapse like a hobo vil­lage built out of card­board boxes if you removed your L shaped cube desk) here’s a set of the best “hacks”  or attach­ments I’ve seen (feel free to share your own:

Now — remem­ber, even if your stuck in a cube in most cases, the height of the main desk area can be changed/raised — you just need an office man­ager will­ing to lis­ten. Most desks in cubes can eas­ily be moved lower, or higher depend­ing on needs. Some­times you may have to get rid of your shelves — but what do you put there other than pret­zels and books you don’t read? Sta­bil­ity, sta­bil­ity, stability!

For the home? I’d start trolling craigslist for podi­ums or lecterns if you aren’t good with tools or you lack an Ikea. Or, if you can forgo aes­thet­ics you can go the home-depot-cinderblock route. This is the eas­i­est if you just want to exper­i­ment. Just mea­sure what height your cur­rent desk is, then mea­sure the height from your bent-90-degrees and stand­ing on a com­fort­able mat elbows to the floor. Sub­tract the height of your cur­rent desk and either go to Lowes or Home Depot and buy cin­derblocks and a piece of nice, sanded and pre-finished or stained hard­wood to stack on top of your cur­rent desk to raise your key­board, mouse and mon­i­tor to the needed heights, or just buy the same to place under your desk legs to move it up.

In the lat­ter case, if you have a desk with a key­board tray, this works in your favor as you can get the key­board at the 90 degree angle and give your mon­i­tor a quick boost. Cin­derblocks or bricks, while not look­ing cool, are obvi­ously sturdy and sta­ble. Of course, if you have a glass-topped desk at home (as I do) I would rec­om­mend against putting it on top.

Me at my setup recently:

Jesse Aug 25 11  7 of 11

Fun­da­men­tally, it’s just a mat­ter of get­ting your hands and eyes at the right heights while stand­ing. Every­thing else is aes­thet­ics and noise. Switch­ing has helped me immensely and for the bet­ter. Will I never be a “a sit­ter” again? Never say never. I will say that it’s def­i­nitely not for every­one, and while I might sound like a card car­ry­ing cultist — even I real­ize it’s a tough thing to swal­low for most hackers.

As for the now noto­ri­ous study that came out recently that stated that you would sud­denly develop vari­cose veins and die if you stood all day? The data the researchers cited dis­agrees with them (take a look at the hacker news thread). While I don’t dis­agree with the fun­da­men­tal mes­sage: move reg­u­larly, stu­pid — I don’t agree with the breath­less results and report­ing and age-old rehash­ing of “per­fect key­board angle and age old ergonom­ics”. No one lis­tens to ergonom­ics experts any­way, and most com­pa­nies put +ignore on basic ergonom­ics. Stand­ing while you work is a per­fectly good way to improve your­self in a vari­ety of ways, not just improv­ing how long you can sit star­ing at a screen all day.

Try stand­ing — seri­ously. It may not be for you, but you might be sur­prised. I didn’t think I’d be doing yoga, didn’t think I’d be stand­ing at a desk, didn’t think I’d be a dad, eat­ing Paleo/Keto and lis­ten­ing to heavy metal. Some­times a change or try­ing some­thing out that seems crazy or daunt­ing is just what you need.

Other good stand­ing desk reads:

Help needed: multiprocessing

August 24th, 2011 § 5 comments § permalink

Orig­i­nally, this post was going to be much more dif­fer­ent than what is has become — the orig­i­nal title was “Fail­ing in Pub­lic” — but I don’t think “fail­ing” is fair to me per­son­ally, or to any­one who has ever helped me, or con­tributed a patch or a fix to the mul­ti­pro­cess­ing module.

Yes­ter­day, I made a state­ment on twit­ter:

I am offi­cially look­ing for some­one to take over mul­ti­pro­cess­ing main­te­nance from me. http://bugs.python.org/issue6721

Ignor­ing any com­ments in that bug; I main­tain that a later tweet is still true:

Some­times good points and poignant crit­i­cism can be buried in a pile of crap.

In hind­sight; I could have worded the orig­i­nal mes­sage dif­fer­ently “tak­ing over main­te­nance” means that I am, and always have been the sole con­trib­u­tor to the mul­ti­pro­cess­ing code base, which is patently false. Antoine, and many other python core devel­op­ers, and peo­ple within the com­mu­nity have sub­mit­ted bug reports, patches, tests and doc­u­men­ta­tion. My words were inten­tion­ally harsh — but the direc­tion of that harsh­ness was to me; I feel that as the “leader” (for some mea­sure­ment of “lead”) I have been remiss in my respon­si­bil­i­ties and leadership.

Sure; I could be less harsh on myself — but the level of expec­ta­tional debt that I’ve incurred against myself for the mod­ule and the main­te­nance has grown, and grown. Even if I find myself lead­ing PyCon, busy as a PSF Direc­tor, push­ing the core-mentors pro­gram, the sprints pro­gram, and a lot of other com­mu­nity projects, I am still respon­si­ble for the care and feed­ing for the crea­ture I helped cre­ate and birth. I’ve com­mit­ted the sin of “going dark”.

For some his­tory, see:

Months ago — I spun up the multiprocessing-sig mail­ing list, in hopes to engage more peo­ple — highly active users, inter­ested peo­ple, etc to help me pay down the debt. Of course, in ret­ro­spect; it’s unfair for me to expect any­one but me to help me pay down the debt I’ve incurred. On the other hand, the respon­si­ble thing for me to do — the mature thing for me to do — is to ask for help — not to “wash my hands” of any­thing, but rather to take this as an oppor­tu­nity to look as mul­ti­pro­cess­ing as some­thing greater than what I orig­i­nally envi­sioned and sub­mit­ted to core.

I hear from peo­ple every day who are using the mod­ule — every day, some­thing I helped birth helps peo­ple get things done. Mul­ti­pro­cess­ing has grown up by virtue of becom­ing part of Python core, and daily — despite the bugs, the debt and the quirks — it helps devel­op­ers achieve some­thing they might have oth­er­wise been unable (or at least, had a more dif­fi­cult time) to do.

The mod­ule is expan­sive — it has pools, tools for dis­trib­uted pro­gram­ming via man­agers, pipes for inter­process com­mu­ni­ca­tions, it’s fea­ture set is both large, and ulti­mately com­plex in its under­pin­nings. That com­plex­ity — that fea­ture set — is the rea­son why that debt, the bugs, the quirks has grown over time. If it wasn’t being used — I wouldn’t have so many emails about it — or bugs filed against it.

So where are we/it today?

Today, mul­ti­pro­cess­ing has wide­spread usage — in Python 3, there’s actu­ally a new mod­ule named concurrent.futures that builds on the build­ing blocks of mul­ti­pro­cess­ing and thread­ing. Pack­ages like Cel­ery use it exten­sively (and work around inter­nal quirks). For Python 3 — the sky is the future for what mul­ti­pro­cess­ing could be — addi­tional func­tion­al­ity, mov­ing parts of it (such as the pool abstrac­tions) into the con­cur­rent name­space, extend­ing and improv­ing the Man­ager classes, etc. For Python 2.7 — bug fixes, doc fixes only.

If you search the Python bug tracker for the word “mul­ti­pro­cess­ing” regard­less of assignee, you’ll get 119 hits. That’s right; 119 — not all of them are mul­ti­pro­cess­ing bugs — and many of them are dupes, or fixed in recent ver­sions. What that query gets you is an idea of the debt that has to be paid down and resolved. Each one of those bugs needs to be looked at, repro­duced, de-duped and patched. Some of them may be doc­u­men­ta­tion issues, some are pretty hairy (like the afore­men­tioned http://bugs.python.org/issue6721 as well as http://bugs.python.org/issue4106 and http://bugs.python.org/issue8713).

What I ask­ing for — rather than wash­ing my hands of any­thing, or any attempt to absolve myself of respon­si­bil­ity, is for help. I am stretched thin — too thin to do this myself, or to be the only per­son who can main­tain, under­stand or work on this mod­ule. It’s too big for that, it’s too impor­tant for me to be the arbiter of it any longer. It’s big­ger than me.

Aside from the bug queue; there’s a short list of things that need to be done — the docs need to have a fresh, hard set of eyes on them, there are things (behav­iors, fea­tures) that are undoc­u­mented. The test suite needs a com­plete over­haul — when I inher­ited the code, this is the first thing I should have done — but I didn’t. The prob­lem is that the test suite is mired in magic and com­plex­ity, and with­out an expan­sive, main­tain­able test suite, I don’t feel con­fi­dent that the bug list can be addressed with confidence.

So, I come to you with my hat in my hands, a hum­bled man. It’s unrea­son­able for me to ask for oth­ers to “pay down” the debt I’ve incurred; but it’s irre­spon­si­ble, imma­ture and mis­guided of me to think that I alone, or any sin­gle per­son can go at this alone. So I need your help — and, if in time, some­one choses to be the “leader” for the mod­ule, then I will gladly step back. Until then, I will try to con­tinue to be a guid­ing hand and at least point peo­ple in the proper direc­tion, com­mit patches, etc.

If you are inter­ested; please speak up — or just wade into the bug queue. You can sign up to the multiprocessing-sig list, and ask ques­tions there, or if you’re new to core Python, and want some addi­tional men­tor­ship, check out the Python Core Men­tor­ship pro­gram — that list serves as a gen­tle and polite, wel­com­ing intro­duc­tion to core devel­op­ment. No ques­tion — no mat­ter how green — is off lim­its, and it’s already got an excel­lent track record of help­ing peo­ple get up to speed.

In clos­ing; I’m going to apol­o­gize — we all know lives change, careers change, and inter­ests change. All of these things have hap­pened to me, but in chang­ing so quickly and tak­ing on dif­fer­ent roles, I left some­thing impor­tant behind. In doing so, I have done a great dis­ser­vice to you, the com­mu­nity and users.

I will also thank you; with­out you — the users, cur­rent and future helpers, mul­ti­pro­cess­ing wouldn’t exist or be rel­e­vant in any con­text. With­out you, I wouldn’t have the drive to even write this post, fight to get mul­ti­pro­cess­ing into the std lib to begin with, or per­form any of the other roles I do.

So; thank you.