Archive for June, 2009

Tighten before you grow


I got an email today from a friend who’s trying to gather “community” around his project. More people should be involved in this, he said. Do you know any contacts, tools, or resources that might help? This was my reply. (Methinks I should start a ‘community’ tag in my blog, and aggregate these notes better for the CommArch team, but I’ll settle for getting material out there first.)

Don’t expand yet. I know it’s tempting, but don’t expand – you need a stronger presence and a tighter focus before inviting more people in. Until I can look at a webpage without talking to anyone and say “okay, this is what you’re about, here is what’s going on, here’s how you’re moving forward and how you work together, and everyone is obviously in touch with one another,” you need to concentrate on strengthening the bonds between the people you already have rather than bringing new people in.

This doesn’t preclude transparency – radical transparency is still vital. It is perfectly all right to say “hey, this isn’t ready for participation yet, but here’s everything we’re doing, you can see everything that’s going on.” And they might surprise you and find ways to help out anyway – so long as they know it’s not ready for new volunteers and they should expect a bumpy ride.

So: contacts this week = the folks already on your team. You know them already, but are you being good resources for one another? What is everyone doing? What could you help them with? What are they aiming for?

And here’s what you tell the interested people in the meantime. “We want you to contribute. What do you want to do? What do you want to work on? We’re still trying to figure out how people can help, so if you join this mailing list you can see everything that’s going on and we’ll give a loud shout when we have ways for you to participate. Better yet, if you have your own ideas in the meantime for what you think you could do, please share them and start them – you don’t have to ask permission, we’re all experimenting with this. What do you think you could do? What would you like to learn?”

Something like that, but more coherent. ;)


back in gear


I’m learning how to do the things I can and let the rest go (preferably loudly announcing that some task or other isn’t done if someone else would like to pick it up) and slowly starting to become okay with that. This is a good thing.

Monday night and Tuesday morning I completely overdid it. I got into the groove and started typing, and kept on typing, and kept on typing… worked all day, kept going into the night, skipping typing breaks left and right until 4:30am – when you love what you do, you jus want to keep going. In the case of wanting to heal, this is very, very stupid. Sure enough, my RSI was unhappy. I spent a decent chunk of Tuesday rubbing my muscles out; Matt gleefully described this process to friends over the phone, punctuated by the occasional “ow!” from my corner of the room. Did most of my work through conversations and on paper, and I’m ramping back into steady-state computer use again, fighting the temptation to overdo it again in the name of “catching up” (I did this a few times over spring and learned my lesson).

I went biking, hit a bad part of the road in the wrong way on a wet street, and controlled my skid and eventual crash well enough to land in the bushes with some bruises and a gash on my right wrist, which I spat on and held ’till it stopped bleeding, then patched over for the Habitat build the next day (a lot of painting, sanding, and sweeping, but they have a fresh white stairway, windowsills, and a shoe rack by the door now; also, floor tile is heavy). I also need to learn how to patch a tube.

NECC plans; POSSE work. This morning is for catching up with Websites. Extended conversations with my aunt, with Elmer (a doctor from the Philippines who’s just finished up at KSG and wants to work on grassroots public health issues through schoolchildren), with old friends, trying to get my brain used to disequilibrium, and in anticipation of another glorious jump when things will once again Make Sense, but in a way I’ve never been able to see before – tiny paradigm shifts keep coming into my life, it’s wonderful. NECC is going to be another mind-blower; CLS as well, and then POSSE, and – how much overload can my mind handle now? Sweet.

I’m wide awake and feeling good. Early wakeup (5am, to see my aunt’s family off to China) and intermittent meals of nuts, dried fruit, a whole wheat bagel, peanut butter, bananas, juice, and sparkling water combined with a midday run feel good. This is particularly nice because I’ve been under the weather for a few of the last few days – last night I realized this generally correlated with me eating lots of heavy, greasy stuff for no good reason (other than that the food was there, and I was hungry, and was too lazy to find something healthier to eat) and so I started to stock my stomach with vegetables and brown rice and fruit and sure enough, my energy is rising again. I can notice and respond to and control this kind of thing. Win!

