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.

 

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.

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:

Thank you — The impossibility of “It’s going to be ok”.

July 28th, 2011 § 15 comments § permalink

Let me start off by say­ing that while this post is largely not Python related although it is slightly related in the fact that I talk about the Python com­mu­nity later on. Largely this post is about my fam­ily and some of the trou­bles that we’ve been going through, and how it has affected me.

If you’re look­ing for a tech­ni­cal Python arti­cle then you should prob­a­bly move on. I real­ize that it has been awhile since I’ve been able to do a deep post on a pure Python topic; for that I apol­o­gize. This post talks a lot about com­mu­nity towards the end; so it may remain of interest.

I’ve been writ­ing, and re-writing this post in my head over and over again — some of it due to the fact that the prob­lems we’ve been deal­ing with are just not some­thing I’ve ever dealt with before, but also I didn’t quite know how to put things into words. Throw in a healthy dose of “1 month old induced sleep depri­va­tion” and you have a com­bi­na­tion for scram­bled brains and scat­tered thoughts.

Mostly, it is the emo­tional aspect — more impor­tantly I’ve been sit­ting here rewrit­ing this post over and over and over again because it is never easy for par­ents and it is espe­cially not easy for me, just because of who I am, to sit down and put to words the expe­ri­ences of the past month. My wife, Dusty has has orga­nized and posted her views on what’s hap­pened over on her blog — I encour­age you to go read those:

She’s done an excel­lent job putting her thoughts down elo­quently — far bet­ter than I’ve man­aged. I don’t think I’ve stopped “work­ing” in any sense of the word — you get busy just liv­ing, you get busier with one child — with a sec­ond child (espe­cially an infant) — no one gets free time. Throw in a busy job at a startup, chair­ing PyCon, and a hand­ful of other things and I’m pretty happy to be sit­ting here cor­rect­ing a hor­ri­bly dic­tated blog post.

So, back­ing up — on June 2nd, we wel­comed Addi­son Joy to the world — she’s the sec­ond of our beau­ti­ful chil­dren. As many of you might know — or — you’ve read my wife’s posts — the pre­gancy was pretty hard on every­one involved, but espe­cially my wife. It was touch and go and that is stress­ful enough.

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.

Her eyes rolled back and her body would go stiff — her breath­ing would go robotic. My wife didn’t want to scare any­one come off as the the crazy over­pro­tec­tive par­ent but it was hap­pen­ing more more fre­quently and it was hap­pen­ing in clus­ters. Basi­cally, Addi­son would have these spells in groups of 3 to 4 and she was hav­ing them more fre­quently than you’d care to imag­ine through the day and night.

As this pat­tern began to emerge and my lov­ing wife, the ana­lyst, started to see the trends — she started to dig around search and ended up find­ing a video on YouTube of exactly what we were see­ing. Unfor­tu­nately, the video matched what was hap­pen­ing — what we were both now see­ing that the pat­tern had become clear — and the video was of a small infant hav­ing seizures. Pat­terns, espe­cially hid­den ones (like the arrow in the Fedex logo) are very hard to un-see once you’ve seen them, and this was no dif­fer­ent. We knew some­thing was up.

She passed that video, and all of our sus­pi­cions to our pri­mary pedi­a­tri­cian — some­one from the old-school of pedi­atrics. Within an hour, he had already set us up with a rush appoint­ment at one of the best pedi­atric hos­pi­tals in the United States — Tufts Float­ing Hos­pi­tal for Chil­dren. Luck­ily, it is about an hour away from where we live.

Within a few days, we were sit­ting and talk­ing to some of the best child/infant neu­rol­o­gists in the area. No one was fool­ing around — the turn­around time to us iden­ti­fy­ing some­thing and us sit­ting in a room with at least two top notch neu­rol­o­gists was amazing.

The staff has been amaz­ing: from our first visit they have been kind, cour­te­ous, they have helped us man­age our four year old Abby who had to come along for the ride. They answered all of our ques­tions, encour­aged us to get sec­ond opin­ions, etc. The first meet­ing we had with them, they looked us flat in the eyes and said “you’re not leav­ing here with­out a plan”. God help me, I could have hugged them at that point.

They watched some of the videos of the episodes my wife had cap­tured on her iPhone — we’d been instructed to record as much as pos­si­ble. We dis­cussed the episodes and their “pre­sen­ta­tion” (what they look like, how Addi­son moves dur­ing them, which way do the eyes roll back, etc) and so on.

Then, in a flash, it was off to the EEG — this is where you, as a par­ent, feel largely like a use­less appendage. They take your 4 week old daugh­ter and stick lit­tle elec­trodes to her head and watch the elec­tri­cal impulses in her brain fire. Shortly after the EEG my wife indi­cated to me that she knew they had seen some­thing but they were being rel­a­tively tightlipped — they imme­di­ately sent us off to another depart­ment to get a sono­gram of Addi­son head. A sono­gram is essen­tially an ultra­sound — they were look­ing for phys­i­cal abnor­mal­i­ties, cal­cium deposits, water on the brain and tumors. Luck­ily, the sono­gram came up clean.

Shortly after the sono­gram the team of doc­tors that we been work­ing with came in and told us flat-out that the EEG had been abnor­mal. What this means is that they noticed dis­tinct abnor­mal elec­tri­cal behav­ior in both sides of Addison’s frontal lobe. Based on this, they would imme­di­ately assume she was hav­ing seizure activ­ity and that epilepsy was a very real pos­si­bil­ity. There­fore in order to get the sit­u­a­tion under con­trol we would imme­di­ately put Addi­son on to a drug to help con­trol seizures — start­ing with a small dose, and work­ing our way up until the seizures stopped.

