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.

Where am I?

You are currently viewing the archives for December, 2011 at jessenoller.com.