Ok. Finish NECC stuff, move to Websites. Go, Mel, go. Later I want to write about Elmer, about Not, and about what I learned from Jenn and Gui about dancing. But that’s later.


Remedial early childhood motor skills development


Been experimenting with massage tools to loosen up my own muscle knots. There’s a rubber wedge that unfreezes my shoulder blade, a sort of crab-cracker for the neck and shoulders, a wooden block that frees my neck, rollers for my forearm. They hurt like the devil, but in the good way that means blood flow and mobility will follow. They’ll be travelling with me all of July, marking the first time since my extended 3+ month China/Philippines trip in 2007 that I’ve packed anything larger than a backpack. (Not counting moving between residences of my own, of course).

Now that I’m starting to get used to the feeling of muscles releasing via massage, I need to learn how to keep them loose. One blocker to that is that I’m weak – by that I don’t mean out of shape in general (though I could certainly get better), but that specific muscles simply haven’t been used in years because they’ve either been knotted up or bound by other muscles that were. I don’t have the strength or the control (proper posture is still something of a crapshoot; I repeatedly stand or sit until I get it right, but I can’t consciously move myself into position) to use them properly, which means I still overuse the wrong muscles, which means things knot up again. So I am going to look at awareness first, then control, then strength, then flexibility. Slowly. It’ll take weeks and months and years.

I’ve become increasingly interested in the physical feedback mechanisms that work for piano playing, which I am still quite new to. I want to get that peripheral awareness of my body into computing; in both, you submerge yourself into your instrument in order to create something, so if you have to consciously and constantly figure out how to use your instrument, it’s no good – but piano-playing does this in such a way that you must stay very aware of your body’s relationship with the instrument to perform well, whereas there is no such immediate performance incentive with computing. In other words, while bad posture while typing might make your hands hurt in a couple hours, bad posture while playing piano makes you sound terrible right now. Dimming my monitor unless my posture’s good? I don’t know… but I’m starting to leave space open to think of hacks to make for this.

While talking with my aunt (the kindergarten teacher) about how young children learn to use and move their bodies, and how I’ve always been physically awkward and kinesthetically unaware (and to compensate, extremely cerebral), we both realized I’d spent a large chunk of my toddlerhood in a hospital bed. 2 months in a coma is a long time for a 2-year-old to not be running around, and I was in a bed for quite some time after I came out of that coma. Physical therapy as a 3-year-old let me walk and sit again, but whie I can perform all these actions functionally, I wasn’t doing them very consciously, or well, throughout most of my life.

Reading through early childhood motor development books and exercises (apparently this is where gym teachers get their stuff from) has been instructive. Some of their exercises are hard! And it’s frustrating, because my brain can think of how a body ought to be able to do this, but my body won’t, in subtle ways – my hips won’t rotate like so when I sit, and now it’s not just a child’s unfamiliarity wih having a body that I need to fight, but two decades of habits embedded in the body of a young adult. At least I won’t have another growth spurt and another body mapping to relearn in a few years. If I get a tripod, I’ll try to film some of them so I can document my physical awkwardness diminishing.

I love learning in unfamiiar worlds. It’s a game to see how quickly I can become fluent in something completely foreign to me, to learn how to learn something from scratch. In some ways, it’s a blessing I missed out on a lot of things as a kid; it allows me to see them with fresh eyes as a conscious, grown-up learner… and I’ll never take knowing anything for granted. Or at least I’ll do my best.


My general plan for July


  1. go to Washington DC
  2. go to New York
  3. return to Boston; take all needed graduate school entrance examinations (…studying? what’s that, you say?)
  4. go to California
  5. go to Raleigh
  6. return to Boston; interview a ton of people for a book (well, at least it sounds more interesting if I call it that)
  7. dunno; probably sleep and relax for a couple hours before August starts

It’s actually kind of a relaxing summer. The Mel likes!


On booking travel


On the one hand, a discount flight in and two busrides up and staying in the cheapest hotel you could find within walking distance (somewhat over a mile) to the conference so you can stay up with wifi working all night on the days you’re not crashing on a friend’s floor is a masochistically penny-pinching way to travel. I basically booked things until I figured I’d reached the Pareto point of spending money vs being more effective.

