Archive for February, 2011

Making POSSE Print materials, or: Mel becomes a LaTeX ninja


I’ve been remiss at blogging updates on the (fast and furious) work going on at Teaching Open Source to shape up the POSSE workshop program prior to our big SIGCSE 2011 launch date, so here’s the first of what I hope will be many ongoing notes on various aspects of our progress.

A bunch of us have bemoaned the lack of quality design/layout for POSSE materials – we want a snazzy little bunch o’ dead trees we can be proud to hand out to people at conferences and workshops! – and so Sebastian and I pinged Emily Dirsh, Fedora Design Ninja, a line asking about what it would take to come up with some open materials for the Teaching Open Source community. Mmm, contributing to the ecosystem.

Here’s the current gameplan after Emily and I talked today; our full logs can be found here.

  1. All designs and materials will be released under an open content license (probably cc-by-sa) made in open formats using open tools (LaTeX, Drupal, etc) and generally be free and open all the way through. This was important to us.
  2. We want content both for print (pdf) and web; given that our primary audience is technical academia and we’d like the sources to be tweakable by others, LaTeX seemed like a good choice for markup.
  3. The first thing we’ll do is create a stylesheet we can use to generate good-lookin’ print materials from that LaTeX markup. Think something like Mo Duffy’s Inkscape tutorials (see the 2 pdfs at the end of that blog post) as an end product. We’re hoping to have this done before SIGCSE so we can generate and distribute some sample materials using it.
  4. The next thing will be to work on a LaTeX-to-html/css stylesheet to generate the web content.
  5. Finally, the whole thing will be slipped into a CMS (Drupal) and skinned. Voila, a professional web presence and layout for all things POSSE, with plenty of open-fu all the way through.

This pretty much dictates the rest of my evening. Emily has asked for sample markup with all the syntax we’ll be using, so it looks like I’ll be refreshing my LaTeX memory shortly. LyX has spoiled me – it’s been a while since I cranked open a text editor and wrote TeX with my BARE HANDS! grunt, grunt – but it shall be done. Elements this document has to include, because the POSSE handouts will almost certainly include them:

  1. An abstract/summary at the beginning
  2. Section and subsection headers
  3. Graphics (mostly screenshots) with captions
  4. Code snippets
  5. Terminal input (distinguishable from a code snippet!)
  6. Lists and bullets
  7. A few styles of asides (“Did you know?” sidebars – as in “Did you know? Penguins don’t like cheese!”)
  8. A styling/numbering for “homework assignment”-type problems at the end


Am I missing anything? Let me know! Favorite LaTeX tips and stylesheets, tutorials, and whatnot are also extremely welcome.


On sleep


It’s amazing how good I’ve been feeling lately. Ever since returning from FUDCon in Arizona at the start of the month, I’ve been paying attention to my travel-ravaged body for the first time in ages, and I’m beginning to understand why people say things like “I don’t have time not to exercise.” I’m still a scrawny, soft, uncoordinated, out-of-breath hacker living with RSI, but my awareness of being in a physical body (as opposed to my former conception of “I’m a brain with keyboarding fingers attached!”) has grown, and I’m beginning to see the tiny differences that things like nutrition, exercise, bodywork, and sleep have on me. In the name of 80/20, here’s what’s been most useful and enlightening so far. I’ll start with sleep.

Prior context

I started staying up late to sneak off and study before I finished elementary school. I pulled my first all-nighter at 11. By high school, I was sleeping 5 nights a week, and continued to pull at least one all-nighter a week on average through most of college, becoming famous across campus for the number of consecutive days I could go without sleep. When I was 19, I gave up all-nighters for Lent and kept it up afterwards, but still slept somewhere between 1-5 hours on most days, working until I collapsed on the nearest horizontal surface, dragging myself up whenever my alarm rang, and winding up with something between 20-25 hours of sleep most weeks. When I graduated and got a job, I started traveling across timezones with no rest because I “didn’t sleep” and therefore “didn’t get jetlag.” Boy, what a waste of time sleep was! I didn’t need to sleep that much! I was so proud of this.

I lived, studied, and worked in a perpetual fog of sleep deprivation for over 13 years before some really bad crashes and months of endearingly persistent gentle nagging from Sebastian finally did what even numerous peer-reviewed studies and a dare from Andrew Bouchard could not; I’m consistently getting more than 6 hours of sleep a night, at roughly similar times (weekdays and weekends). And holy smokes, what a difference – I didn’t really notice it when I (gradually) started sleeping more, because things just slowly got a little better every day. The awakening came when I pulled some sparse-sleep nights early in February and was astonished at how much the quality of my thinking and work degraded. More importantly, I was astonished at how much my ability to judge the quality of my work degraded – that is, while I was sleep-deprived, I thought I was doing fantastic! but after a few nights of sleep I looked back and went “whoa, I produced a paltry amount of total crap.” And then I realized I’d spent over a decade of school working with that sort of efficiency. I felt like headdesking.