Now when deal­ing with epilepsy in infants there are only two real drugs that doc­tors are will­ing to rec­om­mend the first is phe­no­bar­bi­tal, which has some pretty awful side effects (and a tran­quil­iz­ing affect on the infant), such as caus­ing some seri­ous liver prob­lems, etc. The good news is that phe­no­bar­bi­tal has about 150 years of use behind it — doc­tors know it pretty well, and it has known to help with epilepsy quite well. The prob­lem is the side effects — well, Dusty and I agreed the side effects were too much.

The sec­ond drug is Kep­pra — this one is not as old as phe­no­bar­bi­tal — but is also known to work on infants with seizures. The side effects on this one are less, but not entirely non-existent — one of the nas­tier ones is crank­i­ness from the infant. Addi­son is a pretty chilled out baby and so giv­ing her some­thing that would make her angry all the time wasn’t some­thing we were look­ing for­ward to, but we went down that road.

So the plan was this: in about two weeks, bring Addi­son back for a 24 hour EEG so they could cap­ture more data and record her on video for that time, so they would have as much data as they could com­pile. The fol­low­ing week would be an MRI so they could look deeply into things to ver­ify every­thing was struc­turally sound

From the time we left the hos­pi­tal, through­out the week­end, etc — the staff and doc­tors were email­ing us, call­ing us and check­ing in on us. They were atten­tive, kind and mak­ing sure every­thing was going ok with Addi­son as we steadily increased her dosage of the drug — .2 mL, .4 mL — to even­tu­ally .6 mL.

As the hours passed — you could actu­ally see the episodes chang­ing — they were get­ting longer, but less “twitchy” — the clus­ters were shorter/different. It crazy — you could actu­ally see her body’s reac­tion in real-time. Unfor­tu­nately, we could also expe­ri­ence her atti­tude chang­ing in real-time as well.

So here we are, two par­ents — two kids. I’ve got a full time job (and full time vol­un­teer work on the side) and my wife had just been set­tling down to being the best damned stay at home mom you’ve ever seen. We’re run­ning on lit­tle to no sleep and bam. A bus slams into us. Epilepsy. Our beau­ti­ful new­born baby girl prob­a­bly has a form of epilepsy.

What did we do? Did we cause this? Your fears, doubts and every lit­tle thing comes rush­ing into this men­tal void left by the explo­sion of this new reality.

And so there we are — drug­ging a new­born in hopes to kind of get these things under con­trol and hop­ing for the best. As a dad, the typ­i­cal thing you want to do — your typ­i­cal guy response — is to fix the prob­lem. You have to have an answer — any answer.

You want to fix your help­less daugh­ter sit­ting there look­ing off into space.

That’s not how it works though. You have to sit there and watch, and wait. You have to keep your poker face on when the doc­tors tell you your kid could have an incur­able dis­ease — or some­thing she could grow out of in a few months — no one knows, and it is impos­si­ble to tell in chil­dren this young.

It is not the prob­lem that kills you inside — it is the uncer­tainty — it is the not know­ing and the feel­ing help­less to do any­thing. Through­out all of this, my wife — Dusty — has been my hero. She’s pushed through, asked all the right ques­tions, pushed the doc­tors — and me — to do bet­ter, answer more, to step up and beyond.

The fol­low­ing week, the MRI was shown to be clean — another exhale of breath — that means no surgery (but also, no “easy answer”) — go home, keep her on the Kep­pra, the 24 hour EEG is com­ing up. Watch and wait.

Then, the Wednes­day I finally decide to scrape my body out of bed at 5:30 in the morn­ing (this is really hard with new­born) and go to Yoga, things go side­ways. While I’m in yoga — my cell­phone is shut off (it doesn’t work well in the heat), and it is quiet. Lit­tle did I know, that while I was there, my wife was in the process of dial­ing 9–1-1 — Addi­son had fallen into a grand mal seizure, and she could not pull Addi­son from it/snap her out of it. The seizure went on for over 8 min­utes. Warn­ing signs.

By the time I was out of class I had a mail­box of mes­sages and a lot of guilt — an hour had passed since my two daugh­ters and wife had been taken via ambu­lance to a local hos­pi­tal in their paja­mas. The plan was to trans­fer Addi­son to Tufts in Boston ASAP. I had some catch­ing up to do, and some apolo­gies to make. I still don’t feel right think­ing about it — I let my fam­ily down, while I was off work­ing out.

In the ambu­lance, the para­medics were able to snap Addi­son out of it, which was good news. Fast for­ward through Addi­son being trans­ferred to tufts all by her­self (fam­ily can­not travel in the trans­ports if they have chil­dren — and I had yet to show up to the hos­pi­tal) and me dri­ving pretty ille­gally to come and get my wife and Abby and shoot down­town to see if we could beat Addi­son get­ting here.

Before this rush to the hos­pi­tal visit — the diag­no­sis had been “gen­eral non-specific seizures” — doctor-speak for “she’s too small for us to pin­point it, but some­thing ain’t right”. Then, here we are — rushed in, a video cam­era pointed at my 5 week old daughter’s head, elec­trodes cemeted onto her head, rolling off the bed in a bun­dle to the EEG machine, an IV plugged into her foot.

Before we could say boo; they immeditely dou­bled the dose of the Kep­pra she had been on (from .6 mL to 1.2 mL) in hopes to bring the episodes under con­trol. That started the clock — the first day there, my wife and I and Abby were there most of the day. I sent them home to get food, and a change of clothes for me — I’d be pulling the overnight shift — and so it went for the next 48 hours.