On the other hand, when you find out that two of your friends are driving to DC from Boston because they can’t afford airfare (though really, with gas prices and parking and the extra time it’s going to take them, I don’t think they actually come out ahead) and are planning on sleeping on floors (floors of summer student interns, which are probably not exactly luxury living) and driving in each day, you know that’s what you could have done, and in fact what your first instinct was until the “wait, seriously, is it actually worth the $40 I’d save to spend 9 hours on a bus instead of working?” logic kicked in.

I have spent 9 hours on a bus to save $40 before (which values my time at under $4.44 an hour and makes my back extremely unhappy). I still hike 8 miles across a city when daytripping for fun to save $2 in train fare in order to buy a hot dog for lunch. I see the city and get tasty food; I lose no work-time, and it makes me happy. Tradeoff!

Funny how the tradeoff point starts shifting.


below the elbow


And on a happier note, I’m starting to reliably be able to quell the warning signs of impending RSI-related pain. Hurrah for self-massage tools and trigger point workbooks!

Folks, try this: take your hand and grab the opposite arm below the elbow (on the side of your elbow closer to your wrist than your shoulder) and deeply press into the right and left sides of your forearm. Tense? 30 seconds of deep, short strokes in one direction. Other side, then other arm. Repeat hourly.

Hurts like hell, but hurts preemptively like hell instead of flaring up mid-sentence. Much preferred.


little sister


Recently, someone asked me what I was good at. “Being excited,” I replied. “And nonthreatening.”

I didn’t really expect to say the second part, but it’s something that’s been on my mind lately. Why would I say those two things as opposed to… I don’t know, “transcribing a capella arrangements” or “making ergonomic workstations out of random furniture” or “absorbing printed material at extreme velocity” or even “math”? Why is it that even when I hang out with groups of people my own age, or even a few years younger, I still take on the role of the enthusiastic, wide-eyed newbie?

I am an enthusiastic, wide-eyed newbie; I’m still less experienced and far more naive than even my slightly younger peers (for many reasons, not the least of which I’ve never overhead the conversations most kids have absorbed by osmosis before they get to high school). And I’ve certainly played other roles many, many times. But why is the kid sister role the one I feel most comfortable in?

I’ve lived my life in a world of boys; when you’re interested in numbers and technology and things that speed and blow up and hit each other, most of your peers have Y chromosomes. I’m not big or strong or fast, went through puberty late and emerged still scruffily androgynous, never was particularly physically graceful, and, thanks to a late birthday and a skipped year, have historically been the last one to be able to drive, to vote, to drink. I’ve literally been an adopted little sister for a long, long time.

Think about how boys feel about a little sister. She’s cute. Sometimes annoying, but endearingly so. Catches on fast – she’s fun to teach. You watch out for her, protect her – because no matter how sharp the kid is, there are things she just doesn’t know about, things she’ll miss. (Things you want her to miss.) She can whoop your ass in physics without being a rival that you have to hunt down and destroy – who taught her physics in the first place? You. Who fends off the boys with crushes and silences the dirty jokes before she pops into the hall? Who taught her how to curse, to throw a punch, to climb the roof? You did. She’s no potential rival nor potential mate. Not threatening; do not court, do not destroy. Teach. Your little sister is yours to teach.

And so a world of willing teachers and free knowledge opens up. Stuff beyond that which I could get in books, stuff I can’t overhear. A wealth of information that I’m painfully conscious could be withheld – not cut off, but made so much harder to get that I’d only reach a small subset of it by plunging through the library, unaware of what I’m missing. People to belong with. People to belong to.

I learned early on that people strike back when they’re afraid of you. I’ve written before about how I cried when I was in second grade and forgot to rein back on an essay that I wrote. I learned to absorb insults and snide comments from kids who wanted to beat me even though I didn’t want to compete against them. I learned (with difficulty and a lot of failures) how to forget the constant press of winning and allow myself to love the learning despite everything. Some of my happiest moments in middle school were at 3am hiding in the bathroom reading science essays. At night, it’s safe to think and dream.