I will say this now, publicly, in print, so people can beat me over the head with it when I’m tempted to slip later on: grad school will not make me sleep less. If I’m going to survive grad school while working, I need to sleep. I will have so much to do – and do well – that I can’t afford to not sleep.

So here’s what’s actually important to pay attention to, sleepwise, for me.

Stuff that matters:

  1. No allnighters. If you’re a knowledge worker and have 5 hours to work on something, 3 hours of sleep followed by 2 hours of work will almost always result in more work – and better-quality work – than 5 hours of brain-dead zombie work. (And knowing you have to plan your work in advance so you don’t need to pull allnighters is a useful sanity restriction to have for project planning.)
  2. Sleep in multiples of 90 minutes, the length of a sleep cycle. If I have to choose between 4.5 and 5 hours of sleep, I’ll go for 4.5 and use the extra half-hour to stretch before bed so my muscles are longer and more relaxed and my sleep will be more restful.
  3. On that note, what you do before bed does matter – I turn off my computer (artificial lights make your body believe it’s daytime) before I change to pajamas, brush my teeth, and that sort of thing – no additional time needed, just shuffling around the order of operations for your day so that I end my waking hours grounded in the physical rather than the digital world. I also don’t let myself go to sleep without working out painful knots, which is more an RSI strategy than a sleep one, but helps with the sleeping nevertheless (not being in pain helps you become unconscious, surprisingly enough).
  4. Try to sleep and wake at a consistent time every day; do not make your weekend and weekday sleep schedules substantially different. (My definition of “consistent” is plus-or-minus an hour – so I have a rough midnight-to-2am sleep window and my 7:30-to-9:30am wake window… and usually manage to make it.)
  5. Stretching out my spine when I settle into my final pre-unconsciousness position. I got the idea of stretchlying from Esther Gokhale’s book, and it puts me in a better position for breathing and bodily awareness, not to mention being helpful for RSI.

Stuff that doesn’t:

  1. Whether you sleep and wake early or late – basically, 10pm-6am vs 2am-10am didn’t make a difference for me restfulness-wise. That having been said, there may be other reasons I would want to wake up early – less distractions when I begin work and that sort of thing – but as long as I’m sleeping when it’s dark, the actual quality of my sleep doesn’t seem to be affected. This is good news when I shift timezones, because I can just gradually shift my bedtime pre-travel so that it’s (semi)reasonable in both timezones, keep shifting when I land, and then shift back in reverse when the trip ends.
  2. Sleeping in the same bed each time. At least I don’t think so, but maybe that’s because the mattress that came with my furnished apartment is sufficiently bleh compared to good hotel mattresses that I haven’t noticed a difference yet. The nightly ritual of changing, brushing teeth, stretching, etc. after turning my computer off does a lot to even out my evening experience, and I don’t find myself going oh no, it’s not my bed, I’m in a strange place. It’s actually a cool thing for me to notice the differences in blankets, pillows, layout, etc… I love traveling.
  3. Back vs side vs random-position sleeping. Inevitably, I wake up sprawled across my bed in a different position than I fell asleep in, with a weird tangle of pillows and blankets all over the place. The sleep science literature seems to indicate that movement is a normal part of sleep, so I’m not really that worried about it – I just settle into whatever position seems most comfortable to me that night (which has a lot to do with how cold I am, how tight my neck muscles feel, etc etc).
  4. Eating before sleeping, what you eat, etc. Aside from the obvious “don’t drink caffeine,” I don’t think that meals or mealtimes really affect the quality of my sleep. (It might have an effect on physical performance and weight gain and such, but I’m not tracking that now because I don’t care.) Not eating N hours before bed, drinking milk or eating carbs before bed, and so forth… tiny differences, but not so clear or so big that I’m going to make any of them a strict rule. If I’m hungry, I’ll eat a little; if I’m not, I won’t eat. Exercising reason here, of course; if you eat 20 hotdogs for dinner, you’re going to feel awful whether you’re awake or asleep. One thing I may try to pay attention to is alcohol – I suspect that does have an effect on sleep quality if taken too much too soon before bed, and my research readings seem to back this up – but I don’t drink enough, or frequently enough, to have to worry about this.

Random notes

  1. I’ve heard you can shift your bedtime/waketime in either direction by an hour every day and not be adversely affected (so long as your total hours of sleep per night remain consistent). I’ve found that to be an underestimate – for me, it’s closer to two. But I have to be getting enough sleep in order to do it. If I’m sleep-deprived when I arrive and sleep 3 hours a night while I’m on a trip, of course I’m going to feel terrible trying to shift that paltry amount of sleep 2 hours in one direction or another.
  2. Being able to decouple deep physical relaxation, deep mental relaxation, and sleep is useful – that is, ideally all three of them happen when you sleep, but you can relax physically separately from the other two, and you can relax mentally separately from the other two, and you can relax mentally and physically without sleeping. I’m still trying to learn the art of relaxing physically and mentally, but even the tiny bit I’ve learned has helped a lot. That having been said, relaxation isn’t a substitute for sleep.
  3. I’m curious what effect getting a good mattress, pillow, etc. will have on my sleep when I move to Indiana. It will be my first time bed-shopping – I’d love recommendations and tips. Any ideas?