Sleep­ing two nights in a hos­pi­tal cot with your new­born hooked up to crazy things next to you is pretty much a weird experience.

And herein lies the rub; they checked the first 24 hours of the EEG pretty quickly, and it came back up clean. They had video of Addi­son hav­ing the episodes, but they were not appear­ing on the EEG. Every­one pretty much assumed that the Kep­pra was keep­ing things under con­trol — so for the sec­ond 24 hours — they took her off the Kep­pra, but kept record­ing. The prob­lem of course, is that Kep­pra takes days to flush from your system.

So, another set of clean EEGs — this has all of us flum­moxed — every­one there had video and had seen Addi­son slip­ping into these episodes. But with­out the EEG data to back it, there was noth­ing solid to poke at. It gets more frus­trat­ing when what­ever small, painful answer you had is clouded over because they can’t prove it (or even dis­prove it).

And so, they sent us home — off the Kep­pra, with Addi­son hooked up to all the elec­trodes cemented to her head, and a portable EEG machine record­ing the entire time, like a lit­tle black box. They removed that last Mon­day. Then last thurs­day, she was back in for another EEG that came up clean. The catch? They have video of her hav­ing the episodes right on cam­era while the EEG shows she’s not asleep/out to lunch, just “frozen”.

And now, here we are — diag­nosed with a “seizure dis­or­der” — we’re no closer to an answer than we were before. it is hard — with chil­dren this young, it is actu­ally really dif­fi­cult to get reli­able tests from them, and some of the other tests they can do — such as spinal taps — could cause more harm to her than good. We’re in “wait and test more mode”. Babies’ brains and ner­vous sys­tem mature/change on a weekly basis  - so what might be true this week, may not be true the next. It makes it very, very hard to diag­nose prob­lems unless they’re glar­ingly obvious.

Last week we involved early inter­ven­tion which is actu­ally a gov­ern­ment pro­gram that will come and help out your child and help you with cop­ing and iden­ti­fy­ing issues and mak­ing sure you know she’s hit­ting all of her devel­op­men­tal milestones.

They did their ini­tial eval­u­a­tion — which, again, given Addison’s early age means there’s a lot of fudge in the num­bers however, early inter­ven­tion found that Addi­son is 30% behind the aver­age on three of the key mile­stones (devel­op­ment stages). All of the mile­stones she is behind on hap­pen to be ones con­trolled largely by the frontal lobe — where we have seen abnor­mal activ­ity. Her phys­i­cal mile­stones are on tar­get — the oth­ers, well — 30% behind.

Now — that could be noth­ing. Babies develop at dif­fer­ent rates all the time, Addi­son could just be slower devel­op­ing in those three areas; how­ever this cou­pled with the episodes she’s been hav­ing could indi­cate a prob­lem in her frontal lobe which may not fully present itself until she’s older.

This also means a lot of work — we have to be a lot more focused on these milestones/stages than most par­ents. Talk, play music — things you already do as a par­ent with infants, but now we have to watch her reac­tions (with the help of doc­tors and nurses) like a hawk. We have to make sure she does not halt devel­op­ing, and does not in fact go back­wards in any way.

We are in for reg­u­lar vis­its from nurses, reg­u­lar vis­its (EEGs) with the Neu­rol­o­gists so that they can make sure she hasn’t dras­ti­cally changed. Right now, they can’t put her back on the anti-seizure med­ica­tion, with­out proof on the EEG, even with video and hands on proof of the episodes, hav­ing her on the med­ica­tion with­out the EEG data to solidly back an epilepsy diag­noses could harm her more than help her — even if we know it does help the episodes she is hav­ing now.

So here we sit — every­one know­ing — from her pedi­a­tri­cian, to the neu­rol­o­gists, to the nurses, that some­thing is wrong. We can’t ask Addi­son what’s wrong, what she’s feel­ing, or any­thing else. All we get to work on are facial expres­sions and cry­ing. There’s noth­ing you can do as a par­ent — we have to sit and watch her light switch shut off and her tiny hands shake, there’s no drugs, there’s noth­ing but test­ing, and wait­ing, and watching.

It brings us to an unpleas­ant place — a long road of doc­tor vis­its, not know­ing, wait­ing and hop­ing. Hour long trips into the city to the hos­pi­tal through Boston’s lovely traf­fic. No answers, just neg­a­tive ones — “it is not x, or y — right now”. There’s noth­ing proac­tive to be done — only reac­tionary. Watch and wait and react. If things get bet­ter — we rejoice, if things get worse, we react. Doc­tor visit after doc­tor visit, EEG after EEG.

So the rea­son I’m writ­ing this post kind of a part cathar­sis and part update to a lot of friends I, and my fam­ily have out there. We’re lucky — I have a great job I love, we have great med­ical insur­ance and the best hos­pi­tals in the coun­try nearby. We have a lot of things going for us.

Despite that, it is still try­ing. Men­tally, phys­i­cally — time and atten­tion — finan­cially. It is not easy — but many peo­ple have it worse.

Now, if you’ve been fol­low­ing me on twit­ter, or google+ — much of this comes as no sur­prise to you. Many of you — well, most of you — are mem­bers of the Python com­mu­nity, the Python Soft­ware Foun­da­tion, you help with PyCon — some­how, I, or my fam­ily know you.

And we’ve been touched by you.