Life becomes much easier when you can dream in broad daylight as well. When you can, make potential aggressors into protectors, because there will be people who’ll still want to be jerks towards you for reasons you don’t understand, and they can hurt you pretty bad if you’re not focused on keeping your defenses up. (It’s still important not to fight back against them, though; once in high school, when I really couldn’t let that steam out non-destructively, I ripped apart a couch with my bare hands instead, and had cramps and bruises from that for a couple days – but it let me keep a cool head and hold back some buddies who wanted to go fighting on my behalf.)

Protection. Protection in place of potential aggression or courtship. Learning things. People who like you. It is a strategy for dealing with the world which makes defaulting to kid-sister mode completely optimal.

Except that’s not the world I live in now. Or is it? The stakes are getting higher and I’m getting more reluctant to test them, to my chagrin. I could handle getting soaked by water pistols. I’m not sure if I can handle something that would hurt my ability to do the work I love. I’m shy when I talk – until I get excited and forget. The last time I defused a fight, someone complimented me on my patience. I don’t have patience; I have a survival mechanism. I can get people not to fight because I’ve learned how to get people not to fight me.

Is being excited and nonthreatening really what I want to be? Obviously, I’m not actively going to try to become bored and wantonly aggressive, but… are there any things that would take priority over that? What am I willing to give up to stay this way? What’s worth giving up this comfort for?

It’s not that I’m unhappy in the kid-sister role. Far from it; I love it. It’s that… I don’t think it can last much longer as a default use-case. And I’m not sure what comes up in its stead. So now’s the time to think about that and explore it in advance.

I’m glad I write these things down for my future self.


How to find a Gill


How I spent my time in college:

  1. looking for my advisor
  2. making a film about it


Piano practicing on the road


In short: how do you do it?

The frequency at which I travel has begun to rise, and while I’ve got plenty I could do with ear training and mental practice, there’s also the simple fact that muscles do atrophy, and if I’m to work on and maintain my physical technique at all, there’s got to be a way to do it.

I’ve taken to drumming Hanon patterns with my fingertips on the bus window, dinner table, and other random surfaces. I have an ear training book that I’m (very slowly and painfully) working through, and am thinking about one of those “yes, you too can have perfect pitch” training programs (which I’ve heard… mixed things about, but am willing to try). I could certainly try to spend a few evenings in jazz clubs while I’m on the road, soaking up some listening. I could also bring a portable instrument (for instance, take my guitar along) or try to find pianos where I am.

This seems to boil down to three questions:

  1. How can I improve on the piano without access to any instruments?
  2. How can I access a piano while traveling?
  3. How much would working on another (portable) instrument – likely guitar or bass – help my jazz piano studies?

Any suggestions or leads would be awesome.


n00bthoughts: producing my first .rpm


In the “I learn by documenting” vein, I’m trying to catalogue my experiences as a first-time packager. As background, I’ve coded and done development before and have contributed to open-source projects in the past, so I know the ./configure make make install dance and have a rough grasp for how packaging fits into the development cycle – in other words, I started out with tons of advantages over the raw newbie.

And yet this has taken me over a week to do so far (and I haven’t even submitted my first package for review yet) Why is this taking me so long? Fear of the unknown, really. I don’t know what’s involved – how long it will take or how hard it will be – so I budget out time not knowing how close to finished I’ll be then, and need repetitive prodding to get started. As Ian Weller said, the first time is always the hardest – so I’m writing down what’s helpful and what’s confusing while I still have the privilege of considering this to be Mysterious And Hard.

Helpful: I aready had an idea of what packaging meant and what RPMs were. I was told this package needed to be made, and that I could and should do it, rendering me unable to use the “maybe you need some mysterious, undefined experience to be a packager, so I should stop trying to figure it out” excuse and giving me something concrete to deliver: I had a no-excuses target.

