Archive for March, 2009

Help me not get RSI: ideas?


Hands no longer in pain, but on the threshold – the “if you push the tiniest bit too much, we will make you hurt again – state. I do need to use my computer; the work is piling up from my “OW!” break this weekend. So this is what I did.

  1. Software-enforced typing break. 10 min minimum every hour.
  2. Dvorak layout only. I was cheating and qwertying and then forgetting to go back to the layout I should be using.
  3. Will either enable stylus or buy retractable mouse tomorrow; tossing little nubby thing into drawer as it’s ruining my left index finger. This laptop has no trackpad.

It is a challenge to cut down my computer use and still stay connected with the communities I work with – without my computer, I can’t “be there” with people, and as a community ninja that’s the lifeblood of my work… what can I do? I’m even seriously pondering buying a Windows netbook for the sole purpose of purchasing and running Dragon Naturally Speaking, but that’s $500 I can’t afford and I’d much rather be able to do this from within Fedora.

I’m going to nip this early before I reach the point of being crippled by chronic pain. I could press on with my existing habits now and still be functional, but choose not to because I’d rather be able to grow old and still use computers, and my hands… that particular “burn bright, burn fast, be glorious and die young” thing holds no appeal.

Metabrain! Ideas! Help!


anti-rsi break


Hands (finger muscles*, not wrists) hurt today; will not be using computer until tomorrow after 1pm except to read email in the evening. Hopefully 24h rest will do them good.

*left index, right wing and pinky


Ready for apprenticeship


I’ve got so many happy things to write about today, starting with warm beet soup and Colin showing up in a neon yellow jacket and a tandem bike to take me out to Olin for gurufest. It was wonderful. Gravel-filled roads and curving hills and too-low seats that can’t be raised and pumping the pedals together fighting a cranky rear derailleur, and triple-knotted shoelaces that won’t stay tied. I say this with no sense of irony; it was those tiny ideosyncracies that made it one of the best getting-picked-up journeys I’ve had.

Gurufest itself was incredibly productive, and Colin (who organized gurufest) is a budding community catalyst – he has the awesome power to make things happen, to move in and out and patch things smoothly together, to do what has to be done (like picking up your speaker on a tandem bike when a ride falls through at the last moment). Predictably, I turned my 4-hour speech slot into a “let’s all get a concrete first (or next) step on a project done!” work session. (Well… I actually did have a speech prepared – an 18-minute long one – but when I saw the audience was full of people who already grokked community-building, I thought it would be nicer not to tell them things that they already knew.)

I’m also tired and frustrated (but in a good way that I can step back and learn from). There are a lot of things I’m working on, I’m learning how to manage them, I’m learning how to deal with having limitations. Dealing responsibly with having limitations and still feeling boundless with a sense of abundance that informs the way I work and live; it’s an unstable equilibria that is delicious to stay poised on, when I can.

I’ve recognized that some of my tiredness and frustration come from my… lack of a next place to learn from, if that makes sense. I’m essentially a consultant now, albeit an unpaid one. I’ve learned a lot, am still learning a lot, and am learning how to teach myself things – and also what the limitations of being self-taught are for various things I care about learning. I haven’t hit the wall of “I can teach myself no further” yet; I don’t think it’s a wall but an asympote of diminishing returns. But I can feel the curve starting to go; I’ve passed an inflection point, and I am getting diminishing returns.

I’m ready for an apprenticeship. I want to work on someone else’s project, learn from them, watch them, absorb. Get the exposure and the words I need to learn how to ask questions so that I can learn more on my own. To be able to wear the hat of protege along with that of mentor (multiple times over, in a somewhat intimidating fashion – but it’s nice to be able to teach). To be able to do that for an extended period of time, not just a project sprint – I want to watch how wise people deal with longer time cycles, as I can only plan a few hours (or if I’m really working hard on it, days) out. Beyond that, it’s a blank; I have no sustained melody to improvise from, just short phrases.

It’s good timing – I have two weeks left in my self-allotted “explore things!” period, and I really am starting to want to look for a job. Not because of financial pressures. But because I honestly think that it’s the best next way for me to grow, working under and alongside people I admire. So. I’ve noticed myself looking more actively for these kinds of opportunities. And I will try to nurture it, because it seems to be doing me good.

Tonight: Gurufest followup, and the Boston-area pilots Friday update.

