September 2011

Transcript: Blogging (Part 1): Blogging and introverts

September 1, 2011 - Categories: blogging, tips, writing
This entry is part 1 of 16 in the series Discovering Yourself Through Blogging
Hat-tip to Holly Tse for organizing this interview! After I transcribed it, I realized we managed to pack more than 9,000 words into one hour. So that I don't overwhelm people, I'm going to split this up into 15 logical chunks to be published every Thursday. At the end of the blog series, I'll put them all together in a text file and a PDF that you can read easily, and I'll add insights you and other people might share along the way. =) Here's the first chunk! Holly Tse: All right, good evening, and welcome to the Lotus Blossoming Telesummit. My name is Holly Tse. I'm your host for tonight, and joining us this evening is Sacha Chua. Sacha Chua is a Generation Y tech evangelist, and she's passionate about blogging, and she's been writing her own blog since 2002. So, if you've been thinking about starting a blog, or you have a blog and it doesn't seem to be going anywhere, or even if you're a seasoned blogger, you'll enjoy Sacha's enthusiasm and you'll probably pick up some great ideas tonight. So, welcome, Sacha, thank you for joining us. Sacha Chua: Thank you very much! I'm looking forward to things we'll find out in the conversation, particularly as I've managed to convince you to get into blogging again! HT: Yes, it will be interesting to find out. I also want to mention that Sacha invites everyone to submit their questions live right now. If you're on the webcast, you can type into the Q&A box, and if you're on the phone… You have to press.. SC: Oh, just use the webcast. HT: Yeah, probably the webcast is easier, yeah. SC: if you are listening to the recording, though, please feel free to drop by my blog. I'm at That's If you ask your questions there, I'd be happy to help. HT: That's Sacha. She's so comfortable with technology. You can ask and she can talk at exactly the same time. That is awesome. So, Sacha, I wanted to ask you–because you have a really fresh perspective on blogging–how would you define what a blog is and how does that differ from what the "experts" say? SC: Well, really, what a blog is, at its very core, is it's just a list of entries that are ordered in chronological order. It's usually the newest items first, and you go backwards from there. Now, many people think, Oh, blog, that's for self-promotion, personal branding, or search engine optimization, or all of these new buzzwords that have sprung up around it. But you know, it's actually a really, really useful tool to just practise writing and thinking about your life and figuring things out. And not only is it helpful to do that for yourself, but when you start sharing it with other people–and here's the difference between having a journal and using a blog–when you start sharing your stories with other people, you'd be surprised at the kinds of insights that you get from other people: the lessons they'll share, the encouragement they'll share, and also the ways that you get to help other people too. HT: So, can you give us examples, then, from your own life and your own blog, where blogging has led to some unexpected benefits? SC: One of my unexpected benefits from this blog… A couple of years ago, I was in the habit of posting not just my thoughts, but also my to-do list online. It got to the point where I was feeling a little bit embarrassed because there were certain things I knew I had been procrastinating for weeks, such as going to the bookstore and buying this particular book that I'd heard about but hadn't gotten around to reading. So I'd been procrastinating it for a good long while, and finally, someone went and bought me the book. Those are the funny things that happen when you share bits and pieces of your life online. But I've also come across situations where I'm writing about something I'm figuring out, whether it's my decision to take piano lessons or to stop taking them, or things I'd like to learn, my experiences with all these different hobbies and interests like woodworking or sewing, or all these things I've been trying in my life, right… and to be able to use that to reach out to somebody I would never have thought of e-mailing or finding elsewhere on the Web, and then having a friendship grow out of that. So it's been really, really helpful, particularly as I– hard to tell from my voice, but–I feel rather introverted, especially around crowds, so this is a great way for me to get the conversation going without actually having to start conversations myself. HT: I have been reading your blog and you keep saying you're introverted, but… it doesn't come across in your blog that you are. SC: We often think that introverts have to be these people who find it really difficult to communicate, people who like spending time by themselves… Well, you know, we all find different ways of dealing with things. My favourite way of spending my evening is still staying at home and maybe doing a lot of reading or writing. I find conferences and networking events really intimidating. But on the other hand, when you talk about reaching people online, talking to them, maybe even becoming friends with people I've never really met or maybe I've only met once or twice… There's nothing stopping people from doing that, and in fact, it actually really helps, because then you're not always trying to make small talk about the same topics. You can actually get to really deep conversations that have built on other conversations. Tune in next Thursday for the next part in this series! I'll add new entries to the Discovering Yourself through Blogging page to make it easier for you to find them.

Notes on transcription with and without a foot pedal

September 2, 2011 - Categories: analysis, decision, kaizen, review

I finally sat down and transcribed the interview on discovering yourself through blogging, where Holly Tse puts up with my firehose braindump of things I've learned. It's an hour of audio, more than 53,500 letters, and about 9,500 actual words. The words per minute measurement uses a standard of five characters per "word". This means I clocked in at more than 180 wpm.

I like reading much more than I like listening, and a transcript makes it much easier for me to search and review what I said. After considering the options, I ended up transcribing the interview myself. I even built my own foot pedal. ;) So, here's what I've learned.

I started off by trying to use ExpressScribe and Dragon NaturallySpeaking for automatic transcription. It looks like I'll need to do a lot of training to get this ready for transcription. The fully-automated transcript was useless. I tried slowing down the recording down and speaking it into Dragon NaturallySpeaking (somewhat like simultaneous translation?). This was marginally better, but still required a lot of editing.

I gave up on dictation (temporarily) and typed the text into Emacs, using keyboard shortcuts to control rewind/stop/play in ExpressScribe.

TypeTyping without a foot pedal, 50% speed
Length15 audio minutes
Duration60 minutes of work
Factoraudio minutes x 4
Characters14137 (~ 2800 words @ 5 characters/word)
Typing WPM~50wpm (90 wpm input, 56% efficiency)

I took a second look at the outsourced transcription options. CastingWords had raised prices since I last checked it. Now there wasn't much of a gap between CastingWords and TranscriptDivas, another transcription company I'd considered. With TranscriptDivas, transcribing an hour of audio would have cost around CAD 83 + tax, but I'd get it in three days.

TypeTranscription company
CostCAD 83 + tax = ~CAD 95 / audio hour

Before I signed up for the service, though, I thought I'd give transcription another try - particularly as I was curious about my DIY foot pedal.

I told myself I'd do another 15 audio minutes so that I could see what it's like to transcribe with my foot pedal. I ended up doing the whole thing. I used ExpressScribe to play back the audio at 50% speed, and I set the following global shortcuts for my foot pedal: center-press was rewind, left was stop, and right was play. I ended up using rewind more than anything else, so it worked out wonderfully.

TypeTyping with DIY foot pedal, 50% speed
Length45 audio minutes
Duration120 minutes of work
Factoraudio minutes x 2.6
Characters39400 (~ 7880 words)
Typing WPM~65wpm (90 wpm input, 72% efficiency)

Discovery: Listening to myself at 50% makes it unfamiliar enough to not make me twitchy, although it can't do anything about me being sing-song and too "like, really". That might be improved through practice.

90wpm input was pretty okay. Faster, and I found myself pressing rewind more often so that I could re-hear speech while catching up.

Assuming sending it out to a transcription company would have cost CAD 95/audio hour and transcribing the entire thing myself would have taken 3 hours (including breaks), doing it myself results in a decent CAD 30/work hour of after-tax savings. Not bad, even though doing it myself meant I procrastinated it for two weeks. It might be cheaper if I hire a transcriptionist through oDesk or similar services. With a infrequent transcription needs, though, I'd probably spend more than two hours on screening, hiring, and delegating.

Hacking together an Arduino foot pedal was definitely a win. Transcribing with it was okay, but not my favourite activity. I might send work to a transcription company if there's enough value in a shorter turnaround, because it took me two weeks to get around to doing this one. Good to know!

2011-08-31 Wed 21:45

Starting up my experiments in delegation again; the difference between what I want to do and what I want to see

September 3, 2011 - Categories: delegation

Prompted by my sister Ching, I've been thinking about delegating again. She's looking for a virtual assistant who can help sort out the details of their move to California - research cellphone plans, set up appointments, that sort of thing. Me, I'm generally curious about programming, and delegation is taking that to a different level. At its best, delegation will even let me "program" things that I don't know how to do. It's like being able to write a routine like doSomethingAwesome() and take advantage of other people's proprietary microcode!

I'm going to ease up a little on long-term investments and carvie out a chunk of my budget for learning how to get other people to get things done. Besides, with all sorts of weirdness going on in the markets, it's probably going to heck in a handbasket anyway. ;) I'm still investing for the long-term, but I'll redirect some of it to education. Books and classes can't teach me how to scale up, but working with people can.

I thought about what was making me hesitate:

  • Money: Although you can hire inexpensive contractors, it's still a non-zero cost. I compare my estimated costs with eliminating the task, doing it myself, or putting it off until it makes more sense.
  • Time: It often takes me less time to do a task than to write instructions and debug people's output. I don't feel pressured by time. The limit of 24 hours each day just means that I get to some things sooner, some things later, and some things not at all.
  • Trust: There's the obvious level of difficulty in trusting other people with passwords and financial information, but there's also the other level of trusting them with communication on your behalf.
  • Trying to figure out what to outsource: Web research is a natural candidate for outsourcing. Learning, well… the work is inside your brain.

So here's how I'm starting to think:

Money: Yes, the cost of delegating might be more than the direct value of the time I'd save in the best case. But (a) it will help me learn how to scale beyond the hard 24-hour limit we all have, (b) it's cheaper than an MBA, and (c) it flows money to people who appreciate the work. Looking at the job postings and people's resumes, I feel like I want to give people much more meaningful work than spamming blogs.

Also, it's a little embarrassing to write about delegating work. People assume you're one of Those People with executive assistants and all of that stuff. I'm sure we can work that out.

Time: Yes, it can take more time to write instructions than to do a task. It also sometimes takes more time to write a program than to do a task, and I'll still happily write a program anyway. This is like writing people-code. Maybe I won't reuse instructions as much as I hope, like the way some of my scripts are ad-hoc. If I blog about them, though, people can use them as starting points.

Trust: This one's easy: start with low-risk tasks.

What to outsource: Brainstorm lots of ideas. Plan small chunks of work so that I don't feel self-conscious about running out of good things to delegate. Test my assumptions.

I'm starting to understand another paradigm shift I need to make: the shift from thinking about "How can I outsource what I do?" to "How can I fund what I want to get done?"

There's something there that I didn't know the first time around. You see, I'd been thinking about outsourcing as a way to support what I want to do, and the interesting goals are the ones where the most work happens inside me. Thinking of outsourceable tasks was difficult. I didn't really resonate with the advice other people were giving on virtual assistance. I don't run a business, I'm fine with work and with what I do in my free time, I actually get decent sleep… It's not about freeing up space so that I can do what I want to do, because I'm already doing that.