Emotional intelligence on the intarwebz


I went to a Lunch n’ Learn at the office today on “Emotional Intelligence” – the first in a Women’s Leadership series at Red Hat – and thought there were some things worth passing to the Fedora community since we’ve been having our fair share of debates lately. I’m actually not that emotionally intelligent myself yet, but by giving me the ability to analyze conversations (my own and other people’s) after the fact, I think my participation in open source communities has helped me start developing it quite a bit over the years by giving me good role models to learn from, and allowing me  access to their thinking-out-loud without asking me for my credentials first.

So, Fedora. Shaking up perceptions, differing perspectives, and so forth are fantastic and oftentimes that energy drives ideas forward, but it’s also easy to get caught up in the heat of the moment when the conversation is about something we deeply care about, and nobody likes their passion threatened.

There were a few classic points made in the presentation, such as:

  • Relationships are like bank accounts. You want to make more deposits than withdrawals.
  • Get better at identifying and articulating your emotions – instead of just going “I’m angry!” right away, check to see if there’s an emotion that might more accurately describe what you’re feeling. For instance, you might not be angry – you might be feeling abandoned, tired, impatient, confused, ignored, and so forth.
  • Check perceptions. Instead of assuming someone else feels a certain way, ask them if your gauge is correct: “It sounds to me like you’re feeling ____. Am I off?”
  • When you have an emotional outburst, you force others to deal with your behavior rather than the actual issue at hand.

I took a few things away from this. Expanding on that last bullet point, it’s helpful to delimit (that’s delimit, not limit) your emotions, especially over text when it’s hard to tell through body language, tone of voice, etc. when someone’s calm or agitated. If you’re in a discussion and need to vent an emotion before you can continue productively addressing the problem, vent it – but tell people that first! “Hey, I want to tackle $problem, but I’m a little frustrated right now, could I vent here for 5 minutes, and then I’ll stop and we can move on?” And after you’re done venting, make it clear you’re done. “Thanks – just having people listen helped a lot. I’m ready to move on now. So, about $problem…”

If you can’t do that directly with the person you’re talking to (you’re too frustrated, they’re too frustrated, you don’t feel like you know them well enough, etc), I’ve also successfully vented in backchannel to sympathetic friends during tough conversations, where we’ve agreed ahead of time that they’ll be my buffer for random frustration so that I don’t let that out in-meeting.

Mel: Hey, I’ve got a meeting coming up in #fedora-foobar about the latest foobar issue, and I think it’s going to be a tough one. Would you mind if I vented to you in backchannel during it, in case I need to do that?
Friend: Sure, I’ll lurk in the channel and you can ping me (on IRC PM, phone, in-person) if you want.

During the meeting, in backchannel, while a perfectly civil conversation takes place in #fedora-foobar:
Mel: GRAAAUGHHH
Mel: AAAAAAGGGGHHH
Friend: It’s okay, it’s okay.
(conversation proceeds)

Friend: Now that was uncalled for on their side. You can totally point that out.
Mel: Mrrghf. No, I’ll let it go this time, it’s okay. Breathing.
Friend: All right, but if they do it again, I’m going to point it out myself.
(conversation proceeds)

Mel: BLAAAUUUGHH
Friend: Breathe, they’re impatient from waiting for three months for a reply, but the delay wasn’t your fault, just let them vent.
Mel: Can I say something like “I realize we allowed Baz before, but that was made very clear to be a one-time experimental exception to see if it worked out, and clearly it did not work out according to the terms we agreed on beforehand”?
Friend: Yeah, you can say that, it’s reasonable! Here, I found the link to the original mailing list post…
Friend: Perfect. That was a great response – very diplomatic.
Mel: Thank you.
Friend: They seem to be responding well to it.
(conversation proceeds)

Mel: GAAAAHHH
Friend: Want me to jump in briefly and point out that they’ve brought up this point before?
Mel: Yes please.
(and so forth.)

I’ve also played the reverse role for others quite frequently. Also, if I’m in a channel and I see someone handling a difficult discussion with great tact, I’ll sometimes send them a “good job – I know this is a tough convo but you’re handling it very well” PM in the background, because sometimes it just feels good to have that internal struggle acknowledged. I wish more people would notice and applaud diplomacy and tact in Fedora conversations – we have tons of excellent conversations about difficult topics, yet often it’s only on the rare occasions when we lack that diplomacy that it’s called out.