Confusing: Where do I find the how-to-make-an-RPM guide? A google search was not particularly helpful. To get from to the RPM howto, I had to take this path, starting at fedoraproject.org

  1. “Packaging is participating, so I can click the little join-fedora sidebar.”
  2. “Uh… shoot. Packaging doesn’t seem to exactly be OS development, but I’ll click OS Developer anyway.”
  3. “Ah, that was the right place; Packaging is listed under the skills-you-want-to-learn here. And lo, there is a Packaging link to click on!”
  4. “Now I’m on a page that shows me how to join the packaging crew. The first thing that it tells me to do is read the guidelines, and here’s a link to the Creating Packages HOWTO and the Building Packages Guide. Golly, they’re both huge. And the Packaging Guidelines. And the…
  5. *** Too Much Information! buffer overflow detected ***: /usr/bin/mel-brain terminated

Helpful: Sebastian Dziallas pointed me towards astronomy-bookmarks, which is nearly identical to the RPM I was trying to make; I downloaded and unpacked it and poked around, noticing what files it contained – and that it did not, in fact, seem to have magic within it. Just files with some settings I didn’t yet understand. Presumably, somewhere in the oversupply of RPM-making-howtos, something would teach me how to make something similar.

Confusing: While lurking on another IRC channel, I overheard the RPM Guide being mentioned. It’s gorgeous and a helpful reference, but definitely not a walk-through for first-time packagers. Filed in my “good references to have around” section.

Helpful: The Creating Packages HOWTO referred to Christoph Wickert’s Building RPM packages tutorial, which was the first thing that really got my rear in gear as far as doing things that would create a package rather than researching how to create a package. It was good to be able to watch Christoph walk newbies through packaging, see what questions they had, and have a conversational stream to follow along.

Using Christoph’s chat as a guide, I installed all the necessary tools (rpmbuild and rpmdevtools), ran rpmdev-setuptree to make the appropriate folders in my homedir, put my source (a single bookmarks.html file, following the lead of astronomy-bookmarks) in the SOURCES folder, ran rpmdev-newspec to make a skeletal spec file, and took a first stab at filling it in. This file was my first attempt.

Confusing: According to the instructions, it was now time to run rpmbuild -ba edu-spin-bookmarks.spec. Experienced packagers who’ve glanced at my first spec might be able to guess the error I ran into. Here it is.


+ install -p -m 644 /home/mchua/rpmbuild/SOURCES /home/mchua/rpmbuild/BUILDROOT/edu-spin-bookmarks-0.0.1-1.fc10.i386/usr/share/bookmarks
install: omitting directory `/home/mchua/rpmbuild/SOURCES'
error: Bad exit status from /var/tmp/rpm-tmp.x3Rq1M (%install)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.x3Rq1M (%install)

Two fruitless hours of looking for documentation on %install followed before I realized I’d just spent 1 hour 50 minutes too many and should really just be asking for help.

Helpful: Sebastian, once again, came to the rescue.

<sdziallas> you'll need to specify the bookmarks.html in the source0 part
<sdziallas> mchua: because rpmbuild won't download the file
<sdziallas> mchua: basically, it doesn't know what to do, I guess. you can
            also put just the filename temporarily in the source0 argument.

Lo and behold. changing line 9 from

Source0: http://mchua.fedorapeople.org/edu-spin-bookmarks/

to

Source0: http://mchua.fedorapeople.org/edu-spin-bookmarks/bookmarks.html

did the trick. I had been looking in the wrong place for what turned out to be a trivially obvious answer. (If Sebastian had not been around, where should I have looked for the answer? What’s the ideal way for me to have found the fix?) Running rpmbuild now popped out an edu-spin-bookmarks-0.0.1-1.fc10.i386.rpm – and now I was ready for Phase II, making the RPM functional and ready for review… (stay tuned for our next installment!)

Yes, this is a slow and agonizing crawl through something very simple, and I’m sure I’m boring many people here to tears. ;-) Here’s the point: to the beginner, it is a slow and agonizing crawl, and we don’t see the “very simple” yet. Or at the very least, realizing that it’s simple and learning how to navigate the simplicity is not a trivial thing.

I’m actually quite impressed by how simple the process is, and how helpful the resources are – however, my baseline for “easy process!” is “it’s better than several weeks of blindly trying to install Linux for the first time via stacks of floppies in 2001!” so just because it’s “good enough” doesn’t mean it’s as good as it could be.

How can we improve this experience?