Here's a different thought: If I switch to thinking "How can I fund what I want to get done?" - to think of myself as a capitalist in the sense that I can provide the capital for a change in the world - ah, now that opens up possibilities… It's a little like considering myself like a Kickstarter or an Awesome Foundation on a tiny tiny scale.

Going back to my sister, for example: I may not directly want to compare cellphone contracts for her, but I do want her to enjoy a smooth and not-very-stressful move. Moving halfway around the world is tough. She and her husband have moved before - from the Philippines to Singapore - but this involves a busy time (right after our other sister's wedding), lots more timezones, a really long flight, and other things. So we can delegate tasks that would make her life better.

I would like our family stories recorded and written down. I may not have the skills of a professional interviewer or the patience of a transcriptionist, but maybe someone can help me make that happen.

I want my blogging, quantified-self-tracking, and Emacs life to be awesomer. I can dig in and code myself (balancing that with my other coding interests and with IBM), or I can sponsor improvements that help other people.

I want my blog to be more visual. =) I want my presentations transcribed. I want other people's presentations transcribed, like my mom's lectures and my dad's speeches.

I want our chest freezer full of individually-packed home-cooked meals, and I want to enjoy more variety.

I want to put together more tips on happiness, and connecting for introverts, and geeking out in life, and all these things I don't read enough about in published books or hear about enough in conversations.

Time is an obvious bottleneck, but I'm a bottleneck too. If I dream dreams that I can't do by myself, though, then I can make more things happen. Some things resonate with people and they voluntarily take up the cause - my dad is amazing at moving people to make a difference - and some things happen faster if you compensate people for doing them. It's a little like moving from "What do you want to do?" to "What do you want to happen?"

Let's see where this idea takes us.

Weekly review: Week ending September 2, 2011

September 4, 2011 - Categories: review, weekly

It felt like a reasonable week. Looking back, though, I'm surprised by how much I finished! =)

From last week's plans

  • Work
    • [X] Make more improvements for project T
    • [X] Follow up on looking for an information architect for project T
    • [X] Follow up on code for project I
    • [X] Prepare technology selection notes for project O
    • Prototyped project O with Rails
    • Prototyped project O with Drupal 7 and Maestro
    • Solved bugs for project I
    • Set up LotusLive Activity for project T
    • Started project assessments for project M and project C
    • Changed settings for project C
    • Fixed calendar bug for project M
    • Helped out with communities of practice program
    • Talked to people about the Community Toolkit
  • Relationships
    • [X] Figure out LCD character display
    • [X] Help J- learn how to program the Arduino
    • [X] Reupholster chairs
    • [X] Transcribe blogging interview, really
    • Followed up on gifts
    • Started shopping for gifts for friends
    • Sent more travel details to family
    • Have been very good at responding to e-mail, yay!
  • Life
    • [-] Sketch year in review
    • [X] Continue working on dashboard
    • [-] Try microphone as sound sensor
    • [-] Prepare month in review with stats
    • Set up new laptop, yay yay yay! =D
    • Hired virtual assistant, open to hiring more
    • Started visualizing hours
    • Learned about keyboard shortcuts and productivity tools for Windows 7
    • Filed all my previous notes from Emacs (yay more memory and a faster hard drive)

Plans for next week

  • Work
    • [ ] Start on redesign for project T
    • [ ] Do other coding tasks for project T
    • [ ] Follow up on project O
    • [ ] Revise drawings for Hello Monday! comic series
  • Relationships
    • [ ] Go to Quantified Self Toronto meetup, share notes on time tracking
    • [ ] Reply to questions about quantified self
    • [ ] Follow up on cat hotel / vets - choose an option
    • [ ] Volunteer at Free Geek Toronto: take inventory of equipment, filter cards, improve checklist
  • Life
    • [ ] Dashboard: Make hour visualization more flexible
    • [ ] Dashboard: Get input from CSV
    • [ ] Brainstorm other ways I can use delegation to improve life
    • [ ] Take advantage of long weekend to plan projects
    • [ ] Replace curtains (Value Village or Canadian Tire?)
    • [ ] Look into buying summer flat shoes while they're on clearance
    • [ ] Laptop: Copy photos and sketches onto new hard drive
    • [ ] Try microphone as sound sensor
    • [ ] Prepare month in review with stats

Time analysis

ActivityThis weekLast weekDeltaNotes
D - Break2.41.90.5
D - Delegating0.60.6
D - Drawing2.010.0-8.0New laptop
D - Learning9.5-9.5
D - Other2.54.8-2.3Setting up laptop, transcription
D - Personal12.73.98.8Setting up laptop, delegation
D - Reading0.1-0.1
D - Shopping2.02.0
D - Social9.17.81.3
D - Volunteering3.8-3.8Short gap between build classes
D - Writing11.35.06.3
R - Exercise6.212.2-6.0Walking, Thursday CSA bike
R - Routines6.48.2-1.8
R - Cooking7.41.55.9Cooking sprint
R - Eating5.02.03.0
R - Tidying3.73.70.0
R - Travel0.60.6Was at the office on Friday
Sleep56.053.52.58 hours / night
Work40.140.10.0Got lots of stuff done

Discretionary time averaged 5 hours / workday, 8.7 hours / weekend day (more weekend time taken up by cooking sprint). Less discretionary time overall, but more time on workdays. Interesting combination. Sleep back up to eight hours a day, stdev of 1.2 hours. Slightly tired, but well-fed. Possible RSI twinges, maybe aggravated by typing sprint during transcription? May need to take more breaks.

Good week! Looking forward to focused hacking during the long weekend.

Thinking about improving our freezer use

September 5, 2011 - Categories: cooking, kaizen

We have a 5.3 cu. ft. Haier chest freezer in addition to the freezer drawer built into the fridge. We’ve had the chest freezer for two years now, and it’s been really useful. I want to see if we can make even better use of it before we consider scaling up. There isn’t that much space to grow in the current place we have the freezer, and moving the freezer elsewhere would make less convenient. I’d rather figure out how to use the freezer space more efficiently.

One easy way to to do that is to shift more of our freezer space from ingredients to prepared meals, giving us more time between cooking sprints. We tend to do a cooking sprint every third weekend. If we organize our space better and add more recipes to our cooking sprints, we might be able to cook once a month and enjoy more variety, too.

I spent some time this morning taking an inventory of what’s in the freezer, so I can plan to use those ingredients up. Here’s what we’ve got.

Butter 2lbs Cooking and baking; rarely goes on sale, so I could just get this on an as-needed basis
Crisco 0.5 block Mainly for baking vegan treats for tea parties. I haven't been hosting tea parties lately, though.
Lard 1/4 cup Pies and egg tarts - more useful during baking season
Pie crust dough 2 discs Left over from the last baking season
Yeast 1 bottle Coconut buns, mmm
Bread 1 1/3 loaf Very handy
Burger buns 4 For burgers; useful in summer
Bacon 500g Mm, breakfast
Longganisa 1 pack of 12 links Breakfast
Steamed buns 5 packs Delicious - we tend to go through 1 pack / person
Cheese ends 0.5L To be grated for lasagna
Grated parmesan 8 cups Gift from Tania - I use it in lasagna and other pasta dishes
Nacho cheese mix 1kg Great for potatoes, fries, nachos, and so on
Romano cheese 497g To be grated for lasagna
Shredded mozzarella 120g Quick way to make lots of things better
Strawberry rhubarb tarts 8 From my experiment. A bit sour; needs a spoonful of sugar each. We don't usually have dessert, though.
Turon half pack When we feel like frying
Vanilla ice cream 1 cup Just a little bit left - must finish it while the weather's warm
Fruit 3.5kg For smoothies; must have this while the weather's warm
Mashed banana 3 cups For banana bread and for smoothies
Basil 1 cup Raw ingredients for pesto. Can also be added to pasta sauce.
Cilantro 1.5L Stir-fries
Curry leaves 1 pack Thai curry
Dill 2 cups For… umm… mixing with cream cheese? We don't cook fish often. I saved this from the CSA box.
Lemon zest 0.5 cups For banana bread
Oregano 1 cup For pasta sauce.
Carrot tops 3 cups Vegetable stock? But we have so much stock already.
Chickpeas 680g Curry, someday
Chopped onion 1 cup Also good for instant noodles or quick recipes
Green onion 2.5 cups Great for instant noodles
Parsley 4 cups Soups and sauces
Peeled ginger 1 cup Stir-fries and other Asian dishes
Red beans 1 kg Chili, someday
Chicken nuggets 460g J-'s lunches
Garlic scape pesto 2 cups Dinner
Jamaican beef patties 12 J-'s lunches
Lasagna 8 portions Dinner
Pesto 3 cups Dinner
Roast chicken with couscous 12 individual meals Lunch
Spaghetti with sauce 1 individual meal Lunch
Stuffed chicken breasts 5 J-'s lunches
Beef mix (ground beef, onions, garlic) 4 cups For nachos, burritos, or pasta sauce
Burger patties 4 Must finish this while the weather's warm
Dry salt bellies 412g For baked beans, because the pork bellies are sometimes not stocked at the supermarket
Italian sausages 4 For pasta sauce
Bag of ice cubes 1 L Drinks
Ice packs 3 To cool things down
Basa 1 fillet This one's pretty old. I should throw it out.
Crab sticks 2 packs x 340g The occasional sushi; probably should use this up and then just buy on an as-needed basis
Halibut 1 L Gift; must defrost and fry sometime
Shrimp 340g Mm, pad thai.
Stocks and sauces
Bones for stock 3 chickens From our last cooking sprint
Chicken gravy starter 1 cup This must be from the other time we roasted chickens. We don't often make or eat gravy, though
Chicken stock 14 cups We have so much stock. We should use it more often. Maybe I'll use it to cook rice.
Turkey stock 2 cups This is from last year. I should toss it out.
Carrot sticks 340g From my let's-freeze-the-carrots experiment
Chopped carrots 380g For chili or other dishes
Mixed vegetables 1.5kg For frozen lunches
Okra 520g For pinakbet. Hard to get at the nearby supermarket, so we keep a stash. Dependent on bittermelon availability, though, and that's also rare.
Shredded zucchini 2 cups Zucchini delayed is zucchini denied. I should sneak these into brownies sometime.
Spinach 0.5 L For smoothies; must have this while the weather's warm
Steak-cut fries 1kg Regular fries or chili cheese fries. Yum, although frying is scary.
Vegetable ends for stock 1.1kg When I figure out how to get through more stock, I'll cook this into a vegetable stock

Some things are clear candidates for tossing. Some things are there because the community-supported agriculture box had more produce than we could finish in a week (dill, etc.). For many items in our fridge, though, it’s more of a shift from stocking up to buying ingredients as we need them – not a bad idea, particularly if we scale up and plan recipes well. I estimate that prepared meals take up a ninth of our current freezing capacity. There’ll be room to grow once we get through these raw ingredients.