A lot of people say that handling emotions is harder online. I disagree – I think it’s different. Yes, you lose a lot of the subtleties of body language, yes, it’s often faster and more fluent on the phone or an in-person conversation… but there are advantages the internet gives you that many folks don’t take advantage of – like the ability to have a backchannel like the one above. I actually find it easier to deal with emotional outbursts and difficult negotiations online sometimes, because I can have that real-time running commentary with teammates who can help me step back and analyze, disengage, etc. from the situation when I need to – especially when I might not be aware of it myself. (And as a more neutral voice, when they step in to point out something, it helps defuse/mediate things more.)

Finally, I suspect that if I actually let those little helpful voices in my IRC client also chime in silently, in the back of my mind, when I’m in a tough in-person situation, I might get better at that too.


Waxing rhapsodic about noms once more


As much as I love the computer, I also have a need to make things – real things, with my hands. Without a machine shop or an electronics bench, I turn my kitchen into my workshop, cranking out experimental tinkerings on the stove the same way I sawed, sanded, spackled, or painted (but with much more delicious results). It doesn’t always work, but sometimes it does – cauliflower tossed with olive oil, slivers of garlic and curry powder, sprinkled with kosher salt and roasted, over a bowl of rice scented with coriander and a single bay leaf during cooking, with a drizzle of sesame oil and sesame seeds on top. Follow that with a soup of sauteed leeks simmered with potato cubes in vegetable broth, and you’ve just had an amazingly satisfying dinner. (Okay, I guess I should have eaten the soup course first, but the cauliflower finished before the soup did, I was hungry, and it all mushes together in your stomach anyway.)

Pasta carbonara last weekend was somewhat less successful; I enjoyed the creamy sauce (which was, essentially, “mix two eggs with herbs and toss the raw mixture onto cooked pasta so the heated noodles cook it through”) but there weren’t enough bacon bits to stud everything with nearly enough pockets of crumbly, salty flavor. Kartoffelpuffer (potato pancakes) came through with surprising decency despite large amounts of improvisation. Sebastian’s mom had made it for dinner one night when we were visiting, and I thought they were amazing – so last weekend I sent him shopping for ingredients so we could recreate the same. The eggs and onion he pulled out of the grocery bag looked normal, but there was a giant jug of applesauce (“It’s the smallest one they had,” Sebastian protested, “and the smaller snack packages gave you the same total amount of applesauce for twice the cost!”) and a box of dried potato flakes, which we soon found out were not the same thing as potatoes. It tasted about right, but using a powdered root vegetable instead of a grated root vegetable made the pancakes crumbly.

After several potato-hash-producing mishaps, we scaled down our flipping ambitiousness to tiny pancakes (3-4 in a pan instead of one giant one) and managed to flip a few beautiful golden-brown specimens apiece before running out of batter. Served hot with cold applesauce spooned on top before each bite, they were delicious, but our skills paled in comparison to those of an Actual German Mother… which just means we need more practice. (Also, next time: REAL POTATOES.)

Dessert was brilliant, though. I’d brought the remnants of a bag of chocolate chips from Raleigh and spoiled half of it in a failed attempt to create a double boiler with a soup bowl in the pasta pot, which led to water spilling into the soup bowl and seizing up the whole mass. Still, I managed to coat an entire little tub of strawberries in the remainder (melted in the microwave this time) and pop them in the freezer. When Sebastian saw the chocolate-covered strawberries, he grabbed the little carton of heavy cream from the fridge and made some vanilla sauce (note to self: thank Verena profusely for no-cook vanilla sauce packets). This turned out to be one heck of an inspiration, because chocolate-covered strawberries with vanilla sauce poured over them is heaven. (Blueberries in vanilla sauce are also darn good, although he beat the heavy cream for that one so enthusiastically we ended up with something closer to vanilla-flavored whipped cream. I don’t care. I’m officially a vanilla sauce addict.)

Back to this week: I made some curry and then realized I had run out of coconut milk, so I panicked and poured in water and soymilk instead – which added the necessary liquid, but none of the creamy mouthfeel. So when I spooned the curry onto rice for eating purposes afterwards, I also added a couple spoonfuls of mashed-up lentils. Bam: instant creaminess. I was quite proud.

And this morning, grating potatoes and frying them into a large crisp pancake, draping that over a bowl and filling it with a sort of hash of black beans, carrots, onions – except that before I poured the hash (it was pretty wet, somewhere between a hash and a stew) I poked two holes on top, dropped in two eggs, and sorta poached them. Soft white eggs atop a spicy black hash on top of crispy potatoes. Will definitely do this one again.

I’m pretty sure this cooking kick has something to do with reading Michael Ruhlman (and other books about going around the world and apprenticing as a cook, like The Saucier’s Apprentice by Bob Spitz). Whenever I read books like that, I get the urge to grab a head of fennel, thinly shave it, and… do… something with it. Never mind that the only way I’d actually know how to identify a fennel is by its picture on Wikipedia (which looks like someone grafted dill atop the root end of a very dumpy piece of celery). I’m sure the internet would tell me what to do with it.

