Archive for March, 2009

Employability?


In other news, April 1st is when I officially get back on the job market again after a lovely long hiatus. Stay tuned for further adventures. My hands say it is time for me to turn off this laptop now.


The secret sauce is customers.


Why is it hard to get students into open source? Here are some thoughts that came up while working with students from my alma mater on an XO deployment. Thankfully, I’d typed this post weeks ago, before the RSI set in.

  1. no time to introduce – When you work side-by-side with classmates on short-term projects that you build from scratch, you don’t need to learn about release cycles, bug tracking, modular designs for reusability. Why should you? You sit down, you make something together, you move on.
  2. no time to engage - The constant flux of new projects and work, and the presence of an on-campus community mean that there’s less incentive to stay on top of the goings-on of a remote software project you can’t constantly contribute to anyway. Why constantly incur the  new-person start-up cost when you can only sprint once every couple months (and might be interested in different things by then)?
  3. no time to maintain – The project is done, you handed it in, you’ve moved on to a new semester with new classes and new projects… nobody’s using what you made anyway, so why keep it up? Why struggle through setting up your first repository when nobody is ever going to commit a patch?

There have been exceptions to all three of these – I’ve had classmates attending GNOME summits, maintaining libraries, etc – but that’s something they already did on their own prior to attending college, not something the culture of the school itself inspired them to do. The secret sauce, as best as I can tell, is customers.

  1. Upstream projects require introduction to OSS practices. When you need to get something working for a bunch of 6th graders, you can’t always code it from scratch. Using OLPC, Fedora, Sugar, Moodle’s, etc. codebases for the XO mandated that student teams learn how to work with the tools and norms of those communities. The importance of code  readability/maintainability, active QA, documentation, and support resources quickly become (sometimes painfully) apparent. Like when Elsa spent over 2 hours trying to install sugar-jhbuild and was met with a series of (for her – and me) bewilderingly  context-free error messages.
  2. Ongoing deployments require engagement with upstream communities. Since the student teams are providing upstream communities with the deployments that they wanted to serve, those upstream communities have been amazingly patient, helpful, and willing to teach them. They’re learning what release cycles are and why they matter when projects have to be viable for years rather than demoable in weeks, and why you sometimes want to freeze things – like when Yifan found that she had to relearn how to make Activities every few months.
  3. Customers force you to maintain stuff for them. With every maintenance request, they’re also saying “hey, we want to keep using this stuff you made for us. Please help us use your work! We think it’s useful.”

I think that pretty much everyone reading this post already knows and has experienced these sorts of things, but when you’re a student,  this stuff is really weird. I’ve had programmers write me after meeting a group of high-school students I’d been working with, surprised the students had thanked them for being a real coder! talking to them! Just for that. Until the age of 18 or so, most students spend their
days surrounded by… other students. Teachers. Their parents. Talking, as colleagues (not as a “maybe when you grow up you’ll be cool like me” guest speaker) with professionals making actual products for real people? Wow. Right up there with learning to hail a taxi for the first time instead of riding the school bus, even.


First long update since the RSI started


Pain sucks, but I’m masochistic and I can’t stand being mute (which is literally what it feels like – remember, irl, I can’t lipread in groups, overhear conversations, understand lectures… so my ability to speak and respond in those situations is likewise limited. My computer is the place where I can listen and talk most freely.*)

*Yeah, I know how sad this statement can be made to sound – but don’t read it that way! Being able to have an “easy” place to talk has made it easier for me to communicate irl as well – it motivates me to try harder in listening and talking through tougher, more frustrating situations now that I know how awesome all these things can be.

Life is happening! It’s great! And I can’t share it! Here was some of yesterday.

  • 6:55am – standing in my aunt’s kitchen spitting mushy parts of an apple into the trash so I can eat the rest in the car.
  • 9:41am – East Boston, dancing around the living room mucking out my bookshelf, having borrowed Chris’s speakers to blast jazz music.
  • Afternoon – spent on phone with brother. I love my brother. It appears he is going for architecture, and I’m hoping that we’ll be able to share an apartment in Cambridge this summer if we both get the jobs we want.

One of my new favorite phrases, from Humph via Greg DeK: “The goal of teaching open source is to teach students to be productively lost.”