We’ve adopted a few freezer practices that have turned out to be quite useful. Standardized containers make food easy to stack. Grouping loose items into large bags (red for meat, green for vegetables, and so on) makes it easier to dig through the freezer in search of something. I can figure out a better way to index the infrequently-used frozen items so that we get visual reminders to use them up – maybe in that home dashboard I’ve been building. Hmm…

Drupal: Finding nodes through autocomplete

September 6, 2011 - Categories: drupal

The clients wanted a quick way to jump to the latest revision of a node. I was delighted to discover that the Finder module made it easy to create an autocomplete shortcut to nodes and users. It offered way more features than I would've coded myself. Finder lets you match nodes on title, author, CCK fields, and so on.

There's a simpler module called Node Quick Find, but I'm going to go with Finder for now because of the options that Finder offers.

There was one small thing I needed to tweak. Finder Node goes to node/nid, but we've got Revisioning set up to view the current revision of a node and not the latest. Fortunately, Finder took that into account and provided enough hooks to let me change the behavior. Here's what I needed to do:

function mymodule_finder_goto_alter(&$result, &$finder) {
  $finder->base_handler['#module'] = 'mymodule';

function mymodule_finder_goto($finder, $result) {
  $vid = revisioning_get_latest_revision_id($result->nid);
  drupal_goto('node/' . $result->nid . '/revisions/' . $vid . '/view');

You'll want to use more if logic if you're working with different kinds of Finders, of course, but this was enough to handle what I needed. Hooray for hooks!

Finder doesn't seem to support Features, so I'll need to configure things again once I move to production. No problem! I've added some notes to myself in the issue-tracking system we're using, and I've asked the clients to try this new shortcut out.

Drupal: There's a module for that.

2011-09-02 Fri 14:17

Decision: Not getting an Ontario Science Centre family membership

September 7, 2011 - Categories: analysis, decision, life

From Sept. 5: We had fun at the Ontario Science Centre. I like science centres. I have lots of great memories of going to science centres and playing around with exhibits. We've decided not to buy a family membership for now, though - we'll just buy tickets as we go. Here's what I've been thinking:

Cost of family membership: $120/year Break-even point: at least two visits per year

Exhibits I liked today:

  • Stereoscopic photographs: I always like these. I think depth perception is fascinating.
  • Reptiles (special exhibition): The snake-necked turtle (Chelodina mccordi) was really cool. I also liked the exhibit showing how the fangs of snakes hinge when they close their jaws.
  • Scents: Of the five scents they had (leather, laundry, flowers, earth, vanilla), it turns out that I like the smell of clean laundry the most. So domestic!
  • Oil pumps: Mechanics and hydraulics, yay
  • The globe: I hadn't realized China was so mountainous. I enjoyed seeing the continental shelves and looking at the underwater contours, too.
  • Paper airplanes: The paper supplies were all gone, so I picked up other people's planes and refolded them or just threw them. I liked how they had hoops and a target if you wanted to try stunt or precision flying.

A number of new exhibits joined most of the old stalwarts. I was looking for some of the exhibits I remembered, but I couldn't find them. That's okay! =)


  • Equipment and exhibits make it easier to explore scientific principles (ex: pumps, levers, sound, etc.)
  • Multisensory experience / scale helps in understanding (ex: anatomy, geology, and so on)
  • Special exhibits provide additional reasons to return
  • Volunteers share their interest in science
  • Exhibits prompt you to explore things you might not have sought out by yourself (ham radio, etc.)
  • Exhibits validate interest (paper airplanes can be cool!)
  • Can use exhibits to support classroom learning:


  • Busy-ness and noise can be overwhelming
  • Tends to encourage shallow explorations/entertainment instead of deeper engagement. Hard to slow down and get deeper into something because of background noise, consideration for other people, and distractions from other exhibits
  • Pricey


J-'s grade 8 curriculum topics:

Events that might be interesting:

Back to the decision. We'll probably not pay for a family membership immediately. We'll reconsider this if we find ourselves going again within a year, and if we foresee a third trip within the year. If we end up going twice in a year, then our total cost is roughly the same with or without a membership - no loss there. If we go three times, then we'll end up paying more in total, but that's okay because the membership will cover additional months during which we might make a fourth visit.

We're going to put off getting a membership until we determine what frequency we'd like to go. We've had a family membership to the Ontario Science Centre in the past, and we made excellent use of it including trips to museums with reciprocal agreements. With lots of things changing this year, we're going to hold off on that commitment to avoid the "I'm going to pay for the gym so that I get encouraged to use it" effect. We like science, and there are many, many ways to explore it.

Also - Is it odd that I recognize Ontario Science Centre exhibits described in other museums? I was reading Andy in Oman's blog post about the OSC donations and I vividly remembered most of the exhibits mentioned. Including that land-like-a-cat one, which I tried many times. (Cat-related! ;) ) I had hoped to try it today with my Vibram toe shoes, but it's probably abroad. What can I say? I like science centres. =)

Some of my favourite exhibits from other science centres:

  • The giant soap bubble exhibit from the Exploratorium
  • Tactile Dome (Exploratorium)
  • Catenary arch building blocks
  • Foucault's pendulum traced with sand
  • Newton's cradle
  • Kinetic sculptures
  • Rock polishing and panning for gold at Science North (ah, the stories)

I think one of the things I loved about growing up with the science museum in Manila was that there were often few visitors there. Looking back, I can wish now that it was better patronized, but I remember really appreciating the freedom. I got to spend all the time I wanted building catenary arches, playing with the magnets and iron filings, clapping into that big echo tunnel, or confusing my mind with perspective tricks. Most of the science museums I've been to have been crowded, which is a great thing, but which can be overwhelming. Maybe going on a weekday will help. Winter, perhaps? We'll see.

I felt today's trip was worth the time, money, and opportunity cost. It might have been even better if we slowed down, got deeper into a few exhibits, and maybe tried more of the timed shows. I tend to like mechanical exhibits more than exhibits that focus on screen display or video.

And yes, I still want to spend at least a week in the Smithsonian. ;)

Transcript: Blogging (Part 2): Growing into blogging

September 8, 2011 - Categories: blogging, tips, writing
This entry is part 2 of 16 in the series Discovering Yourself Through Blogging
Hat-tip to Holly Tse for organizing this interview! Holly Tse: Yeah, you mentioned to me that you have [around] 2,000 readers for your blog. Now, how did that grow to that level? SC: Oh, one reader at a time, I'd guess. I started off writing just about very technical things. I'd been using my blog as a way to take notes in university, so I wrote about my philosophy classes, computer science, and some of the open source programs I was working on. As I started publishing my notes, I saw that, hey, you know, this is a great way to learn from other people. I'd write about something, and then always, someone would come along with an even better way to do things, or would come along and say, "Thank you for sharing that. You saved me five minutes" or "…two hours", or "You saved me a day of searching around and trying things out." As I figured out that hey, this is really useful for technical discovery, I started using it as well to write about other things I was figuring out. Personal finance, life after university… all these things. I guess people like the fact that I'm figuring things out, I'm optimistic about it, I'm trying my best to write about all these different things that I'm learning because I know that if I don't write it down, I'm going to forget, and then I'm going to have to go through the entire process of learning things again. Whereas if I write things down, then other people might be able to learn from that too. HT: It sounds like a really good learning tool for yourself and for others, then. SC: In fact, a lot of people have started looking at blogs and social networks in terms of personal learning networks (PLN). So that's the educational jargon around it: personal learning networks. It's not just about the notes that you keep. If you think about the kinds of blogs that you'd like to subscribe to so that you can learn from something from them, the kinds of people who inspire you–role models–because you can probably find their blogs or find them on social networks and add that kind of regular inspiration to life. There's so much that you can learn that isn't in a textbook or isn't in a commercial page or all that stuff. You can learn from people's stories, and that's an incredible thing. If you have a blog, then you can tell your own stories, and you can write about what all these other things make you think. How they inspire you. How you're putting that inspiration to good use in your life. It's an excellent way to build those relationships.

Dusting off my Sony Vaio U1

September 9, 2011 - Categories: geek


Years ago, my dad gave me his Sony Vaio PCG-U1 – one of the smallest laptops around. It had an 867MHz Transmeta Crusoe processor, 256MB memory, a 1024x768 pixel screen that measured only 6.4” diagonally, and a total weight of 820 grams with the regular battery. It used 30W per hour. It was tiny. It turned heads at computer conferences and at cafes. I even managed to sell advertising on it during one of my experiments.

The screen was small, but I managed to write a lot of code on it anyway. The two-handed mouse and scroll-switch even made it easy to use while walking around. I used it so much that the keyboard showed obvious wear and the mouse cap was completely worn away. I have a lot of memories bound up in this little device. It was quirky-fun. It had personality beyond that of my Fujitsu Lifebook, my later Eee netbook, or even my current X220 tablet.

During the Labour Day weekend, W- dusted off the PCG-U1 and worked on restoring it. He removed all the keycaps, brushed all the debris out, and painstakingly rearranged the silicone domes under keys until the regular keyboard worked again. He’s so awesome.

I don’t know what we’re going to do with it yet, but we’ll keep it around instead of donating or recycling it. I thought about just keeping a picture of it, but there’s something about picking it up and holding it that a picture just doesn’t communicate. It’s so cute!


  • Picture frame
  • Dashboard
  • Flashcards
  • Cooking recipes
  • Portable notetaking device when a tablet is overkill and a smartphone isn’t enough; say, if I want to use Emacs or speech synthesis

Ah, technology…

Tweaking the fingerprint settings on my Lenovo X220T

September 10, 2011 - Categories: geek, laptop

When I picked the options for my laptop, I made sure I included a fingerprint sensor. I like being able to log on to my laptop using my fingerprint. It's faster than typing, and I don't have to flip it out of tablet mode. I'm glad that the LastPass password manager can use a fingerprint to authenticate, too. Neat!

Here's how I tweaked my fingerprint scanning to fit the way I like to work even more. First, I opened the Lenovo - Fingerprint Reader settings in my Windows Control Panel. I unchecked Use fingerprint scan instead of power-on button. I don't mind pressing the power button, and I think this will save a trickle of power.

Then I clicked on More settings and unchecked Enable indicator lights on sensor. This turned off the green LED that had previously been a little distracting. The fewer bright things I have in my field of vision, the better. Tada!

I think it's incredible that I can authenticate using a fingerprint. I know it's been around for a while, but it's still amazing to think of how the algorithm might work. Hooray for all the geeks who worked on making this possible.

Weekly review: Week ending September 9, 2011

September 11, 2011 - Categories: review, weekly