The thing I love about cooking as a thing-to-do is the same thing I loved about set construction, workshops for prototyping, and TAing lab classes. Instead of multiple pieces of furniture or prototypes or students, you have multiple pots simmering at once; you’re constantly going around, improvising, tasting – ah, this is a bit off… now fixed! – cleaning, chopping, being struck by inspiration for what to do with that little bit of something in the fridge. It looks like a mess; it is a mess, it makes a mess – but there’s a rhythm to the mess, and a pulse of glorious flavors and smells and textures, and you move through all of them like music. When I’m improvising food, flow state is easy; it’s an attentive complexity that I love to handle.

I don’t yet do it well. I’ve managed to get to the point where 99% of what I cook is edible; of that, about 10% is great, 30% is decent, and the remainder is at least nourishing without causing a gag reflex. But I don’t know technique; I need to watch good cooks in action, figure out equipment (actually get myself that cast iron skillet Karlie recommended, and possibly a dutch oven). I’ll have a kitchen in Indiana, I tell myself, for long enough that I may want more than one wok, one little soup pot, and a single baking pan. And Indianapolis has cooking classes…

The future looks delicious.


Huh. Font licensing.


So this afternoon I was making business cards for Teaching Open Source community members to hand out at the big SIGCSE conference that’s coming up.

As I went along, I uploaded images and chattered away in our public IRC channel, #teachingopensource (freenode), to open up the possibility of drop-by comments and contributions. (TOSW tip: enable other people to pleasantly surprise you, and sometimes they will.) And lo and behold, Karsten Wade came along – “I would be interested in seeing a version without the ‘join us’ at the bottom, and the URL-etc. pushed down a bit,” said Karsten Wade. “I think it really makes the whole thing more readable to have that whitespace.”

And it did.

We kept talking, and Karsten asked me to check out his blog post about a slip-up on font licensing for theopensourceway.org. Shoot, I thought. Didn’t think about that. I’m about to tell people they can remix these cards for their own purposes… did I actually use open-licensed fonts for this design? I’d used Droid Sans for the sans-serif font and URW Bookman L for the serif; both were included in Fedora packages (and I hadn’t installed any non-free fonts on my computer), but I wanted to make sure and find out what licenses they actually had.

Fortunately, Fedora design guru Mo Duffy keeps a table of font licenses on her website. A quick check, and… phew – I was good. Everything was redistributable. But the Bookman font said it was licensed under the “GPL with Font Exception.” What the bloody blazes was a font exception? Looking around led me to an old blog post by David Turner, a former colleague of mine from Open Plans, who worked for the FSF before that and wrote about exactly these kinds of issues every day. Between that and a section of the official GPL FAQ, I kinda figured it out.

The normal GPL license says that if you use a GPL-licensed thing as part of something else you make, the entirety of that something-else has to be GPL-licensed as well. This is called copyleft, and it’s a simple but powerful idea – basically, infectious freedom. So let’s imagine I’m writing a document on my computer – being the FOSS geek I am, this means OpenOffice running on Fedora – and I’m using a GPL’d font, and embed that font into my document because I want to make sure it formats the same way when I send it to someone else, and… wait, hang on there. Does that mean I now have to license every single paper I write that way under the GPL, since I’m using a GPL-licensed font as part of it?

That’s where the font exception clause comes in. Essentially, it says that if you’re just including that font in a document in order to typeset it, copyleft does not apply;  the document itself can be as proprietary as you like. Handy if you need to prepare documents that must legally be private (student grades, etc[0]) but still like open source apps and fonts. I thought this was pretty cool – a random little snip I hadn’t expected to learn about, but came across today anyhow.

“I never even thought of that legal scenario,” I told Karsten. “Don’t worry,” he said. “RMS has.”

[0] Thanks to Jason Aubrey and Chris Tyler for getting me started thinking about FERPA again. It’s a good reminder that there are legal/privacy issues that professors need to think about when designing courses – what if students don’t want their work publicized, or if they don’t want others to be able to see their professors’ code review comments? Standard release forms might be a nice thing to include as part of the arsenal we’re giving POSSE professors.


TOS whiteboard markers coming to a SIGCSE near you


Coming soon to a SIGCSE near you…


(For those who, like myself, squint at this template and go “wha?” – they’re whiteboard marker designs, single-color screenprint… there’s the POSSE logo, the text “should this be on the wiki?” above “teachingopensource.org” – and in smaller print on the bottom, “Professors’ Open Source Summer Experience: A Red Hat community service – teachingopensource.org/POSSE” – and that’s all.)