This weekend: SL Participate page, post lipreading notes, SL wiki accuracy-check, try out the CFS image and customization key sticks and make sure I can get them to work, get Sean interview text for the Sugar 0.84 press release.

And then of course music and training and email. And rest and thinking and reading – I’ve got two Howard Gardner books to read. I realized a few days ago that one of the things I like about reading Gardner is that he explains his personal journey towards understanding the concepts he’s presenting in his books – something I seem to also gravitate towards doing. It’s teaching others in a way that incidentally aids your own introspection.


Priorities


HA! I cleared my inbox today and it’s only 4:18am.

…from the “you know you need to rewire your priorities when…” book of Mel Quotes

Now to post multiple meeting transcripts, conduct and write an interview, post a Boston deployments update (including the latest on project management tools), and polish my Gurufest talk. Workshop, really. But first, an hour of sleep! Because sleeping is good for you!

Like I said. Priorities. They need to be rewired a bit.

On the up side, today’s lipreading workshop seemed to go well, or at least I learned stuff and nobody fell asleep. If there’s interest in the comments I’ll write up the material in “Mel’s Lipreading Crash Course” as a blog post here. And hanging out with teachers tonight == AWESOME.

Have hours ago lost ability to regulate my body temperature. Freezing. Is time for not be conscious. English speak not Yoda when again waking.


Today I learned to count.


There’s a jam session coming up on the 21st for Kevin and Steve’s students, and I’ve kind of committed to throwing myself off a pier into the deep end of the ocean here – I said some time ago that I’d play at the next one, and… now the next one is… soon. Glub. Some interesting issues:

  • I have stage fright
  • I have stage fright
  • I have stage fright

In addition to this,

  • I have stage fright

and did I mention

  • I have stage fright?

Piano competitions and recitals: wear uncomfortable fancy dress. Escalating levels of panic during few preceding lessons and nights of practice and nightmares of botching notes, forgetting easy parts, crashing into the wrong chord, runaway acceleration (when your fingers accelerate in fear, this makes you more afraid, which makes you go faster, which makes you more afraid, which makes you go faster, which…) skipping entire phrases, passages, entire sections. Pages of music.

I’ve done all these things in an actual performance, by the way. EVERY NOTE MUST BE KORREKT! I remember competition and recital locations very clearly. Even the ones from when I was tiny, 7 or so. I remember the intimidating concert grands on stage, and touching it to get a sense of tone and feel before performance. I don’t remember playing. When I sit down at the keys “for real,” I proceed to blank out and play like a robot. BECAUSE I AM SCARED. A parentally videorecorded robot.

So as soon as I sat down in the studio and said “so the jam session is two weekends from now?” my stomach clenched in nervous terror and stayed that way for the next hour and a half (as I type this on the train to Olin, it’s still gripping the seat going OH GOD DON’T MAKE ME DO IT).

That’s why this is good for me.