Busy week. Good week. Lots of stuff done. SQL Server 2000 still frustrating, though. Oh well! Drupal and Rails hacking going well.

From last week's plans

  • Work
    • [X] Start on redesign for project T
    • [X] Do other coding tasks for project T
    • [X] Follow up on project O
    • [X] Revise drawings for Hello Monday! comic series: Bluepages done, next: work from home
    • Resolved server crash issue for project I
    • Improved Community Toolkit code - fixed bug
    • Regularly checked in on project I
  • Relationships
    • [X] Go to Quantified Self Toronto meetup, share notes on time tracking
    • [X] Reply to questions about quantified self
    • [-] Follow up on cat hotel / vets - choose an option
    • [X] Volunteer at Free Geek Toronto: take inventory of equipment, filter cards, improve checklist
  • Life
    • [X] Dashboard: Make hour visualization more flexible
    • [X] Dashboard: Get input from CSV
    • [X] Brainstorm other ways I can use delegation to improve life
    • [X] Take advantage of long weekend to plan projects
    • [-] Replace curtains (Value Village or Canadian Tire?)
    • [-] Look into buying summer flat shoes while they're on clearance - postponing until next year
    • [X] Laptop: Copy photos and sketches onto new hard drive
    • [-] Try microphone as sound sensor
    • [-] Prepare month in review with stats
    • Practised with photo flashcards of people's names and faces

Plans for next week

  • Work
    • [ ] Put together and give IBM Drupal Users Group presentation on Source code and configuration management
    • [ ] Implement more features for project T
    • [ ] Follow up on project I
    • [ ] Prototype some more for project O
  • Relationships
    • [ ] Help with build class
    • [ ] Follow up on cat boarding
  • Life
    • [X] Get a massage
    • [ ] Prototype decision tracker (Org?)
    • [ ] Start putting together notes for myself

Time analysis

ActivityThis weekLast weekDelta
Sleep58.855.43.48.4 hours per week, back up to normal
Work32.240.1-7.93-day weekend
D - Break2.02.4-0.4
D - Writing7.211.4-4.2
D - Personal12.313.5-1.2Dashboard hacking
D - Delegating0.10.6-0.5
D - Social19.29.010.2Science Centre and Quantified Self
D - Drawing3.22.01.3
D - Shopping2.52.00.5
D - Reading5.65.6Getting through lots of books
D - Other2.5-2.5No electronics hacking
PERSONAL CARE14.817.6-2.8
P - Eating2.85.0-2.1
P - Routines6.36.4-0.1
P - Exercise5.66.2-0.6
UNPAID WORK10.211.7-1.5
UW - Cooking3.17.4-4.3
UW - Travel1.40.60.8
UW - Tidying5.73.72.0

Reorganized my time categories to match up with those used by OECD Society at a Glance reports for ease of comparison.

Thinking about getting better at decisions

September 12, 2011 - Categories: analysis, decision

I like analyzing my decisions. Writing about the alternatives I consider helps me think about them more deeply. Reviewing my decisions helps me learn even more. Sharing the decisions and the thought processes behind them helps me help other people.

How can I get even better at tracking and sharing my decisions? I want to get even better at remembering my reasons for decisions (useful during moments of doubt), revisiting my assumptions, and writing down additional benefits or costs.

I've posted the occasional decision review, but I think I'd benefit from something more structured than my blog. Maybe it's time to resurrect some kind of a personal wiki system.

I'd like to have a system for logging and regularly reviewing decisions. I might prototype this using an Org-mode large outline text file. I already use it to write about the decisions I want to make or the decisions I've recently made. I can go back and write about other decisions I've made, and I can start structuring the file. Using Org Mode will make it easy to organize decision notes into an outline, integrate it with my task and calendar reminders, view table-based summaries, and publish snippets to my blog. If I get into the habit of scheduling reviews and thinking of questions that I might ask myself during a decision review, then I can learn even more from the decisions I make.

Decision: Write about decisions with more structure in Org and with regular reviews

Expected costs: Writing time (the software is free), occasional social risks of publishing decision notes

Expected benefits: Even more confidence in decision-making, ability to help more people with similar decisions, interesting records, fewer moments of doubt (very few already, but just in case!), deeper analysis

Alternatives considered:

  • Don't write about decisions: Right.
  • Write only about major decisions: Small decisions are useful, too!
  • Keep decision notes just as blog posts: Hard to review over time.

Next review: In three months ( 2011-12-11 Sun)

  • How many decisions have I written about?
  • How many decisions have I reviewed?
  • How many notes have I published?
  • How have I used my notes to help improve my decision-making?

Deliberate practice, typing faster, and Emacs

September 13, 2011 - Categories: emacs, geek

I type at about 90-95 wpm. I wonder: Would it be worth getting even faster? How would I go about doing it without increasing my risks of RSI? I'm thinking about this because of something I read in Moonwalking with Einstein: The Art and Science of Remembering Everything. On page 172, Joshua Foer writes this about deliberate practice:

The secret to improving at a skill is to retain some degree of conscious control over it while practicing–to force oneself to stay out of autopilot. With typing, it's relatively easy to get past the OK plateau. Psychologists have discovered that the most efficient method is to force yourself to type faster than feels comfortable, and to allow yourself to make mistakes. In one noted experiment, typists were repeatedly flashed words 10 to 15 percent faster than their fingers were able to translate them onto the keyboard. At first they were'nt able to keep up, but over a period of days they figured out the obstacles that were slowing them down, and overcame them, and then continued to type at the faster speed. By bringing typing out of the autonomous stage and back under their conscious control, they had conquered the OK plateau.

If I were to invest time into typing better, it would be for these reasons:

  • to lower the risk of RSI by making correct movements, like the way shifting to Dvorak helped me tweak my brain to type more effectively (I type at about the same rate on QWERTY and Dvorak, but Dvorak feels better)
  • to reduce the friction between thought and writing even more
  • to transcribe things more efficiently
  • to explore just how fast I can go

My brain's more of a bottleneck than my fingers are, so typing isn't getting in the way of much. It's still something to be curious about, though!

The open-source Plover stenography program looks really interesting. I'm going to be on a Windows-host-Linux-VM system for a while, so I'll need to wait for the Windows port (or shift back to Linux as my host OS).

Most typing tutors / speed measurements I've come across aren't quite what I'm looking for because they display lots of text and scroll through it, which is good for buffering things in your head and not so good for training past the point of failure. Typing games tend to kill you once you miss too many words.

Enter Emacs. Among many many things, Emacs has at least one typing game. It's not built in, but you can get it from the Emacs Wiki: The Typing of Emacs. A few quick modifications later (which I'll post next week if I get permission), and I've:

  • added a "zombie mode" that will keep the game going even after you hit your threshold of failure
  • added the question-and-answer mode that the code hinted at

Zombie-mode Typing of Emacs lets me stay in the "this is going way too fast for me" zone, sometimes repeating a single word until I've gotten the hang of it or I've given up. For example, I haven't figured out how to type CreativeCommons in 2 seconds. The closest I got in 10 tries was the one time I typed "CreativeComomns", which was sooo close. Usually, the timeout kicked in on the last few characters.

Maybe it's because I also have to hit Enter to submit what I've typed. Hmm, I wonder if I can redefine some keys…

Successfully typing CreativeCommons in 2 seconds still gets me around 95wpm, though, and reading + typing + pressing Enter makes it difficult to get down to 1-second time limits (darn those reaction times!). Maybe I'll use my new Q&A support to play around with typing sentences.