Designed in Inkscape, of course. Blue and black, because those were the only colors available. 800 of each color, 1600 in total; I plan on saving at least 100 sets for POSSE attendees this summer, and we’ll see how quickly the rest of them run out. At about a buck a pair, my sense is that this is pretty high-value Teaching Open Source swag compared to, say, t-shirts that professors will realistically never wear… but I’m not sure how one tracks the efficacy of something as nebulous as “swag” or “brand.” (I suppose I’m not exactly clear on what effect I want them to have, other than “help the TOS community grow and get more people interested in POSSE” – how do actual marketing/brand people figure this out?)

Also, I know there are more TOS people coming to SIGCSE than the ones listed on this wiki page. If you’ll be there, can you edit your name onto the page or drop me a line so I can stick yours on? That way, we can be sure to catch up with everyone. Thanks!


Transcript


While I was in Boston last weekend, I picked up my mail. Tax documents and scholarly publications poured into my luggage – and a slim envelope postmarked from Olin, several months old. I had requested my own copy of my college transcript while applying for grad school.

The last time I looked at my transcript had been during my college commencement, which was shaky and uncertain – until a few days before the ceremony, it was up in the air whether I’d graduate or not. By that time, I had adopted the practice of never, ever looking at my grades – I knew that measuring stick still had too much power over me and would actually hinder my learning with worries about performance. I’d tried to wrench myself free from that sophomore year by ceasing my frequent fretting and re-calculations of my GPA cold turkey – and the pleasure I took in my schooling and the learning I got out of it seemed to me to rocket dramatically upward.

My parents were annoyed, of course; I’m not sure if they would have been more frustrated if they’d seen my actual grades rather than my refusal to show them to anyone who might pass judgment. But I knew that sort of judgment would crush any other assessment I had of myself, and I wanted to be free of it.

Looking back on that piece of paper, I saw a story; A’s and A-’s and some lonely B+’s and all sorts of academic extracurriculars (the Putnam Exam! Abstract Algebra Independent Study! Japanese Language Passionate Pursuit!) crammed into my freshman year, a desperate race to keep my intellect “ahead” – if I wasn’t a good student, then who would I be? I also saw regular 7am bedtimes before my 9am classes and a 17-year-old constantly in various states of collapse – sleeping under the desks in the room where I had class the next day, on the couch outside the lab, being roused in the lounge by friends passing by who found me slumped over a textbook. My grades were great. I knew a lot of facts, how to cleverly bend MATLAB to my will (an ability I’ve since lost), how to launch proofs blindly into the mathematical aether and land firmly, elegantly, down onto the theorem I was assigned.

And that was roughly all I knew.

Sophomore year, I started teaching, as a TA for the intro freshman integrated math-physics block. I loved it, my students loved me, and I spent far more hours than I was allowed to log on my timesheet sitting with them, writing study notes for them, explaining calculus and physics. My grades began to slide into the occasional B. I found a math class that I wasn’t fond of – the professor was fantastic, but I didn’t care about cranking through differential equations and statistics – and decided, for the first time in my life, to skip class. It was an 8am class, and I could get another 2 precious hours of sleep in the morning if I read the textbook instead, which took me 20 minutes as opposed to 2 hours. I spent the 1 hour 40 minutes saved twice a week doing something I loved more – teaching. I read the book and showed up for exams and scored a solid and somewhat deliberate C.

It’s important to note, I think, that at the same time, I was taking what was considered to be an even harder math class full of older students – in fact, one that had this one as a prerequisite (I’d gotten waived through by the prof) – and I was charging through that one (Partial Differential Equations) with flying colors. I didn’t even need to take it, as an electrical and computer engineer – but I wanted to, and it was beautiful – I mean, we derived the Fourier Transform! – enchanted, I read my Dover textbook so many times it was falling apart by the end of the semester. And it’s also important to note that my best paper of the year was done for the first math class, the one I got a C in… a statistical analysis of the Red Sox wins written in Dr. Seussian meter with puns throughout. Not what you’d expect from a C student.

I’d also joined the Human Powered Vehicles team on a whim, the only non-mechanical engineer on a team largely composed of hardcore bikers, and spent evenings climbing through dumpsters to find frames to weld together for our beast. I jumped deeper into the drama club as an assistant stage manager and props fabricator. I drove to aikido lessons in the city with my friend Mark several times a week, started carpe-dieming 3:14am pancakes, discovered Alfie Kohn and Neil Postman and John Holt and other radical education writers… and stopped looking at my grades, which slipped to B’s and C’s. Sophomore year. It might look on paper like my grades started to nosedive, but my life was taking off.

Junior year. More teaching, this time for the modeling, control, and circuits class I’d barely passed (during Pass/No-Credit semester) my freshman year; I begged my professors to let me be a TA because I wanted to learn the material, saying that I learned best by teaching – they took a chance, and it was true! I’d started talking with professors, wandering into the offices of administrators, finding out the rhythms and the whispers and the small behind-the-scenes things that make a college tick, learning how the system was designed, learning how to tweak it through committees, quiet conversations, emails… how to get people behind a cause, how to build up momentum for a charge, how to change things and how to make them stay changed and alive.