Some­thing I didn’t count on, bar­ing my soul on twit­ter, or google+, or Face­book was the over­whelm­ing and hum­bling sup­port my fam­ily and I would receive from all of you. The well wishes, the emails — cards from all over the world wish­ing us well and offer­ing us your hopes and prayers.

Some of you may have met me — almost none of you have met my wife and fam­ily — and yet the out­pour­ing of sup­port from the Python com­mu­nity has hum­bled me and brought me to my knees in thanks. It brings tears to my eyes just think­ing about the gen­eros­ity that has been bestowed on us by peo­ple inside of this com­mu­nity. Some­thing as small as a card — a box of crayons and a col­or­ing book for my old­est daugh­ter — it has helped my fam­ily and I and touched us in a way I don’t think we’ve ever been touched.

It is amaz­ing to me that I can admit to hurt­ing or going through some­thing like this and peo­ple all over the world will imme­di­ately start send­ing the resources on where to look for infor­ma­tion or who to talk to or spe­cial­ists that they know, con­tact infor­ma­tion for fam­ily mem­bers that they know who have expe­ri­ence with epilepsy or seizures.

It has been amaz­ing to me the amount of sup­port that I’ve got­ten from a com­mu­nity that’s based on a pro­gram­ming lan­guage; we are all engi­neers and it is not some­thing that you’d nec­es­sar­ily expect.

Except for the fact that at the end of they we are all humans and as God as my wit­ness I have to say that all of you Python hack­ers, and friends — both inter­net and in per­son are the best, most touch­ing human peo­ple I’ve ever had the lux­ury of deal­ing with in my entire life.

I’ve had the honor of stand­ing up on stage at PyCon address­ing 1300 Python hack­ers and that was stun­ning and hum­bling in and of itself — but to have peo­ple who you mainly talk to on the Inter­net and pri­mar­ily through mail­ing lists and code, twit­ter and google — who in one moment might be argu­ing with you vio­lently about some­thing about pack­ag­ing, test syn­tax or con­cur­rency — to have those same peo­ple turn around and lift your fam­ily up in your time of need — it is beyond words. This Python com­mu­nity — our com­mu­nity — is some­thing to be cherished.

There have been sev­eral occa­sions where out of sight of my fam­ily and the rest the world I’ve cried because of what the com­mu­nity has done for us in how much it has sup­ported us. Our friends, this com­mu­nity, our fam­ily — I can’t describe it.

Some­thing as small as get­ting a pack­age in the mail that has a cou­ple of stuffed ani­mals for my old­est daugh­ters — that just bright­ens thier day, a card wish­ing us well or an email or tweet to my wife — it makes the day brighter. In the past month those bright days have been rough and very hard to make as a father and it has been hard to get up in the morn­ing in the face of “ship this code, ship this con­fer­ence, fig­ure out what’s wrong with your daugh­ter, keep the boat afloat”. All of the sup­port we have got­ten has helped prop me, and my fam­ily, up. It has helped us make what could have been crush­ing days not so dark.

We don’t have fam­ily in the area (at least none remotely close) and it has been amaz­ing hav­ing peo­ple reach out to you from com­pletely dif­fer­ent coun­tries when your next door neigh­bor doesn’t even know some­thing is going on.

It is amaz­ing, it is hum­bling — and I just want to say thank you from the deep­est part of my heart. There might be more tough times com­ing up ahead — I don’t know — but it is my job as a father to get up every­day put on that game face and ship that code, fix those bugs, and ship a con­fer­ence, make money and be a dad — it is my job as a father to do the impos­si­ble every­day because that is what I do.

Its my wife’s job to get up, put on a game face and do the impos­si­ble every­day, she is my hero, she doesn’t “get” to go to work, a small vaca­tion I get every day. She is in the fray all day, every day, doing the impossible.

The impos­si­ble is already hard enough — rais­ing chil­dren, hold­ing down a full time job and jug­gling a hun­dred other things — things par­ents do every day is hard enough but it is our job as par­ents and our duty to stand up straight and do every­thing that we can for our chil­dren.
In the case of our child — it is our job to do the best damn job that we pos­si­bly can, give her the best care, the most love, and to hope and pray that every­thing will come out all right.

And that’s the odd thing through­out all of this deep down inside — if you ask my wife — I’m a starry eyes opti­mist, for exam­ple I believe that every­one no mat­ter who they are or their atti­tude or back­ground can be a con­trib­u­tor to not just Python — but its com­mu­nity and vibrancy as well. I believe that human beings are intrin­si­cally good crea­tures — I believe that we as peo­ple and as humans are capa­ble of doing the impos­si­ble and the incred­i­bly dif­fi­cult every sin­gle day.

Being an opti­mist I have to look at the sit­u­a­tion with my daugh­ter Addi­son and tell myself that it will be okay. I have to keep telling myself this time and time again because I have to rein­force it in my head that that every­thing is going to be okay — you know she’s still a fan­tas­tic baby, she still sleep­ing large chunks of the night, she’s eat­ing, she inter­acts with us.

She’s a great baby and daugh­ter — both my daugh­ters are great and amaz­ing — just every so often she checks out. It is a very real pos­si­bil­ity that in three months Addi­son could grow out of this and all this fright and energy was “for noth­ing” — it is also a very real pos­si­bil­ity that in three months things could get fan­tas­ti­cally worse.

It is pos­si­ble it is just due to the hard preg­nancy that my wife had with the hos­pi­tal stays and every­thing else and that Addi­son is just catch­ing up devel­op­men­tally to things that she should’ve had when she was born and now chalk it up to “weird baby things”