If I spend more time typing in autocorrecting environments or shifting to editing after typing (it's good to review anyway), then I might be able to loosen up enough to type faster. =)

There are plenty of sites and apps to help people get from 30wpm to 60wpm or whatever, but not really YouTube videos have mostly people banging away on keyboards. Are you the fastest typist among your friends? Have you worked on getting even faster? Do share!

2011-09-09 Fri 20:08

Free Geek Toronto: Notes from the build session

September 14, 2011 - Categories: geek

Last week's build session went well. Four students assembled computers and got all the way to the Ubuntu installation section, while the rest were close.

Written instructions and checklists made a big difference. Students worked through the instructions independently, leaving us free to focus on helping students with troubleshooting. The instructions also helped us provide more detail than we might remember to mention, and they forced fewer synchronization points ("Okay, everyone, look here at this thing").

It also helped to have a prepared environment. All the tools were at hand, such as CPU paste and a battery tester. Most of the computers we worked on had been properly evaluated, although there were a few that had been missed. Still, it was generally an enjoyable and not frustrating experience.

I've revised the instructions to clarify some other points that were missing before. Onward and upward! =)

Here are some ways we can make this even better:

  • Revise checklist and instructions. Cross-reference them with identifiers and instructions to update the checklist ("Check box #5 and write down the amount of RAM.") This will make the checklist easier to work with.
  • Revise checklist to make sure the boxes use a font that's available on multiple platforms, and check into other formatting issues. Consider using graphical icons if checkbox Wingdings continue to be problematic.
  • Consolidate validation and evaluation checklists for now, because information is duplicated and evaluators are not using the template. Alternatively, consider adopting the template for the evaluation process. Tweak evaluation form as necessary.
  • Time install process so that we can give students an idea of when to start installation and when to postpone installation to the next day.
  • Adopt a strategy of low-hanging fruit: focus on building easy-to-build boxes so that we can get those ones out the door first. Minimize troubleshooting, because problematic boxes pile up on the "in progress" shelves. Focus on increasing build velocity.
  • Clear undated boxes from "in progress" shelves. Re-evaluate boxes. Recycle boxes below minimum requirements. Prepare boxes that require no obvious troubleshooting for future build classes. Strip boxes with problematic components (no troubleshooting motherboards or power supplies).
  • Downgrading Unity 3D requirement because finding an acceptable video card can be time-consuming. Reinstate Unity 3D recommendation only after we have inventory of video cards that support Unity 3D.
  • Trim inventory so that floorspace is clear, obsolete parts Work with monthly recycling so that obsolete components are clearly segregated and ready to go. Reorganize outgoing area so that skids can be easily filled and maneouvered out.
  • Find other volunteers who can help facilitate build classes. Maybe renaming build classes to build sessions will make it less intimidating for volunteers. Requirements: awareness of where parts are at Free Geek Toronto, ability to look things up, light troubleshooting
  • Speed up installation by setting up a local network proxy. Not essential, though. Timing will help us see if this makes enough of a difference.
  • Clear enough build space so that people can work on a second box while waiting for the install.


  • Help students become comfortable enough with building computers that they drop by and build computers (possibly with other people's help) even outside build classes. (Measurement: return visits, # of computers completed)
  • Improve build velocity and throughput (Measurement: # of computers built and tested)
  • Create an organized and welcoming enviroment: clear floor space so that people can walk around, well-organized parts, inventory levels matched to need and incoming/outgoing rates

Transcript: Blogging (Part 3): Blogging and other social tools

September 15, 2011 - Categories: blogging, tips, writing
This entry is part 3 of 16 in the series Discovering Yourself Through Blogging
Hat-tip to Holly Tse for organizing this interview! HT: You mentioned social media, so… If you have a blog, how does Facebook and Twitter fit into the mix? Do they need to fit in the mix? SC: You can if you want to. You don't have to. What I often find is that my blog is the primary place where I put things, because a third-party company like Facebook or Twitter–sometimes they change their mind about what you can do with your stuff. So I put almost everything on my own blog. If I think other people might find it useful, I might post a link and share it with somebody or share it with everybody on Twitter or Facebook. It also works the other way too. I might have a conversation with someone on Twitter. Most recently, actually - last Friday, I was having a conversation with people on Twitter about creativity. And it made me stop and think about what I think about creativity and stereotypes and "left-brain" and "right-brain" stuff that most people think of when it comes to that. You know, "I'm not creative because my work involves numbers or code or whatever, and creativity is drawing and painting and whatever." Anyway, it made me think about all this stuff, and I wrote about it, and then I took that and shared that back into Twitter. So it feeds itself. On the other hand, if you're not on Twitter or Facebook, you can still blog. It's a great way to write, and it's a great way to get your thoughts out there, too.

Learning new tricks about learning: maps and history

September 16, 2011 - Categories: learning, life, sketches, teaching

imageFrom Tuesday: J- has started Grade 8, the year before high school. Last schoolyear, we invested more time into helping her learn, and that worked well. I wonder what we’ll learn about learning this year.

J- was preparing for a quiz on pre-confederation Canada. To help, the teacher had labelled the settlements with A, B, C, and so on. J had made her own mnemonics. For example, D stood for ReD River Settlement. But the letters weren’t assigned in any obvious order, so J- was memorizing an arbitrary association.

Placing the information on the map was much more useful. We scanned in J-’s handout, then J- traced it using Autodesk Sketchbook Pro. With a blank map, J- could then add layers with her labels. After a few tries, she could correctly label all the areas in less than a minute and a half. (… and so could I! That will probably come in handy for any citizenship tests.)

We created a new map for Canada’s current provinces, and we quizzed ourselves on that too. For kicks, we took J’-s jigsaw puzzle of the provinces of the Philippines, mixed up the pieces, and assembled everything without looking at the picture. That was fun, although I was a bit slower putting together Mindanao’s provinces than I was at Luzon and Visayas. (More travel?)

Out of curiosity, I flipped through the other pages in her folder. One of the sheets had a timeline of events. “What if we could learn the order of these events?” I asked J-.

  1. She looked at me, probably as intimidated as I was. I remember having such difficulty with trivia like that in my history classes. Time to see if I could pass on some tips from Moonwalking with Einstein and other mind-hacking resources.
  2. I told J- about the idea of a memory palace – exaggerating the characteristics of items you need to memorize, then imagining them in specific locations in a place you know well. We walked through the process of imagining reminders:
  3. golden blueberry bushes in the front yard for the prospectors of the gold rush
  4. our cats meowing to be let out of the door – Ottawa
  5. a colony of dust bunnies on the shelf – BC became a colony
  6. Americans politely fighting over the litter boxes – the American Civil War
  7. Charlotte Lucas and Mr. Collins on the sofa, discussing their impending unionDiscussion at Charlottetown
  8. … while Mr. Collins’ 72 relatives crowd in front of the bookcase (recalling Lost in Austen) – 72 Resolutions in Quebec
  9. Mr. and Mrs. News and Mr. and Mrs. Canada getting together around the kitchen table – Nova Scotia, New Brunswick, Canada West, and Canada East
  10. Tripping over a giant rubber eraser in an HBC bag blocking the corridor – Rupert’s Land, HBC 
  11. Walking up the stairs and meeting a man with a big toe – Manitoba joins
  12. Peeking into the guest room and seeing a busy party BC joins
  13. Going to the bathroom – PEI
  14. Going to J’s room and seeing her toys in a circleConsolidated Indian Act

We imagined it while we were in the living room. She physically traced the steps and talked about the things she imagined. Then she mentally retraced the steps. Even after watching a movie (Pom Poko, by Studio Ghibli), she still remembered the sequence. Let’s see if she ends up using it in school!

It’s fun adding tools to J’s learning kit. She picked up the strategy of inventing mnemonics. She made flashcards to practise the Gnommish alphabet from the Artemis Fowl series. Now she knows about mapping and the memory palace technique. For dates, we might try the Major system, if we can wrap our minds around it. I wish I’d learned about these things when I was in school, but hey, good to pass on the hacks! =)


  1. It’s better to find useful associations than arbitrary ones.
  2. Autodesk Sketchbook Pro and other drawing programs can be good educational tools.
  3. Learning something might not be important, but learning how to learn something – ah, that can be valuable.
  4. The memory palace technique is great for remembering sequences. Exaggerated images stick in your brain.

Back to school, back to study groups

September 17, 2011 - Categories: life, teaching

We started our first study group session on Friday with a quick review of multiplication. J- and V- warmed up by reciting the multiples of 6 to 9. Good retention from last year, and we'll see how practice helps them improve. After the warm-up, we went over a shuffled deck of multiplication flashcards.

The teachers had given them a quiz in school, so we covered some of the topics they found confusing. W- and I explained the difference between convex and concave shapes using angles and lines. I drew different figures and quizzed them on the classifications. J- and V- drew their own figures, and they classified them together.

Squares and square roots were another point of confusion. We started off with a graphical review of what squaring means, and what a square root is. I used a tip from John Mighton's "The Myth of Ability": I tweaked my exercise to vary in scale without varying in difficulty. (What's the square root of 31337 x 31337?) After J- and V- understood the relationship between squares and square roots, we covered approximation and factorization as ways of finding the square root. J- and V- practised finding the square root of numbers like 225 and 144.

We've encouraged them to take notes so that it's easier to review lessons. The extra study group time will definitely help, too. Grade 8 will help students learn how to solve real-life problems, so we'll be sure to show more of the calculations of everyday life. Here we go!

Monthly review: June, July, and August 2011

September 17, 2011 - Categories: monthly, review

Oh dear. This is turning into a quarterly thing, which tells me that I need to figure out what I want out of these monthly reviews and how I’m going to distinguish them from my weekly reviews.

In monthly reviews, I want to evaluate my projects and reflect on any trends. It’s not easy to get that kind of perspective weekly, and a year is too long a time to wait. That’s what my monthly reviews should be, I think.

In my May monthly review, I wrote:

I’m looking forward to lots of gardening, lots of biking, and lots of fruits and vegetables. Some of my friends are getting married – hooray! Work is ramping up, too. Back on the development track, making useful websites… Yay!

This summer had much less gardening and biking than I would’ve expected. The flood of vegetables from the community-supported agriculture program meant that I didn’t really feel like growing more. I worked on development projects with global team members, so I stayed home instead of biking into the office. Fortunately, friends’ marriage plans went on exactly as expected. =)

September is all about preparation. We’re preparing for an upcoming trip, work projects, and personal projects. Winter’s coming, too. There’s so much to get ready. If I stop and think about it, I’ll feel overwhelmed, but bite-sized chunks will get me through it. Here we go!

Weekly review: Week ending September 16, 2011

September 18, 2011 - Categories: review, weekly

This week felt slower than normal. Looking back, though, I can see that it was pretty packed. My sense of time is a little off, I guess. School has started, so we've been helping J- with her homework. Between that and going to work more often so that I can pair program or go to meetings, things have been busy.

Plans from last week

  • Work
    • [X] Put together and give IBM Drupal Users Group presentation on Source code and configuration management
    • [X] Implement more features for project T
    • [X] Follow up on project I
    • [-] Prototype some more for project O
    • Revised IBM comic
    • Gave project C tips on finding Ruby on Rails people
    • Tried out Maxivista for extending my Windows desktop onto my second laptop; interesting, although a little quirky
    • Tried out VirtuaWin for virtual desktops.
  • Relationships
    • [X] Help with build class
    • [X] Follow up on cat boarding
    • First study group: square roots, convex/concave shapes
  • Life
    • [X] Get a massage
    • [X] Prototype decision tracker in Org mode
    • [X] Start putting together notes for myself
    • Built my first Teensy USB project
    • Read lots of Kindle samples for one of our upcoming projects
    • Tried out Tales of Monkey Island demo, considering getting game (hmm… time…)

Plans for next week

  • Work
    • [ ] Test project T and develop more features
    • [ ] Start on project O
    • [ ] Follow up on project I
  • Relationships
    • [ ] Help with build class
    • [ ] Pack for the trip
  • Life
    • [ ] Write backlog of blog posts for trip
    • [ ] Delegate another two tasks
    • [ ] Fix sleep analysis in my time tracker dashboard
    • [ ] Draw

Time analysis

ActivityThis weekLast weekDeltaNotes
! Discretionary43.052.1-9.1
! Personal care16.514.81.8
! Unpaid work15.510.25.3
A - Sleep52.558.7-6.2Stayed up later
A - Work40.532.28.3Regular work week
D - Break3.42.01.4Watching
D - Delegating0.1-0.1
D - Drawing1.93.2-1.3Some sketching
D - Electronics2.02.0Moved my footswitch to the Teensy board!
D - Personal0.812.3-11.5Less hacking
D - Reading2.95.5-2.6
D - Sewing1.61.6Made a cushion for the kitties
D - Shopping3.42.50.9Getting things for our trip
D - Social12.119.2-7.1Helping J- with homework
D - Volunteering3.53.5Build class
D - Writing11.47.24.2Wrote a lot of posts!
P - Eating1.72.8-1.1
P - Exercise2.65.6-3.0
P - Routines12.26.35.9Prepping to go to work / coming back from work, staying up later
UW - Cooking4.03.10.9
UW - Tidying6.35.70.6
UW - Travel5.21.43.8Went to the office three times this week

IBM Comic: Watson on helpdesk duty; variants

September 19, 2011 - Categories: ibm, sketches, work

I wasn’t sure which variant would work out best, so I’ll let the intranet editorial team pick their favourite, and I’ll share others I considered here:


Watson is the question-asking trivia-spouting Jeopardy-winning artificial intelligence that IBM has been working on. Aside from handily beating human contestants and prompting rounds of “I for one welcome our new robot overlords”, Watson might have interesting applications in medicine, law, and other challenging fields. What else might we use this kind of power for?

I don’t think Watson can recognize speech yet, but maybe someday!

The part in which I think out loud and make things less funny in the process of understanding humour