Sacha’s blog has been slowly convincing me I should budget out “tuition money” for trying virtual assistants (need to define a 1-2 month trial period) in a “Mel learns how to keep up a routine” thing. Also, I should go to Toronto and visit her and Mike and others when I have travel budget again. Sometimes she is impressively intimidating. Yeah, I’m still sure we’re not related.

It may just be strong mental associations resurfacing, but when I’m in Glenview, I often feel like I’m shriveling into the timid lonely little beast I used to be. I’m here now for the weekend. Parents wanted me to visit. It coincided with Pycon, and I wanted to see people from there, and visit IMSA, so I figured 3 birds + 1 stone = not bad. I want to be whole and happy when I’m home, but I haven’t figured out how to do it yet; this is a reality I can’t yet bend. I can’t choose who to be around as much, and it’s hard for me to stay the person I want to be in the face of others thinking I’m somebody else. But what do I care what other people think?

Enough, it turns out. I’m not proud of how I handle it, but at least I know why I’m making those choices, and I’ll live with being ashamed of myself on these things because I’d be more ashamed the other way. I’m learning how not to absorb all the blows I’m given. I don’t yet counter well, in a controlled manner that limits damage. I hope that when I do learn how to not absorb things, and to strike back well and hard and accurately, that I will go back and choose not to use it – to go back to absorbing everything and dealing with shit so that other people won’t have to. But it’ll be clear to me that it’s a choice, not something I do because I don’t know any other way.

I’m sorry that my parents have to put up with me learning this now, and that most of what I contradict comes from them. And I still choose to learn it. It feels awkward to say this – it sounds like I’m proud of being something of a jerk. For some reason (and a lot of it is pride, I know) I feel like I have to be this way now, here. This is my problem, and solving it (or trying, anyway) is going to affect other people. Fine. I feel awful saying this. But fine.

(Have I been vague enough yet?)

Happier notes: Pycon people awesome. Andy, Matt, and Jeff at dinner – did not get to see TOPP folks (too short a notice, though I did pass Doug this morning on the way out) but I should be in NYC sometime anyway. Real Piano also awesome. Talking with cousin (Mark works at Medline now) is great. Food very good; this week is the most I have eaten out since getting back from NZ.

Have been (deliberately, once I recognized it) rubbing up against a lot of rawness in the hearing dept lately. Book by Michael Chorost, talking with aunt about speech therapy, segments of Children of a Lesser God have brought me close to tears. For me, that isn’t very close at all – but it’s the recognition that there’s a nonzero chance that I’d be able to bring myself to cry (as opposed to the usual “sunny with no chance of rain” status I usually sport), that something’s welled up that I’ve chosen to tap back down and decline to physically manifest. I don’t hate my hearing loss; I do get frustrated at the way it’s made the world respond to me (and I to it) at times.

There is so much more I want to say, much more I’ve wanted to write, and my right hand has clawed up enough for me to think I should stop now. (Don’t worry, it’s in the pre-pain stage. I’m actually being careful, and typing slowly, with breaks – this took me over a day to type, in short spurts.)


The Boston deployments need some help.


(The shortness of this post brought to you by RSI.)

The Boston deployments need some help. Here is what we have been up to lately. (Should I also post those updates on this blog?)


RSI does not want.


I am working on getting ready for a week of no typing in order to see if it makes my hands any happier and what I do with my computer, since dasher and voice rec are fine and I can still read as fast as ever. This will start on Wednesday. After that, the borrowed ms natural keyboard from Greg will be employed.

Watched Kodo today. Wow.


The phobia lasted 17 years.


Today was full of win. I played music with other people and did not freak out. Tonight, however, typing is not an option. Dasher is slow, but rocks.

I am no longer terrified of playing music with other people. Shaky and a little nervous and in need of practice, sure. But the irrational terror is gone.

I want more.


Boston deployments updates


Most of my life (and RSI-rationed typing time) this week was spent on

Not just CFS – visited 2 SoaS pilot sites with Caroline and have some tickets to file when I can type again tomorrow…

In other news, my immune system has declared war on spring (yay allergies) and I have my first jazz jam session in 14 hours. Jason Rock also made my day with a first mockup of multiply – see the feedback that he’s gotten, starting here with Frederick.