I have to keep telling myself that she is going to grow out of it, that she is just going to be fine, and you know some part of me when sit­ting in a dark room might whis­per to me that I’m lying to myself that it is not going to be okay and things are only going to get worse but I know that’s not the case.

Par­ents go through things every day that are much, much worse than what my wife and I have gone through. No one wants to go through that we’ve gone through but other par­ents go through much worse and they adapt and they raise some of the best chil­dren that you’ve ever seen. Some of my heroes have raised chil­dren with prob­lems such as epilepsy or autism and their chil­dren are amaz­ing, much more amaz­ing than me. So despite what Addi­son may or may not have, despite not know­ing and just hav­ing to sit back and watch as some­thing hap­pens that I have no power over — despite all that, I know things will be okay.

Because I know as a par­ent and as a human, it is my job to get up every day and do the impos­si­ble. It is my job as a par­ent to raise the best chil­dren — not per­fect chil­dren — the best chil­dren that I can and do right by them. It is my job to teach them, to love them and do every­thing in my power to either heal them or help them cope with what­ever may be wrong. It is hard, but it is not impos­si­ble — but the impos­si­ble is our job.

Reach out to those you know are hurt­ing, or are scared — or heck, peo­ple with one month olds that keep them up all night — wish them well, send them a card, or an email. Even if you only know them through twit­ter, python or some­thing else — maybe they’re a ker­nel hacker, maybe they’re some­one work­ing on the next big deploy­ment tool — it doesn’t mat­ter who they are or what they’re doing Engi­neers are Humans (as Ned so aptly put it) — and all of those peo­ple try­ing to achieve, and fight the impos­si­ble are even more than that.

So while some part of me is scared, is fright­ened, is angry — that’s not the part that I can lis­ten to at all — that’s the part that’s been pushed into the darker cor­ner of my brain not only because of my opti­mism that’s baked into my brain but also thanks to the sup­port of our friends both inside of, and out­side of the Python Com­mu­nity and our family.

Because of the sup­port, because of the well wishes, because of the kind words because of every­thing that’s been done for us, on behalf of us, and because we can do the impossible.

Because of all this I know everything’s going to be okay.

Thank you. From my fam­ily, and the bot­tom of my heart.

 

p.s. There are many fam­i­lies out there — prob­a­bly peo­ple you know — who have chil­dren with issues, or who are strug­gling with issues such as these who are much, much worse off than my wife and I. My fam­ily, while going through this, is very lucky. We’ve been blessed with won­der­ful friends, this com­mu­nity and our fam­ily. I encour­age you again to look around and see those peo­ple who are much more deserv­ing than per­haps I, or my fam­ily is, and to help them. Even if it’s just a card; every­thing helps.

 

 

Welcome to Addison Joy

June 5th, 2011 § 2 comments § permalink

IMG 2514

Addi­son Joy Noller;  Born 11:50pm June 2nd — 19 3/4 inches, 7.8lbs

Yup, as I men­tioned in On Fam­ily, Crank­ing and Chang­ing — we’ve been in the home stretch of com­plet­ing fork­ing our sec­ond child process — Addi­son Joy Noller. Every­one who is crazy enough to be fol­low­ing me on twit­ter saw me “live tweet­ing” the events on the sec­ond. Inter­est­ingly, shar­ing it with all my friends and acquain­tances made the dif­fi­culty and frus­tra­tion and other crud that much more bear­able for me, so another huge thank you to all of you who reached out to me there, and in pri­vate to give my wife Dusty and I well wishes. It meant/means a lot to our entire family.

Despite all of the prob­lems, com­pli­ca­tions, hos­pi­tal stays pain and risk, my wife and Addi­son are doing amaz­ingly well, and we’re already at home. There was a lot of very try­ing things lead­ing up to this, and up until the moment when Addi­son finally joined us, there was a lot of fear and anx­i­ety sur­round­ing this. Birth can not just be risky for the infant, but also for the mother, and we has risk out the waz­zoo. I think all of my Java pro­gram­ming knowl­edge was replaced with intri­cate knowl­edge of var­i­ous preg­nancy related com­pli­ca­tions and meth­ods of man­ag­ing a strong-willed child.

IMG 2557

Big Sis­ter giv­ing the thumbs up of approval.

That’s all behind us; new chal­lenges await — fig­ur­ing out feeding/sleep­ing sched­ules, teach­ing our beau­ti­ful four year old who is incred­i­bly excited to be a big sis­ter how to be a big sis­ter, fig­ur­ing out the lit­tle 7lbs enigma sit­ting next me in the crib. Hope­fully she’ll like me read­ing K&R out loud to her as much as her big sis­ter did. The entire process of birth, despite thou­sands of years of human evo­lu­tion still remains a mix­ture of sci­ence, the unknown and a lot of guess­work. I know the term “it’s a mir­a­cle” is beaten like my four year old’s drum, but it really is a mir­a­cle — the amount we don’t know and the amount of guess­ing that goes into the “process” is astound­ing and humbling.

Time to break out the Bop­pys, san­i­tize the bot­tles and explain to my pug what the heck this beau­ti­ful lit­tle crea­ture is here in the bassinet. Maybe later she’ll let me fin­ish my blog post on vim and mow the lawn. Or we might just sit here on the couch and chill out. It’s amaz­ing how far we’ve all come since this post for my first daugh­ter in 2007.

Oblig­a­tory Flickr set here.

On Family, Cranking and Changing.

May 21st, 2011 § 6 comments § permalink

Intro­duc­tion