I'm not entirely happy with the helpdesk setup here. It's a classic joke, but it twinges the same part of me that replaces "user" with "person" whenever I can. Also, totally awesome people use the systems I build. I run into far more programmer bugs and d'oh moments myself than classic "user errors". “Is it plugged in?” is further along the spectrum than “Have you rebooted?”, as rebooting is (unfortunately) still very much a valid approach to problems. Anyway, it was a joke that needed to be made. Now that we've made it, we can move on.

“Toronto” refers to Watson’s mystifying response to a question about US cities – understandable when you learn about how Watson works, but still interesting and strangely reassuring.

The "server on fire" bit refers to this idea of printer on fire, which I think I came across in a compilation of funny Linux source code comments. There's a story about that, of course.

I wonder what related situations might be interesting. Relationships are fair game. Time travel: Watson in scenes of childhood or old age? Watson in the distant past, or in the distant future? There’s inverting it: imagining a cluster of people madly looking things up behind the scenes like a distributed Mechanical Turk (the old-school kind). There’s swapping other things in: what would a cat be like with response probabilities? Hmm…

Update on typing: Added AutoCorrect hotkey script, now clocking in at 118wpm

September 20, 2011 - Categories: kaizen

While poking around the AutoHotkey installation, I found an autocorrect script. Autocorrect might help me be less twitchy about typos, which could help me speed up further. Instead of clocking in at 90wpm, I now reach 118wpm as measured on There are probably some learning effects because I'm using the same typing test, but repeated practice should level that out, and trying different texts should mix it up.

AutoHotkey is pretty darn cool. One of the good things about using AutoHotkey for autocorrection is that it works across all applications (even Emacs!). I can easily tweak the AutoHotkey script to add, delete, or change substitutions.

I'll keep track of my time over more trials as I experiment with different things. Good to play around with this!

Planning for currency conversion

September 21, 2011 - Categories: decision, travel

What's the most effective way to convert money for spending during our trip? Here are the options I considered:

  1. Bring Canadian dollars and convert to Philippine pesos at home
  2. Buy US dollars and convert them to Philippine pesos at home
  3. Buy Philippine pesos in Canada and bring them over (paying attention to import conditions)
  4. Use our credit cards as much as possible, and carry a smaller amount of cash (see options 1-3 for handling cash)

Based on the online rates of Toronto Dominion Bank (TD Bank) and the Bank of the Philippine Islands (BPI), it turns out that it's cheaper to buy US dollars in Canada and convert the US dollars to pesos when we're in the Philippines (option 2). That results in 3% more money than bringing CAD and converting to PHP in the Philippines (option 1), and 8% more than buying PHP in Canada (option 3). This is good to know, because we used to buy PHP here. TD buys back US dollars but not Philippine pesos, so that's handy too.

Even better than the cash rates, though, are our credit card rates. MBNA Smart Cash seems to have a foreign currency surcharge of 2.5% or so over the spot foreign exchange rate. With 1% cashback, that results in around 2% more than option 3. We'll probably tally up our expected cash expenses, convert enough to cover them, then use our cards for the rest. I'll still check with MBNA to make sure there aren't other fees to consider.

Your results may vary depending on the rates. It's good to do the math! =)

Transcript: Blogging (Part 4): Parenting

September 22, 2011 - Categories: blogging, tips, writing
This entry is part 4 of 16 in the series Discovering Yourself Through Blogging
Hat-tip to Holly Tse for organizing this interview! HT: Okay. I'm going to tell you my situation. I'm a full-time mom. I look after my son. My day can go from 6:30 AM to 8:00 PM at night, which is actively looking after my son. That doesn't include cooking or prepping for meals or shopping or me time (and I say that with a little laugh). I don't have a lot of time. Right now, I'm in the middle of running a telesummit. I've got a couple of interviews I need to record this week. Just before I connected with you, I was busily putting spices on top of personal pita pizzas so that I could get them in the oven, have them cooked, take them out to the backyard to give to my husband and son. They're outside because my son is a toddler and he likes to yell, so they're graciously going outside so that you won't hear them during this call. In fact, this might be the only telesummit in the world where I have a cat and a toddler who occasionally co-host with me. So this is my situation. I honestly don't have a lot of time. So, convince me: why should I start a blog? SC: It's actually interesting, because you're a parent, full-time, very busy taking care of very important things in your life… There are a lot of bloggers whose lives are like that. This entire mommy-blogging phenomenon has really taken off. People [even] make good money doing this too. They're writing about the things they learn. There's a ton of learning when you're raising kids, of course, and so they do that and they share their stories and that's totally all right. For a lot of these mommy bloggers or parent bloggers - part of it is that sense of being able to take a step back out of a very busy and a very hectic day, have a little time for yourself, have a little bit of adult reflection time so that you don't go crazy. Part of it is that desire to remember these days. People are writing about what it's like to go through their pregnancies or their first days of anticipation, or the very firsts - you know, all these milestones. And the seconds, and the thirds, because all these things are special. You know that soon enough, the years will pass, and then it will be hard to remember what it felt like. If you're writing about that… So there's carving out time for yourself, the ability to remember, and the ability to connect with people. Especially when your schedule is all crazy - especially with people who have really young kids whose sleep schedules haven't sorted out yet - it can be really hard to plan social get-togethers. But if you're connecting with people through the storytelling, through blogging, then you've got a little bit of that sense of what's going on, and you can connect with people, and you can share your stories about what's happening in your life. You might be sharing this with just family. You might be sharing this with friends. You might be sharing this with new friends, and strangers you haven't met yet. So it's a great way to take care of the social interaction and the learning and all of these wonderful things. Now, in terms of freeing up additional time for sanity and other priorities in life… One of the other things I discovered while writing about all these little productivity tips that I was exploring was the idea of cooking a lot of things at once. And yes, you're thinking this is probably not very possible considering you've got so many things to organize, and you've got a kid and a husband and all that stuff… But we've switched over to cooking maybe once a week or if we're lucky, once every two weeks, just going through lots of lots of food - chopping it all up, cooking it all up, and then freezing it nicely - we've got this chest freezer that we stash things in now, and that saves us time too. You can find a lot of people writing about their experiences doing things like this: once-a-month cooking, or every so often, they cook, or they split things up and they share it with other families they know… So no matter what it is, there are other people who have been in your situation. There are other stories you can learn from. If you write about it, then you're also asking yourself these questions, reflecting on it, figuring out how you can make things better, even if it's just a bit a time. Blogging is just that extra little bit that helps you have that habit of reflection and improvement and then connect with all these other amazing people. You can get most of the benefits by reading other people's stories, and gradually improving your life, but it's so much more when you can write about it and afterwards, look back and see how much your life has changed, see all the different things you've learned, and pass those on to other people, too. So, you're not hopeless. People have survived things like that before. There is always time for things that are important to you, and blogging can actually help you save time. HT: You've given me some great reasons there. First, it can allow me to carve out some time for myself for reflection. It can help me remember what's going on in my life and in my son's life as he develops-- SC: And don't forget your husband! HT: my husband too, and it's a great way to connect with other people who are going through similar situations. So. I actually know two moms–I'm going to just throw it out there, because they'll probably catch the replay, I'll actually ask them to–because I know two moms who have been talking and talking and talking about starting a blog. They haven't started. One of them, she has a blog, but she kinda [mothballed] it a bit. She's busy. She has a seven-month-old. I know, when you've got a baby, it's a little bit more challenging to find the time. But the other one, she has time, so I think… I'm going to throw it out there and hope that they're inspired to start a blog. Tune in next Thursday for the next part in this series!

Working with the Editorial Calendar plugin for WordPress; on scheduling posts

September 23, 2011 - Categories: blogging, geek, tips, wordpress

In preparation for our trip to the Philippines, I’ve been spreading posts out over several days instead of posting multiple entries a day. The Editorial Calendar WordPress plugin makes it easy to move posts around by dragging and dropping. Here’s what it looks like in the administration screen:


When I installed it, I found out that I needed to reinstall my JQuery library (must’ve been out of date?). After that, it worked fine.

On one hand, I feel a little odd scheduling posts so far out. Do these posts lose something of their ability to help me find my way back to moments? I write less during the weeks when I’ve queued many posts; less urgency, so I capture less of the day-to-day moments.

On the other hand, if posting in advance helps me write and lets me capture and share thoughts that might’ve languished in my private notes file, I guess that’s okay. At least this tool makes it easy to reschedule posts when something more interesting catches my eye.

The next step for blogging awesomeness would be to choose topics that I want to learn more about – a proper editorial calendar of concepts! – and use that to direct my learning. Some of our upcoming projects lend themselves very well to this, so it will come in due course.

Anyway, this Editorial Calendar plugin is handy. If you post regularly, you might want to check it out:

Batch cooking, community-supported agriculture, and gardening

September 24, 2011 - Categories: cooking, gardening

W- and I are big fans of batch cooking. Making large batches of food and freezing individual portions means that our weeks go smoothly. There are no last-minute scrambles to cook dinner. We hardly ever buy lunch at work. Sometimes it's like winning a very small lottery - will this lunch container be the one with the extra stuffing in it? Mmm. It takes just a little more time to make a double or triple recipe, and it usually comes to about as much cleaning up.

The community-supported agriculture program adds a bit of a wrinkle. Getting fresh vegetables every week means we cook at least once a week instead of every other week or so. The variety of produce means we try new recipes as a way to use up the produce: potatoes, zucchini, and eggplants might go into curry, green beans get turned into pakbet or sauteed vegetables. Even though it means we don't get the full convenience of once-a-month-cooking (or however infrequently we can manage), the CSA program has been fantastic - more vegetables than we'd normally eat, and all local and organic too.

Cool weather and a slow start meant our garden wasn't as productive as it was last year. The tomatoes have barely even started, and the bitter melons aren't going to produce anything at all. We did get a few wonderfully sweet handfuls of blueberries and strawberries, so that's something. Still, with tides of vegetables coming in every Thursday, I haven't felt much like cultivating lettuce or even harvesting our basil.

The CSA we're with (Plan B Organic Farms) offers a fall share from Oct 18 to Dec 31. It looks like a great haul, so I think we'll sign up for that.

When gardening season starts up again, I'll sketch a new plan for the garden to take into account the kinds of things we get from the CSA. No onions, garlic, lettuce or zucchini, but yes to herbs and bitter melon, maybe okra. Yes to peas, which were ever so yummy.

Maybe I'll try farmers' markets too. I do like the convenience (and the commitment device!) of having all the vegetables picked out, even if it forces me to get creative with all the zucchini.

It might be good to try out other CSA programs, too. Cooper's CSA comes out a little cheaper and gets delivered to the house. That's going to be much appreciated in winter.

Do you use a community-supported agriculture program? What do you think about it?

Weekly review: Week ending September 23, 2011

September 25, 2011 - Categories: review, weekly

Drupal geeking at work, and a little bit of prep for an upcoming Rails project (which got approved, yay!), plus some stressful troubleshooting (solved the problem, still going to look for an expert who can review my configuration). Getting ready for our trip, too. Life is packed, although my suitcase isn't (yet).