If you take out the stage fright items (which compose “reasons my stomach has a death grip on my kidneys at the moment” reasons 1 through… somewhere in the low 200s, I think – you’ll get something like this.

  1. I can’t tell if my right hand (or high notes in general) mess up. THIS FREAKS ME OUT. It always has.
  2. There are other people I’m supposed to listen and respond to. I can’t blank out like a robot and block out all external noise, which is what I have been doing while playing piano for the past… gosh, nearly two decades now. I have to actually play in response to… people. Who will be listening to me.
  3. People will be listening to me
  4. People will be listening to me
  5. People will be listening to me AAAAAAAAAAAAA

It… continues in this vein. I’ll have to face and deconstruct this over the next few days – trying to get myself to relax and feel playful about it, deprogram years of freaking out (…no pressure, right?) It’s like being caught in a mental Chinese finger trap. It’s kind of fun. See? Masochism helps me relax. HA! I knew it was good for something.

That’s why I learned to count today. I didn’t know how to set a tempo for other people – remember, this “other people” thing is weird for me and music, unless there’s a conductor… the idea of me setting a beat is still odd. We literally practiced me responding to “where do you want it?” (at what tempo would you like to play?) by saying the words “Ah-one. Ah-two. Ah-one-two-three-four” at various speeds in the direction of an imaginary drummer. Alternatives: clapping, snapping, just plain ol’ counting.

We also practiced trading fours (piano/bass plays 4 measures, drum solos 4 measures, repeat, etc) which I’m still a little shaky at. Conceptually, it’s easy – I just don’t have reference points for it, and I’m used to having set physical transitions of my hands on previous notes to help my muscle memory ease into the next ones. It’s a side effect of going on automatic – you don’t typically play Chopin, abruptly stop, turn two pages, wait the relevant number of beats, then start again. Now I have to think about “well, 16 beats from now, I come in on a G-flat minor 7 and the melody’s on D,” and then figure out where that is, and then go BAM! into something that’s… hopefully not painful-sounding.

Rituals. Sometimes they help; right now, for this, I need something to hold onto. Hey stomach, you can rela- wait. Wait. Is that Gordian? You…

Aah. I’ll go and get my sword.


Of course we work on open-source projects in the dining hall.


I visited Olin College (my alma mater) yesterday and spent all afternoon working with students who were…

  • using RT to track laptop repairs
  • developing a Moodle workshop for local teachers so that they could use the school server they were about to deploy
  • setting up jhbuild in order to prep for a bugfixing sprint they’re organizing specifically to introduce classmates to being code contributors to a large, long-term software project
  • talking about how to stay on top of releases so they could work out a software update arrangement for the deployment (soon to be plural) that they serve
  • preparing to consult with 6th grade teachers on how they could integrate open-source software into their lesson plans

It was a good day. Okay, easier “let’s set up a development environment” resources for Sugar would be great (so we’re making them), and it would be nice to have more examples of transparently project-managed deployment tech support teams (but someone’s got to start, and Bryan and Pia have been great about pointing us to good practices and software that they use for theirs) and it should really not be so bloody hard to make Sugar-on-a-stick (SoaS) bootable thumbdrives to take around for demos, but those are minor blips. They’ve got it. They’re running this show themselves, and have been for two years now.

And more importantly, this all seems normal. Of course you file bugs in Trac. Of course you ask for help on IRC and have conversations on publicly archived mailing lists instead of over private email. Of course you try to find an existing project to tweak and contribute to instead of automatically rolling your own everything from scratch; of course you stand up and scratch an itch instead of waiting for directives or permissions from on high. It took a while and it’s still a work in progress, but they’ve shifted reality a little, locally – enough that we can sometimes now take these kinds of things for granted. Sometimes.

One moment recently that made me smile: a student who’d just been exposed to Trac enthusiastically proclaimed this bug/ticket tracking system thing seemed like a really good idea and maybe other open-source projects should use it too! The subsequent discovery that this was in fact the case was wonderful to watch – the why now firmly in place instead of a blind “people say using this kind of tool is Good For Us.”

One thing I’d like to do is get them (and other university and high school groups I’m working with) to share more with the broader open-source/university communities the awesome things they’re doing. This blog post (David Humphrey’s suggestion) is a start – what else can we do?


Mother of all funk chords


Remix. Of. GLORY.


Sometimes, when I’m running around between different groups trying to get things to happen, this is a bit of what it feels like – people scratching their itches, playing their own solos off with a tiny camera somewhere, and bringing that together and remixing it into something… more than anything than a gigantic capital sigma on the left side can ever signify.


Sugar Labs’s GSoC org app: Now with pilots!


The countdown to submitting Sugar Labs’s application to be a 2009 Google Summer of Code (GSoC) organization has begun. (That was a long and overly complex sentence, but we shall press onwards!)

If you have a moment, please take a look, leave comments, and make any last-minute edits you might have to our current application, which is in response to the questions posted here. Many thanks to Walter Bender and Jameson Quinn for doing a great job on our org app (with a special thanks to Jameson for continuously sending reminders and scheduling meetings to keep us on top of things)!

We particularly need some work done on our ideas page, which will be the focus of the next 12 or so hours of my life (…after a few hours of sleep, that is).

This is the first summer we’ve been present as an organization to participate in GSoC, so we’re lucky to have a number of experienced Sugar coders signed up as mentors and shadow-mentors, many of whom are veteran GSoC mentors or students. We’ve also gotten some invaluable coaching from former GSoC administrators at other open-source projects and former GSoC students who worked on Sugar when it was part of OLPC, leading to things like our requirement that applicants demonstrate that they have a working development environment and the practice of holding mandatory IRC check-in meetings once a week throughout the project.

My favorite part of our application, though, has got to be this:

We will launch a Sugar pilot near each accepted project so that students can see immediate results and feedback from children and teachers using their work, thus investing them further in longer-term sustainability and getting their local communities involved as well.

Awesome software is a tool. Communities where children are learning about learning is the goal. Showing students how their work on the first directly impacts and benefits the second is, I think, one of the most important outcomes we can have.


Tunescript


Every so often Ben Fisher will make magical things that make me smile*. Tunescript, for instance. You type in text. It plays music.

There are rough edges. The “play” button only works in Windows for a reason I don’t fully understand, so we had to comment out the entirety of the bmidiplay.py file before it would run on my (Fedora) laptop, and then I had to play each of them from the command line on timidity.

Here’s why I like it.

  • It’s text-based. I don’t have to accurately mouse-click on a tiny score.
  • Its interpreter is intelligently designed. I’ll let Ben explain this part.
  • My killer feature: it’s spatial – by that I mean that you play a C by typing “c” – to make it last two beats, you type “c . “, three beats is “c . . ” and so on. Since you can do multiple voices (by stacking them on subsequent lines), if you’re writing in a monospace font, you can easily see timing and duration of notes. (This breaks when you write sharps and flats – the visual alignment was apparently an unintended feature.) Things like lilypond don’t do this – I’m starting to look at lilypond as “beautiful for layout, but not so awesome for composing,” the same way I no longer write my drafts in LaTeX (I mess with content in plaintext, then use LaTeX for typesetting as needed).

To make sense of that last one, here’s Ben’s arrangement of Billy Joel’s “It’s Still Rock And Roll To Me.” You can see the notes line up (and how sharps break it).


(voice 1 'rock organ')
(voice 2 "bass")
(tempo 210)

/>> ^
/>> v c,c c,c c,c c,c c,c c,c c,c c,c

/>> ... c,c c,c c,dvb,, a,, a,g g,g
/>> c,c c,c c,c c,cve,e e,e e,e e,e

/>> a#,, a#,a# a#,, c', /a//g/f,,
/>> a#,a# a#,a# a#,a# a#,a# f,f f,f f,f f,f

/>> ^... c,c c,c c,dvb,, a,, a,g g,g
/>> ^c,c c,c c,c c,cve,e e,e e,e e,e

/>> a#,, a#,a# a#,, c', /a//g/f,,
/>> a#,a# a#,a# a#,a# a#,a# f,f f,f f,f f,f

/>> ... e,e g,g b,b c',, a,e g,a ,,e
/>> e,e e,e e,e e,e a,a a,a a,a a,a

/>> e,, e,e g,g b,b c',g a,e g,a,
/>> e,e e,e e,e e,e d,d d,d g,g g,g


I’ll be using this to try getting down some Herb Alpert this weekend, since attempts to use staff paper are driving me mad. And then I can use the rest of Ben’s midi suite to make a score that Melanie can play her flute from…

*sometimes he also makes stuff that makes me go “what were you thinking?” For instance, a Mandelbrot generator written in Verilog. (For those of you unfamiliar with Verilog, this is akin to saying “I’m going to stick a red-hot poker into each of my fingers and play a Bach chaconne.” It’s beautiful but incredibly masochistic.)


The bootstrap hypothesis


I ran across an old email exchange with Curt Beckmann in which he said something that made me stop and think: “It’s not 100% clear to me that software developers are appropriate technologists, or vice versa.”

I think this is a key point in understanding why the open source appropriate technology – or open source engineering, for that matter – hasn’t taken off yet. One huge reason the open source software movement was able to bootstrap so rapidly was that it was inherently about people eating their own dogfood and solving their own problems; in other words, coders were writing code for themselves, code to help them code better.

Similarly, I’ve seen my fellow engineers whip out custom grips, tools, clamps, molds, bits of debugging firmware, hacked-together circuits, etc. to make their design and prototyping work go more smoothly. You use the tools of your trade to bootstrap your work in your trade. That’s only natural, and if those hacks are easily shared, they compound exponentially.

But for an appropriate technologist – let’s say a sanitation engineer – to work with code, that’s a different medium entirely; writing code won’t typically directly aid you in building a composting toilet or whatever. It’s one step more removed, and that barrier is a huge gulf. (For the same reason, I’ll hazard that this is why most coders don’t like writing documentation. It usually doesn’t get the code to be any more functional.)

Might this also be why there’s so little good software for electrical engineers out there? And why nearly all the decent software for mechanical, biological, materials, etc. engineers is made either by big corporate entities (with widespread usage) or grad students (as individual script hacks that tend to languish in obscurity)?