Some­time on May 6th — over two weeks ago now — I shot out a innocu­ous tweet ask­ing what might be a good blog topic. I think I said some­thing like “python, fam­ily, .…” — the over­whelm­ing major­ity of them responded with “write some­thing on fam­ily”, iron­i­cally, as I was read­ing those responses sit­ting at a stop light (yeah, I know — don’t yell at me) I got a phone call from my wife ask­ing me to come home imme­di­ately. You see, my wife is very, very preg­nant with our sec­ond child, and it’s not been an easy preg­nancy for her. We’ve had a lot of scares, and we’ve spent a fair amount of time in and out of our local hos­pi­tal — so when she said “come home right now” — you can expect that every­thing else pretty much evac­u­ated my brain except that.

I guess the twit­ter responses acted as sort of a cos­mic hint as to what was com­ing — the abbre­vi­ated ver­sion being that my wife, bless her soul, was deemed “high risk” and admit­ted to the hos­pi­tal on the 6th — with the expec­ta­tion that she would not leave until she gave birth. Fast for­ward two weeks in the hos­pi­tal, a myr­iad of tests, blow­ing out bud­gets on gas (what the hell) and being a “Sin­gle Dad” for most of that that time, and I can hap­pily report that mommy and baby are sta­ble, but still hang­ing out inside my wife.

These past two weeks taught me a lot about myself, about my fam­ily — some things that I thought I knew were brought to task and tested — heck, some of the things I was going to write about were put to the ulti­mate test. You may not really care about any of this — I’d go some­place else at this point if that’s the case. I do hope to out­line my thoughts on bal­anc­ing things (though I remain ter­ri­ble at it) and find­ing the time. You’re not going to find a cure all, or a hack that will “just make things work” — that doesn’t exist.

» Read the rest of this entry «

Getting to do what you love, with people that are awesome.

May 1st, 2011 § 3 comments § permalink

On Fri­day of last week, a new post I wrote for my employer (Nasuni) went up — “Encryp­tion Keys, User Data and Sub­poe­nas”. In that post, I got to out­line, in clear “non slip­pery” lan­guage how my employer man­ages encryp­tion keys, what data they have access to, etc. One of my favorite quotes:

If a cus­tomer has pro­vided their own encryp­tion key(s) — Nasuni, or the cloud provider, do not have those keys, and can not pro­vide them as part of a sub­poena or other legal process. We can not decrypt or access your data. We can not sup­ply a key which we do not have. This is not pol­icy or trust level pro­tec­tion: It’s impossible.

We offer auto-generated and escrowed keys as a con­ve­nience to the user — the ben­e­fits of hav­ing this fea­ture out­weigh the cost. A user or com­pany who knows noth­ing about encryp­tion keys and key escrow can still have strong data secu­rity and instan­ta­neous dis­as­ter recov­ery, they can install a Filer in min­utes and imme­di­ately be up and running.

» Read the rest of this entry «

Switching to a standing Desk; thoughts

April 25th, 2011 § 19 comments § permalink

IMG 2155

For a 5 month update, check out: “The Stand­ing Desk Exper­i­ment 5 Months in

For about the past year or two, I’ve been work­ing on improv­ing my “state of being” for lack of a bet­ter term — focus­ing on more pro­duc­tiv­ity, health, etc — I think every­one goes though this at one point or another. Var­i­ous events of the past year — an incom­ing sec­ond kid, badly dislocating/injuring my knee and reha­bil­i­tat­ing that, real­iz­ing that being an over­weight, unhealthy geek prob­a­bly wasn’t in my, or my fam­i­lies’ long term inter­est and see­ing my lit­tle girl grow up faster than any­thing I’ve ever seen (see this excel­lent post by Mer­lin Mann — “Crank­ing”) has trig­gered me to make a series of changes, the most recent of which is directly inter­est­ing to a lot of you — I’ve switched over to a stand­ing desk setup at work.

» Read the rest of this entry «

How can you compete with Google?

October 14th, 2010 § 15 comments § permalink

The offi­cial announce­ment (well, the addi­tion of a web­site for it) of Google’s goo.gl URL short­en­ing service’s new web­site and fea­tures on the 11th got me think­ing really hard about com­pe­ti­tion, and Google. Specif­i­cally — how do you com­pete against the biggest tech­no­log­i­cal behe­moth ever seen by man? Some­thing I’m sure is on a lot of peo­ples’ minds at an increas­ing rate.

To be hon­est, many of these thoughts can prob­a­bly be applied to many incum­bents in the tech indus­try (includ­ing “enter­prise” software/hardware giants), Google is an easy tar­get for these thoughts though, because they are sim­ply so bad at some of this. This is part rant, part thought exper­i­ment – it’s entirely pos­si­ble I am entirely wrong.

What drove me to think­ing about this (for well over a week) is a base ter­ror I felt about the vague pos­si­bil­ity of being in a mar­ket Google might whim­si­cally enter at one point. Like, say I was bit.ly — and hap­pily the most pop­u­lar URL short­en­ing and ana­lyt­ics firm with thou­sands of cus­tomers, mil­lions of short­ened links, etc, etc. How would I feel if Google coughed and sud­denly entered an already tight (some would say arti­fi­cial) mar­ket with all salvos aimed right at my busi­ness (bit.ly seems game)? Can an ecosys­tem of star­tups sur­vive if Google pops into the room – can they still get VCs or Angel investors to lis­ten and invest in them? (See also: whatifgoogledoesit.com).

It’s not that Google sud­denly came out with a “bet­ter” thing then bit.ly — Google sim­ply came out with some­thing which “does the job” to the tech­ni­cal spec­i­fi­ca­tions they think are supe­rior, sit­ting on Google’s nearly unbeat­able infra­struc­ture and then threw the weight of their brand behind it.