From last week's plans

  • Work
    • [X] Test project T and develop more features
    • [X] Start on project O
    • [X] Follow up on project I - sorted out miscommunication, fixed SQL server config, restarted search for SQL expert
    • Provided project C with advice on finding Ruby on Rails developers
    • Had another Hello Monday comic published on IBM intranet home page
  • Relationships
    • [X] Help with build class
    • [-] Pack for the trip
    • Picked up more gifts
    • Attended Eoin Colfer's book event at the Toronto Public Library
  • Life
    • [-] Write backlog of blog posts for trip
    • [X] Delegate another two tasks
    • [X] Fix sleep analysis in my time tracker dashboard
    • [X] Draw

Plans for next week

  • Work
    • [ ] Add summary to project T
    • [ ] Migrate project T
    • [ ] Follow up on SQL search for project I
    • [ ] Gather requirements for project O
  • Relationships
    • [ ] Pack for trip
    • [ ] Help with build class
  • Life
    • [ ] Draw
    • [ ] Get through reading backlog
    • [X] Suspend library requests

Time analysis

Activity This week Last week Delta Notes
! Discretionary 46.0 42.2 3.9  
! Personal care 19.4 15.3 4.1  
! Unpaid work 10.5 15.5 -5.0  
A - Sleep 51.0 54.5 -3.5 Hmm, that's interesting. Stopped snoozing, generally went to bed around 11 PM
A - Work 41.0 40.5 0.5  
D - Break 6.8 2.5 4.3 Tales of Monkey Island went on sale, so I picked it up
D - Drawing 0.7 1.9 -1.2  
D - Electronics   2.0 -2.0  
D - Personal 13.9 0.8 13.1 J- was not with us every day, so homework got replaced by hacking
D - Reading 1.1 2.9 -1.8  
D - Sewing   1.6 -1.6  
D - Shopping 11.9 3.4 8.5 Trying to find dress clothes and shoes for J-; shopping for our trip, too
D - Social 6.9 12.1 -5.2  
D - Volunteering 3.7 3.5 0.2  
D - Writing 0.9 11.4 -10.5 Side-effect of having a backlog of posts; must tweak
P - Eating 2.3 1.7 0.6  
P - Exercise 5.8 2.6 3.2  
P - Routines 11.3 11.0 0.3 Time spent getting ready for work
UW - Cooking 1.5 4.0 -2.5  
UW - Tidying 5.9 6.3 -0.3  
UW - Travel 3.1 5.2 -2.1  

Quantified: How I spent seven weeks

September 26, 2011 - Categories: analysis, geek, quantified

At the other Quantified Self Toronto meeting, I promised to get back into time tracking and to share my results. I've got seven full weeks of data from August 6 to September 23, and I can start exploring a few interesting angles.

Influenced by the OECD time study, I've categorized my time into sleep, work, unpaid work, personal care, and discretionary time. Sleep and work are self-explanatory. Unpaid work cover the routine things I could theoretically pay someone else to do: chores, cooking, and so on. I also include travel and commute time. Personal care involves daily routines. Discretionary time includes connecting with other people, responding to mail, exploring personal interests, and other things I choose to do.

I slept an average of 8.2 hours a day. I've been trying a different pattern: stay up until I feel sleepy, and wake up at around the same time. This gets me mostly in sync with my night-owl husband W-, who gets by on less sleep than I do. (Maybe it's because he drinks coffee and I don't.) Lately, I've been working on being in bed by 11, and sometimes even earlier.

Staying up means getting more discretionary time, as my wake-up times generally don't shift unless my phone's powered off or I sleep through my alarm. (Happened twice, fortunately with no consequences.) I think it has to do with lots of sunlight in the morning - it makes it much easier to get up. Sunrise will get later and later, though, so I'll need to adapt.

More usefully, staying up later means creating the possibility of chunks of focused time, which is great for things like playing around with the Arduino or working on personal code. For some interests, a four-hour chunk may be better than two two-hour chunks. Setting up for woodworking or sewing can take time, for example, so it might be better to batch things.

Did I take advantage of those chunks of time? Here's what the numbers say:

Timein 49 daysTypical activities
4-5-hour chunks3working on personal projects (2), electronics (1)
3-hour chunk5volunteering (4), blogging (1)
2-hour chunk21writing (6), personal projects (5), electronics (3), drawing (2), piano (1), relaxing (1), volunteering (1), learning (1), reading (1)
1-hour chunk41writing (10), personal projects (7), drawing (7), relaxing (6), other (3), reading (3), volunteering (2), piano (1), learning (1), sewing (1)
Less than 1 hour153writing (42), drawing (26), personal projects (21), relaxing (21), reading (14), other (9), piano (8), learning (6), delegating (2), Latin (2), volunteering (1), gardening (1)

This tells me that freeing up a 4-hour chunk isn't super-important, and that I can squeeze a lot of activities into the nooks and crannies of a regular sort of day.

Sleep: When I stayed up late, I felt like the discretionary time was occasionally of lower quality. It's not quite about being tired, more like not being as excited. Maybe being up early gives you a certain smugness and feeling of control. Maybe it's about momentum. I can see if I can move my chunks of time earlier in the morning (downside: less ambient socialization), or if I can tweak my afternoon my momentum (start work a little earlier, use a nap or household routines to transition from work, then rock on).

Tracking time affects how I spend my day. It's like the way tracking expenses can influence what you choose to spend on. (I track practically all my expenses - tracking's great for making better decisions.) Mostly, tracking time encourages me to keep work within limits, because I know I've only got so many discretionary hours to spend on my own interests.

I tend to work about 40 hours a week, sometimes a little more. This doesn't mean that I watch the clock, waiting for the seconds to tick by. If I'm in the zone, I'll code until I come to a good place to stop. I've been tweaking my non-billable work to focus on the things I can make the most difference in. For example, I maintain a Lotus Connections toolkit to help people make community newsletters and get metrics. I tend to focus on small, quick fixes that help many people. Anything bigger than that gets added to my list, and I encourage people to find someone who can work with the source code if they need it sooner. I also nudge people to send happy-notes to my manager, as he needs to provide air cover for these sorts of things whenever there's a heavy focus on utilization.