C’s and C-’s, a required class (Analog and Digital Communications) that I had to drop before I failed it (I finally passed it with a D my senior year). A few lone A’s shining through a fog of near-D’s for (1) easy required classes and (2) those I poured my heart and soul into – but you can’t tell those apart on my transcript. Biology, a required course I probably would not have taken otherwise, was a solid C because I couldn’t bring myself to take multiple-choice book quizzes with any reasonable degree of accuracy – but I begged to be allowed to do an alternative project and ended up delving into the brain chemistry of naps and sleep, and loved the class – which you would not know from my grade.

The string of solid C’s continued through my senior year, but by this time I had already gotten hooked on learning. One A stands out in my memory; an independent study in anthropology that, on the paper, says nothing of the story behind it – how I struck up a conversation with a MIT researcher interviewing engineering students for a study, how she forwarded my questions to the researcher heading the project, how I drove to MIT and asked so many questions that the professor invited me to audit her qualitative research methods class the next semester – how my anthropology professor back at Olin quickly set up an independent study so that I could count that class for credit (at the end of term she called the MIT professor and wrote down the grade she was told I had gotten), and how I therefore spent several happy and mind-blowing hours each week as a little engineering undergraduate in the back of a room of ABD social science PhD students, sweating through dense papers that assumed a half-dozen prerequisite classes I had never had – what was sociology, anyway? and how my wide-eyed culture shock and naivete often drew appreciative chuckles from my older classmates who quickly set me straight.

But C’s in almost everything else. B’s, if that. The first digit of my GPA wobbled between 2 and 3 throughout my last few semesters. To top it off, I started getting into open source my senior year, and disappeared from campus once a week to go downtown and hack…

Professors I meet now sometimes say they would have loved to have me as a student. Students I meet now sometimes say I must have done so well in school. I guess what I’m trying to say is “maybe – but probably not for the reasons you’d expect, or in the ways you’d think.” When I talk with my former classmates, they think I got fantastic grades. “You must have had a 3.8, or at least 3.6 or 3.5,” one told me when I fretted that no grad school would take me with the GPA I had. She wouldn’t believe me when I told her I was pretty much a straight-C student; I loved learning, I worked hard, and I wasn’t out to defy authority. But it’s there, on paper, and those letters mean a lot to me – but probably not the same thing that they mean to someone else.

When someone else looks at my transcript, they probably see a promising student who took a nosedive somewhere along the way. Slacked off, got distracted, finally was unable to deal with her ADHD, decided that she didn’t care… any of the above. Struggled to graduate. Barely did. Whoops.

When I look at my transcript, this is the story I read; I see myself learning how to learn, learning how to make my own judgments that took into account feedback like grades, but were not solely dictated by them. I see myself falling in love with learning, doing, being hungry to make something happen; I see my teachers nurturing and encouraging that even when they couldn’t give me points for it, I see four tough but transformative years. And I’m not emotionally attached to the letters, but I am emotionally attached to the stories behind them – and I can tell stories about each of them; my Computer Architecture lab team, the failed startup that was the most valuable lesson of our business class – sometimes the A’s have the best stories, sometimes the C’s do.

It will be interesting to see how I do in grad school.


Most fun I’ve ever had submitting a talk proposal


For OSCON. No, this isn’t the final format that was actually submitted, but it was a high point of the brainstorming that Sebastian and I did for a couple talk proposals over the weekend (we ended up with 1 workshop, 1 joint talk, and 1 solo talk submissions).

They’re meant to be satirical, by the way. I don’t think people actually interpret messages in this extreme a manner.


Open source as an alternative “study abroad” experience?


I’m going to spoil the surprise from the outset: the text below is taken from a random search result for “why study abroad,” with appropriate nouns for FOSS work substituted. I was surprised at how few sentences I had to patch up to make the whole thing make sense.

Multiple benefits accrue to those who spend significant time in open source, and a significant proportion of students see the experience as an important part of their college years. You’re likely to have fun. But if you’re also thinking about open source as a way to gain a critical career advantage, read on. You’ll find that all contribution experiences are not created equal in the minds of employers.

Employers are looking for graduates who can communicate well with others, both in person and in writing. They know the importance of cross-cultural understanding and an appreciation for different points of view. They gravitate toward students who demonstrate maturity, initiative, and creativity. All of these assets can be demonstrated through participation in open source communities, but it’s going to be much harder to set yourself apart if you’ve taken the easy route.

It’s not hard to find the “easy route”: that’s the one where you go with your friends into a FOSS project; all the arrangements are made for you by the school—including the online infrastructure where you hack with your classmates. In this scenario, it doesn’t matter which project you work in because all your code will be assigned in class, and possibly even directly supervised by your professors. You’ll undoubtedly have a somewhat different experience, but to do the “easy route” is to forego some of the major advantages of your time in open source.