Hands in pain, typed too much writing all the CFS updates… need replacement for next week’s notes. Bedtime.


This post typed with dasher.


This post typed with dasher. Thanks cjb! One unintended side effect of rsi is being forced to confront my phone phobia. Rock.


I can handle bad things happening to good people.


There’s a book by a Rabbi named Harold Kushman titled When bad things happen to good people.

That I can deal with. It’s hard, and it sucks, but I can cope. What I’m struggling with at the moment is when good people cause bad things to happen. When good people intentionally or unintentionally hurt each other, when they get defensive, when they get so caught up in the good they’re trying to do that they forget to see the other folks are trying to do good too. And then bystanders get caught in the initially well-intentioned crossfire.

I can’t articulate it very well, but it makes me sad to bursting. And I’m happy to bursting at the same time, because they are good people, and changing the world and all that jazz – and burning smoke and charring gashes across the land they’re trying to save. You can’t do surgery without the scars. Sometimes they heal.

I am a sucker. I know how much abuse I’m taking and how much I’m giving, and it’s freely given; I don’t expect anything back from it. It’s a gift. Or a gamble, depending on how you look at it. You give, you hope for the best, and sometimes you don’t get it, but you chose long ago to be okay with that. (That’s why you’re an idealistic sucker. Why do you continue to choose to be one?)

Tired, but in a different way than I’ve been used to being in the past 11 years. Not wrecked; just tired.

I need something to lean against right now. It’s 3:30am. A pillow works; I’ll go with that.

Despite the tone of this post, it actually has been a pretty good day – a nice walk and lunch with Jeffrey, a gorgeous evening of reading. The reading makes me think.


You teach… should I? Where?


The title of this post is the subject of an email I got from Colin, an Olin College student and the organizer of Gurufest. He explained that he’d seen people in the OLPC and SL communities writing about their ongoing discovery processes and asking if he should do the same. If so, what would be the best way to document what he’s learning about open-source community event organization? This was most of my email reply, with hyperlinks added in.

You don’t know how happy it’s making me to hear you ask these questions. Yes, please do write them up! It’s useful to others, to your future self trying to do the same thing and demonstrating your mad skillz to potential donors/employers, and saves you time whenever someone asks “how can I do that too?” and you can send them a link. Where to put it? Here’s my usual strategy.

Post it in one place.

For me, this is usually either… (1) my blog, with appropriate tags turned on – are you on Planet Laptop or Planet Sugar Labs? If not, you should be; look for the link on the side that says “email the planetmaster” and send them a message with the URL of your blog feed. I can help with this if you need it.

(2) is a wiki page in mainspace. Mainspace is better than your userpage because it’s more findable. Think search terms and links and make sure your page is wikilinked to by other related pages. The [[Gurufest]] page, for instance, could link to [[How to run a Gurufest]], which would be a fine title.

Point everything else to that place.

Make sure everyone and everything else knows about and links to it. I already covered other wikipages. Also think about redirects. For instance, [[How to run a gurufest]] and other capitalization variants as well as [[Running a gurufest]], [[Gurufest howto]], and other phrase variants. You tend to reach diminishing returns on this pretty fast, and honestly, I’ll usually make 0-1 redirects each time I make a page, but it can be useful especially if a redirect gets used a lot. See the [[Jams]] / [[Jam]] redirect, for instance, or where [[Olin]] and [[IMSA]] redirect to and are linked from (what links to [[IMSA]] vs the original page, and what links to [[Olin]] vs the original page – note that you get the “what links here” from your redirects, too).

More important are mailing lists. Send the link to any lists you think would be interested with a short summary and a call to look, like “I thought others might be interested so I wrote up this…” and a “contact me if you have any questions” bit and a “please forward.”

If it’s a blogpost, link to it on your userpage. If it was a wikipage, blog it and link to it on your userpage.

And then don’t forget the power of pinging individuals. Email particular people you’d like to take a look at something and tell them why, and ask if they can edit/make comments/give feedback. Ditto for friends you find on IRC. It’s always neat to be able to see what your friends are working on.

Probably a longer answer than you wanted, but this is what’s worked for me – I’d love to hear tweaks if you have any ideas.

Any more tips/thoughts for Colin?