Limiting my work hours also means that I focus more on work when I'm at work. I've planned the projects based on how much time I think I'll need to finish the work, and I don't want to get into a last-minute scramble at the end. Although my estimates factor in a reasonable buffer for meetings and other interruptions, I still don't want to waste that margin. Result so far: pretty happy clients. My manager is happy too, as my estimates aren't over-optimistic. (In fact, I tend to turn things around quickly, but that's more of a bonus.) It also helps that I know I'll have discretionary time for exploring other interests.

Our routines fit our life well. There aren't any big gaps where I could significantly improve things for a small investment of time or money. I'm working on misplacing things less often. We're going to experiment with scaling up. I've considered outsourcing or getting assistance with food preparation, but I still have to crunch the numbers on whether the increase in discretionary time makes up for the increase in our food budget. There's no point in doing it if I'm going to waste the time, but maybe it compares well with delegating or postponing other things I want to do.

12-Aug19-Aug26-Aug2-Sep9-Sep16-Sep23-SepTotalPercentage of total time
UW - Cooking6.
UW - Tidying2.
UW - Travel0.
P - Eating5.
Unpaid work total8.910.55.311.710.215.57.669.76%
P - Exercise5.92.512.
P - Prep0.00.00%
P - Routines7.
Personal care18.616.422.417.214.815.316.3120.910%

My "discretionary time" allowance stays pretty consistent. It turns out that I have roughly 4.6 hours of discretionary time during weekdays and 9.3 hours of discretionary time during weekends. What I choose to spend that time on tells me about my changing interests. For example, I've been shifting time from Latin and piano to electronics and drawing. I'm pretty happy with that decision, although I'm thinking I might shift some time back to Latin so that I don't lose too much to forgetting. We've been volunteering a lot, so we'll see how that works out.

Discretionary time:

12-Aug19-Aug26-Aug2-Sep9-Sep16-Sep23-SepTotalPercentage of discretionary time
D - Break0.
D - Delegating0.60.10.70%
D - Drawing4.14.310.
D - Electronics2.02.01%
D - Gardening0.20.20%
D - Latin1.40.51.91%
D - Learning0.21.29.510.83%
D - Other4.94.92.512.24%
D - Personal3.913.512.30.812.843.214%
D - Piano6.62.69.23%
D - Reading0.
D - Sewing1.61.61%
D - Shopping1.
D - Social11.511.
D - Volunteering6.
D - Writing8.
Discretionary time total39.546.447.043.352.043.040.9312.2

How can I make this even better?

  • Plan the projects I want to focus on, list the next actions, and see how much of my discretionary time is used for making tangible progress towards long-term goals. It's like the way I analyze my expenses based on short-term goals and long-term goals.
  • Shift wake-up a little earlier so that I can experiment with two smaller chunks of time instead of just one evening chunk.
  • Experiment with greater delegation.
  • Experiment with finer-grained tracking using notes.
  • Continue adding to my life dashboard (currently tracking time and clothes).

2011-09-02 Fri 19:45

From the feeds: entrepreneurship, teaching, biking, riding

September 27, 2011 - Categories: Uncategorized
  • Tim Ferris writes about how to estimate your market size using Google and Facebook so that you can see if your business idea might have a million dollars' worth of customers. I like reading about entrepreneurship, although I'm postponing getting started because I've got a lot of projects going on right now. It is possible to build really cool things in one weekend, so that's tempting…
  • Alas, A Blog writes about making a school appearance over Skype. I think it's awesome that videoconferencing makes it possible for teachers to bring all sorts of role models into their classrooms. I hope J-'s school tries this out.
  • David Seah shares a template for outlining books. I like the idea of using the physical structure of the book (pages) to build its logical structure. The template takes more space than my "dogear and then transcribe into an Org text file" approach, though. (I've tried book darts, but they're hard to place on the go.) Maybe I'll try this template for some of the nonfiction books I've got on the shelf…
  • The New York Times describes the bike culture in the Netherlands, and how it permeates life. It's in the little things, like how Dutch drivers learn to open their doors with their right hand, forcing them to turn and look for bicycles. I had a lot of fun biking in the Hague when we visited friends, and I wish Toronto was as much fun to ride in (and as flat!). Hat-tip to Ben Casnocha for sharing the link.

Getting better at working at the office

September 28, 2011 - Categories: kaizen, work

I'll be working on a new project with a local coworker soon, which means I'll probably come to the office more often. I've been spoiled by the ability to work from home on all of these projects where I'm either solo or working with a remote team, so I need to figure out how to make the most of being in the office.

I like the Aeron chairs and the absence of kitties who communicate their desire for an early dinner by nipping my ankles. I find the sounds of the office distracting: the white noise of airconditioning, people's conversations, the clackety-clack of lots of fast typists in one place…

I find that listening to music with words interferes with programming or writing. Classical music is nice, but background conversations come through during the soft parts. I've started using white noise generators like Simply Noise, which do a good job of masking distracting sounds through randomness. My coworker knows she's free to interrupt me when I've got my earphones on, so that's fine.

The office is also a source of a little social anxiety of the "I really should recognize more names and faces, but sometimes I blank out" variety. Maybe I can make visual flashcards and go through them to memorize people's names and faces. That would make it better.

I don't get to nap at the office, so it's more important to take regular breaks to keep my energy up. It's easier to get a lot of light, though - the office has huge windows, a high ceiling, a light colour scheme, and a little park next to it. That's pretty good. Walking around the block is a great way to take a break.

Winter will be here soon enough. What can I do to make winter work even better? I can wear brighter colours, leave heavy things in my drawer (yay, I have a large drawer!), and read books on my Kindle. That should make things better than last year's winter, which was better than the year before that. This particular winter promises to be interesting, and it may require a lot of hacking.

Onward and upward!

Transcript: Blogging (Part 5): Getting started

September 29, 2011 - Categories: blogging, tips, writing
This entry is part 5 of 16 in the series Discovering Yourself Through Blogging
Hat-tip to Holly Tse for organizing this interview! Holly Tse: What would you advise them for someone to get started? What's the quickest way to get started? Sacha Chua: I think the quickest way to get started is to ditch your expectations. A lot of people think: Oh, I'm going to start a blog, but it has to be really interesting, and it has to get plenty of comments on the first day in order for it to be worthwhile. That doesn't really happen. What you want to do is you want to write just for yourself. Whether you want to start off writing a private blog or a journal, or maybe you want to just go ahead and tell stories even if no one's around to listen to them… It's already worth it, just for you. It's already worth it if you can write down a single thing that you learned that day, or once small thing that you would like to do better the next day. If you can keep doing that, then you're going to get better at remembering all these little things that you would've forgotten. Being able to get a sense of perspective about how far you've come. Being able to figure out, okay, how can I build on these improvements further? I think that if you change your expectations to that–so instead of thinking, oh, I'm going to write this, but then I have to be famous and then people have to comment, and get to be like a New York Times columnist–to: I'm just going to write about my life. Something small. It doesn't have to be profound. It doesn't have to be interesting. It's okay to bore yourself. In fact, you might as well do that, because you have to dig deeper to find all these things that only in hindsight turn out to be interesting. Anyway. It's okay to bore yourself. It's okay to write small, simple things, just slices of daily life, just questions and ideas to help you grow. That is totally okay. You don't see a lot of that advice in books about blogging because they're all focused on–well, not all, but many of them are focused on how people can grow side businesses through blogs, or how they can change their search engine rankings. You know what? You can use a blog to just write, to explore, to ask questions, and maybe connect with other people, and that is totally all right. HT: Now, it's interesting that you mention that you may bore yourself at first. You said that you need to dig deeper to find the interesting gems. Can you share more about that, please? SC: This is totally something that happens. You don't understand these patterns until you start writing. You know how you end up talking about some topics again and again, because it turns out those are the things that you're really interested in? Or you might think, oh, I think I'm going to be interested in sewing, but then if you look at what you actually do day by day, it doesn't really rank high on your list. When you start capturing these things in your life in a form that you can look back on, whether it's keeping track of how you've been spending your time or going back over your archives and seeing what you write about, the things that you keep coming back to–the things that you keep talking about, the things you keep writing about–those are the things that have a lot of interest for you. The more that you think about them, the more you learn about them. I can write about a lot of things again and again, and I'll keep learning something about them. I can write about time, I can write about personal finance, I can write about cats… There's just so much to untangle, to discover about these things. It's okay to write about something again and again because there's something more you can learn from it, and there's something more you can share with other people. Most of this will be boring, especially if you haven't had a lot of practice writing. The first few times around, you'll be thinking, oh, my grammar is kinda funny and I've got typos here and there, and it's boring. No one is ever going to read this. I've looked at my blog archives. I sat down and read through everything–not in one sitting–but I read through every single post that I'd written. From 2002 to 2007, I was writing about technical things that were probably interesting to just me and maybe five other people. Anyway, it was there. It was only later, after I'd figured out more in this process that I realized that okay, here's where I don't agree with other people. Here's where I want to explore something different. It's only when you can write past that, when you can tell the difference between what you're supposed to think and what you actually think, or where you are and where you want to be… And you don't get there without thinking a lot about it, without writing it down. Writing down is important. If you're just thinking about it, you can fool yourself into thinking: this is what I'm really interested in, this is where I've got a clear opinion. When you write it down, you've got to be honest with yourself, and then you find out whether you're making sense or not. Most of the time–especially in the beginning–you're not going to make sense. That's okay.

Converted my Arduino foot pedal into a Teensy foot pedal!

September 30, 2011 - Categories: geek

Look at how neat my foot pedal looks now! It’s much better than my dangling-wires prototype with the Arduino. At just 0.7” by 1.2”, the Teensy USB board was small enough to tuck into the base of the foot pedal. Now it looks almost exactly like how it looked when I bought it from the store, except that the connector at the end of  the cable is USB instead of some funky plug.

Thanks to Teensyduino, I didn’t have to rewrite a lot of my code. The Teensy was much easier to turn into a keyboard, because I could use the standard bootloader instead of reflashing back and forth between the standard bootloader and a HID keyboard hex. The only wrinkle was that the Teensy library used keyboard scancodes instead of the USB keycodes I had used before. I couldn’t figure out how to send F13 using the Teensy library, so I changed it to send Shift+F1...Shift+F6, and I updated my AutoHotkey script to map the new keys.

If you happen to have the same foot pedal, you can solder brown and black to GND, orange to B0, blue to B1, tan to B2, and red to B3.

Here’s the new code:

const int redPin = 3;
const int tanPin = 2;
const int bluePin = 1;
const int orangePin = 0;
const int debounceDelay = 150;
const int longPressThreshold = 650;

int currentState;
int lastSwitch;
long lastDebounce;
long lastPressed;
int lastSwitchDebounced;
#define LED 11

uint8_t buf[8] = { 0 };	/* Keyboard report buffer */

#define SWITCH_NONE 0
#define SWITCH_LEFT 1
#define SWITCH_RIGHT 3


void setup() {
  pinMode(redPin, INPUT); digitalWrite(redPin, HIGH);
  pinMode(tanPin, INPUT); digitalWrite(tanPin, HIGH);
  pinMode(orangePin, INPUT); digitalWrite(orangePin, HIGH);
  pinMode(bluePin, INPUT); digitalWrite(bluePin, HIGH);
  pinMode(LED, OUTPUT); digitalWrite(LED, HIGH);
  lastSwitch = 0;
  lastDebounce = millis();
  currentState = 0;
  digitalWrite(LED, LOW);

int getCurrentSwitch() {
  if (!digitalRead(orangePin)) { return SWITCH_LEFT; }
  if (!digitalRead(tanPin)) { return SWITCH_CENTER; }
  if (!digitalRead(redPin)) { return SWITCH_RIGHT; }
  return SWITCH_NONE;

void sendKey(int currentSwitch, boolean isShort, boolean keyDown) {
  int debug = 0;
  digitalWrite(LED, keyDown ? HIGH : LOW);
  if (keyDown) {
    switch (currentSwitch) {
        case SWITCH_LEFT:   if (isShort) { Keyboard.set_key1(KEY_F1); } else { Keyboard.set_key1(KEY_F4); } break;
        case SWITCH_CENTER: if (isShort) { Keyboard.set_key1(KEY_F2); } else { Keyboard.set_key1(KEY_F5); } break;
        case SWITCH_RIGHT:  if (isShort) { Keyboard.set_key1(KEY_F3); } else { Keyboard.set_key1(KEY_F6); } break;
    if (debug) {
      Serial.println(isShort ? "Short" : "Long");
  } else {
    if (debug) { Serial.println("Up"); Serial.println(isShort ? "Short" : "Long"); }
  if (!debug) { Keyboard.send_now(); }

void loop() {
  int currentSwitch = getCurrentSwitch();
  if (currentSwitch != lastSwitch) {
    lastDebounce = millis();
//  Serial.println(currentSwitch);
  // Debounce it
  if (millis() - lastDebounce > debounceDelay) {
    switch (currentState) {
      case STATE_WAITING:
        // No keys pressed yet
        if (currentSwitch != SWITCH_NONE) {
          lastPressed = millis();
          currentState = STATE_SHORT_PRESSED;
        // Wait to see if this counts as a long press
        if (currentSwitch == SWITCH_NONE) {
          // Send the keystroke
          sendKey(lastSwitchDebounced, true, true);
          sendKey(lastSwitchDebounced, true, false);
          currentState = STATE_WAITING;
        } else if (currentSwitch != lastSwitch) {
          // Shouldn't happen, but just in case you're using a different footpedal...
          sendKey(lastSwitchDebounced, true, true);
          sendKey(lastSwitchDebounced, true, false);
          lastPressed = millis();
        } else if (millis() - lastPressed > longPressThreshold) {
          currentState = STATE_LONG_PRESSED;
          sendKey(lastSwitch, false, true);
        // Wait for the transition
        if (currentSwitch == SWITCH_NONE) {
          currentState = STATE_WAITING;
          sendKey(lastSwitch, false, false);
        } else if (currentSwitch != lastSwitch) {
          // Likewise, switching between inputs shouldn't happen with this footpedal,
          // but just in case...
          sendKey(lastSwitch, false, false);
          currentState = STATE_SHORT_PRESSED;
          lastPressed = millis();
    lastSwitchDebounced = currentSwitch;
  lastSwitch = currentSwitch;
Here is the relevant AutoHotkey snippet I'm working with:
+F1::Send, {PgUp}
+F2::Send, !{Tab}
+F3::Send, {PgDn}
+F4::Send, {PgUp}
+F5::Send, !{Tab}
+F6::Send, {PgDn}

Wheeee! It looks so neat now. I’ve still got some flakiness to work out, but it looks awesome!

---- Another foot pedal story ----

One Saturday, W- and I were at Active Surplus to buy some electronic components and to browse their ever-interesting collections. I overheard a woman looking for a footswitch. As she asked one of the Active Surplus employees about the switch characteristics so that she could turn it into a USB keyboard-type device, I couldn't help but tell her the footswitch was totally awesome and that I'd done something similar recently. She was also interested in building a footswitch for transcription. I told her to look for "Sacha Chua Arduino USB footswitch" as a way to get to my notes on building a 6-way USB footswitch using the very same footswitch she was thinking of buying. We had a short but great conversation about hacking stuff. I hope she ends up making something awesome out of the footswitch!