Does it have all the pretty ana­lyt­ics Bit.ly has? No. Does it have cus­tom URLs? No. Does it need all of that? No, because it’s made by Google. The UI is per­fectly func­tional, but noth­ing to write home to mom about. Mil­lions of peo­ple will flock to the new ser­vice and hap­pily use it because it is Google. Bit.ly could very well now be on life sup­port, and will quickly run out of oxy­gen when/if Google ever decided to give pref­er­ence to goo.gl within their sites and appli­ca­tions (see the secu­rity argu­ment in the announce­ments – how long until the other short­en­ers are deemed “too insecure”?).

The very thought of this pos­si­bil­ity hap­pen­ing on some­thing I work on ter­ri­fies me. I’m pretty con­fi­dent on the tech­ni­cal prowess of the teams I work with and of the prod­ucts we make, but I’ll be damned if Google couldn’t wipe us out with a “prod­uct” with 25% of the fea­tures we have, sim­ply because of who they are. Maybe we could scratch by – maybe we already have an estab­lished user base. Maybe Google would kill their imple­men­ta­tion in a few months – who knows.

But Google has a flaw, sev­eral, in fact.

Com­pet­ing with Google on a tech­no­log­i­cal level is incred­i­bly hard — it’s not impos­si­ble, just hard. They have more PHDs and engi­neers per square foot than just about any­one. I think that breath­ing the Google­plex air alone prob­a­bly increases your IQ. I don’t know – I have some of the air on order. It’s easy for Google to build some­thing fifty per­cent of the way and release it, there­fore suck­ing the air out of the room. They don’t even need to “fin­ish” it — the very fact they’ve made it and put it every­where is enough to make a mar­ket dry up and users to flock to it. It will have enough func­tion­al­ity — and just enough — to get the job done (“per­fectly func­tional, albeit Spartan”).

Google is good at raw func­tion­al­ity and util­ity. They solve a prob­lem in nor­mally the most effi­cient way pos­si­ble, and Google is going to prob­a­bly go down as the most suc­cess­ful tech­nol­ogy com­pany in history.

Where Google fails — time and again — is being human.

No one invites Vul­cans from Star Trek to come and dec­o­rate cakes or enter­tain them at a party. No one accuses Vul­cans of hav­ing “really good empa­thy and cus­tomer ser­vice skills”. No, peo­ple call Vul­cans when they need to fig­ure out a hard prob­lem, or need some objec­tive analy­sis. They don’t expect bal­loon ani­mals and a Dora cake from them.

Google is a utility/commodity tech­nol­ogy com­pany (an exceed­ingly shrewd and pow­er­ful one) — but Android wins mar­ket share because it’s on more phones, not because the expe­ri­ence is bet­ter but sim­ply because it’s every­where – it’s on more and more phones every day. Plenty of the man­u­fac­tur­ers who have adopted it spent mil­lions design­ing UIs that sit on top of the default Android UI and make it “more friendly”. Every mar­ket they touch they fun­da­men­tally change the eco­nom­ics and expec­ta­tions of.

Google has become top dog for a rea­son — their tech­nol­ogy. It is really top notch and their search engine and adwords sys­tem changed the mar­ket (for the bet­ter), but it all shares the cold robotic embrace of the other Google prod­ucts. Their tech­ni­cal skills are beyond reproach, but they still lose in many cases against smaller, “richer” appli­ca­tions and sites because they fail at being human.

Expe­ri­ence Matters.

To Google; you are a sta­tis­ti­cal note — some­thing to be tracked, cat­e­go­rized and pro­filed. Why? Not though mal­ice or ill intent — not even slightly — rather, it is how they aim their real busi­ness at you: Adver­tis­ing. Google is not mali­cious, nor is it evil. Google is the log­i­cal robot who will tell you you’ve got can­cer while ask­ing for the time and not even blink. They con­tinue inter­est­ing projects which could change human­ity – but with the bed­side man­ner of a toaster (note though — the cold, cal­cu­lat­ing nature of the projects doesn’t dimin­ish the value).

When a com­pet­ing company’s users are sta­tis­tics: show those sta­tis­tics love and a human face and they will fol­low you to the ends of the earth. Incite pas­sion – give them a rela­tion­ship. A wise man once told me “the only way you can suc­ceed against an entrenched player is by lov­ing your users to death”.

Love your cus­tomers — say you make a code host­ing ser­vice — it’s hard to beat free (as is Google Code) and it’s hard to beat the fact that, yeah, they have all the basic fea­tures a code host should have — but you com­pete where Google can’t. You beat them in the User Inter­face depart­ment — you beat them with warm, invit­ing doc­u­men­ta­tion and a well designed, invit­ing web­site. You beat them by hir­ing a sup­port staff that actu­ally answers emails and picks up the phone. (See also: “Google Gets a C– from the Bet­ter Busi­ness Bureau”)

You com­pete against them by not being a cold, Spar­tan fea­ture robot. You make your thing usable, you make it pleas­ant. You make it so that users want to come back to you again and again because each time they do they don’t feel like they just got a hug from a Crafts­man work­bench. You make them feel like Mom just gave them a warm hug on a Christ­mas day every time they use your prod­uct. Not like mak­ing out with a socket set.

But, you say, Google can make a UI, right? Not quite — Google Wave may have been the best thing in the his­tory of earth: but no one except a few peo­ple could fig­ure out how to really use it. Tech­no­log­i­cally, it was awe­some, usabil­ity? Not so much. It was a bag of tech­ni­cally accu­rate fea­tures – but not a human inter­face. It was a “social net­work” put together by Vulcans.