Consider these ways of standing out from the applicant crowd and finding your “hook.”

  • Contribute directly in the infrastructure of the project wherever possible, even though it makes for a tough first few weeks.
  • Work with distributed team members rather than with fellow classmates. You’ll start to understand the nuances of culture and how things work.
  • Select courses that take advantage of the project you are contributing to, such as user interface design for GNOME, database performance for MYSQL, or a study of network authentication methods for an identi.ca plugin.
  • Seize the opportunity to do an internship, volunteer assignment, or work locally that leverages the project you’re contributing to. You’ll get a completely different view of the project if you work with your local community. It may also make you want to go back after college.
  • Experience things you’ve never done before, like joining a meeting run entirely in Spanish, or negotiating release deadlines with an upstream developer. Not every experience is a good one, but a certain level of discomfort or failure can make you more resilient.
  • Explore, explore, explore. Make your own arrangements. Keep a blog and get it on your project’s main aggregator. Lurk in IRC channels. Propose ideas on mailing lists – and implement them. Review patches from other contributors and mentor newcomers who have questions you can answer.

Open source can be a welcome relief from the rest of your studies, or it can be the most formative experience of a lifetime. It can be just one more item on the resume, or it can provide the most colorful examples in your interview. If you take a few calculated risks, plan in advance, and take advantage of all open source has to offer, you will become that “memorable candidate”—the one who truly gets the employer’s attention. In the process, you will have developed skills and attitudes that will stay with you for a lifetime.

The whole blurb of text above was originally tried out on the Teaching Open Source list, but after some positive responses I thought I’d throw it out here for a wider audience. The idea of FOSS as an “away” experience came from a conversation that Affan, Sebastian, and I had in Doha about what frameworks might make “teaching open source” make
sense to folks in academia.

This makes me wonder: can we use the same structures/tools/marketing for the kinds of things we do in open source? Students seem to readily sign up to ship off to Italy and
France and China, and faculty members and parents seem to view this as a legitimate (and challenging) academic enrichment activity, so… why not FOSS? And might this be a way to get the same sort of maturity and growth benefits for students who can’t – for whatever reason – travel overseas, like younger students, working students, less well-to-do students, students with families?


Conservation of Willpower


I pride myself in having pretty decent willpower – I can get myself to do just about anything. However, I’ve also come to realize that willpower is not infinite. I can’t will myself to exercise and eat healthy and sleep and work and call my parents and everything like that every day on sheer grit alone. If I’m smart, I’ll find ways to make the stuff I want to be doing take less willpower, so I can use that willpower for things that can’t be made as easy. It’s like creating desktop/keyboard shortcuts on your computer – if you’re lazy, why not be lazy for a good cause?

For instance: exercise.

  1. Exercise is good for me.
  2. I am a lazy bum.

Bad solutions:

  1. I will go to the gym on a regular basis and do intensive, planned workouts starting right now!
  2. I will do a daily hardcore bodyweight routine at home at a set time, starting right now!

I run out of willpower about… uh… on day 2.

Better solutions:

  1. I like to dance; turn on good music when doing chores and move around as actively as possible while, say, folding laundry. (This actually works pretty well – stack socks on the sofa and shirts on the bed and pants on the kitchen counter and so forth, and sprint! to place each item there as you fold it, and you get a decent interval workout, and clean clothes.)
  2. Swap desk chair for exercise ball. It’s bouncy, I’m already sitting on it, I might as well move around and have fun. To my surprise, I end up doing abdominal crunches and back stretches multiple times a day now.
  3. Hang pull-up bar on bedroom/office door; every time I walk through the door in either direction, I need to (try to) do a pull-up.
  4. Et cetera. (I still need to figure out how to, for instance, make music automatically play during typing breaks so I’ll be far more tempted to get up and move for 3 minutes rather than just “uh, I’ll refill my water bottle now.)

Basically, if I use my environment rather than my brain’s short-term memory to remind me to exercise, and build it into the environment such that it takes pretty much zero added time/effort to do so, I’m a lot more likely to be more physically active.

Or food:

  1. Healthy food is good for me.
  2. I am a lazy bum.

Solution: Only shop for healthy stuff and cook in “save lots o’ leftovers” batches so that the most convenient food option at any given point in time is to open the fridge and eat a Healthy Thing (because driving to the burger place takes so much time). Bonus: cheap!

It’s kind of like learning a new language by immersion – you can’t not learn Chinese if you’re in China and you’re surrounded by Mandarin speakers and it’s easy for you to look at something and see Chinese and stammer broken sentences to people. This isn’t a groundbreaking thought by any means, but it’s something I’ve been tinkering with over the past few days and thinking about, so I’m popping it out here partially as a reminder-note to myself about this strategy I’m trying (because I know I’m going to forget it later on).