The biggest thing, in my opin­ion, that Google has brought to the human side of the tech­no­log­i­cal table is that it has helped in recent years by bring­ing back a wave of min­i­mal­ism, sim­plic­ity of inter­face and speed to web appli­ca­tion design as a whole. In the right hands, min­i­mal­ism and sim­plic­ity are pow­er­ful tools. When they’re not in the right hands — well, hugs from a Crafts­man bench.

So — in order to com­pete with Google, you attack them on design – on engage­ment. You make your social fea­tures and good cus­tomer ser­vice into the barbs of loy­alty. You pick up that phone and let them know there’s some­one else at the end of the line will­ing to hear them out at 3am when every­thing goes to hell and they’re all alone. Even if that cus­tomer is crazy, you show them the respect they deserve as people.

Get vocal, pas­sion­ate users and build a loyal com­mu­nity — that alone will help you suc­ceed against Google. Make sure your cus­tomers know you love them, know that you sup­port them and want them to suc­ceed. Don’t just enable them to do some­thing, enable them to connect.

Build a brand against Google. Don’t be con­tent with doing some­thing — make sure you’re not just “the guys that did that thing” — or “those guys who came out with that thing”. Make your name syn­ony­mous with that thing. Make it so that the first thing peo­ple think of when con­sid­er­ing that thing is you.

Make it so that Google could come out with — say a video shar­ing site — tomor­row, and while it could be the best, most dis­trib­uted video thing ever (the bet­ter tech­no­log­i­cal choice) make it so that your users are so fiercely loyal that Google has to buy you and extin­guish the flames of the pas­sion you’ve incited just to get the announce­ment for their new thing two min­utes of air time.

You can only do these things — build­ing a brand — and build­ing a “cult” by doing the things Google — given its robotic fail­ings — can­not do. Love your users, infect them with your pas­sion — not just your tech­ni­cal prowess or abil­ity to scale or release new web codecs, or give them the right search results, or giv­ing away source – infect them with your pas­sion for what you do. Sup­port them, respond to them — even if you’re giv­ing it away for free — after all, noth­ing is free.

Pas­sion, com­pas­sion — con­nect­ing with other humans, peo­ple are always look­ing for a place that accepts them and makes them feel wel­come. They want to get real sup­port instead of emails that get sent to unknown voids and are never answered. Mak­ing things warm, invit­ing both in lan­guage and in the feel.

Just remem­ber — Google is a fan­tas­tic, nearly unbeat­able tech­ni­cal pow­er­house. You’ve got to be fast, high qual­ity and bet­ter where it counts the most.

What about Don’t Be Evil?”, you say. Again, this is not an accu­sa­tion of Google being evil – they’re not. They’re being coldly log­i­cal in the way humans deal­ing with other humans aren’t. When Eric Schmidt, the CEO, stands up on stage and talks about pri­vacy being dead in the age we live in (the age of Face­book, and Twit­ter), or the refuge for crim­i­nals – he’s not “being evil”. He’s rep­re­sent­ing the coldly log­i­cal, algo­rithm based view of a search engine, and adver­tise­ment com­pany. (Check out duckduckgo.com)

In the age of blogs, Face­book, Twit­ter, MySpace and online med­ical records and a mil­lion other things, the log­i­cal exten­sion is that, yes – pri­vacy will be dead in a mat­ter of years. Look at the train wreck the buzz roll­out was – they shipped with the log­i­cal, auto-following and auto-public set­tings and features.

How­ever, nuk­ing years of email or delist­ing someone’s web­site with no human recourse is evil, and there­fore, can be used as a com­pet­i­tive advan­tage against them. Be more pri­vate, be avail­able to your cus­tomers. I know it’s expen­sive – but it’s how you can win. First mover advan­tage counts for a lot, but it doesn’t count for any­thing if you fail your com­mu­nity and users.

I use lots — and I do mean lots — of Google projects. I live in the lap of Google lux­ury as they give me free things that have “enough” fea­tures to sate my needs and require­ments. They’re pretty enough — sort of like my code edi­tor. I’m not pas­sion­ate about them, they’re func­tional util­i­ties (albeit incred­i­bly use­ful ones) — and at this point I’d prob­a­bly been inop­er­a­ble with­out a few of them. Google is a verb — JGI (Just Google it) leaves my mouth an innu­mer­able num­ber of times through the day. I have lots of friends who work at Google. Google has released an amaz­ing amount of open source soft­ware, and con­tinue to work on chang­ing the face of the Inter­net, and soci­ety as a whole.

But would I say their UIs are beau­ti­ful? No. Would I ever be con­vinced that send­ing an email about my account being bro­ken or dis­abled to Google’s sup­port line would be met with any­thing but metal­lic robot silence? Do I think pleas to relist my web­site in their index or rein­state an adwords account would be any more effec­tive then yelling at my garbage dis­posal? No.

No, none of these are true. Github (despite it being git) and bit­bucket are the bet­ter UIs for code host­ing — Word­Press and oth­ers are bet­ter hosted blog­ging sys­tems then Blog­ger, and so on, and so on. These ser­vices prob­a­bly don’t scale as well, or they can’t cal­cu­late the veloc­ity of an unladen swal­low if you hit control-m-x-y-*, but they com­pete with Google where it counts.

Com­pete with Google where it hurts the most: Being Human.

Where Am I?

You are currently browsing the Personal category at jessenoller.com.