January 2011

Weekly review: Week ending December 31, 2010

January 1, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Work on Project M: Make sure users have permissions to do things
    • [X] Work on Project S: Clean things up
    • [X] Idea Lab: Process responses
    • [-] Illustrate networking tips
  • Relationships
    • [-] Hike or bike with W-
    • [-] Write more cards
    • Had Maira’s family over
    • Had New Year’s Eve dinner with W-‘s family
  • Life
    • [-] Get MobileOrg Android patches into mergeable state
    • [X] Review and revise plan, outline 2011
    • [X] Tidy up
    • [-] Tidy up my computer, too: backup, reorganize, clean
    • [X] Plan garden

Plans for next week

  • Work
    • [X] Work on Project M: Documentation, tidying up
    • [X] Work on Project S: Clean things up
    • [X] Idea Lab: Run Idea Lab
    • [X] Illustrate networking tips
  • Relationships
    • [X] Look into cooking or cleaning assistance
  • Life
    • [X] Get well
    • [X] Hire a virtual assistant again

Time analysis

Dec 25 to December 31

Time totals messed up because I didn’t track as much over the holidays, but here’s a guesstimate:

Sleep 53 hours ~ 7 hours per day
Preparation 23 hours Including disassembling washer and dryer
Work 19 hours Took some sick time
Routines 16 hours
Social 8 hours
Writing 2.5 hours
Travel 2 hours I’ve been using some of this for writing time, too
Break 2 hours
Exercise 1.25 hours
Learning 0.75 hours
Driving practice 0.75 hours
Untracked 39.75 hours

Tweaking my time-tracking…

A terrible cold has put a crimp in my productivity and my holiday celebrations, but W- has been totally awesome at taking care of me. He’s been shaking his finger at me for having insisted on spending Friday working when I should have been in bed. “You’ve been working feverishly,” he said, “and now you’ve come down with a fever.” That explains why I was shivering underneath all those covers. Fortunately, it’s nothing W- hasn’t dealt with before, and aspirin soon sorted that out. (Thank you, mdern medicine.)

Definitely time to break out the ginger tea. (Hello, salabat!)

Sick days

January 2, 2011 - Categories: life, sketches

Still sick. Flush with a fever, congested with a cough and a cold, voiceless, and all around under the weather. Not the best of ways to spend a holiday, but a worse way to spend a workweek, so this is okay by comparison.

lemon To soothe an irritated throat, in a mug, combine:

  • Juice of half a lemon
  • Tablespoon of honey
  • Hot water

(Do not give honey to babies under a year old.)

W- has kept me on a steady infusion of chicken soup, cuddles, and Pride and Prejudice – several different versions, in fact.

I like BBC’s Lizzie and Lost in Austen’s Darcy the most. Heresy, I know. Colin Firth in the BBC’s 1995 adaptation of Pride and Prejudice is the definitive Darcy, of course. Lost in Austen’s Fitzwilliam Darcy (Elliot Cowan) does more of a transformation from utterly disagreeable to totally awesome.

Ginger tea (salabat): The powdered form is very convenient, of course, but you can make up a batch by crushing ginger and boiling it it in water. Add brown sugar to sweeten it.

You can’t do much with a cold except to try to not make it any worse. Definitely a good time for relaxing.

Momentum and holidays

January 3, 2011 - Categories: life, productivity

Monday: I don’t do “relaxing holidays” very well. My idea of a perfect holiday is one where I’m all wrung out at the end and ready to go back to work. Building a chair. Bottling a gazillion jars of jam. Taking apart and rebuilding appliances. Hanging out with family and friends. (If you’ve met them, you know what a whirlwind they can be.)

This New Year’s holiday must have been the quietest holiday I’ve had in a while. It’s weird! I’m half-dreading the abrupt change in pace when I get back to work tomorrow, particularly as I’ve managed to commit myself to some rather high-intensity days coming up.

(Fortunately, the world works in mysterious ways. It could have been crazier, but it isn’t.)

It’s hard to write about anything other than being sick when you’re sick.

Actually, this is not true. I snuck in some work this afternoon and I made a lot of progress writing a developer’s guide for the system we’re building. It’s hard for me to write about life or productivity or connecting at conferences when my nose is stuffed, but I can talk about node access records and workflow transitions, no problem.

Maybe that’s what I should do next time I’m sick and feeling lethargic. Never mind the mid-day naps. A good round of coding or documenting is a great antidote for the doldrums.

Being sick is great for all sorts of realizations, actually. I have the free time to do whatever I want to do (within reason). I don’t have the energy or the inclination to do many things. Granted, a lot of that is because of the cold, but if I don’t get around to doing something even though I have an unencumbered day, what are the chances of my getting around to it with an extra half hour?

Here’s what I’m learning:

Writing and coding boost my energy, and are a great way to cheer myself up if I’m feeling unproductive.

Playing the piano is fun, too. I’m slowly getting back into it (compensating for the time I couldn’t speak?). I like the slow development of fluency. Plus, my playing nudges J-, and she ends up teaching herself a bit too. I’ve been teaching myself Schumann’s “Von fremden Ländern und Menschen” (the easy version from http://www.free-scores.com/download-sheet-music.php?pdf=8153) because of its appearance in McDull, but it’s also a pleasure re-encountering old friends like Für Elise.

Drawing and preparing for presentations are pretty low on my radar. I should think about how to tweak that. Fortunately, I’d written a number of blog posts from when I was presenting more, so I can remember what it’s like.

Sewing has a bit more of an activation cost than it could. When work settles down again, I’ll set aside some time to see if I can fix this.

Tomorrow is going to be a busy day. I still have a bit of a cough and some sniffles, and I’ll probably work from home, but my voice is back and I can focus on work. (More easily on work than on other things, even.)

Sketches: If you want to make the most of your next conference, you should blog

January 4, 2011 - Categories: blogging, sketches, tips


Marking up books

January 5, 2011 - Categories: book, reading

I’ve been rereading Adler and van Doren’s “How to Read a Book”. I always get tripped up by the advice to mark up one’s books (p48-51). I’ve experimented with this on and off – wild sallies into the world of underlined passages and marks in the margins of books that I own — but I always recoil, returning to furtively dog-eared pages (and even this, when done to library books, earns me a teasing frown from W-). But Adler and van Doren spend two and a half pages arguing for the value of writing in one’s books and giving tips on how to do it effectively. Their reasons:

  • It keeps you awake and concentrating.
  • It makes your reading active.
  • It helps you remember the thoughts of the author.

Maybe I can get the same benefits by writing my thoughts down elsewhere, but not on the printed pages. Ratchet up my book-blogging, perhaps, as a life-long project to build a personal, digital syntopicon?

W- has started a fresh new professional notebook for 2011. In this, notebook he writes down ideas and lessons from his work and from the books he reads. He’s been taking notes on another book I’ve browsed and dogeared – Visual Meetings.

I sporadically keep paper notebooks. They can be much more convenient than typing on a laptop, especially when one is propping a book open to the right page. Perhaps the tablet will make it easier to keep my handwritten notes?

What would my ideal book notes system be like? Decades later, I’d like to be able to say – ah, if you’re interested in that, here are the books I’ve read about it, and this is how they’re connected to each other, and the arguments they made, and how my personal experiences have supported or contradicted them, and what I’ve done with what I learned from those books, and what else I could add…

Margin notes can’t contain these, but maybe I’ll figure out my own system over time – searchable, hyperlinked, backed-up, personal, and social. In the meantime, I keep my notes in an Org text file, organized in an outline, tagged with keywords, and (occasionally) published on my blog.

What’s your system for book notes?

How to Read a Book
Mortimer J. Adler and Charles Van Doren

Moving my book notes online

January 6, 2011 - Categories: emacs, reading

I moved more of my book notes online, reasoning that a braindump is better than occasional whining about the lack of a good system. ;) Fellow Emacs geeks who use Org will probably get the most out of this, as they can open it in Emacs and work with the hierarchy, but someday I may figure out a neat little hyperlinked solution that will make it easy for everyone else. Or I’ll pull more and more of these posts into my blog, where they’ll be individually linkable and commentable.

Compare: http://sachachua.com/blog/category/book/ , which wins points for being graphical and highlighted and comment-friendly, but loses topical organization, overview, search, and offline access.

It’s a start. Here’s what’s working well:

CAPTURE: Using Org + Remember to capture book notes uses the same process as my other notes. Diagrams can be scanned in and attached to files. I used to scan and OCR dogeared pages, but typing or dictating them in is okay, and it helps me review. The capture part of my process is fantastic.

ORGANIZATION: org-refile or copying and pasting are easy, so this part of the process is fine.

REVIEW: I might schedule times to refresh my memory of certain books. I can do that with Org agenda fairly easily.

SHARING: Here’s where the process breaks down a little. org2blog-post-subtree is great, and I’ve used that a number of times to post the relevant subtree of book notes. That adds the notes as entries in my blog, storing the post ID in my Org file so that I can get back to the post afterwards. org2blog also makes it easy to edit entries, hooray.

Once it’s in my blog, people can use the categories to find other entries. However, my current blog layout doesn’t highlight the categories, and it’s not easy to browse the different book-related categories. Maybe it’s worth tweaking a “reading” or “book” category layout page.

Aha! How’s http://sachachua.com/blog/book-notes/ ? It’s a manually-edited list at the top (thanks, Org!), followed by an automatically-generated index. I’ll gradually move my other notes into this system – text notes in my Org file and blog entries for linkability/commentability. Progress…

Emacs, BBDB, and getting your contacts on the Android or iPhone

January 7, 2011 - Categories: android, bbdb, emacs

Want your Emacs BBDB contacts on your Android or iPhone?

The easiest way I’ve found is to export your contacts to CSV, then import them into something like Google Contacts. You can export your BBDB contacts using bbdb-to-outlook.el, which is available in the BBDB package in the bits/ directory. Download bbdb-to-outlook.el from Sourceforge if you can’t find it in your BBDB directory. To use:

  1. Load bbdb-to-outlook.el and use M-x eval-buffer to load the code.
  2. Use M-x bbdb to open your BBDB records, and search for . to show all the records. Alternatively, search for a subset of your records.
  3. Type O to run bbdb-to-outlook and choose the file.

Tada! Step one done. Review the file and delete anything you don’t want to include.

To import the contacts into Google Contacts, go to Google Mail and click on Contacts. Click on Import and choose your file. After some time and some fiddling, you can get that synchronized onto your Android or iPhone.

I haven’t thought about syncing, but I’m trying to keep my BBDB as The Master File for Contacts anyway, as it’s so much more flexible than any other contact database I’ve tried. (Although gist.com is pretty cool and I do like the Android’s merging of photos, contact info, and updates…)

There was some work on synchronizing BBDB with the Palm, so that might be a possibility.


Weekly review: Week ending January 7, 2011

January 8, 2011 - Categories: weekly

Relearning the piano. It’s interesting. I can remember playing better than this. Now I’m re-learning how to play these pieces, going, “Ahh. That feels familiar. And then there should be this bit over here – yes, that’s right.” On the other hand, I read notes a little bit faster now than I did before.

Getting well. A persistent cough and some sniffles, but definitely better than last week.

From last week’s plans

  • Work
    • [X] Work on Project M: Documentation, tidying up
    • [X] Work on Project S: Clean things up
    • [X] Idea Lab: Run Idea Lab
    • [X] Illustrate networking tips
    • Learned how to hack Drupal messaging and notifications
    • Found out my Lotusphere 2011 session got accepted
    • Had team lunch with Jennifer Nolan, Johnny Patterson and Elena Neroslavskaya
  • Relationships
    • [-] Look into cooking or cleaning assistance
    • Watched Bride and Prejudice with W- and J- (hooray library DVDs)
    • Read Pride and Prejudice and Zombies: Dawn of the Dreadfuls
    • … and in general, enjoyed all sorts of things Austen
  • Life
    • [X] Get well
    • [X] Hire a virtual assistant again
    • Watched Bottle Shock, also from the library – that was fun
    • Started teaching myself the piano again
    • Sketched my goals for 2011.
    • Posted my book notes and improved my book workflow.
    • Posted a Kijiji ad looking for a piano teacher

Plans for next week

  • Work
    • [X] Finish up on project S
    • [X] Start testing project M
    • [X] Fix my Lotus Notes
    • [X] Look into Lotusphere
  • Relationships
    • [X] Get around to hosting a get-together, maybe a game night
    • [X] Plan May trip
  • Life
    • [X] Get back into sewing: work on black dress
    • [X] Post more book notes

Time analysis

Sleep 73.6 hours ~ 11 hours per day, thanks to good weekends
Work 33.5 hours A little overtime, but it’s good
Break 22 hours Recuperating
Writing 12 hours
Piano practice 7 hours
Routines 5.5 hours
Outsourceable 4 hours
Exercise 2.5 hours
Social 1.5 hours
Travel 0.5 hours Worked from home so that I wouldn’t get others sick
Untracked 5.9 hours Jan 1-3 had hole-y records, but Jan 4 – 7 was all tracked

Once my categories settle down, I might do some between-week analysis…

Snippets from life

January 9, 2011 - Categories: life

We celebrated J-‘s birthday at Korean Grill House last night. During a lull in the conversation as people digested the vast quantities of food we’d just consumed, she took out her iPod and started flipping through an e-book.

Her uncle asked, “What are you reading?”

J- answered, “Pride and Prejudice.”

Simultaneous jaw drop from uncle and aunt, grins from W- and me.

“Pride and Prejudice?! Are you reading that for school or for fun?”

“For fun!”

We’ve been on an entire Pride and Prejudice kick this past week. We watched the 2005 movie, the Lost in Austen miniseries, Bride and Prejudice (the Bollywood version; quite a few laughs); read “Pride and Prejudice and Zombies: Dawn of the Dreadfuls” (the prequel to “Pride and Prejudice and Zombies”); quoted and joked and improvised.

Yes, we’re geeks.

We spent a very agreeable afternoon in the kitchen. We chopped up vanilla beans for making extract. I made pandesal. W- discovered a good combination: egg tarts (3 whole eggs + 3 extra egg yolks), coconut macaroons (4 egg whites), and oatmeal cookies (the recipe we use involves 2 eggs and an extra egg yolk). All in all, nine eggs and no extra parts languishing in ramekins in the fridge.

Of course, now we will need to find coworkers and friends willing to take some of these baked goods off our hands (and away from our waistlines)…

Life is good.

Work on the business from the outside, not in it – Book: Effortless entrepreneur

January 10, 2011 - Categories: book, entrepreneurship, reading

One of the key points of “Effortless entrepreneur” is that you need to create systems and delegate work so that you can free up time to improve your business.

p38. Work on the business from the outside, not in it. A great
entrepreneur builds systems to run the business as if it were a
machine, and stands over it instead of being part of its inner
workings. A business owner should sell that machine to clients and
perfect its functionality, but not sit in the gear room. How many
times have you seen a local store owner answering phones, doing
paperwork, and assisting customers all at once? This business owner
works IN the business, not ON it, and hasn’t identified the different
positions within his business, such as receptionist, salesperson, and
cashier. Instead, he does all those jobs himself.

Creating manuals and training maps for each position from the get-go
forces you to evaluate what needs to be done and helps identify tasks
you might not think of right away. That can mean fewer unpleasant
surprises down the road. At first, you’ll likely have to work IN your
business and do most, if not all, of the work for each position.
That’s common when you start out. But create a system that allows you
to just work ON it as soon as possible. Once that system is operative,
a business gains its true value.

Work on your business, not just in it. It makes sense, although lots of small-business owners find it hard to make that jump.

How can people practice this now? After all, even if you work for a company, you work for yourself, too.

It’s kinda like what Trent (The Simple Dollar) writes about in “Who is your real boss? Some perspectives on career success”:

My belief is this: the people that succeed are the people who invest that energy and time and patience and thought a little differently.
What do I mean?

  • Option A: Let’s say you go to work each day and leave it all on the
    table. When you leave work, you’re so drained you can barely make it
    home. You sit on the couch, vegetate for a while, eat dinner,
    vegetate a bit more, then hit the sack. Or perhaps you’re a parent
    and you leave work with just enough energy to get through your
    parental requirements in the evening.

  • Option B: On the other hand, let’s say you go to work and
    intentionally keep half of your energy for yourself. You give the
    company 50% of the gas in your tank. After you leave, you spend that
    50% improving yourself. You go to night classes. You go to the gym.
    You go to the library. You go to meetings of professional growth
    groups, like Toastmasters.

Well, maybe not 50%. If you can do your work with 80% effort, and then invest the rest into building skills and processes, then it’s like a savvy entrepreneur investing time into building systems, not just fighting fires. Sometimes it’s more like a full-energy work and 20% extra, but I enjoy the work and the learning along the way.

At work, I’m learning about the way we work on projects: the processes, the templates, the questions and conversations. I like making systems, processes, and tools, so I’m learning how to improve things.

I’m working on applying this idea of “working on the business, not just in it” in personal life as well. Hence the household optimizations: batch cooking and a chest freezer, tweaked routines, relationship-building. Capacity-building for future adventures.

I’m looking forward to do even better. At work, I want to to learn more about Drupal 7, consulting, and the processes we have. I’m also looking forward to writing up more notes and coaching others. In the rest of life, I’d like to experiment with delegating again, invest time into becoming a better writer, and continue building wonderful relationships.

How about you? How can you not only work in your business, but on it?

Effortless entrepreneur: Work smart, play hard, make millions
2010 Nick Friedman and Omar Soliman
Three Rivers Press
ISBN 978-0-307-58799-2

Book: Effortless entrepreneur 2011-01-10 Mon 19:27

Wrapping up projects and preparing for the next one

January 11, 2011 - Categories: career, ibm, work

We’re in the final phases of our two Drupal projects. We’re writing test scripts, fixing bugs, and loading production data. In a week or two, we’ll finalize the source code and save a copy of the database. I’ve really liked working on these projects, and I’m looking forward to working on similar things in the future.

As I wrap up on this project and get ready for future ones, I can’t help but think how working in IBM Global Business Services helps me learn about different parts of consulting. We can help with proposals for new projects. We have an internal marketplace that lists openings and required skills. We can submit our resumes and set up interviews. We need to do a little marketing on our own, and we always have to work on keeping our skills up to date.

Today I attended a call with my resource deployment manager. Her role includes matching people with projects. She shared some tips on how to make the most of our tools, some things we might invest time in if we have some downtime between projects, and upcoming projects we might be interested in.

Here are some things I’m looking forward to doing if I have some time between this and my next project:

  • Help write proposals for Drupal and Web 2.0 projects
    • Compile case studies
    • Estimate Drupal projects
    • Prototype?
  • write up and share my Drupal notes
  • Create and compile assets (Drupal case studies, Web 2.0 overviews, etc.)
  • Learn more about Drupal 7, AJAX, information architecture, mobile development, project management, and other interesting things – discuss priorities with manager
  • Maybe work on a conventional skill set – J2EE?
  • Work on paperwork: project assessments, certification, etc.
  • Improve the Lotus Connections toolkit

Just like independent consultants need to always be building their pipeline, I should see if I can balance my future project work so that I’m always working on the pipeline for the next thing: helping out with bids, learning a new skill, and so on.


Three tips for cheerful chores

January 12, 2011 - Categories: life, productivity

I’ve been taking a closer look at household tasks that I could outsource or simplify. Groceries, laundry, cleaning, cooking…

… but really, they don’t take that much time, and I probably get more value from doing them than I would from a few extra hours of writing or work.

Here are three tips I’ve found that help me enjoy what I’m doing. Maybe you’ll find them useful, too!

Many hands make fun work. Turn the chore into an excuse to build a relationship. For example, W- and I love cooking. Our batch-cooking marathons are an excuse to break out the knives, chopping boards, and stacks of food containers, and we have great conversations while slicing and dicing. We also enjoy the walk to the supermarket (which often involves a side-trip to the library, and you know how I enjoy that). Folding laundry is a good time to watch a movie (borrowed from the aforementioned library), which leads to more shared experiences and in-jokes, which helps cultivate a relationship. Turn chores into social bonding time, and the time will fly.

Use the time to reflect and improve. Cooking is a great time to learn new recipes or improve my skills. Tidying up reminds me where things are and gives me an opportunity to simplify. Spend a little extra time making things better for the next time you do something.

Eliminate or delegate things that really sap your energy. Speaking of cats: scooping out four litter boxes was not fun. So W- did a bit of research and ordered a Litter Robot. The spaceship-like contraption now commands a corner of the living room (next to the toolchest, actually). It’s been worth it not just for convenience, but also for entertainment value. Our cat Luke loves to watch it, but when he steps on it for a closer look, the Litter Robot stops rotating. This confuses him and always makes me laugh.

We could cut back on savings and hire some of these tasks out – but we’d probably replace them with time spent taking long walks together, learning new skills, or improving the flow of life. Which is basically what we would’ve been paying someone else to handle, so we might as well do it ourselves.

What do you do to make chores cheerful?

2011-01-12 Wed 19:38

Book: Let’s Get Real About Money: Profit from the Habits of the Best Personal Finance Managers

January 13, 2011 - Categories: book, finance

Let’s Get Real About Money: Profit from the Habits of the Best Personal Finance Managers
(c) 2008 Eric Tyson
FT Press, New Jersey
ISBN: 978-0-13-234161-5

My expectations were low. The subtitle “Profit from the Habits of the Best Personal Finance Managers” made me think of celebrity-focused “secrets”-type books with more fluff than content. But hey, it was on the library bookshelf, so I picked it up anyway. I’ve found all sorts of gems in unlikely books, and I’ve skimmed my way through seemingly-solid books that proved to be disappointments. It’s easy to take risks on books when they’re free. ;)

I was pleasantly surprised by what I found. The book has a lot of practical advice on money and relationships, family, raising savvy kids, spending plans, frugality, investment, insurance, and learning more. Well worth a read, and possibly one of my new recommendations in this area.

I’ve been thinking about whether I’ve got the right balance of saving for near-term expenses, investing for the future, and enjoying the present. The book has an entire chapter on this (pp.103 to 112). I particularly like the section on reflecting on whether you’re postponing achievable dreams, and the quote:

It is very well to be thrifty, but don’t amass a hoard of regrets.

  • French poet, Charles D’Orleans (quoted on p.118 of Let’s Get Real About Money)

I’m reminded of Ramit Sethi’s story about how some people set aside money for meeting interesting people. Might be a fun experiment, although perhaps not to that scale. Ditto for learning and experimentation, which I do explicitly save for, and which has paid off quite a bit in terms of interesting life experiences. So I’m not doing too badly in this area, and I’m continuing to learn.

There are useful tips on p131 on keeping saving in proper perspective. Here’s the summary:

  • Understand the standard of living that can be provided by the assets you’ve already accumulated.
  • Get smart about investing your money.
  • Go on a news diet.
  • Regularly buy something that you historically have viewed as frivolous but which you can truly afford.
  • Buy more gifts for the people you love.
  • Go easier on yourself and family when it comes to everyday expenses.

This year’s probably going to be pretty easy to plan for, actually, because we’ve got the two big trips planned (Netherlands and the Philippines), and we might look into improving the insulation of the house. We’re also saving up for other adventures over the next year or two. Big rocks. It’s easy to plan other things around those: perhaps piano lessons, sewing lessons, gardening experiments, and woodworking projects.

Anyway… “Let’s Get Real About Money” is a good read. Try the self-test in front, and check out the chapters on insurance and managing risks. Have fun!

2011-01-13 Thu 21:22

13,705 steps and counting

January 14, 2011 - Categories: android, life


13,705 steps in two and a half hours of leisurely walks spread out over one day, encompassing three not-entirely-necessary strolls involving two libraries, a drugstore, and one supermarket. But it was worth it: several bags of books, a package of dental floss, a pantry restocked with instant noodles, and the satisfaction of seeing what it’s like to walk the recommended 12,000 steps.

I headed out for the second half of my walk right after we wrapped up a project. The euphoria was making me buzz too much to write, so I decided to take good long walk.

The streets here are wide and well-lit, and our neighbourhood is wonderfully walkable. The largest park in Toronto is a few blocks from our house, although I more often walk to the library and to Bloor West Village. Near work, underground passages let me wander about while hiding from winter.

I enjoy walking. Even when winter’s giving me the sniffles, it’s still fun. Sometimes I think of Elizabeth Bennet walking from Longbourn to Netherfield (three miles, or a mile less than what I walked today), except in better shoes and more comfortable clothes (but not anywhere near as awesome a hat).

Tracking has certainly influenced my behaviour. I’ve taken to using Walttend Lite to track my steps because it can correctly track on my Google Nexus One even when the screen is off. None of the other pedometer apps I tried could do that, so Walttend it is. Once I was out there, it was easy to talk myself into going just a little bit further so that I could check off my 12,000 goal. After all, when you’ve gotten to the vicinity of 10k with another trip to the library (and another armful of books), you might as well keep going.

Do you use a pedometer to track your walks? What are you learning?

Photo (c) 2009 Tambako the Jaguar – Creative Commons Attribution No Derivatives

Weekly review: Week ending January 14, 2011

January 15, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Finish up on project S
    • [X] Start testing project M
    • [X] Fix my Lotus Notes
    • [X] Look into Lotusphere
    • Outlined talk on learning on the network
  • Relationships
    • [X] Get around to hosting a get-together, maybe a game night
    • [-] Plan May trip – read lots of guidebooks
    • Picked up microscope slides for J-
    • Helped J- with homework on bullying/harrassment
  • Life
    • [X] Get back into sewing: work on black dress – postponed
    • [X] Post more book notes
    • Enjoyed a week of pandesal
    • Achieved small goal of walking 12k steps in one day

Plans for next week

  • Work
    • [X] Wrap up project M
    • [X] Document case studies
    • [X] Write about lessons learned
    • [X] Apply to open seats
    • [X] Follow up on Lotusphere
    • [X] Draw networking guide for conferences
    • [X] Chat with Vikram Kalkat regarding Web 2.0
  • Relationships
    • [X] Have get-together
    • [X] Help with J-‘s Little Big Planet party
  • Life
    • [X] Get through busy week
    • [X] Post more book notes!

Time analysis

Category Hours Notes
Sleep 61.1 Average of 8.7 hours – typically around 8 hours during weekday, and longer during weekend
Work 40.7 Lots of good work
Routines 18.4
Break 16.5 Relaxed weekend
Social 13.2 Spent time with Maira, and celebrated J-‘s birthday
Writing 7.2
Exercise 6.6 Long walks
Travel 2.8
Learning 0.9 Piano
Outsourceable 0.3

Mostly tracked, yay!

I took the TTC 9 times, using tokens.

Next week, I plan to stick more closely to my alarm settings (no hitting snooze!) and gradually reduce my sleep back to 7 hours a day. Still recovering from a cold – I cough less now, but I still have the sniffles.

I also want to break “Routines” down into more detail, so I can see where my time goes.

Emacs 24 and the package manager

January 15, 2011 - Categories: emacs

Update: Added (require ‘package) – thanks, Ryan!

By default, the Emacs 24 package manager (M-x package-list-packages) points to a small repository of Emacs packages. Want more? Phil Hagelberg added support for multiple repositories to package.el. There’s the original ELPA at http://tromey.com/elpa, and there’s a community package source called Marmalade that anyone can upload packages to. Add this to your ~/.emacs and evaluate it:

(require 'package)
;; Add the original Emacs Lisp Package Archive
(add-to-list 'package-archives
             '("elpa" . "http://tromey.com/elpa/"))
;; Add the user-contributed repository
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))

You should then be able to call M-x package-list-packages to browse and install Emacs packages.

If you don’t have Emacs 24 yet (and you might want to wait for the official release if you use things like BBDB), Phil suggests downloading package.el from the Emacs development tree. This version includes support for multiple repositories.

For even more Emacs goodness outside the package system, check out the Emacs mirror, which lists more than 2,900 packages available through Git.

Thanks to:

2011-01-15 Sat 10:31

Switched my Fido plan

January 16, 2011 - Categories: Uncategorized

I switched my Fido plan to the $35 “Unlimited Joy” plan they were advertising. For $3.70 less than I was paying for my current plan (not considering taxes), I could make the following changes:

Old plan New plan
No included outgoing text messages Unlimited texts to Canada and international numbers
1000 evening/weekend minutes Unlimited evenings and weekends
100 anytime minutes 150 anytime minutes

Last month, I used 6.5 minutes on evenings/weekends and 5 minutes during the day. I do like the security of knowing incoming calls aren’t going to cost me a lot, though, especially as I sometimes use IBM’s VOIP systems to call people and have that connect to my cellphone. I sent seven text messages, which cost me $1.05 (compared to text messages in the Philippines! =( ). I made one long-distance call of less than a minute.

It would have cost me eight dollars in prorated charges to switch to the plan immediately, but I’m fine with waiting until the next billing cycle.

What do I plan to do with the changes? The change I care about the most involves unlimited texting, which will probably lead to lots of Twitter updates while I’m out and about, and more frequent contact with family and friends in the Philippines. =)

I can probably get a cheaper or more featureful plan with WIND Mobile, but since I can easily switch my Fido plan without locking myself into another contract, I don’t mind changing to a better Fido deal while considering the decision to switch. Over the holidays, WIND advertised a pretty sweet unlimited voice/text/data plan for $40, but I’ll wait until the reviews settle down a bit. They seem to have coverage and customer service challenges. I’ll keep an eye out for future promos, though. My Google Nexus One is compatible with the WIND network (thanks to W-‘s wonderful research), so that should be okay.

Tip: Check your cellphone plan – your choices might have improved!

Batch baking for fun and awesomeness

January 17, 2011 - Categories: cooking

It takes just a little bit more time to make two pans of lasagna instead of one, and it works out to be slightly cheaper per serving, too. (90 minutes of preparation including making pasta sauce and cleaning up; < $2 dollars per serving for us.) Batch cooking is a great way to save time and money.

What can you do with two pans of lasagna? You can keep half a pan in the fridge, divide up the other half into individual portions, and share the other pan with family or friends. We took the second pan to Morgan and Cathy’s along with the potato-rosemary rolls I baked yesterday, and we had an excellent dinner. =)

Yesterday’s batch of potato-rosemary bread worked out really well. I formed them as individual rolls instead of a loaf. Loaves are more space-efficient, but rolls are easier to share and eat. It was satisfying to see the bread rise properly, especially as my Friday batch of pandesal didn’t rise at all. (I’m switching to a pandesal recipe that calls for proofing the yeast, as the recipe I’ve written down doesn’t have that step.)

I enjoy baking. It’s even more efficient when we’ve got several recipes lined up to use similar oven temperatures, because then the oven can keep on going. This is the first time I’ve done a double batch of lasagna, and I liked the flexibility of sharing or freezing the second pan. I think I’ll do that with future batches, too.

I’m planning to gradually clear the freezer of most of the raw ingredients we’ve stored so that we can make more room for individual portions. We like stocking up on frozen fruit, raw shrimp, and other ingredients when they’re on sale, but there’s something to be said about turning fresh ingredients into convenient frozen meals. Maybe someday we might get a bigger chest freezer. We’re certainly making the most of ours!

Here are some of our freezer favourites.

Oven Stove
  • Lasagna
  • Baked beans
  • Roast turkey
  • Roast vegetables
  • Roast chicken
  • Shepherd’s pie
  • Meatballs
  • Turkey pot pie / chicken pot pie
  • Shake-and-bake chicken
  • Chili
  • Curry
  • Rice and beans
  • Pinakbet
  • Adobo
  • Pasta sauce

Do you cook in batches and freeze individual portions? What are your favourites?

Sketchnotes: Gretchen Rubin, Happiness Project book tour

January 17, 2011 - Categories: happy, sketches, sketchnotes

Full-size version of my sketch notes from Gretchen Rubin’s talk and book signing of the Happiness Project, Chapters Indigo Bay/Bloor Toronto, January 17. (You can also click on the image for the large version.)


Of recipes and memories

January 18, 2011 - Categories: cooking


Kevin Waite asks, “What format do you use to keep your recipes? Do you use Freemind or Org Mode?”

W- and I write good recipes down in a notebook. Using paper instead of the computer means that both of us can easily add new recipes, we can draw or use graphical shortcuts, and we don’t have to worry so much about spilling things on our notes. Using a bound notebook instead of individual recipe cards means that we don’t have to worry about losing any favourites.

W- started out by keeping it as a food diary, complete with luscious descriptions and fountain-pen ink. Now it’s more of a recipe stash, but even the sparse notes evoke sensations. Because cooking is such a part of our lives, each page brings lots of memories. Even the blank pages near the end tell a story through the splatter from the time that the pressure cooker exploded when W- was cooking too large a batch of beans.

We get many of our recipes from the cookbooks in the house, and we frequently refer to the two editions we have of the Joy of Cooking. We also turn to the Internet for other recipes, like the recipe for home-made vanilla extract. We copy recipes into our notebook for ease of reference and recall. Flipping through the pages reminds us of things we should cook again.

W- and I also keep electronic lists and copies of some recipes, just in case we need to change our plans at the supermarket. We almost always shop with a grocery list, but sometimes we’ll swap recipes if the produce or other ingredients don’t look good. I keep lists in my Org outline too, so that I can easily review our batch cooking recipes or my list of recipes to try.

There are so many blank pages to go. Looking forward to filling them up!

Fun and rational economic theory: reflections on the book “The Logic of Life”

January 19, 2011 - Categories: book, life, reflection

What do you do for fun? Why do you do it? Do you want to shift your patterns?

I was surprised to hear Gretchen Rubin (The Happiness Project) say at her book talk that most grown-ups don’t know what they would do for fun. I can easily list things I enjoy doing. I can probably even explain why I enjoy doing them and how I want to change or improve.

Sometimes knowing what you would do for fun isn’t easy. It forces you to confront the fact that you do not do some things for fun, that the intrinsic enjoyment of it is dormant or gone. For example, I realized that making or giving presentations had dropped off the list of things I enjoy doing just because.

Are there activities you would like to enjoy more? What about activities you’d like to enjoy less? I’m like that too. Rational economic theory to the rescue! If you look at what you enjoy doing, think about the costs and incentives of different activities, and work on ways to change those costs and incentives, you can make it easier for you to do the kinds of things you want to do and avoid the things you don’t. In this blog post, I’m going to see if this geeky way of looking at fun actually works.

The relevant quote from The Logic of Life: The Rational Economics of an Irrational World ( Tim Harford, 2008)

p4. Rational people respond to trade-offs and to incentives. When the
costs and benefits of something change, people change their behavior.
Rational people think – not always consciously – about the future as
well as the present as they try to anticipate likely consequences of
their actions in an uncertain world.

What do you do? What are your behaviours? What are the benefits? Let’s take a look at fun. Here’s what I do (roughly in order of preference), why I do them, and what I’d like to change.

Spending time with W-. This is an easy one. Pay-off: Richer relationships, more in-jokes, and quite a bit of learning along the way. We like cooking, discussing books, going for walks, and picking up shared hobbies, although we occasionally watch movies (mostly borrowed from the library). Cost: Time. Change: This part has good balance, so I don’t need to increase or decrease it.

Writing. I love writing down what I think and what I’m learning. I’ll even write as a way of procrastinating other things I need to do. Pay-off: The immediate benefits of understanding, the medium-term benefits of recall, and the long-term investment in a knowledgebase. The insights people share with me through comments and the insights they pick up from me through reading are icing on the cake. Cost: Time. Change: I think I spend a good enough amount of time on this and that I get great value for the time I spend on it. I might try spending less time on it.

Reading. I read voraciously. Fortunately, Toronto has one of the largest library systems in the world. Pay-off: I pick up new words and ideas that I can use in life and writing. Cost: Time and space. Change: although taking book notes and doing life experiments based on what I’ve read help me make sure I get more value from the time, I probably spend more time reading than I should. I get diminishing returns from, say, the Xth personal finance book I’ve read, and I suspect I sometimes read things to feel smug. ;) (Like the way people watch reality TV shows?) I can increase the cost of reading by planning to ask questions and write book notes for books that come in. I can increase the benefits of reading by sharing book notes and life experiments. I can shift to higher-value reading (new subjects, question-driven research).

Baking or cooking. I enjoy trying new recipes or making our favourites. Pay-off: Yummy food, new experiences, and closer relationships with W-, J-, and friends. Cost: Time and freezer/fridge/bread-box space. Change: Good balance here, no change needed. (Although it’s interesting that I’ve been procrastinating working on open source in favour of making bread, probably because the pay-off from appreciative family / friends makes me feel warmer and fuzzier.)

Walking or biking. Pay-off: Satisfaction of knowing I’m getting some exercise, long-term health benefits, and often shared time with W-. Cost: Wearing winter-friendly clothes when I’m working at home; making time for a walk when I’m at the office. Change: More of this, maybe at the expense of some writing. (Or maybe I can use walking time to think about what I want to write…) I can lower the costs by changing into going-out-friendly clothes when I’m working at home, and blocking out time for walks.

Planning and reviewing my finances. Yes, I actually enjoy doing my books and reviewing my plans. I’m weird. Pay-off: Satisfaction of knowing things are going well; confidence in being able to plan for purchases or goals. Cost: Time. Change: This doesn’t take a lot of time, but I should probably spend less time on this.

Organizing. Pay-off: Investment into being able to find things again, reducing frustration. The satisfaction of having a neat-ish place. Appreciation from W-. Cost: Time. Change: This is currently reasonable, although I could invest some time into simplifying and improving systems so that I can avoid even more clutter.

Playing the piano. Pay-off: Satisfaction from learning and from listening to music I’m playing. Mental exercise. Appreciation from W- and J-. Cost: Time. Change: I think this is okay. I might look into piano lessons if that will help me learn faster.

Gardening. Pay-off: Yummy food. Satisfaction of self-sufficiency (at least in small parts!). Experiences with nature. Shared experiences with W- and J-. Cost: Time and some money. Change: I want to do this more efficiently next growing season, working my way to a better yield.

Building furniture. Pay-off: Shared interests and shared time with W-. Custom items. The satisfaction of making things. Cost: Time, money, and risk. Change: More of this during the summer! =)

Sewing. Pay-off: Satisfaction of making things that fit my preferences. Cost: Frustration, time, some money. Task-switching cost – have to set up. Change: I’d like to do more of this. I can do that by starting with small projects, practising and improving my skills (so that I can reduce frustration), and attending lessons (formally blocks the time off, makes it easier to task-switch).

Working on open source. Pay-off: The buzz of solving problems; the convenience of programs that fit the way I work a little bit better; the appreciation of other people; improved technical skills. Costs: Task-switching (loading the relevant programs, remembering where I am and what I’m working on, getting into the swing of things); occasional bit of paperwork. Change: I’d like to do more of this, maybe by creating blocks of time where I can focus on open source.

Things that I would like to enjoy more:

Drawing. Pay-off: New skills; satisfaction from creating things; improved ability to communicate. Cost: Not entirely happy with drawing on my tablet yet; switching cost if I use the tablet downstairs. Change: If I get better at drawing through practice and learning, and I get used to drawing with one of the programs on my computer, then I’ll find this easier, more natural, and more enjoyable. GIMP? MyPaint? Paint? OneNote? Inkscape? I should pick one and learn it inside and out.

Making and giving presentations. Pay-off: Improved understanding. Helping other people. Connecting with others. Passive networking. Cost: Time. Risk of boring-ness. Obligation. Stress. Change: If I write more, I’ll have more to harvest for presentations. If I ignore the fear of being boring and just get something out there, that will help me deal with the stress of creating something for public use.

Meeting people. This includes meeting new people as well as hanging out with friends. It’s much too easy for me to go into introvert mode and get out to meet people only once in a while. Pay-off: Potentially interesting conversations. Opportunities to help others. Aha! moments myself. Friendships. Cost: conversations that don’t go beyond news, sports, and weather. Change: I should do more of this. Maybe if I focus on remembering how fun it was to hang out with my friends in the Philippines, that will motivate me to build more friendships here too. Simplifying my get-togethers might lead to my actually having regular monthly get-togethers. Setting aside specific blocks of time to be social will also help me work around my introvert tendencies.

Looking at this, I suppose I could scale back on reading, baking/cooking, planning, and reviewing my finances.

I can integrate organizing into my daily routines better.

I can work on remembering or increasing the pay-offs for meeting people and making presentations.

Then I can set aside blocks of time that I can use for drawing, sewing, or making presentations, and another regular block of time for meeting people or investing in relationships.

When summer comes again, gardening can take the place of some walking, and biking will take the place of my subway commute. Woodworking/building furniture is also spending time with W-, so that should be okay.

Thinking about this and writing things down helps me tweak the balance.

How about you? What do you do for fun? What are the costs and pay-offs? What would you like to change?

The Logic of Life: The Rational Economics of an Irrational World
2008 Tim Harford
ISBN 978-0-385-66387-8

2011-01-19 Wed 06:20

Monthly review: December 2010

January 20, 2011 - Categories: monthly

Update: fixed year, thanks!

Forgot I hadn’t done one of these for December. Good thing I’ve been getting my to-do capture system sorted out again. In November’s review, I said:

What will December look like? Lots of good work, more productivity
experiments, maybe some Android hacking, a few social get-togethers,
and onwards to another great year.

We did most of the work on Project M and Project S, both Drupal projects for non-profits who had received grants from IBM. I experimented with changing what day my week starts on, making taho, illustrating cards, and Android use. Lots of Android hacking, too. Oh, and we disassembled and reassembled a new washing machine and dryer, and both worked! Boy, did we ever learn a lot from that. I posted more sketchnotes, networking tips, Emacs news, and career reflections, too.

  • Plans for January:
    • Work
      • [X] Finish Project M
      • [X] Finish Project S
      • [X] Start new project
    • Relationships
      • [X] Host get-together
      • [X] Send delayed holiday cards
      • [X] Get into the habit of meeting people
    • Life
      • [X] Improve my routines: set aside time for drawing, sewing, and making presentations
      • [X] Post goals

Sketchnotes from Quantified Self Toronto meetup #3

January 21, 2011 - Categories: quantified, sketches, sketchnotes

Click on the image for a slightly larger version.image

Topics: neurotropics, step counting, tracking through low-cost devices (mylifestracks.com doesn’t seem to work – correct URL?)

I also shared my time tracking, grocery tracking, and price book. People found the batch cooking stuff interesting. =) Here are the slides I used:

See past notes: second meetup, first meetup. Check out more sketchnotes, more sketches, or more things about the quantified self. Learn about upcoming Quantified Self Toronto events on Meetup – see you at the next one!

Weekly review: Week ending January 21, 2011

January 22, 2011 - Categories: weekly

Oh boy. Between the M and S projects wrapping up, Lotusphere preparations, and general scrambling, life is going to be pretty busy for the next three weeks. Must make time to get plenty of sleep.

From last week’s plans

  • Work
    • [X] Wrap up project M
    • [X] Document case studies
    • [-] Write about lessons learned
    • [X] Apply to open seats
    • [X] Follow up on Lotusphere – I’m going!
    • [-] Draw networking guide for conferences – more progress
    • [X] Chat with Vikram Kalkat regarding Web 2.0
    • Registered for Lotusphere; booked hotel and flight
  • Relationships
    • [-] Have get-together – postponed to Feb
    • [X] Help with J-‘s Little Big Planet party
    • Baked lasagna and shared it with Morgan and Cathy
  • Life
    • [X] Get through busy week
    • [-] Post more book notes!
    • Attended Quantified Self meetup. Shared my grocery tracking and time tracking experiences. Posted sketchnotes.
    • Posted rational economic theory analysis of things I do for fun ;)
    • Started using Keep Track on the Android to track values (productivity, energy, happiness)
    • Downloaded pre-certified StudioTax 2010 (keener!)

Plans for next week

  • Work
    • [X] Finish deliverables for Project M
    • [X] Get my Lotusphere plans together
    • [X] Prepare Lotusphere BoF resources on working with the Lotus Connections API
    • [X] Finish pre-conference networking tips slides
  • Relationships
    • [X] Connect with coworkers
    • [X] Be extra-wonderful to W-
  • Life
    • [X] Survive even busier week
    • [X] Book a massage for some time after I get back from Lotusphere?

Time analysis

Category Hours Last week Notes
Sleep 61.6 61.1 8.8 hours of sleep a day; the constant battle of the satisfaction of waking up early, the need to avoid sleep deprivation, and the interestingness of evening life
Work 46.4 40.7 Overtime dealing with project wrap-up
Routines 16.0 18.4 Cooking: 1.6 hours, tidying: 0.5 hours
Break 12.0 16.5 Mostly eating-related; will break this out separately
Social 10.1 13.2 Quantified Self meetup, hanging out with W- and J-
Exercise 7.7 6.6
Writing 7.3 7.2
Travel 2.9 2.8
Learning 2.7 0.9
Outsourceable 0.8 0.3

I’m going to try limiting my writing time further, and cutting a little bit back on sleep. Also experimenting with breaking routines down into more detail.

Sketches: What index cards are teaching me about drawing

January 23, 2011 - Categories: presentation, sketches

I resolved to spend less time writing and more time drawing. Today was difficult. I had too many stories to tell, too many thoughts to catch.


My thoughts flitted about, escaped. Drawing was frustrating. I felt inarticulate. And yet, slowly, I started to be able to breathe with it.


But then, an afternoon later, I found myself drawing.



Most of the time, I even managed to concentrate on a project I’d been procrastinating for a while. Here is one frame that will probably become a slide:


Another figure takes shape under my fingers.

I draw a conference badge and write down some tips. I relax by drawing a cat. Another tip or three. Another cat. The next steps. A personal goal. A networking tip. A meta-reflection.


I love drawing on the computer because of the colours, the ease of revision, the cleanliness of the lines, and the infinity of space that I can draw on.

Today I discovered the joys in the greys of pencil on card, the smudges of erasures never completely gone, the  roughness of lines, and the constraints of a 3×5 card. And something else about the way I draw–

In snatches, in non-linear frames, like the way I hear snippets of future speeches in my imagination–

Jumping around, going where curiosity takes me. It’s like I dip in and out of watching this presentation, but it’s all jumbled up. I might say, oh, there’s a nice idea. That one too. Let’s see… oh, yes, that makes sense. And yet there’s me in this too, saying, hmm, what if there’s this? And then this? Oh, then that would mean that this would be good for this part. Now that will need revision. I’ll draw a new card. Ah, it’s slowly coming together.

I spent eight hours drawing. I can draw hands better than I did before. And bicycles. And conference tips. It was fun.

There’s more to draw and more to learn. Maybe I’ll throttle my writing further by coursing it through drawing, letting the frustration of pent-up stories drive me to increase my visual vocabulary and my drawing skills. It’ll be interesting.

Index cards. Try them out. =)


January 24, 2011 - Categories: sketches


W- hung up a bird-feeder, suspending it underneath a baffle (here a repurposed metal plate supposed to block squirrel access) and dangling it from a far branch. The squirrels have been undeterred, raiding the seed supply for food to get them through another winter. No birds in sight. They’re all hanging out near the warmer parts of this neighbourhood, no doubt. So much for fair-weather friends not easily bribed with a handful of seeds.

We once checked out a book declaring war on squirrels. It contained reviews of different “squirrel-proof” bird-feeders, concluding that there really is no practical way to foil this ingenious and nimble animal. (Well, maybe the chicken-wire cage we built to protect our plants – but then the birds can’t get through the mesh, either…)

That’s okay. Let them eat the seeds. Winter is winter. And isn’t it fascinating how they persist, how they contort, how they dangle and leap like Cirque du Soleil acrobats in order to get what they want?

We scatter peanuts on the snowy deck so that our cats can watch the squirrels grab them. Some squirrels are cheeky enough to tease the cats, safely separated by solid glass. The cats chatter, little hunters gnashing their teeth and twitching their tails. We have fun watching the cats watching the squirrels.

I’m having more fun drawing on index cards now. I can carry more shapes in my head. And I drew all the pieces I needed for a standalone presentation I’ve meant to put together for a while. We’ll see how well it works!

Tweaking fun and nudging myself out of procrastination

January 25, 2011 - Categories: kaizen, life, productivity

Using rational economics to analyze what I do for fun seems to have paid off. By changing the costs and benefits of different activities, I’ve managed to nudge myself out of (excessive?) reading and writing, finally tackling some projects I’ve been procrastinating for a while.

Increasing the cost of reading: I decided to be pickier about the books I read. Instead of skimming books looking for nuggets or interesting turns of phrase, I now check the table of contents, head straight for the chapters with the most promise, and evaluate whether or not to continue. This means I spend less time reading on autopilot. While I’d love to be enthused about Mortimer J. Adler’s collection of essays and references on the Great Books, it’s just lower-priority at the moment.

Increasing the cost of writing: Switching to a “draw first, then write” procedure is working well for me. Not every blog post is going to be illustrated, but it will be fun drawing more. I might also experiment with requiring myself to work on a non-writing, non-reading personal project (sewing, for example) before I can sit down to write a blog post. Or maybe walking, and even tying the length of time or the number of words I can write to the length of exercise or the number of steps (divided by a suitable number, of course). This probably means going back to evening pages, although exercise would go well with morning pages.

Decreasing the cost of drawing: Achieved by settling in for a good afternoon of drawing with pencils, index cards, and cats willing to provide creative breaks. Result: I drew the networking tips presentation I’ve been procrastinating. I’ve sent it off for review, and will post it when approved.

Decreasing the cost of sewing: Making the time to watch the instructional videos helped me learn how to use the serger, which meant being able to finish the pants I’ve been meaning to hem.

Next: Hmm, maybe I can apply the same process in order to become more social…

2011-01-25 Tue 20:45

Cross-posting between Lotus Connections blogs and a personal blog

January 26, 2011 - Categories: blogging, ibm

I confess: I sometimes forget to update my internal blog. I want to reach as wide an audience as possible, and my personal blog is a way of making ideas and thoughts and insights searchable and public. While I update my personal blog every day (and still have plenty of stories I want to share), my IBM blog occasionally languishes. I post when I have something specific to say about IBM, but otherwise, I forget. New resolution: cross-post more – who knows who might find it useful?

Here’s something I want to share which will definitely help me, at least two other people, and possibly others too. =)

Delphine Remy-Boutang and Anna Dreyzin asked me how to cross-post between blogs. I don’t know of an automatic way to do this yet, although I keep being tempted to write a tool that periodically checks my external blog for posts tagged “ibm” and crossposts them to my Lotus Connections blog. There’s a manual way to do it, though. Use a desktop blog editor that makes cross-posting easier.

How: I’ve set up Windows Live Writer to publish to both my WordPress blog (http://livinganawesomelife.com) and my Lotus Connections blog (http://w3.ibm.com/connections/blogs/sachachua , accessible only within IBM). After I publish a post, I click on the blog dropdown in the top left corner to select another site, choose new categories, perhaps edit the body of the post, and publish the post again. It takes a few extra clicks and opens up a whole new world of serendipitous conversations.

Now why: Why cross-post between blogs?

I see my personal blog as an archive of things I’ve learned. If something can be publicly shared, I’d like to share it there. If not, I can copy the information into my private notes for ease of reference.

Cross-posting to an internal blog makes it easier for people to come across potentially useful posts through our internal search engine as well as through browsing the recent updates. For example, I really should go back and cross-post my Drupal-related posts.

Cross-posting to an external blog makes it easier to keep those blogs up to date and to engage a different audience.

Kaizen (continuous improvement): I’m this close to either writing a Java tool or hacking org2blog.el to support crossposting. ;) The Java tool will probably be easier to share with other people. I might give it a try.

What do you do to make cross-posting easier?

Draft Lotusphere BoF on working with the Connections API

January 26, 2011 - Categories: conference, ibm, lotus, presentation

My birds-of-a-feather session got voted into Lotusphere 2011, so I’m preparing some conversation starters.

What should we add to this? What should we remove? #ls11

A braindump of tips for other new immigrants from the Philippines

January 27, 2011 - Categories: canada, philippines, tips

For Anna Simbulan (welcome to Toronto!) and others this can help along the way. =)

  • Winter and clothing

    Toronto can be cold. Dress in layers. Long underwear, sweaters, gloves, and hats can help you keep warm. Thinsulate is better than knit when it comes to blocking out wind. Layers are better than a big coat because you can adjust the warmth depending on changes in weather, physical activity, etc.

    Winter can also be pretty grey and depressing. If you’re finding it hard to get through the day, get plenty of sunlight. Sometimes colourful things can be helpful, too.

    Things might look pretty expensive, particularly if you do the CAD-PHP conversion and think about how much cheaper you could get things at ukay-ukay or bazaars. Check out second-hand stores like Goodwill, Salvation Army, and Value Village. You can usually find perfectly good clothes, coats, and household items for much cheaper than the retail price.

    If you need to walk around downtown Toronto, check out the underground PATH.

    Find something to enjoy about winter. I’ve learned to think of winter as a season for cooking, baking, hot chocolate, and early(ish) bedtimes.

  • Home and society

    Be prepared for homesickness. It’s a natural part of moving.

    Be prepared for cultural differences. Avoid making jokes or statements that are racist, sexist, homophobic, or otherwise politically incorrect.

    It can feel pretty lonely when your barkada and social support networks are half a world away. Check out classes, go to activities, meet people, make new friends.

    Free video-calling programs like Skype and social networking tools like Facebook help you keep in touch with old friends.

    If you want to cook recipes from home, you can find many of the ingredients in Chinatown or even in some of the larger supermarkets. For example, you can find Skyflakes, ampalaya, bagoong, and halo-halo ingredients in Chinatown. The No Frills supermarket in Dufferin Mall has Skyflakes, too.

    There aren’t that many Filipino restaurants downtown, though. Definitely worth learning how to make things at home. You may find some neighborhoods with Filipino stores (including places where you can buy balikbayan boxes). See http://en.wikipedia.org/wiki/Little_Manila#Toronto

  • Resources

    The Toronto Public Library is amazing. Sign up, get your library card, and use http://torontopubliclibrary.ca to get books delivered to the branch closest to you. It even has a number of books in Filipino. Check out the e-books, movies, music CDs, and graphic novels as well.

    The library has many seminars for newcomers and job-seekers. There are many other newcomer organizations, too. Take advantage of the services and training they offer, such as networking events and free training.

    Public transit works pretty well. You can even use maps.google.com to plan your route.

  • Work

    If you’re applying for a job, it’s worth reviewing your resume and using the Canadian conventions. For example, people here don’t indicate their age, marital status, height, or weight on resumes.

    If you get stumped by employers requiring Canadian experience, consider volunteering or working in a different position for some time in order to pick up that experience.

  • Finance

    If you’re having a hard time getting a credit card, get a secured credit card first, then use that to build your credit history. When I started, I got the TD Green Visa card. I deposited some money and that deposit was used to secure the card. Once you qualify for a better card, you can switch to something like PCFinancial Mastercard (equivalent of 1% rewards) or MBNA Enrich (3% cashback on groceries, 1% on regular purchases).

    Compare prices online. Buying textbooks or other things? Check ebay.ca and other sites before buying things in person. You can often find significant discounts online, too, and shipping is reliable. Look for free or cheap stuff on craigslist.ca or kijiji.ca, or join a Freecycle group.

    Keep some savings in a checking account as an emergency fund / buffer and the rest in a high-interest savings account. Don’t overload yourself with credit card debt. Pay off your credit card every month, if you can, and plan your spending so that you don’t have to live paycheck to paycheck.

    Enjoy life. =) There will probably always be things and people you will miss, but maybe Toronto can become a second home.


    What other tips would you add?

Pre-conference networking tips for the Instructional Technology Strategies Conference

January 28, 2011 - Categories: conference, connecting, sketches, speaking, tips

This is for http://itsc.oetc.org . Thanks to Darren Hudgins for the nudge to make this!

Weekly review: Week ending January 28, 2011

January 29, 2011 - Categories: weekly

I’m typing this weekly review outside an empty meeting room at the Walt Disney World Dolphin Hotel, where Lotusphere will be held this year. It’s definitely conference season.

I’d been taking a lower-key approach to presenting this year, so I don’t have too many conference commitments planned. I had fun sketching pre-conference networking tips for ITSC using index cards.

Definitely an early bed time tonight. Plenty of work this week.

Plans for last week

  • Work
    • [X] Finish deliverables for Project M
    • [X] Get my Lotusphere plans together
    • [X] Prepare Lotusphere BoF resources on working with the Lotus Connections API
    • [X] Finish pre-conference networking tips slides
    • Helped build Drupal site for internal coordination of marketing materials for AIS Canada – yay for being able to quickly build things using Drupal!
    • Talked to two groups about Idea Labs
    • Booked travel arrangements for Lotusphere
  • Relationships
    • [X] Connect with coworkers
    • [X] Be extra-wonderful to W- (taking off for a week)
    • Accepted accommodation plans for Kathy and John’s wedding in the Netherlands
  • Life
    • [X] Survive even busier week
    • [-] Book a massage for some time after I get back from Lotusphere?
    • Connected with Toronto newcomer from Philippines

Plans for next week

  • Work
    • [X] Help at Lotusphere as a room monitor
    • [X] Potentially host a BoF on the Connections API
    • [X] Learn from Lotusphere presentations (content and technique)
  • Relationships
    • [X] Connect with IBMers, partners, and clients at Lotusphere
  • Life
    • [X] Do time analysis of conference time
      • Can I still get ~8 hours of sleep a day?
      • What’s exercise like?
    • [X] Eat salads. See if I can order half-portions.

Time analysis

Category Hours Last week Notes
Sleep 55.3 61.6 7.8 hours of sleep a day
Work 40.4 46.4 Some breathing time between projects
Social 12.8 10.1
Drawing 12.8 Maybe half of this counts as work
Routines – general 8.7 13.9
Routines – cooking 3.7 1.6
Routines – tidying 2.5 0.5
Prep – planning 0.7
Prep – laundry 1.7
Prep – general 5.1
Break 9.0 12.0
Exercise 4.0 7.7 4 days with at least 10k steps
Sewing 3.6
Travel 2.8 2.9
Writing 1.8 7.3
Learning 1.2 2.7
Outsourceable 0.8

What have I learned?

Rational economics is useful for modifying your own behavior.

If I spend my weekend afternoons or weekday evenings drawing or sewing instead of writing, I can get into the flow and make a lot of progress.

It’s satisfying to check off things I’ve been procrastinating.

On the other hand, it’s hard to resist writing, because thoughts are buzzing around in my head. Drawing helps a little with that.

Maybe I’ll try doing only one day of alternate focus each week. That might give me some space. Although I’m not sure if it’s the confounding effect of a conference – I always get a little buzzy around conferences. It’s like adapting to a new time signature or tempo.


February 2011

Lotusphere 2011 wrap-up

February 4, 2011 - Categories: conference, ibm, lotus

This was my first Lotusphere, and it was a blast. Lotus has such an active, passionate, experienced community around it. Heading to the conference, my goals were:

  • [X] Learn more about Lotus Connections adoption and APIs
  • [X] Learn about IBM’s strategy and innovations
  • [X] Get a sense of the ecosystem around Lotus (partners, clients, etc.)
  • [X] Meet people and make personal connections
  • [X] Brainstorm and share insights
  • [X] Show my appreciation for the cool work people do
  • [X] Learn more about conferences and presentations
  • [X] Fulfill my room monitor responsibilities

Here’s what I took away from the sessions and BoFs I attended:

Clients are interested in collaboration and have lots of adoption insights. We’re starting to see interesting case studies from clients. In addition to reporting excellent returns on their investments, clients shared qualitative feedback, such as stories of pilot groups who couldn’t imagine giving up the tools. Successful clients used executive support, communication plans, mentoring, metrics, incentives, role models, and other techniques to help people make new forms of collaboration part of the way people worked. sketchnotes from the birds-of-a-feather session on adoption

LotusLive is awesome. LotusLive currently includes web conferencing and parts of Lotus Connections. LotusLive Labs includes a technical preview of LotusLive Symphony (collaborative document/spreadsheet editing), Slide Library, and Event Maps. (I wish I’d seen Event Maps when I was planning my Lotusphere attendance!) Granted, Google Docs has been around for longer than LotusLive Symphony, but I’m curious about the ability to assign sections for editing or review.

Activity streams and embedded experiences are going to change the inbox. I don’t know when this is going to go into people’s everyday lives, but the idea of being able to act on items right from the notifications will be pretty cool – whether it’s in an enriched mail client like Lotus Notes or a web-based activity stream that might be filtered by different attention management algorithms. It’ll be interesting to figure out the security implications of this, though. It’s already a bad practice to click on links in e-mail right now, so full embedded transactions might encounter resistance or might open up new phishing holes. Project Vulcan is worth watching.

People are already doing interesting things with the Lotus Connections API. Embedding Lotus Connections content / interactions into other websites, adding more information to Lotus Connections, using different authentication mechanisms… people are rocking the API. The compliance API that’s coming soon will help people do even more with Lotus Connections interactions, too.

The next version of Lotus Connections will be even cooler. I’m particularly excited about the idea blogs and the forum improvements, which seem tailor-made for the kind of collective virtual brainstorming we’ve been doing in Idea Labs. Idea blogs are straightforward – a blog post or question with comments that can be voted up or down – but they’ll go a long way to enabling new use cases. Forums will also have question/answer/best answer support.

Sametime Unified Telephony rocks. I need to find out how to get into that. I like click-to-call ringing everyone’s preferred devices, easy teleconferences, and rules for determining phone forwarding.

Lotus Notes and Domino are getting even more powerful. XPages looks pretty cool. I’ll leave the rest of the commentary on this to other bloggers, as my work doesn’t focus enough on Lotus Notes and Domino for me to be able to give justice to the improvements.

The Lotus ecosystem is doing well. Lots of activity and investment from partners and clients.

Analytics + research = opportunity. Interesting research into attention management, activity streams, social network analysis.

Lotus geeks are a world of their own. It’s amazing to spend time with people who have immersed themselves deeply in a technology platform for almost two decades. There’s a depth and richness here that I don’t often find at technology conferences. There’s also a lot of tough love – people like IBM, and they’re not afraid to call us out if we’re not clear or if we seem to be making mistakes. =)

Notes from conversations

The hallway track (those informal encounters and chance connections) resulted in great conversations. For me, the highlights were:

  • Being adopted by various groups – so helpful for this Lotusphere newbie! Special thanks to @alex_zzz>, @belgort, @billmachisky, @branderson3, @ericmack, and @notesgoddess for bringing me into fascinating conversations.
  • Andy Schirmer walking me through his task spreadsheet with eight years of task data summarized in some very cool graphs. I want to have data like that.
  • Talking to Hiro about crowdsourcing and sharing the cool things we’ve been doing with Idea Labs.
  • Seeing all these people I met online. Finally getting to meet Tessa Lau, Bruce Elgort, Julian Robichaux, Mitch Cohen, and other folks, too! It’s great to be able to connect with people on a personal level, thanks to blog posts and Twitter. (How do people manage to keep up to date and remember all of this stuff? I felt all warm and fuzzy when people congratulated me on the recent wedding, and I wished I remembered more tidbits about them. Working on that!)
  • Being reminded by David Brooks and other early adopters that I’ve been around from the beginning of Lotus Connections. (Okay, David did that in a BoF.) It seems Lotus Connections has always been around. <laugh>
  • Joining the geek trivia challenge. The questions about television and comics went way over my head, but it was good to spend time with other folks, and I had so much fun. Well worth needing to figure out how to get back to the Port Orleans hotel after the conference shuttle service ended.
  • Talking to Jeanne Murray and Rawn Shah about a personal maturity model for social business. Some ideas: control of recipients, trust, transparency, conflict resolution techniques, asymmetric knowledge of others, persona separation/integration, acceptance of change; overlap with leadership maturity models; context dependency of decisions…
  • Talking to Bonnie John about the politics of writing about process improvement. Interesting thing to untangle. More thinking needed.
  • Swapping tips on Gen Y life with Julie Brown, Alexander Noble (@alex_zzz>), Brandon Anderson (@branderson3), and others

If I get to attend Lotusphere again, I’d love to be able to stay at the conference hotel. It would be much more convenient and I’d be able to go to more of the evening get-togethers. The chances of my being able to attend again probably depend on how much of the Social Business adoption consulting we’ll get to do over the next year, and I hope we do a lot. I’d also make time to check out the showcase. I missed it this year, thanks to all that chatting.

Next actions for me

For work, I’ll probably focus on external Web 2.0 / social media site development while other groups figure out the structure for social business adoption consulting. I’m looking forward to learning from the case studies, insights, and questions that people have shared, though, and I’d love to do more work in this section.

Here’s what I need to do for post-conference wrap-up:

  • [X] Go through my index cards and write additional notes
  • [X] Contact people I met and follow up on conversations
  • [X] Catch up with work mail
  • [X] Catch up with personal mail
  • [X] Write further reflections
    • [X] Time analysis
    • [X] Appearance and bias
    • [X] IBM and women in technology
    • [X] Reflections on careers, loyalty, story, and alternatives
    • [X] Presentation reflections (time for questions, presentation style, rapport, morning sessions?)
  • [X] Plan my next steps

Other Lotusphere 2011 wrap-ups you might like: Chris Connor, David Greenstein, Luis Benitez (Day 1, Day 2, Day 3, Day 4, Day 5), Andy Donaldson, Marc Champoux (… where are the female bloggers’ writeups?)

See also: Lotusphere social aggregator, Planet Lotus, Twitter search for #ls11, Twitter/blog archive

2011-02-04 Fri 16:04

A story of pi

February 4, 2011 - Categories: geek

A trivia question related to pi and my teammate’s subsequent recitation of pi to ten digits reminded me of this memory which I may not yet have shared here.

It was an evening get-together with several friends in the roofdeck garden of our home in the Philippines. After dinner, the conversation turned to geek superpowers, the little specialties and quirks we’d developed over time. The friend on my left started reciting the digits of pi. To my surprise, the friend on my right joined in – the same pace, the same digits, and I in the middle entranced by this melody of tenor and baritone. They went to about 100 digits head to head, then one dropped out; the other continued to 200 digits or so. It was as sublime a concert as I have ever listened to.

If you’re curious, you might want to check out the Wikipedia page on piphilology – the creation and use of techniques for remembering pi.

Like the way beauty often brings pleasure to viewers, my reaction to intellectual displays is closer to “Oooh, that’s awesome” than to “You have way too much free time.” W- and I have tons of geek moments, and I’m lucky to meet so many people who relish being geeky. Life is good.

2011-02-04 Fri 21:52

On appearance and bias: thoughts from the Nerd Girls panel at Lotusphere 2011

February 5, 2011 - Categories: reflection, women


One of the topics of great interest during the Nerd Girls panel at Lotusphere 2011 was that of appearance. How important is grooming? What about first impressions?

People shared the usual advice: Dress appropriately. Be yourself. Neatness counts.

Like the way I skip fluffy guest posts full of cliches, I try to avoid sharing the same thoughts you’ll find everywhere else. So I found myself thinking about one of the points raised, which you don’t encounter that often.

One of the participants had observed that “booth babes” at a tech convention can drive people away. My take-away from that is that *you should make sure that what you communicate with your appearance supports what you want to communicate.* Too much attention to appearance can conflict with your goals. You can dress to blend in or you can dress to stand out. Suits help you build rapport with people who are more comfortable with suits. Jeans and a geek T-shirt help you build more rapport with people who are more comfortable in jeans and T-shirts.

Tweaking convention can support your goals, too. I’ve turned up at technical get-togethers in brightly-coloured ethnic clothing to make several points along the way: a. it’s okay to bring personal interests into the tech world, b. it’s okay to be a girl, c. there are people here from different cultures, and d. it’s good to have fun. That this made me easier to spot in a crowd was an excellent bonus, and it worked really well.

Know what you want to say, and make sure your appearance supports it. Re-think what you want to say, too. For example, if the path towards becoming an executive requires expensive suits and other status symbols, it might not be for a person who disagrees with dry-cleaning, at least until people create better washable suits. (Or you can pick a different uniform: black mock turtlenecks and jeans totally works for Steve Jobs.)

I dress for minimal thought during most days, for either blending in or standing out during get-togethers, and for practicality when travelling. Slacks, blouse, sweater/blazer, and scarf give me a good uniform for the workweek. If I’m speaking at a conference, I might dig out my cream suit. If I’m attending a crowded event, I might wear a red top or bring a hat. If I’m travelling, I pack my Tilley’s Endurables businesswear: hand-washable slacks, blazers, and blouses that will dry overnight in a pinch. I wear flat shoes for comfort and boots for warmth. These routines mean that I need to spend very little time thinking about what to wear.

There’s a limit to how much time, money, and energy I want to spend on appearance. I’m not going to spend on make-up, cosmetic surgery, or designer items. I suppose going to a dermatologist or having frequent facials could help my face clear up, but it’s no big deal. I won’t experiment with body ink, piercings, or hair colour. The gradual onset of gray hair won’t be dyed away, and the wrinkles will be welcomed. (I do invest energy into making sure I get the kind of wrinkles I want: more smile lines than frowns! =) ) This is partly because I have other priorities, and partly because I want to help build a society where these things matter less, where we don’t shame people for appearance or age or lifestyle choice.

Thinking about this further, I realized that I’m not really interested in the conventional approach to thinking about appearance. This topic usually focuses on: “How can I get other people to think better of me? How can I increase my chances for a raise or a promotion? How can I project more status and confidence?”

For that part, my questions are more along the lines of “How can I stay true to my values? Are my goals in line with those values and priorities?” And there’s another, much more interesting question for me: *”How can I correct my biases?”*

Our biases around attractiveness reduce the quality of our decisions. People get dinged for being too fat, being too old, being too plain, and even being too attractive. Women are more harshly judged than men, and are the target of much body-policing from advertising, media, coworkers, friends, and even themselves.

I’ve received plenty of privileges. I’m young, female, enthusiastic, and easy to get along with, and that has almost certainly helped me do what I do. I have plenty of mentors while other people (perhaps less cheerful, perhaps less “cute”) It sometimes works to my disadvantage. There are areas of consulting that I probably won’t focus on until I have more gravitas, if ever.

I also carry biases. There’s that preference for people who are cheerful; people with symmetric, angular features; people who are trim; people who carry themselves with confidence. I work against these preferences, pull my attention away from that so that I can focus on other factors, try to separate seeing from thinking. (I indulge this bias with my husband, though, whom I think is very handsome, and with whom I have the license to look at as much as I’d like; but I always make it clear that I love him for much greater reasons.)

Likewise, there’s dealing with that reactive judging of people who frown a lot, people with weaker postures, people who are overweight, people who dress inappropriately… I work to separate negative perceptions and reality so that I can make better decisions. There’s ableism, sexism, ageism, racism, and a million unnamed stories we tell ourselves without examining them closely.

You can eliminate the visual aspect through teleconferences, but that doesn’t solve the problem. We joke about everything sounding smarter when said in a British accent, but accent stereotypes do influence judgment. I’m glad that accents are getting more mixed up now, what with people mixing cultures and people getting cross-trained in different accents. It helps challenge that bias. Then there’s confidence and pitch and vocabulary and fluency…

Paying attention to and adjusting for all these biases is partly why I like the move towards virtual connections, particularly during the beginning. If I can’t see or hear people, I can more easily focus on what they say. However, the Internet replaces one set of biases with another. Instead of being influenced by appearance, I’m biased by how articulate someone is – and that’s tangled up in class and education and culture and the availability of leisure time and the ability of people to access this technology.

It isn’t easy to separate all these factors, and I may never be able to do it completely. There’s a bit of shame in it too, when I realize how many of society’s messages I’ve internalized into these quick impressions of other people.

I want to make better decisions. I want to be able to see the best in people, unclouded by the preconceptions I carry. I might never be able to eliminate my biases, but I can recognize them and slow down when they might be in play. If I slow down and understand, for example, how my first impressions colour my decisions, then I can clarify my reasons and reject invalid ones.

You’ll find plenty of books about how to groom yourself for particular kinds of success. Wouldn’t it be interesting to build a society where this matters less?

Colander photo (c) 2010 Ben Hosking – Creative Commons Attribution License 2.0

2011-02-05 Sat 08:40

Weekly review: Week ending February 4, 2011

February 5, 2011 - Categories: weekly

Plans from last week

  • Work
    • [X] Help at Lotusphere as a room monitor
    • [X] Potentially host a BoF on the Connections API
    • [X] Learn from Lotusphere presentations (content and technique)
  • Relationships
    • [X] Connect with IBMers, partners, and clients at Lotusphere
  • Life
    • [X] Do time analysis of conference time
      • Can I still get ~8 hours of sleep a day?
      • What’s exercise like?
    • [-] Eat salads. See if I can order half-portions. – Mostly, but I really like having hot meals. Buffet was okay because I could eat smaller portions.

Plans for next week

  • Work
    • [X] Start on new project involving Facebook and Rails
    • [X] Work on ITSC blog post, keynote presentation
    • [X] Post more Lotusphere-related reflections
    • [X] Work on Deeper Insights presentation on social learning
    • [X] Work on Remote Presentations that Rock presentation
    • [X] Possibly sign up for consulting course
  • Relationships
    • [X] Catch up with tasks at home
    • [X] Give Maira some of the spices
    • [X] Organize get-together
  • Life
    • [X] Share more reflections from Lotusphere
    • [X] Open up investing TFSA with Waterhouse
    • [X] Review my goals and upcoming projects

Time analysis

Category Hours Last week Notes
Sleep 53.8 55.3 Conference sleep length: 8:25, 7:45, 6:25, 6:08, 6:51, 6:53; catch-up 12:43 on Friday
Work 59.9 40.4 Lots of conference time
Travel 19.6 2.8 Two flights, a number of hotel shuttles
Social 14.8 12.8 Hanging out with Lotusphere folks
Routines – general 7.8 8.7
Prep – general 4.0 5.1
Break 3.8 9.0
Writing 3.6 1.8
Exercise 0.5 4.0 A lot of walking got filed under work
Drawing 12.8
Routines – cooking 3.7
Routines – tidying 2.5
Prep – planning 0.7
Prep – laundry 1.7
Sewing 3.6
Learning 1.2

Observations: I got a decent amount of sleep during the conference. As expected, work expanded into the time I normally spend writing or hanging out with W- and J-. I spent most of the travel time writing, listening to audiobooks, watching movies (RED, The Social Network), and napping.

I walked around 16k steps a day (up from my 12k goal; there was one day I walked over 20k steps). My shoes weren’t the best for walking. They’re flat, but they didn’t have the padding of tennis shoes or hiking boots. The cushioning insoles helped, though. No blisters. Still looking for office-ready flat shoes with good support.

Monthly review: January 2011

February 6, 2011 - Categories: monthly

2011 was off to a great start. Lots of Drupal work, a conference, and a new project lined up. I started an internal project using Drupal 7, which is pretty cool. I got into the rhythm of making bread every week and of baking larger batches of food to share. I made time for some things I’d been procrastinating, and I had fun. I’ve been reading more books that analyze everyday life, and I’ve been having fun using those perspectives to examine my life. Good stuff.

Plans for January:


  • [X] Finish Project M
  • [X] Finish Project S
  • [-] Start new project – Finished the month with Lotusphere, lined up a project for return


  • [-] Host get-together – Postponed to February
  • [-] Send delayed holiday cards – Oops!
  • [-] Get into the habit of meeting people – Must work on this


  • [X] Improve my routines: set aside time for drawing, sewing, and making presentations
  • [-] Post goals – Wrote goals, haven’t posted them

Plans for February:


  • [X] Work on new project
  • [X] Put together talks for Deeper Insight, Remote Presentations That Rock, and the ITSC
  • [X] Mentor more people


  • [X] Organize get-together
  • [X] Get visa and arrange travel details


  • [X] Write up more reflections




Geek stuff


2011-02-05 Sat 17:44

Disagreement and the road to trusting yourself

February 6, 2011 - Categories: kaizen, life

I’m glad whenever I find myself disagreeing with someone. Sometimes I change my mind, learning more in the process. Sometimes I understand my own reasons better, and learn more about why I think what I think. As long as I disagree well – in an argument instead of a fight, clearly presenting reasons and understanding alternatives – then I grow in the process.

Henry Will sent me a link to this Harvard Business Review blog post on teaching yourself to trust yourself.

…take the time, and the quiet, to decide what you think. That is how
we find the part of ourselves we gave up. That is how we become
powerful, clever, creative, and insightful. That is how we gain our

It reminds me of this slim book I tucked into my library haul: Anna Quindlen’s Being Perfect. Here are some excerpts:

p.12: Trying to be perfect may be inevitable for people who are smart and
ambitious and interested in the world and in its good opinion. But at
one level it’s too hard, and at another, it’s too cheap and easy.
Because all it really requires of you, mainly, is to read the
zeitgeist of wherever and whenever you happen to be and to assume the
masks necessary to be the best at whatever the zeitgeist dictates or

… But nothing important, or meaningful, or beautiful, or
interesting, or great, ever came out of imitations. What is relaly
hard, and really amazing, is giving up on being perfect and beginning
the work of becoming yourself.

Connect that with this excerpt from Everyday Ethics by Joshua Halberstam:

p109: We live our lives within a changing moral climate, and the
temptation to adapt can be overwhelming. … The moral nonconformist,
however, pays little attention to the popularity or unpopularity of
his moral positions. He is–it’s embarrassing to talk this way in our
cynical world–after truth, not applause. Genuine moral nonconformity
is difficult to achieve and difficult to maintain. Don’t be too quick
to assume you’re already there.

It isn’t easy to figure out what one thinks.

For me, writing and drawing are the best ways to sneak up on myself. In conversation, I’m sometimes too malleable. I catch myself listening for approval. Even when blogging, I catch myself refreshing the pages, looking for comments, looking for validation. Because the feedback for writing tends to be slower and more in-depth than the reactive cues of conversation, though, I have more time to think about my reflections and develop them. I can also slow down and untangle the feedback on my message from the feedback on my way of delivering it.

When I can form a tentative understanding of a topic, then test it in discussion with other people or in contrast with other positions I read, then I gain a little more confidence that my reasons are rooted in more than the urge to agree or disagree. Running into the imperfections of my understanding is part of the adventure of becoming myself.

Tying it all together into tips for myself and for other people this might help: Feedback might be about your message or about your delivery. Be clear about what kind of feedback you’d find the most helpful – usually feedback on delivery, if you want to keep your message authentically you, although content-related feedback can also help you recognize what you resonate with. Don’t be limited by the idea of perfection or the need for agreement. Test yourself and learn how to trust your thoughts.

How are you teaching yourself to trust yourself?

2011-02-06 Sun 21:16

Working on estimates

February 7, 2011 - Categories: geek, ibm, learning

Today I sat down with my manager to sketch my learning plan for 2011. I’ll start off with skills for IT architecture: defining scope and estimating effort for projects, designing and implementing systems, and leading the development. For development, I’ll focus on rich user interfaces, modernization, and integration. Next, I’ll learn more about solution development. In the second half, we’ll see if I can learn more about leading teams.

I spent most of the afternoon working on documents of understanding and estimates for upcoming projects. It’s interesting work, although I don’t trust my numbers quite yet. I’ll get better at estimating the more I do it, and I plan to prototype something quickly to check some of the numbers for the riskier parts. It’s actually quite fun doing this number-crunching. It’s like balancing my books. (Yes, I’m weird.)

It’ll be even more wonderful when I’ve gotten the hang of doing these things. Yay learning on the job!

2011-02-07 Mon 21:52

Things to write about: questions for your blogger’s block

February 9, 2011 - Categories: blogging

People often tell me they’re worried about finding enough material for their blogs. The truth is, there’s so much you can write about. Here are four questions that can help you think of things to share.

What do you want to learn more about? When you write about something – whether it’s completely new to you or something you’re puzzling out – you can understand it more deeply. Write about what you’re figuring out. Write about how you’re figuring it out. Write about what you’re learning along the way. (Sharing is an excellent way to learn even more – people often comment with better ways to do things!)

What do you want to change? This is like writing in order to learn more, but with commitment and action. Do you want to change the way you spend your time? Think about what you do, why you do it, and how you’re going to change. Want to save more? Write about your goals and your progress. Writing helps you understand more, identify ways to improve, and publicly commit to growing. It also gives you a record of progress, which can be useful for motivating yourself.

What do you want to share with other people? Have you solved a problem that other people will probably run into? Save people time by sharing your solutions. Do you have a tip that will make it easier for people to do things? Share that. Do you have a passion you’d like to teach others? Share that.

What do you want to remember? Write about the memories you want to be able to revisit. Write about the feelings and reasons you may want to review. Write about tips and solutions you’re likely to need again. Write for yourself. It’s okay.

I tend to write posts that combine these questions. For example, my reflections on what I do for fun help me learn more, change, and remember why I want to change. If sharing the process inspires others, that’s a neat bonus.

How about you? What do you want to learn more about? What do you want to change? What do you want to share? What do you want to remember?

More tips on how to have tons of topics

2011-02-09 Wed 06:01

Thinking about personal random moment studies

February 9, 2011 - Categories: geek, productivity, quantified

John Handy Bosma (Boz) proposed a personal productivity random moment study. His goals are:

  • Find out how he’s spending his time in terms of the proportion between important and unimportant task
  • Show the connection between what he’s working on and the business priorities
  • Improve his productivity
  • … and do all of that with at most 5 minutes of tracking a day.

The interesting thing about randomness is that it might have a different effect on behaviour. If you can’t anticipate when you’re going to get polled and you’re honest about your responses when you do, would that help you focus on more important things so that you don’t catch yourself goofing off during the polling time?

What are good questions to ask during the sampling moment? Boz has:

  • What are you working on?
  • Who are you with?
  • How important is this?
  • How is this related to the business objectives?

These questions also helped Boz stay focused – immediate benefit.

Questions/ideas related to tracking:

Is the effect of uncertainty worth the added effort required to build a custom tracking solution (or buy one), or will fixed time intervals be acceptable? If fixed time intervals are okay, then off-the-shelf apps can be stitched together for this functionality.

Is there value in full randomness (ex: five reminders randomly set for one day, even if those reminders all come in the morning) or is it more about moment-to-moment randomness (ex: a reminder set randomly in each 2-hour period)?

In which circumstances would interrupt-driven methods like this be better than time tracking or time-and-motion-type studies? Boz shared that he never quite got the hang of time tracking, so it might be about enabling a different set of people to explore this class of experiments.

Does measuring time (either through sampling or through time-tracking) offer significant benefits over, say, tracking quantity of tasks completed in different categories (like Andy Schirmer does) when it comes to measuring alignment with priorities?


I might give it a try. I like my time-based analysis, though, so I may increase the granularity of my time-tracking (track at the task level whenever possible). I can then simulate work-sampling based on that data. I might also try fixed-interval sampling using KeepTrack on the Android, although I tend to skip interruptions.


2011-02-09 Wed 10:58


February 10, 2011 - Categories: geek, life

It’s a little scary how much you can do with focused days of hacking.

After waking up early and revising some documents of understanding, I started working on a Ruby on Rails prototype for one of my projects so that I could get a better handle on how much time it would take me to implement the client’s requested features. When I decided to stop for dinner (or really, the cats decided for me), I found myself shaking – low temperatures, low blood sugar, perhaps both. Easily fixed, although I really should get back into the habit of walking around and nibbling on healthy snacks throughout the day.

I’ll look into making my regular breaks more intrusive so that I actually remember to take them. Ah, that’s right; fresh install of Linux, no Workrave set up yet. It’s hard to resist the pull of flow, but I need to if I’m going to develop other skills and enjoy life.

It’s so much fun to plunge back into fluency, though. I haven’t done Ruby on Rails since 2007. I skimmed a Rails book during one long commute and then hit the ground running. It’s easy to get back into the language, the platform. It helps that I do a lot of Emacs Lisp – lists and macros make me happy.

I’ve built some of the core features of the site, and I’m excited about the next components I’m going to work on. I should keep detailed task logs so that I can use that for estimates in the future. It’ll be useful. I’m tempted to adjust my current estimates downwards, but I shouldn’t – I need to leave space for things that might come up. (Or go down.)

What can I do to make tomorrow better? There’s a meeting, so that will be good non-coding time. I’ll try to stick to that take-a-quick-break-every-hour thing, too.

Extra time spent working is usually time pulled away from things I should also pay attention to, like my upcoming presentations, so I should block off more non-coding time tomorrow and this weekend. Maybe tomorrow afternoon I can walk to the bank and set up my investing TFSA. I’ve actually worked close to 40 hours already and it’s only Thursday, so I should probably scale back tomorrow.

Tempo’s still a little too fast. I’ll post this and tidy up. If I’m still buzzing after I tidy up, I might go to bed early. Or I might play the simplified Pachelbel’s Canon on the piano for a bit – that’s great for slowing down.

2011-02-10 Thu 19:07

Books to write

February 11, 2011 - Categories: plans, writing

My mom celebrated her 65th birthday this week. One of her goals for her 70th birthday is to put together a book.

It made me think of the books I want to write. If you take away the intimidation of a book–final drafts, agents, publishing, marketing–and see it instead as a coherent, clear, worthwhile collection that helps people get from point A to point B, then writing a book (or a book-wiki) is a wonderful thing. It’s about organizing knowledge in a way that many other people can use.

Here I’m reminded of Joseph Sestito’s “Write for Your Lives: Inspire Your Creative Writing with Buddhist Wisdom”:

p112. With this motivation, you can develop what I call “the lifeline
of books” concept. Mortimer J Adler developed a list called Great
Books of the Western World. If you examine these books, you will find
that most of them begin with extensive outlines. For example, if you
read Aristotle’s Ethics, you will see that the outline is five or ten
pages long, depending upon the translation – it is extremely detailed.
As a creative individual, you will generate more ideas for writing
beneficial books than you could have time to even begin in this
lifetime; yet, you may have just enough time to write their outlines.
Therefore, when you leave this life, in addition to leaving behind
your body, possessions, friends, family, and everything else, you can
also leave your own lifeline of books. These are the outlines for the
beneficial books that you did not have the time to write in this
lifetime, so that others can put their minds to work on the creation
of these books.

What are the books and book ideas I want to leave behind?

  • Livin’ la Vida Emacs: More than a Text Editor
  • Work Better Together: an Individual’s Guide to Collaboration Tools
  • The Shy Connector’s Guide to Social Networking
  • Sketch Notes: Visual Notetaking
  • The Bright Side of Life
  • Photography with a Difference
  • Take the First Circus
  • Bookworm: Making the Most of Reading
  • Sharing What You Know
  • With My Own Hands: Adventures in Cooking, Gardening, Sewing, and other Domestic Arts
  • Sharing to Learn: How to Write, Draw, and Speak Your Way to Understanding
  • Lunch is in the Freezer: Batch-cooking Tips and Recipes
  • The Happiness Habit
  • Remote Presentations That Rock
  • May and December
  • The Written Life
  • More than a Number: Creating a Happy Career in a Big Company
  • Being Real Online: How to be a Person, Not Just a Brand
  • Worth It or Not: Analyzing Your Decisions and Improving Your Plans
  • The Elephant and the Bee
  • Persuasion: Using Rhetoric, Argument, and Negotiation in Everyday Life
  • How Wonderful Can It Be?: A Life of Continuous Improvement
  • On Fire: Bringing Passion to Work and Life
  • Still Life with Cats
  • Geek in Love
  • A Classic Education
  • Life, Limited: Freedom, Creativity, and Happiness through Limits
  • It’s All Part of the Story
  • Ineluctable: A Life of Words
  • Living by the Numbers
  • Most Things Right
  • In Between Worlds: Stories of Immigration
  • A Few Pages Ahead
  • Becoming Sisters
  • In Your Back Pocket: The Benefits of Plan B to Z
  • Stoic Optimism
  • The Abundance of Time

2011-02-11 Fri 06:10

Weekly review: Week ending February 11, 2011

February 12, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [-] Start on new project involving Facebook and Rails
    • [-] Work on ITSC blog post, keynote presentation
    • [X] Post more Lotusphere-related reflections
    • [-] Work on Deeper Insights presentation on social learning
    • [-] Work on Remote Presentations that Rock presentation
    • [C] Possibly sign up for consulting course – skipping this for now
    • Learned how to use estimating worksheet
    • Talked to Boz about productivity
    • Worked on newsletter tool
    • Estimated and scoped projects, yay!
    • Got back into Ruby on Rails, prototyped a project
  • Relationships
    • [X] Catch up with tasks at home
    • [-] Give Maira some of the spices – will do that today
    • [X] Organize get-together
    • Celebrated my mom’s 65th birthday
    • Looked for some experiences to share with people (movie, opera)
  • Life
    • [X] Share more reflections from Lotusphere
    • [-] Open up investing TFSA with Waterhouse – will do that on Monday
    • [-] Review my goals and upcoming projects
    • Experimented with lower-key daily routine; need to mix in more social interaction or shared experiences?
    • Brainstormed books I would like to write/read some way

Plans for next week

  • Work
    • [X] Clarify scope and prepare estimates for other Drupal or Rails projects
    • [X] Work on Facebook/Rails project
    • [X] Work on newsletter tool – fix bugs, implement requests
    • [X] Look into AIS IP address bug with simple_access>
    • [X] Put together ITSC presentation and blog post
    • [X] Sketch Remote Presentations That Rock revision
    • [X] Outline Org-mode talk
  • Relationships
    • [X] Give spices to Maira; cook Louisiana-style shrimp
    • [X] Watch The King’s Speech with W-
    • [X] Possibly get people together for opera
    • [X] Prepare paperwork for Dutch visa
    • [X] Go to Dutch embassy
    • [X] Meet Mike Nurse
    • [X] Chat with David Singer
  • Life
    • [X] Write about things I’m working on improving
    • [X] Get through busy week

Time analysis

Tried new routine: wake up early-ish, have breakfast, do personal stuff or work, switch to work, have lunch, work, have dinner, tidy up, go to bed. This meant not doing anything that required a lot of thought or creativity in the evenings, and moving those activities to the morning instead.

Category Hours Last week Notes
Sleep 62:36 53.8 8.9 hours average
Work 47:17 59.9 Got carried away prototyping and estimating
Social 13:00 14.8 Chinese New Year dinner with W-‘s family
Writing 11:03 3.6 Assorted reflections
Travel 3:24 19.6 Some commuting
Routines – general 7:49 7.8
Exercise 5:39 0.5 Walking around
Break 5:12 3.8
Routines – tidying 5:08
Learning 1:49
Routines – cooking 0:43
Drawing 0:33
Prep – general 4.0
Prep – planning

Observations: I slept more than expected because I gave in to the temptation to snooze. W- simultaneously shifted to a late-night routine, so he woke up later in the mornings, which influenced the snoozing bit too. I think I’ll try this again, but with activities blocked off for morning hours so that (a) I don’t fill it with work by default, and (b) I have a clear reason to get up and get going.

It was a quiet week, which was a good way to recover from the buzz of Lotusphere. I suspect a good balance may be more towards the social side, though, and I spent some time focusing on developing relationships (finally answered my e-mail, for example!). Next week is going to be pretty busy on the social front. Something in the middle, perhaps. Maybe one occasion planned each week.

I have a feeling that it would be worth spending time developing friendships. I miss that sense of knowing other people that I had with my friends, and the extra richness of shared experiences. I have to consciously reach out and be interested in people to deal with the asymmetry of knowledge. It’s generally easy to know what I’m thinking about because I write about it, but other people tend not to.


On friendship and getting better at it

February 13, 2011 - Categories: kaizen, life, reflection

A quiet week led me to thinking about friendship and how I can learn more about it. W- and I are both introverted and we spend most of our time at home. I need to make a deliberate effort to get together with people. Otherwise, it slips off my radar.

Why am I thinking about this? I see the close friendships my mom has developed with my ninongs and ninangs (godparents) and with people throughout the world. I think about the laughter and openness of my barkada (clique of friends) back home. I reflect on Aristotle’s Nichomachean Ethics and what he shares about friendship. It’s a good thing. It enriches life.

I plan for the long-term when it comes to finances. I can certainly invest the time and effort into developing something deeper and more important than that. I know that if I’m left to my own devices, I’m probably not going to make much progress, so deliberate action is worthwhile here.

I have friends. I’m also aware that I don’t get to see those friends very often. There’s a bit of asymmetry, too, which I thought about again at Lotusphere. It’s easy for people to know about the significant events in my life, and even the day-to-day details. I don’t have that same sense of awareness about a lot of people, and I’d like to develop it.

There are so many people I’d like to get to know further. I want to help make their lives a little better. I want to help them ask interesting questions. I want to learn from what they’re learning along the way. It gives me pleasure to think about them and to hear about their lives. Even focusing on people I already know will give me plenty of opportunities to learn about friendship – and then there are all these fascinating people I have yet to meet. In other words, it’s not you, it’s me. =) I can work on me.

Thank goodness many people use Twitter and Facebook to share what’s going on. The fragmentary nature of these streams mean that I get glimpses into other people’s lives, but they’re interleaved with other updates. I sometimes find myself flitting from update to update without a deeper sense of each individual person.

So I’m thinking of working on this from two aspects: online and in-person.

Online, I’m trying out tools like Gist that give me a social dashboard which aggregates news, organizing it by person. I set aside time to think about other people, learn more about what’s going on in their lives, take notes, and reach out. I set aside some money for the little differences I can make in people’s days. I switched to a phone plan that includes international text messages, too. I’m also going to more regularly check and respond to personal mail (hi!).

In person, I’m deliberately looking for experiences I want to share with other people, and for opportunities to learn more about people’s interests. This is a bit more of a stretch for me because I like spending time at home and I hardly ever eat out. (I once attended a New Year’s Dinner and found myself thinking I could host a decent party for the cost of my meal.) I’ll probably start with movies and opera, and maybe look into setting up lunch or coffee with people.

Have you worked on learning more about friendship? Have any thoughts to share?

On presenting, anxiety, and moving forward

February 14, 2011 - Categories: speaking

I have four presentations on my calendar, spread over the next two months. They’re all on topics I’ve written about: two talks on networking, one talk on presentation tips, and one talk on Emacs. I should prepare the presentations over the next two weeks.

I catch myself procrastinating. And if I’m going to procrastinate by tidying or writing, I might as well turn my reflections to why I’m procrastinating, so I can figure it out and fix it.

The advantage of having a blog is that I can review what I felt and thought before. For example, in one of my earliest blog posts about public speaking, I wrote that I wanted to become a professional speaker. This was why:

I love sharing ideas with people. I love bringing my enthusiasm and my passion to a hall and infecting as many people as I can. I love learning about presentation techniques and fascinating ideas. I love getting people to think. Besides, speaking is a great way to get to meet other fascinating people. I’ve made friends and learned about opportunities at post-conference dinners.

Reading that, I feel something dormant stirring. There’s something about sharing my passion and being inspired by other people.

There are more posts in my archive. I wrote about reaching people in the back row. I wrote about dealing with stage fright by turning presentations into conversations. I wrote about keeping things fresh and shared the feedback I’d gotten from presentations.

I can also see myself changing. In October 2009, after an occasion that really showed me the contrast between face-to-face presentations and the reach of online ones, I started thinking about how and when to decline invitations to speak. In March 2010, preparing for another presentation, I found myself reflecting on what I was missing from face-to-face presentations.

Maybe I can find a new equilibrium. I think it’s a combination of factors, and I’m going to think about them for a bit because it’s useful to understand a challenge before you use its force against it, turn it flat on its back, and tickle it into submission.

Higher costs lead to higher standards. With the shift of many presentations to virtual channels, the rise of blogs, Slideshare, and recorded presentations as alternative ways of sharing information, tighter travel restrictions at work, and a flourishing life at home, I’m much less inclined to travel to conferences myself. The relative opportunity cost has increased. I project my higher standards onto other participants, and become more anxious about delivering enough value to justify the time and expense.

As I get better at writing and occasionally illustrating my thoughts, I become more impatient with presentations. Presentations take more time to prepare and more time to deliver. They are not as searchable or as linkable as text. Their main benefits are that they are more engaging than plain text or static illustrations, and they can reach a different audience – people who prefer listening to reading, for example.

Unlike blog posts or stand-alone slide decks, presentations have deadlines, expectations, and potentially mixed reception. I can postpone writing about something, but I can’t back out of a commitment to speak. I promise something with the abstract and I’m not sure if I can deliver. If I write a blog post that offers little value to people, they can simply move on. If I give a presentation that people are too polite to walk out of, I not only take an hour of their life but make them miss the opportunity to hear a better speaker.

Then there are changing comparisons. In a world filled with TED and Ignite and all sorts of great talks available through Youtube, beautiful slides on Slideshare, and whatnot, it’s hard to put together something without feeling like a nattering newbie.

And now that I’ve got that all written down, I can see that it doesn’t make sense. The thing that trumps all of that hasn’t changed: I’m moved to speak and connect with other people because I want to help them make a change in their life and because I’m curious about what I can learn from them too.

I tell myself sometimes that I come up with presentations because other people ask me to, or because I want to learn about something myself. But even the things I already know–have struggled with, have come to understand, still continue to explore– those are already worth sharing.

I’ll experiment with a few changes. I’m going to try speaking with minimal or no slides, which will force me to be more vivid and memorable in speech. I may choose some topics to focus on, and see if invitations and speaking opportunities can align with those. I might illustrate if inspiration strikes, but not by default.

For my upcoming presentations, I just need to dig deeper and find the core message I have to share. With that, all the rest of the words and images will flow.

Writing about all of that seems to be working. I could hardly get to sleep last night thanks to all the presentation ideas running through my head…

More about getting 27″ washers and dryers down 26″ hallways

February 14, 2011 - Categories: life

Flora writes:

found your blog googling ’27” washer dryer 26″ hallway’ and am in
awe of your story about disassembling and reassembling your LG washer
and dryer. We’re currently dealing with a similar situation. I won’t
bore you with the details but basically, we decided to buy a Samsung
laundry pair because, in the store, both machines measured 26 3/4
inches and our staircase is 26 3/4 inches at most. We tried getting
them delivered and met some very rude and condescending delivery
people who were not cooperative at all. They wouldn’t even try getting
the machines through the first door which was 27 1/4 inches wide. They
took the machines back and now we’re faced with the decision to get
them redelivered or returning them and beating our dirty clothes on
rocks (or something). I was wondering if you could tell me a bit more
about your experiences with disassembling your machines. Was it really
difficult? Do you know if there are professional technicians who would
do that kind of work for people like me? Did you find the service
manuals really helpful? I imagine that this isn’t the first time this
has happened to people so I wish there was more of a support system
out there for those of us with horizontally challenged hallways and

From Appliance adventures

Oh dear. Yes, that is a challenge. As you can imagine, disassembling a machine and squeezing it down a narrow hallway will void your warranty and rough up the hallway, so it can be a tough decision to make. We decided to go for it because we had the budget for an experiment like that and we preferred to take the risk instead of spending time and money on either coin laundry or plumbing renovations, but your mileage may vary. This is not professional advice, so always exercise your judgment.

When we were thinking of doing this, we didn’t know any appliance repairers, but you might want to call around. Surely there must be people who are happy to do this for a fee. =) If you need to do it yourself:

Look for the service manuals for the washer and dryer you want to get or you want to buy. This may take some digging around because there are plenty of sites that will charge you a fee for the service manual, but you may be able to get it for free. If you don’t find the one for your exact model, you might find one for a similar model. Make sure you get a service manual that shows disassembly, not just a user’s manual that describes how to operate the machine. Also make sure you have a pair of work gloves with good grip, lots of things you can label and put screws into, and all the tools you’ll need, such as screwdrivers, clamps, and wrenches.

Take care when lifting the machines. A dolly can be very helpful. Lift it with another person. Gloves can help, too. You may need to take it out of the box in order to get it through the door. If so, look at your doors and corridors for anything that might get in the way, and remove them if possible. (We scratched the front of our washing machine with the door closer we’d forgotten to remove.) Think about the more scratchable sides when planning how to carry the machines in, and make sure that the path to your intermediate disassembly area is clear.

Confirm the machine turns on before you disassemble it. If your machine is dead on arrival, you want to know before you void the warranty.

Follow the instructions for disassembling. Read and understand all the instructions before you start. Make sure the machine is unplugged. Take lots of pictures. Label all the containers you use for storing screws. Label any wires you unplug. We used plastic containers for screws and masking tape for wires, writing down positions with a black marker. Wear the gloves whenever possible. There can be lots of sharp edges inside a machine, where they don’t expect anyone but trained technicians to poke around. You can bring parts down separately. This also makes it easier to move the machine down.

You may need to squeeze the chassis in order to get it through your narrow hallways. Remove trim that might get in the way. Consider taking out drywall. Expect that the paint will be scraped, and that the machine will also get a bit scratched. If it’s no longer square once it gets to the laundry room, hammer or nudge it into being square again.

Reverse the instructions in order to assemble the machine again. Hook everything up. Plug in the machine and see if it starts up. If it doesn’t, you may have an expensive paperweight. Sorry.

Run a small load or run through the test cycle in order to confirm that things work. Look for signs of leaks or missed connections, and be ready to turn the machine off just in case.

From Appliance adventures

W- says that it really helped that he disassembled the broken washing machine in order to get it out of the laundry room. The service manuals I found online were fantastic, too, with clear, step-by-step instructions and diagrams. Sometimes it was hard to find the part they were referring to because we didn’t know what it looked like, but going back and forth between close-up diagrams and the exploded parts list solved the problem.

Plan for this taking at least a weekend, and keep kids and pets away.

The good news is that if you successfully manage to get your laundry pair through your hallway and down your stairs, laundry becomes a whole new experience. We laugh about the laundry adventure whenever we do a load, and I still can’t get over how quiet the new machines are compared to the ones we had before. Is it weird that laundry is one of my favourite parts of the weekend?

Good luck!


2011-02-14 Mon 08:28

How I Learned to Stop Worrying and Love the Webinar: Energy, Interaction, and ROI

February 15, 2011 - Categories: presentation, speaking, tips

I’ve been invited to re-do my Remote Presentations That Rock presentation this February. I can’t resist improving presentations every time I give them. What do you think of this?

This presentation and speaker notes will be available at URL. (If giving this remotely: Please feel free to use the text chat to ask questions and share your thoughts throughout the presentation.)

Remote presentations are harder than in-person presentations, but they can also be more powerful. Yes, you’re limited in terms of body language and delivery. Yes, you have to compete with e-mail, Sametime, and a million interruptions. But if you know how to work with the strengths of remote presentations, you can reach people more effectively and more intimately.

Let’s talk about the biggest challenge for remote presentations: the fact that it’s so easy for people to get distracted or to walk away. In real life, most people won’t walk out the back door. They’ll stick around long enough for you to make your main points. Online, if you lose people’s attention, it can be very hard to get it back. And it’s doubly tough because you can’t read people’s body language. You can’t see if people are interested or if they’re off checking mail, and you can’t pull them back by saying something interesting if they’ve already hung up.

You’ve got to offer people something they can’t get from reading your the slides or listening to the recording. Why is it worth paying attention to you? For me, that comes down to two things: energy and interaction.


Why should people attend your presentation? People aren’t going to come just to hear the facts or numbers. They can get that from the slides. If you’re a leader, they want to hear your confidence, maybe get a better sense of who you are as a person. Even if you’re not an executive – even if, say, you’re an IT specialist presenting a technical topic – you’ve got to bring your energy to your presentation, to show people why it matters to you and why it matters to them.

A huge part of this is your voice. You need to sound like you, and you need to sound like the presentation is worthwhile. If people give in to the temptation to multitask, your voice is going to be the only thing that can bring them back. Emphasize your key points by changing your pace, changing your pitch, pausing, repeating things. Let your message come through in your voice. Energy. Urgency. Confidence.

You’ll be surprised by how much little things matter. Get a phone headset so that you can breathe properly and so that you don’t get a crick in your neck. Stand up if that helps you get into the “presentation mode”. Have pictures of people around if that helps you remember that you’re talking to real people so that you can make that connection. Turn off the conference entry/exit tones so that you aren’t competing with (or distracted by) beeps.

Another, powerful way to share your energy is to add video. Now you might be thinking, “I don’t look good on video.” While we may never look as polished as Sam Palmisano with a video crew, it’s actually easy to look decent. Get a webcam. Even if you pay for this personally, it’ll be worth it. Find a quiet place – no coworkers on conference calls, no dishwashers going whrrr. Find a clear background and good lighting – maybe a blank wall near a window. If you have glasses, dim the light from your laptop screen so that they don’t reflect off your lenses. White shirts make it easier for your webcam to pick the right colour-balance and exposure. Practice.

It’s a good idea to tell people when you’re going to be on video. I know someone who found this out the hard way. She was giving a presentation, and then her husband walked past in the background… in his underwear! So make it clear that you’re going to be on the air, and close the door. Then you can make a much better–and more professional–connection with people.

Video can bring you much closer to people than most in-person presentations can. Sure, you probably won’t be able to do as many gestures, but people can see your facial expressions. Use them. If you step back a little, you can do some gestures.

How can you bring all these tips together? Figure out what you want to say, but don’t stop there. Figure out why it matters to you and why it matters for other people. If you can’t figure out why something is worth giving as a presentation instead of as an article or a set of slides, don’t do a presentation. Just send the information. Save presentations for where presentations can make a difference – when you want to persuade people.

End on a high note. If you’ve done a good job at convincing people for the need for action – and you’re always doing this with a presentation, even if you’re just presenting information – make it easier for them to take action by showing them what they need to do next. Don’t fade out with just Q&A. Wrap up with a quick summary and maybe a memorable tip, and make sure people know what the next actions are. If you’re doing a remote presentation, think of websites people can visit to learn more or actions people can take to commit to doing something, while they still have the buzz and energy from the presentation. This means you need to plan your time well. People have back-to-back meetings and commitments. Plan to end a little early so that they have time to act on your message before they get distracted by something else.


This also means you need to get people’s buy-in along the way, so that when you get to the end of your presentation, people are where they need to be. This brings us to the second part of making remote presentations that rock: Interaction. Q&A. I’m not talking about the five minutes near the end that you think you’ll have for questions. You know that hardly ever happens. You run into technical difficulties. People start late. People take a while to think of their answers.

Don’t leave Q&A to the end of your presentation. Make it part of your presentation. If I have an hour for a presentation, I’ll typically plan between seven to twenty minutes of content, with the rest of the time for Q&A and about five minutes at the end to summarize and send people off with actions. This works really well. It forces me to fit my key points into a short attention span, and leaves room for the interesting part: the conversation.

How do I make sure things fit? I figure I should talk at about 160 words per minute. (I actually talk faster, but I try to slow down to 160.) If I’m planning for 20 minutes, then that’s roughly 3,200 words. If I write down what I want to say and I’m over 3,200 words, then I have to cut and simplify. Don’t start with the slides. Start with what you want to say, and make room for what’s important. If you’re trying to say too much, split it up into multiple presentations or refer to additional information that people can use to learn more.

Q&A can be much more powerful in a web conference than it is in person. In person, you’re usually limited to three or four questions. In person, people have to remember their questions and wait for the Q&A period, then line up for the microphone, say their question, and wait for your response. In person, you don’t really get a choice about which question you want to address first. Online, if you ask people to share their questions throughout the presentation using the text chat, you not only get an instant feel for where people are curious or confused, you can also pick the most interesting questions–or the easiest ones–to answer first. You don’t have to read people’s body language – they can tell you what’s on their mind.

When you’re starting out, you might want to have a moderator watch the text chat for you. If you find that you can occasionally glance at the text chat without getting distracted from what you want to say–and this takes a lot of practice–then you can even start weaving those questions and answers into the flow of your presentation. It’s fantastic when you can pull this off.

Q&A is good for people and it’s good for you. You can learn so much from Q&A. You can find out what’s important to people, and what you should include when you’re following up. If you’re lucky, you’ll end up with lots of questions, some of which you might not even know the answers to yet. Great. That not only gives you opportunities to learn more, but also to share those lessons with others. We’ll talk about this again when we talk about radically increasing your ROI from presentations.

You can still have people ask their questions over the phone. Now this is important: you should wait at least seven seconds for questions before you move on. Maybe wait even longer. I can’t tell you how many times I’ve been on a conference call where the speaker said, “Any questions?” and then after a very short silence, says something like “Thank you, goodbye!” and I’m thinking, “I’m still coming up with questions I want to ask!” As a speaker, you should wait until the silence becomes uncomfortable, and then wait some more. It takes time for people to absorb what you’ve just shared and think of what else they want to learn. If you need to fill the silence, share some questions other people have asked you, or share some questions people might be thinking about.

When you’re speaking to an international audience, Q&A might be harder. People in some cultures aren’t comfortable with asking questions during presentations. You can get people used to the idea by starting off with typical questions people might ask, and encouraging people to share their questions through a text chat if they don’t want to use the phone.

If you really don’t get any questions, then you can share more examples and backup material. Flexibility pays off, and it shows that you know your stuff.

Radically increasing your ROI

Now you might be thinking that it takes time to prepare good presentations like that. It takes only a few minutes to throw together slides if you’re going to figure out what to say on the fly and you don’t mind if people forget or tune out. It takes time to plan your presentation so that you have a clear, concise, engaging core message. It takes time to prepare for Q&A. It takes time to learn how to use web-conferencing tools. But it’s a bigger waste of time if you don’t.

Presentations are surprisingly expensive. There’s the time you put into preparing it: maybe half an hour for a quick update, maybe four hours for a regular presentation like this, maybe days for a high-stakes presentation. There’s the time you spend giving the presentation. And then there’s the time people spend listening to you. Now I’m in Global Business Services, so utilization is always in the back of my mind. If I’m talking to a group of 35 people for an hour, I probably need to offer you more than $100 in terms of value, and I need to create more than $4,000 of value for IBM and our clients. Is it worth it? I want to make sure it is.

So let’s talk about radically increasing your ROI for presentations. When you’re preparing and giving presentations, how can you get even more leverage on the time and effort you’re investing? There are two parts to that: before and after your presentation. Let’s talk about what you can do before your presentation.

First: Figure out if you can get more people – and more of the right people – to get value from your presentation. It takes the same time to give a presentation to 20 people as it does to give a presentation to 200. Remote presentations make this even easier, because people don’t have to be in the same area and they don’t have to arrange for travel. They just have to dial in. This depends on the purpose of your presentation, of course. If you’re planning a small-group collaborative meeting, go ahead and keep it at six people. But if you’re sharing something of general interest, open it up. Post it on Inviter, which is this IBM service for sharing calendar events. If you’ve got a blog, write about your upcoming presentation. Post it on your Profiles board. Tell people about it. Make it easy for people to find.

Second: Share as much as you can while preparing. See if you can share your outline, your slides, your draft speech. If you’ve got a blog, write about your presentation there. I’ve been blogging my speaker notes and my slides on a blog. You’d think that would mean that people can skip the presentation because they already know the key points, like the way you might skip a movie if you already know how it ends. Instead, what happens is that people suggest ways to make the presentation even better, and then they come anyway for the energy and interaction. Result: better presentation, better interaction (because people have been thinking about things deeper), better reach, and better ROI. Share whatever you can share.

The same goes for after your presentation. When you’re giving a presentation that’s not confidential, make sure you record and share it. That’s one of the benefits of giving a remote presentation – they’re easy to record and share. It’s a few extra clicks using LotusLive Meetings, and then you can share your presentation with other people. Share your slides. Figure out if your presentation or a subset of your presentation can be shared externally. Take the extra five minutes to scrub it and share it on a site like Slideshare.net. Share your speaker notes. Share the questions people asked and your answers to them. It takes a few extra minutes and greatly improves your reach. When your presentations are shareable and searchable, they become a very powerful networking tool. And they’ll save you lots of time, too. I can’t tell you how often I refer people to my past presentations in order to help them learn something I’ve shared.

And this is where remote presentations can really help you rock. Work with the strengths of the webconferencing tools that we have, and you can really connect with people. Invest a few extra minutes to share your presentations and recordings, and you can radically increase your ROI. Use remote presentations to reach more people than you can bring together in a room, and that will pay off for you in professional and personal connections.

Here are seven small things you can do to improve the energy, interaction, and ROI of your remote presentations:

  • Get these slides or my speaker notes so that you can review them going forward. (URL)
  • Make your life better by sharing these tips with other people who give remote presentations.
  • Volunteer for a remote presentation if you don’t already have one on your calendar. Practice will help you learn.
  • Take a good look at your upcoming presentations and practice putting some energy into them. Make sure they’re worth listening to.
  • Get a webcam and learn how to use it well. Figure out where in your workplace or your home you can do a good presentation.
  • Cut your next presentation in half so that you can leave room for questions and answers.
  • Review your past presentations for things you can share, and share them.

We’ll come back to these tips five minutes near the end of this session so that they’re fresh in your mind. I want you to be able to walk out of here with a clear understanding of how you can apply these tips and how they can transform the way you present. What’s holding you back from giving better remote presentations? What do you want to learn more about?

2011-02-15 Tue 07:58

From zero to hero: a newbie’s guide to learning and building a reputation along the way

February 16, 2011 - Categories: blogging, learning

A friend of mine is a new IBM consultant who wants to learn more about and develop a reputation in social analytics. I thought I’d share some tips on how to learn and build a reputation along the way.

Pick your field carefully. Another mentor of mine said that emerging technologies offer the best opportunities. In a new field, it’s easier to not only catch up, but even distinguish yourself. In mature fields, it’s hard to compete with people who have years of experience. Even in mature fields, though, you might be able to find niches where things are rapidly changing.

Read. Read everything about that topic that you can get your hands on. Learn how to speed-read if you don’t already do so. Don’t worry about words you don’t understand or concepts that are too complex. Gradually, as you absorb more information, more of the things you’ve read will make sense to you.

Stay up to date. Find the key players in the space that you’re working on. Check out their blogs, their presentations, their tweets – whatever you can get that gives you more information. Set up searches and alerts so that you can find new material as it gets published.

Use bookmarks to organize your research. You’re going to immerse yourself in a flood of information. Use social bookmarking systems like Lotus Connections Bookmarks or Delicious to keep track of interesting things you’ve read, and to organize resources into your own categories. That way, when you need to find something again or if you want to send someone a link, you can quickly get it along with related resources.

Collect examples of ideas being been applied to real life. If you’re interested in Web 2.0 and financial services, you need to be able to tell stories about innovative companies and the results they’re seeing. If you’re interested in social analytics, find case studies where analytics has led to increased collaboration and productivity. Learn about pitfalls and challenges, too. There’s no substitute for experience, but awareness is a good start – and that can help you brainstorm opportunities for you to get involved.

Write notes and look for ways to explain ideas in simpler terms. Summarize what other people have said. Link to resources people might find useful. Share examples and the principles they demonstrate. Share your notes on a blog. Make presentations and volunteer to speak. This helps you understand a topic deeper and build the beginning of a reputation.

What can you write about? Write about what you’re learning and why. Write about the mistakes you made and how you solved them (or are trying to solve them!). Write about how you’re learning and from whom. Write about the resources out there. Write about the things you’re finding out. Write about the connections between your topic of interest and other things you know about. Write about what you want to learn next. There are plenty of things you can share, even as a beginner.

Experiment. Can you try things out yourself? Apply the ideas to your own life and share the results. As you build credibility, you might be able to convince your team to give a new practice a try. Share those results, too. Come up with ideas and try them out. Use these experiences to convince people to let you work on projects.

Volunteer and expand your responsibilities. Make sure your manager, your mentors, and your coworkers know what you’re interested in learning or doing. Volunteer to help with projects or presentations that need to be done. Ask your manager to help you structure a way to learn on the job.

Learn. Share what you’re learning along the way. Experiment. Volunteer and expand your responsibilities. You can go from being a newbie to being known in surprisingly little time, but you need to get out there and make things happen. Good luck!

Imagine success for social media

February 16, 2011 - Categories: blogging, connecting, kaizen, story, web2.0, writing

I was talking to an independent consultant who wanted to get better at using social media to expand his network. I suggested that he put together articles and presentations that he can share with his contacts (mostly executives) that are useful and that they would probably share with the right people in their companies.

Thinking about this, I realized that imagining the ideal scenarios can help people recognize the value of investing in sharing knowledge or building a social media presence. You can say that sharing is important, or you can imagine a story that goes like this:

CEO of small business: Oh! It’s an e-mail from __. He always sends me useful information, so I’ll take a look at this one. Hmm, this whitepaper looks like something our company could learn from. Let me send it to the director in charge of that.

Director: Hmm, an e-mail from the VP, I better read it. Ah, an article that looks like it will help with one of the challenges I’m currently working on. Hey, this guy has some great tips. I wonder… Oh, he has a website with other articles and presentations! Great. I’m going to flip through the presentations that look immediately useful. I should probably bookmark this site so I can come back to it later. Hey, he’s on Twitter. Let me check out what he posts… He’s got an upcoming seminar – that looks interesting, maybe I’ll attend. I think I’ll follow him on Twitter so that I can hear about other updates. Hmm, maybe he can do some consulting for us for this project – that would save me a lot of time, help me get the results I need… (and if he’s as good as he seems to be, I’ll look like a star).

Someone else searching on the Net: Hmm, I need to learn more about ___ if I’m going to be able to deliver those results. Oh, here’s an article that might be useful. Those are good points. Let me save this. I wonder… ah, he has other articles and presentations. Those are useful too. Let me read them… I wonder if he’s available to do some consulting. Oh, look, he’s in Toronto too. That makes it easier. I should give him a call.

Think about what success looks like. Tell yourself a story about what could happen. It’s probably less about just increasing the number of your followers or posting at least one blog post a week, and more about actions and results. What’s that story? Walk through it in your head, check if it’s plausible, and identify the pieces you need to build in order to make it happen. Doesn’t investing in those pieces make more sense now that you can see how they’re related to your end goals?

That led me to think about the ideal stories I tell myself. When I write for my blog, this is what I hope will happen:

Me: “Ah! Now I understand things a little better. Let me go try that and see what happens. … Yup, that works, and here’s how I can make it even better.”

Someone: “I need to figure out something. Let me search… Hmm, that look interesting, let me try that. Hey, that works. Oh, that looks useful too. And that one! And that one! I’m going to add this to my feed reader. … Oh look, another post from Sacha. She reminds me that it’s possible to be cheerful and have fun doing awesome things. =) Hmm, I know someone who might find this useful too…”

Someone: “Can you help me with __?” Me: “I could’ve sworn I’ve written about that around here… Ah, there it is! Here’s the link.” Someone: “Awesome. Thanks!”

What are the stories you imagine, and what do those stories help you learn about what you can do to make them happen?

On friendship and becoming more social

February 18, 2011 - Categories: connecting

I’ve been talking to people about my project of becoming more social, getting better at connecting. It makes sense. I get to practise and pick up tips at the same time. =) Sometimes people say, “Sacha, aren’t you already pretty social? How big is your network, anyway?” But it’s not about that, and I think I’m starting to figure out what it’s about.

There are so many interesting people. W-, of course, is gosh-darn-awesome. And there are all these wonderful people I’ve gotten to know: my family, my barkada, my ninongs and ninangs, my friends in Canada who helped me get the hang of those first few winters, my friends at work and in various clubs, my friends through this blog and Twitter and all these other networks, and people I have yet to become good friends with. So the limiting factor isn’t the lack of people to develop friendships with, but my ability to do so.

What does it mean to be friends with someone? In the Nichomachean Ethics, where he devotes a book of fourteen chapters to the topic of friendship, Aristotle distinguishes between friendships of utility, friendships of pleasure, and friendships of good character. Of these, I’m interested in friendships of good character. In this kind of friendship, you appreciate the goodness of other people and they appreciate yours. You wish them good, and they wish you good as well.

One can’t have many friends at this level. In W.D.Ross’s translation of the Nichomachean Ethics:

But it is natural that such friendships should be infrequent; for such men are rare. Further, such friendship requires time and familiarity; as the proverb says, men cannot know each other till they have ‘eaten salt together’; nor can they admit each other to friendship or be friends till each has been found lovable and been trusted by each. Those who quickly show the marks of friendship to each other wish to be friends, but are not friends unless they both are lovable and know the fact; for a wish for friendship may arise quickly, but friendship does not.

And also:

Now there are three grounds on which people love; of the love of lifeless objects we do not use the word ‘friendship’; for it is not mutual love, nor is there a wishing of good to the other (for it would surely be ridiculous to wish wine well; if one wishes anything for it, it is that it may keep, so that one may have it oneself); but to a friend we say we ought to wish what is good for his sake. But to those who thus wish good we ascribe only goodwill, if the wish is not reciprocated; goodwill when it is reciprocal being friendship. Or must we add ‘when it is recognized’? For many people have goodwill to those whom they have not seen but judge to be good or useful; and one of these might return this feeling. These people seem to bear goodwill to each other; but how could one call them friends when they do not know their mutual feelings? To be friends, then, the must be mutually recognized as bearing goodwill and wishing well to each other for one of the aforesaid reasons.

That makes me think of several things. First, to wish good for other people, you should know them beneath the surface. It’s easy to say that I wish my friends to be happy, but knowing the specific things they consider pleasurable or good means I can share good experiences, find good gifts, or help people grow.

I’m probably an outlier in terms of writing and making it easy for people to get to know me through my interests. If I’m going to get to know other people, then I’m going to need to take the initiative and reach out, maybe slowly getting a sense of a person over time. I can get better at this by also, say, compiling notes on people’s expressed preferences. (Yes, I’m a geek.)

Second, friendship is reciprocal. I can feel goodwill towards many people, such as the people I’ve gotten to know through blogs. Some may even feel goodwill for me back, without my knowing. Friendship, I think, is when we both know it and that mutual understanding influences our actions.

I think that people are rather better at caring about me than I am at caring about them. This doesn’t mean I don’t care about other people as much. It means that I think other people are more thoughtful and are better at making a connection, and that there’s plenty of room for me to learn. Add to that the occasional asymmetry of knowledge and it can be a little awkward, but I’m getting better at getting past the awkward bit and just focusing on getting to know people more.

One of the things I’m particularly curious about is developing friendships online. When I listed people I might call if I needed a favour or I needed someone to talk to, I realized that there were some people I’ve never actually seen in person. I’d like to get even better at cultivating friendships online. From literature and other people’s examples, it’s clearly possible to develop deep connections beyond your geographic reach. With many of my friends outside Toronto – or infrequently met even in the same city – it’s something worth learning more about.

A lot of this is a matter of time: time to learn about people, time to share experiences, time to build trust, and so on. I can’t do much to speed things up. But it’s also equally a matter of attention – if I don’t invest that attention, then that time will pass without much effect.

Of course, reflecting on the Ethics, I need to be careful that people and friendship don’t become means. It’s not about checking off a little checkmark on my list of things to learn, or dissecting people and finding out what makes them tick, or chasing the pleasure of making someone’s day.

So that’s what I’m talking about when I say I want to get better at connecting or I want to be more social. It’s not about making sure I’ve “got my dance card filled”, or that I go out to at least one get-together each week, or even that I remember to host tea. I think it’s more about knowing people more so that I can appreciate their goodness and wish them good, and about building deeper connections.

2011-02-18 Fri 06:50

Book: Daddy Long Legs, and letters

February 18, 2011 - Categories: book, reading, writing

A chance remark by the turtle about Daddy Long Legs led me to request the 1955 musical from the Toronto Public Library, and then to read the book online. Fred Astaire’s dance sequences (particularly the first one where he makes drumsticks dance better than most people do) and a couple of good lines, and a nice ending made me smile. Yes, the age gap’s bigger in the movie than it was in the book, and it must’ve been hard for Astaire to perform that with what was going on in his personal life, but it’s still a good one.

The book, on the other hand, was an unexpectedly delightful find. It’s written as a series of letters from this orphan-turned-aspiring-writer, with vivid descriptions and general cheer. I’m half-inspired to do more letter-writing myself, or to bring that kind of vivacity to my blog.

(Will you put up with descriptions of life? In any case, it is my blog, and I would like to be able to remember. =) Prepare for more adjectives!)

Now I am on the lookout for other epistolary gems. I have requested “A Woman of Independent Means” from the library, remembering my mom’s recommendation. Do you have any favourites?

LinkedIn tip: Customize your profile URL

February 18, 2011 - Categories: connecting, tips, web2.0

This tip’s for Mike Nurse and other people who are looking for small things that could make LinkedIn more useful for them… =)

Did you know that you can customize your LinkedIn URL to make it more memorable, writable, and professional?

  1. Log on to linkedin.com.
  2. Click on Profile – Edit Profile.
  3. Click on Edit next to your Public Profile URL.
  4. Click on Edit next to Your Public Profile URL. Choose a short, memorable URL. Click on Set Address.
  5. Optionally customize what people see on your public profile.
  6. Click on Save Changes.

If you want to make it easier for people to connect with you on LinkedIn, put your new URL on your business card, your e-mail signature, your website, and other social network profiles. Little things like that help make it easier for other people to connect with you.

Decision review: Limiting my blog to one post a day

February 19, 2011 - Categories: blogging, kaizen, reflection, sketches, writing

In 2009, I decided to limit my blog to around one post a day. I wrote as many notes as I wanted in a private text file, and selected only one or two to share each day.

People liked the new frequency. They found it more manageable. Instead of getting three or four e-mails or feed items a day, they got one or two.

I liked the new frequency too. I started shuffling blog posts around depending on how useful I thought they would be to others. This was generally a good thing, as I put off publishing slice-of-life posts whenever I had tips to share. Sometimes, though, I ended up with “stale” blog posts that I wanted to share but didn’t. In a medium as current as a blog, it seems weird to write about something that happened three days ago. After a few tries at keeping a scheduled queue of posts in my WordPress blog, I turned to keeping the posts in my Org file instead because it was easier to choose which post to publish than to keep shuffling dates around in WordPress.

Sometimes I’d post more than one blog post anyway. Looking at my double- and triple-post days, most of those posts followed up on conversations, and I’m glad I posted them when I did. If I’m writing something that I think might be generally useful, I’d rather blog it than keep it in e-mail. Whenever I tried to stick closely to my one-post-a-day rule, I found myself postponing responses instead of, say, copying and pasting the relevant tips into an HTML mail. Postponing responses didn’t help with Inbox Zero or quick conversations, so I often decided to just go ahead and post. Rhythm can make or break an asynchronous conversation.

Rhythm affected my writing, too. Whenever I had plenty of many scheduled posts lined up, I found myself spending days without writing. While there were days that I welcomed the extra time, it was throwing off my routines. I felt like I was binge-writing: gorging myself on writing, then putting it off until the need to write and think drove me back to the keyboard or the pen. There were very few dull days that passed without a story, a lesson, or an idea I wanted to share, so although I was trying to keep to one post a day, I itched to write more, and new items often pre-empted things in the backlog until those things were no longer relevant.

imageIt’s a tradeoff among different people’s needs. On one hand, posting short tips frequently would benefit conversational partners as well as searchers. On the other hand, posting too frequently would give subscribers negative value. I guess the chart looks a little like what’s on the right – but what were the numbers? Would subscribers get impatient with two posts a day? At what point would searchers get diminishing returns from posts that were too sparse and quickly written? And what about what I wanted from my blog – a way to remember and share life? I found myself posting more generally useful posts about writing and blogging instead of ephemeral memories, glimpses of life – but I loved the chance connections I had when I wrote about things like burning pancakes or planting in the garden. I’d hate to become yet another generic blogger writing bland, inarguable, and impersonal tips, or to write for what I thought might be the widest use when there might be interesting things to explore in the nooks and crannies of life.

It’s a trade-off between other factors, too. Should I write fewer posts, but longer ones? I like sticking to one thought per blog post, though. Maybe I should do “reader mailbag”-type posts, but that probably still requires more of a weekly routine, and I do like posting people-related updates within a day or two. I’d like to spend some time revisiting old posts or sharing my reflections on other people’s posts. How do I fit that in around the new things I want to write about? And I’ve been meaning to move time away from writing to other activities. Perhaps I’ll be more ruthless about prioritizing what to write about, and leave other unfinished ideas as drafts in my private notes – or maybe I’ll drop hints about things I’d like to think about, in case other people can point out things they’d like to learn more about as well.

Data can help explore decisions things like this. Before I put a lot of time into figuring out whether I can set up a separate “firehose” category in my blog that gets excluded from e-mail notifications and feeds until I promote posts into the regular stream, I can find out how often I might need it, what effects it might have, and whether it’s worth looking into. Instead of thinking about this in a vacuum, I decided to conduct a little post-analysis. I wanted to know:

  • How often do I post more than one thing a day?
  • Am I more consistent in the number of posts now than before? Consistency is good for subscribers; you want to know that I’m not going to suddenly overwhelm you with mail/items. (Well, aside from that mail snafu I had, but things should be working smoothly now.)
  • Am I writing longer posts?
  • How is that related to, say, the number of comments people leave on my posts?

A little number-crunching, and voila:


The red line shows the number of posts. As you can see, I’ve gone from really spikey to a somewhat more consistent line hovering at around 30 posts a month. This means you can subscribe without fear, or check back roughly every morning.

The blue line shows that my average post length (in terms of characters) is somewhat spikey, and it seems to be increasing.  So, yes, I’m writing longer posts. It’s plotted on the secondary axis (0..7000) so that the other lines aren’t drowned out.

The green line shows the number of comments. My spreadsheet doesn’t show any strong correlations with either my post length or the number of posts, so it doesn’t look like I’m scaring people off with long posts or too-frequent posts.

As it turns out, I’m actually pretty good at keeping to around one or two posts per day. This year’s had an average of 1.1 posts per day, well within reason (and subscriber patience, I hope). Knowing this means I don’t need to spend a lot of time fiddling with this decision, although I do want to find the rough spots and figure out how I can smooth them over.

So here’s what I’m going to try next:

  • I’m going to change my “normal” level to one or two posts a day instead of just one, which means I can feel less guilty when I post two or even three blog posts on one day.
  • If I have multiple conversation follow-ups, I’ll combine them into a mailbag-type post instead of sticking to the one-thought-per-post guideline. This means I can get responses out in a timely way without ending up with three or four additional posts.
  • I might build in more revision into my writing routines, so I can get better at writing and I can express things even more clearly and concisely. This could be the second post in a day if I don’t have any conversation follow-ups. If I’m disciplined about limiting my writing time and just doing quick descriptions of other stories/ideas I want to write about, then this could also be the time I spend reviewing those and fleshing those out.
  • I’m going to try to show more of those here-and-now moments instead of just keeping them in the backlog. It’s probably inconsequential that I feel happy about the grass peeking through the patchy snow. I like it, and I want to get better at writing not only about tips, but about life. =)
  • I’ll channel the rest of my darn-I-want-to-write-about-that-too frustration into drawing and other communication skills I want to practice.

Sounds like a plan.

Have you come across this blog through a search? Do you read this blog regularly? Do you subscribe to updates (thanks!)? What would make it work better for you? What have you seen working on other personal blogs?

Weekly review: Week ending February 18, 2011

February 19, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [-] Clarify scope and prepare estimates for other Drupal or Rails projects – Current pipeline handled
    • [-] Work on Facebook/Rails project – waiting for paperwork
    • [X] Work on newsletter tool – fix bugs, implement requests
    • [X] Look into AIS IP address bug with simple_access>
    • [X] Put together ITSC presentation and blog post
    • [X] Sketch Remote Presentations That Rock revision
    • [-] Outline Org-mode talk – will work on next week
    • Added standalone wiki support to community toolkit – for Debra Johnson
    • Added generic newsletter support to community toolkit – for Darrel Rader
    • Added template file support to community toolkit – for Darrel Rader
    • Did some quick illustrations
    • Finally sent in Lotusphere expenses
  • Relationships
    • [X] Give spices to Maira; cook Louisiana-style shrimp
    • [X] Watch The King’s Speech with W-
    • [-] Possibly get people together for opera – postponed to next week
    • [X] Prepare paperwork for Dutch visa
    • [X] Go to Dutch embassy
    • [X] Meet Mike Nurse
    • [X] Chat with David Singer
  • Life
    • [X] Write about things I’m working on improving
    • [X] Get through busy week – not actually that hectic, yay!

Plans for next week

  • Work
    • [X] Sketch ITSC keynote by David Zach
    • [X] Give ITSC keynote on networking
    • [X] Learn about ECM and web services
    • [X] Follow up on documents of understanding
    • [X] Put together Idea Lab resources
  • Relationships
    • [X] Go to Second City with recent hires and friends
    • [X] Host tea get-together 1pm our place Saturday Feb 26
    • [X] Watch Die Fledermaus (http://toronto-opera.com)
    • [X] Watch Madame Butterfly (http://toronto-opera.com)
    • [X] Send birthday cards
    • [X] Try making a beet smoothie or Tex-mex lasagna
  • Life
    • [X] Enjoy extended weekend: spend focused time revising, drawing, presenting, cooking, and tidying up
    • [X] Experiment with giving presentation through Zipcast (Remote Presentations That Rock, Monday?)

Time analysis

Experiment for the week: more social stuff. Met people, had mentoring chats, reached out through e-mail, etc.

Category This week Last week Delta Notes
Break 4.8 5.2 -0.4
Drawing 0.6 -0.6
Exercise 4.7 5.7 -1.0 Including trip to Dutch embassy
Learning 0.6 1.8 -1.2
Prep – general 0.4 0.4
Routines – cooking 1.8 4.4 -2.6
Routines – general 6.3 7.8 -1.5
Routines – tidying 3.8 5.1 -1.3
Sleep 65.3 62.6 2.7 9.3 hours average
Social 25.9 12.0 13.9 Skype, Starbucks, and e-mail
Travel 1.5 3.4 -1.9 Some commuting
Work 40.4 47.3 -6.9 Proposals, CommunityToolkit, presentations
Writing 12.5 11.1 1.4

Still hitting snooze in the mornings. It’s hard in winter and a warm bed. I’ve asked W- to help me stick with my resolve to get up in the morning, and may experiment with returning to the other week’s routine of having a very light evening.

Lots of time invested into building relationships, following up on my previous reflections on friendship. Good use of time – instead of doing extra work in the evenings, I used that time to reach out instead. Looking forward to doing more drawing and cooking over the next few days.

Waking up: looking at my data

February 20, 2011 - Categories: geek, life, quantified, sketches

Whenever I manage to wake up early a few days in a row, I feel great about it. But I don’t do it consistently. I spend a couple of days waking up before 6 AM and enjoying a good spurt of writing, and then I find myself slipping back into later bedtimes and later wake-up times (~ 7 AM) or hitting the snooze. Clearly there are some things I still need to tweak about my system.

Time-tracking means I’ve got a way to see what my current sleep patterns are like:


  • Average sleep length when waking up before 6 AM: 7:09
  • Average sleep length when waking up after 6 AM: 8:47
  • Average sleep time for wake-up times before 6 AM: 9:45 PM, which is a bit of a stretch but is doable.

Here are the questions I’m thinking about:

  • Is it a matter of getting to bed earlier?
  • Would it help to disable snooze entirely?
  • Is it a matter of setting my alarm clock even earlier? (Ex: Set it for 4 AM so that I eventually get out of bed at 5 AM.)
  • Would it help to set our programmable thermostat warmer in the morning, or promise myself a hot cup of tea when I get up?
  • Would it help to set my snooze interval to 5 minutes instead of 10?
  • How about if I find a way to turn my Android into a light clock? (Using Tasker to bring up a bright app, maybe…)
  • What if I give up on waking up early and instead shift to more of a night owl schedule? Advantage: can sync up with W-. I’ll need to figure out how to give my personal pursuits the creative energy they need, though.

Hmm. More things to hack…

ITSC guide to conference awesomeness

February 21, 2011 - Categories: conference, connecting, event, presentation, sketches, speaking

Darren Hudgins liked my Shy Connector presentation a lot, so he asked me to put together some quick tips to share with the ~400 people at the Instructional Technology Strategies Conference. Here’s what I came up with:

ITSC Guide to Conference Awesomeness

They’re going to play it live at the conference at 12 PST. =) I’ve kept it short so that I can share a few quick tips and then get out of the way of all that awesome networking. It sounds like a great crowd.

If you’re here from the ITSC, you might also be interested in my sketchnotes from David Zach’s keynote. Click on the image to see the full version.


Here are other pre-ITSC conference networking tips I’ve shared:

For more networking tips, check out:

The Shy Connector

View more presentations from Sacha Chua.

(Also see my full notes for the Shy Connector presentation and other blog posts about connecting)

I made the video with the guide to conference awesomeness using Microsoft Onenote, Microsoft Powerpoint, a Lenovo X61 tablet PC, Camtasia Studio 7 (which doesn’t get along perfectly with the Windows 7 on my tablet). I’d love to go back to the free Inkscape drawing program for drawing if someone can help me figure out how to get it to smoothly digitize. =) Thanks to IBM for sponsoring this effort!

Follow me on Twitter (@sachac) for more updates. I’ll be around from 12 PM to 1 PM PST to answer questions or share other tips. Use the #itsc11 hashtag or mention me by adding @sachac to your tweet. If you’re here after February 21, feel free to leave a comment on this blog post for Q&A. Hope this helps!

How I spent my Family Day weekend

February 22, 2011 - Categories: sketches


New recipes: chapati, curried chickpeas, vegetable biryani (from sauce), Tex-mex lasagna

Lots of time spent putting together presentations. Worth it, though! Looking forward to improving my workflow further.

Kaizen: Thinking about presentations

February 22, 2011 - Categories: kaizen, life, speaking

I’ve just finished a presentation (The ITSC Guide to Conference Awesomeness) and I’ve got a few presentations coming up:

  • Remote Presentations That Rock (Feb 28 in person at IBM, plus virtual sessions at IBM)
  • Braindump: Note-taking in Org Mode (GTALUG, in person)
  • Learning on the Network (virtual, IBM)

I also plan to experiment with Slideshare’s Zipcast feature, maybe doing “Remote Presentations That Rock”, “Six Steps to Sharing”, “The Shy Connector”, and other presentations.

There’s always room for growth. Thinking about that last presentation, what worked well?

  • The tech check turned up some problems communicating with the hotel conference room, so I decided to go with a recording instead. Not as fun or as interactive as a real-time presentation, but if I’m not going to be able to listen and react to people anyway, I might as well record it.
  • Sketching the presentation was fun.
  • EasyPrompter was a great tele-prompter. It was much better than scrolling through a document myself. I put the webcam in front of it. I might look a little cross-eyed, but it does speed up the production of recorded presentations quite a bit.
  • It was a good idea to record the video and then use Rehearse Timings to capture the slide times. Saving slide transition times meant that I could change the slides (move the graphics around, for example) and re-record the presentation using Camtasia Studio without listening to everything again and again.

How can I make things better?

  • I can work on relaxing my eyebrows when I give presentations. They tend to go up even during non-emphasized parts of the presentation.
  • I can add more pauses when teleprompting.
  • I can get dimmers for the lights we have, or better yet, construct some softbox-type light sources. They’re ordinary daylight-balanced house lamps from Home Depot and they can be pretty intense. I’ve draped ripstop nylon over them to create a softer light, but it would be better to have a good setup. If I can figure out how to mount them easily on the light stand (they currently use clips which can be hard to position), then I can use our light umbrellas.
  • I can use something like Blu-Tack and a tripod to position my webcam more firmly. Or maybe find/make a stand for my webcam to allow me to position it in front of my laptop. That should be easy to build.
  • I can look around for a better “studio” location. Maybe the spare room upstairs? I can cover the wall and the door with fabric, and set my lights.
  • I can try using my lapel microphone, or spring for an array microphone.
  • I can try using Windows Movie Maker for chroma-key or picture-in-picture, if I can’t get Camtasia Studio to behave the way I want it to. I got a black preview screen possibly due to hardware acceleration, but there doesn’t seem to be a way for me to disable hardware acceleration in Windows 7. Also, I couldn’t get the picture-in-picture to show up in the top right corner, so I had to settle for the top left.
  • I can buy or build a proper teleprompter. (Ooooh.) But I’m going to try building a rig for my webcam and laptop first – maybe this summer, when we get our woodworking tools out again. Can’t wait!

Things I’d like to grow into:

  • I’d love to animate my sketches instead of using picture-in-picture video. That might mean starting off with video (to help establish personal connection) and then switching to animation or sketches. If I get the hang of drawing in a single screen instead of on an infinite scroll of paper, maybe I can do it as a screen capture or whiteboard video.
  • I want to learn how to do chromakey video (or frame-by-frame sketching if I absolutely must). Imagine being able to combine video and sketching in ways that make sense…
  • I should organize my past presentations so that it’s easy for people to see the different topics and resources.
  • Maybe I can make a routine of presentations so that they’re a smooth and regular part of my life instead of being a bit bursty (it never rains, but it pours).

Posted revised “Remote Presentations That Rock” presentation

February 23, 2011 - Categories: presentation, sketches, speaking

Next week, I’m giving Remote Presentations That Rock in person at IBM 3600 Steeles Avenue on Monday. I decided to hold off on the extensive revisions I’d been thinking of doing. Instead, I re-drew the slides and I changed a few points.

See http://sachachua.com/blog/remote for full notes / discussion.

Remote Presentations That Rock (2011) Click on Menu – View Full Screen to see this in full-screen mode.

The older version, for comparison:

and the "e-book"-type presentation:

Remote Presentations That Rock (v2)

View more presentations from Sacha Chua

Some speakers are very consistent when it comes to content and delivery. I keep working on my material, gnashing my teeth over titles I want to reuse, because I’m still learning so much. I’m consistent about a growing number of things, though. I’ll have a blog post up with the resources, I’ll probably bubble over with energy when I give the presentation, and I’ll record and share as much as I can.

Get More Value from Blogging, part I: The Immediate Benefits of Thought

February 24, 2011 - Categories: blogging, life, reflection, tips, web2.0
This entry is part 1 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do an #infoboom tweetchat on the professional and personal value of blogging on March 3, 2011 (2pm-3pm EST). When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series!

People often ask me: Why do you blog? Where do you find the time to do it? How can you find all these things to write about?

I tell people I don’t have the time to not blog. It’s a tremendously valuable practice. Life-changing, even. In this blog series, I’m going to explain how blogging helps me both personally and professionally, and I’m going to share tips on how you can get that kind of value too.

Part I: The Immediate Benefits of Thought

I write for selfish reasons, among which are the benefits of the process of writing. Even if no one read my blog, it would already be worth the time. Here are four ways to get immediate value from writing about life.

1. Clarity

I write entirely to find out what I’m thinking, what I’m looking at, what I see and what it means. What I want and what I fear.

Joan Didion, author

Writing helps me think more clearly. When I struggled with homesickness and doubt, I wrote down what I was thinking, what I was afraid of, what I hoped for, and what I wanted to do. When I puzzled through a bug in my code, I wrote down the symptoms, the approaches I tried, and the solution I found. Writing forces me to slow down and find words to express myself. Strand by strand, I can untangle the mental mess and turn it into something coherent.

Tips: Next time you’re thinking about something complicated…

  • Use mindmaps to write down key ideas in a loose structure. See if that helps you understand your reasons and your alternatives.
  • Use lists, tables, and other idea organizers to think through a problem. For example, you might make a list of pros and cons for alternatives.
  • Write your thoughts down in a journal (private, if necessary) so that you can take a step back and understand them.


2. Recognition

The human mind has first to construct forms, independently, before we can find them in things.

Albert Einstein, physicist

When you can name a thing, you understand it better. If I spend an hour getting to the roots of my procrastination and realize that it’s because I don’t value the results enough, I can recognize that feeling when I encounter it in life, and I can do something about it. Writing helps me get a grip on strong emotions or confusing puzzles. Understanding something lets me work with it.

Reading voraciously helps me with writing and with life. Books and blog posts help me learn how other people describe their experiences and find words that resonate. Other people’s phrases and metaphors can be launching pads for your own.

Writing about life also helps me appreciate it better. When I write about the things that make me happy, I pay more attention to them in life, and grow even happier. When I write about things I can improve, I get better at recognizing opportunities to do so. Like the way that sewing helps me see clothes in a new light and woodworking teaches me more about furniture, writing helps me learn about life.

Tips: Next time you struggle to describe something…

  • Give it a try, even if you don’t feel your description is adequate. You can go back and revise or build on your previous notes.
  • Read what other people have shared and look for words or phrases that get you closer to the idea.
  • Try a metaphor. Sometimes they can lead to surprising insights.
  • Use writing to learn about life, and use life to improve your writing.


3. Size

Once we accept our limits, we go beyond them.

Albert Einstein

The brain can hold only so much in thought at a time. It’s like a computer with limited memory. This limitation frustrates me. I might be thinking of interesting things while walking around or while doing dishes, but my mind flits from thing to thing without depth, and that the older thoughts fade quickly and are hard to recall.

Writing gets ideas and information out of my head. This external memory allows me to not only work with bigger things, but to work without the fear of forgetfulness or loss. This also allows me to “chunk”, improving both my memory and my ability to work with ideas. By moving complex ideas out of my head and into a form where I can get a handle on them, I can work with larger combinations. It’s like the way that a pianist playing from memory doesn’t think of individual notes but of patterns, and the way that chess grandmasters don’t think of individual pieces, but of configurations of attack and defense. Writing these detailed posts on the value of blogging allows me to use the high-level summaries as building blocks for other thoughts.

Tips: Next time you’re working with a large, complex idea…

  • Write down parts of the idea, then summarize your thoughts and use the summaries to build the next level of thinking. Repeat as needed.
  • Try using an outline to break the idea down into smaller ideas, and continue until you get to the level of detail you want.


  • This series!

4. Reflection and improvement

There are three principal means of acquiring knowledge… observation of nature, reflection, and experimentation. Observation collects facts; reflection combines them; experimentation verifies the result of that combination.

Denis Diderot, philosopher

Writing is a way of having a conversation with yourself. Through that conversation, you can look at what you’re doing, why you do it, and how you can do things better. You can talk about what you feel, why you feel it, and whether that helps or hinders you. This reflective practice helps you understand yourself better and improve the way you work and live.

I find it very useful to observe myself and ask questions. After giving a presentation, I think about how I did it and how I can improve. When feeling strong emotions, I ask myself why I feel that way and what that reveals about me. I think about how I want to spend my time and how that matches up with reality. Writing reinforces that routine of reflection.

Writing helps me identify things I want to build on, either when I read it back or when other people share their insights. Writing helps me work around the temptation to lie to myself or to gloss over factors. When I write things down, I have a better chance of figuring out when I don’t make sense, and when I do.

Tips: Build some time into your schedule for regular reflection so that you can…

  • Ask yourself: What am I doing well? How can I do things even better? Write your thoughts in a private journal or on a blog.
  • Review your reflections occasionally to see what else you can learn from them.



Get More Value from Blogging, part II: The Compounding Value of an Archive

February 25, 2011 - Categories: blogging, tips, web2.0, writing
This entry is part 2 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat on the professional and personal value of blogging on March 3, 2011 (2pm-3pm EST, #infoboom). When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series!

Update: Added quote from Donald Knuth, thanks to Mohamed!

The value of blogging: Part II: Archive

Blogging provides value immediately and in the long run. Blog posts are saved in a chronological archive that can be browsed, searched, and organized into categories. The more you write, the more valuable this archive becomes.

1. Search

But men are men; the best sometimes forget.


What did I ever do before writing? I’m not sure, but it probably involved reinventing the wheel again and again. My blog archive saves me time that I would’ve wasted re-solving problems. I can’t tell you how many times I’ve searched my blog for notes. I’ve even come across answers to things I’d completely forgotten solving.

It’s not a perfect system, but it’s better than nothing. Sometimes I don’t remember the words I used. I have a sneaky suspicion that Google might not have indexed all of my blog’s pages, too. But I can usually turn up what I’m looking for, and that’s good enough to keep me writing.


  • Whenever you solve problems that took you a lot of time to figure out, spend a few extra minutes to write up your notes.
  • When writing, think about whatever keywords you think you might use when searching. Use as many of them as you can, either including them in the text or using them as categories/tags for your post. That increases your chances of finding information again.


2. Review

What is past is prologue.


Where did all that time go? If you’ve ever asked yourself that question or struggled to fill in the boxes during annual performance reviews, you might find a blog useful.

I use my blog for weekly, monthly, and yearly reviews. My archived notes make it easy to remember what I was working on and what I achieved. As a result, annual reviews are more fun than painful. This helps set a rhythm for my life, too.

Regular reviews keep me on track. I can review my plans and see how I’m doing, or change them if my priorities have shifted. I can tell when I’ve been procrastinating something for a while (it shows up on multiple reviews!) and I can think about whether or not I really want to do it.


  • Build a habit of weekly reviews, then include monthly and yearly reviews as you get the hang of it.
  • Use your review time to reflect on your past and plan your future.

3. Growth

Without continual growth and progress, such words as improvement, achievement, and success have no meaning.

Benjamin Franklin

Writing about my decisions helps me review them later. For example, I wrote about limiting my blog posts to one a day. A year later, I revisited that decision to see if it still made sense for me. I’ve got notes about what I want to do with IBM and some of the reasons why I love my husband, and I add to those regularly. Being able to read through my blog archive makes it easier to remember the reasons for my decisions and to detect when things are changing.

Written accounts allow me to compare my past selves with the present. How have I improved my skills? How have I changed my mind? What have I lost and what have I gained? I can trace my stick-figure skills from my first such presentation in 2008 to my most-recent presentation through the evolution of my sketches. (I’ve gotten better at drawing quickly, but I don’t draw with many colours as I used to.)


  • Write down your reasons for a decision. Set a reminder to review your decision and see if it’s worthwhile.
  • Write about your feelings and experiences to help you revisit them.

4. Overview

The very act of communicating one’s work clearly to other people will improve the work itself.

Donald Knuth

How do you know what you know? If you were to make a list of things you could teach other people, you’d probably be able to quickly list some recent items, but you might forget to mention things you learned several years ago. Blog archives can help you remember what you know so that you can build on it, combine it with other ideas, or share it with other people.

My archive helps me get a sense of what I know about a topic and how to organize that logically. I can see the gaps that I need to learn and document. As I revise, I improve my understanding.

By looking at what I tend to write about, I can get a sense of where I pay attention and how that attention changes over time. I can also use my archive to slowly build resources for summary posts with links to details.


  • Use categories to organize your posts so that you can view them by topic.
  • Review your posts by category to see if you can write a better summary.
  • Plan what you want to learn, write about the details, and then review your archives for the overview.


4. Value

A good blog archive’s value goes beyond the value of its individual posts. When people come to your blog because of a search result or a referral, they can explore your archives to learn more about the topics they’re interested in and about you as a person. This is the compounding value


  • Make it easy for people to discover related posts. Use a plugin that lists similar posts, or include links to relevant posts when you write. Encourage people to use categories to browse your archive.
  • Keep writing, even if it’s one tip at a time. Over the years, your archive can become a valuable resource.

5. Rediscovery

I’ve written enough that I don’t remember what I’ve written, and I enjoy rediscovering myself. It’s weird, isn’t it, getting to know yourself like that. I enjoy flipping through my past posts and hearing my past self. She’s very much like me: perhaps a bit deeper into open source (time and the ability to freely participate), less confident in the kitchen, but cheery and reflective all the same. I don’t flip through my archive frequently, but it’s fun to bump into my old self through random posts or “On this Day” posts.


  • Write. Yes, even about the everyday things, the little memories. You never know what might make you smile in the future.
  • When you have more posts, try plugins like Random Posts or On This Day to help you bump into older posts.
  • Consider printing out a paper copy of your posts for easier flipping through. I do this every year.

Trying out Slideshare’s new Zipcast feature

February 25, 2011 - Categories: presentation, speaking


I gave Slideshare’s new Zipcast feature a try today in order to learn more about it and rehearse for my upcoming presentation of "Remote Presentations That Rock". I announced it on Twitter a few minutes before I wanted to present. Around 12 people turned up to say hi, learn, and share. I was a little nervous with excitement (and lack of water nearby), but I relaxed as I got into the swing of it.

Zipcast has the usual web conferencing system features, with more in the works. Attendees need an account with either Slideshare or Facebook. You can flip through slides, broadcast video from your webcam, and use the text chat for discussions. Where it shines is in its ease of sharing: no unusual plug-ins or software downloads, Twitter and Facebook announcements built-in, and no meeting limits.

People can flip through slides on their own, too, which could be either useful or distracting for people. You may want to avoid slide-based jokes with lots of lead-up, considering that people can flip ahead and see your punchline. Winking smile

You can’t point to specific things on the slides or record your presentations, but I hear those features are in the plan. You also can’t get the list of attendees yet, so you might want to ask someone to track that for you. Don’t look for screen-sharing in this system yet, but who knows what the future will bring?

Zipcast’s an interesting entry in a crowded web-conferencing space. The ease of presenting and attending will probably win over many users of other conferencing systems, and the price is hard to beat: free at the moment, no matter how big a web meeting you have.

Zipcast’s a promising way to reach lots of people on the Internet, and I’m going to experiment with it more. I’ll still use LotusLive for my IBM web conferences. I like the features of LotusLive, including the ability to draw on my slides in real-time and the ease of inviting people without requiring accounts. (Besides, LotusLive is IBM!) But Zipcast is a nifty (and currently free) way to reach people online, so it’s worth a try.

Tips on using Zipcast:

  • People need Slideshare/Facebook accounts to attend, so give people time to sign up if needed.
  • You can broadcast audio using your computer – no need to dial in. The audio conference information for Pro users can be confusing, though, so you may need to tell people they don’t have to log in. (Slideshare: It would be great to have a small place where speakers can post persistent messages: useful URLs, notes about communication, etc. Maybe right under the video or under the conference info?)
  • Encourage people to ask questions and share their thoughts in the text chat.
  • The drop-in nature of the presentation can be disconcerting as people filter in throughout the session. Try schedule your presentations with a bit more warning time, or build it so that you regularly recap throughout the presentation.
  • Check out http://sachachua.com/blog/remote for more tips for remote presentations.

Things that would make this even better for me:

  • Message box for details like communication instructions, URL for further resources
  • Participant list and stats: when joined, when left (and on which slide, if possible)…
  • Way to easily save the text chat
  • Pointer. Pen too, if possible, for annotating slides.
  • Download link for presentation?
  • Easy tweeting from within presentation
  • Raise hands / polling interactions

Here’s an interesting thought: How would you structure a presentation to take advantage of the sharing capabilities of Zipcast, including the “post to Facebook” checkbox in the text chat? Maybe you can sprinkle “Twitter/FB/Q&A” breaks throughout your talk. If you get someone (or program a macro) to paste in retweetable or repostable soundbites, that would be a way of sharing ideas with people’s networks. Hmm…

I’m thinking of doing presentations every Saturday in March, from 12 noon to 1pm EST, at http://slideshare.net/sachac/meeting. My planned lineup: The Shy Connector, Remote Presentations That Rock, Get More Value from Blogging, and Six Steps to Sharing. It’ll be good to share tips and learn from others. Anything you’d particularly like to see from my past presentations or blog posts?

What’s a good way to plan these upcoming events so that you can easily save them to your calendar and receive updates? Eventbrite and other event-management systems seem a little heavyweight compared to the ease of Zipcast’s sharing. Any suggestions?

In other news, I think I’ve figured out my studio setup: bounce the daylight-balanced lamps off the ceiling (low setup) or use umbrella reflectors (fancy setup), position the folding background in front of the cabinet to hide the My Little Cthulhu doll and other distracting things, and broadcast away. Now if I can figure out where to put a small hairlight…

Weekly review: Week ending February 25, 2011

February 26, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Sketch ITSC keynote by David Zach
    • [X] Give ITSC keynote on networking
    • [X] Learn about ECM and web services
    • [X] Follow up on documents of understanding
    • [X] Put together Idea Lab resources
    • Exported Social Business Jam discussions into spreadsheets and did a lot of data analysis – collaborating with Brandon Anderson, Michael Muller
    • Accepted invite to tweetchat with Paul Gillen (#infoboom) on the value of blogging
    • Got started on blogging presentation
    • Revised Remote Presentations That Rock
    • Put together resources for the value of blogging
  • Relationships
    • [X] Go to Second City with recent hires and friends – treated Linda Ristevski
    • [X] Host tea get-together 1pm our place Sunday Feb 27 (actually part of next week’s review)
    • [-] Watch Die Fledermaus (http://toronto-opera.com) – Postponed to next week
    • [C] Watch Madame Butterfly (http://toronto-opera.com)
    • [X] Send birthday cards
    • [X] Try making a beet smoothie or Tex-mex lasagna
    • Had salad with Gabriel Mansour
    • Worked on connecting with blog commenters
  • Life
    • [X] Enjoy extended weekend: spend focused time revising, drawing, presenting, cooking, and tidying up
    • [X] Experiment with giving presentation through Zipcast (Remote Presentations That Rock, Monday?)
    • Upgraded to 512MB web server for my blog, tweaked blog text

Plans for next week

  • Work
    • [X] Deliver “Remote Presentations That Rock”
    • [X] Work on ECM project
    • [X] Get things going with Drupal project
    • [X] Prepare other presentations and resources
    • [X] Do IBM #infoboom tweetchat on how to get more value from blogging
    • [X] Post the rest of series on getting more value from blogging
  • Relationships
    • [X] Host tea get-together
    • [X] Reach out to new blog commenters
  • Life
    • [X] Experiment with fixed-time wakeups
    • [X] Draw more
    • [X] Write monthly review

Time analysis

Experiment for the week: more social stuff. Met people, had mentoring chats, reached out through e-mail, etc.

Category This week Last week Delta Notes
Break 3.7 4.8 -1.1
Drawing 4.7 4.7 Remote Presentations, ITSC
Exercise 3.3 4.7 -1.4
Personal 1.7 1.7
Learning 0.6 -0.6
Preparation 5.0 0.4 4.6
Routines – cooking 8.9 1.8 7.1 Big batch of lunches, vegan appetizers
Routines – general 10.5 6.3 4.2
Routines – tidying 2.4 3.8 -1.4
Sleep 55.7 65.3 -9.6 Going to bed when I feel tired
Social 27.0 25.9 1.1
Travel 0.6 1.5 -0.9
Work 37.4 40.4 -3.0 Family Day holiday, ITSC presentation
Writing 7.1 12.5 -5.4

This week I tried getting up whenever it felt natural to wake up, and going to sleep whenever I felt tired. The result was a gentle introduction to the day, and a lot of good, focused work in the evening.

I’m going to try that again this week, this time picking a time to wake up and sticking with it. Aside from a really early wake-up on Monday, I should be able to keep a regular wake-up time.

Good week!

Get More Value from Blogging, part III: Sharing Makes the Blog Go ‘Round

February 26, 2011 - Categories: blogging, tips
This entry is part 3 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat on the professional and personal value of blogging on March 3, 2011 (2pm-3pm EST, #infoboom). When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series!

After two posts on the individual value you can get from blogging, you might be thinking, “Sacha, you can get those benefits from a private journal too. So why blog?” Now we get into the social benefits of blogging: how you can use it to create value and connect. Even if no one reads your blog but you, you can get started with sharing, and then go from there.

1. Direct

How do you get people to read your posts? Sometimes it’s just a matter of telling them about it. If you’re starting out, you might be worried that no one will come across your blog posts. Even if you’ve got regular visitors, people might miss out on posts that you know they’ll find useful. If you know people who may be interested in a post, go ahead and send it to them.

Move your conversations online. I often write blog posts to answer people’s questions or follow up on conversations, so it’s natural to share those posts directly with people through e-mail, Twitter, or other means. I post answers on my blog as often as possible, saving e-mail for information that’s confidential or of limited value.

Send people you know links they might find useful (but not spammy). In addition to directly sharing posts with the people who inspired them, I also frequently send posts to other people who might find them useful. During a conversation or a Twitter exchange, someone might ask a question about public speaking, Drupal, or any of the other topics I’m interested in. Instead of explaining everything from scratch, I can send links to relevant blog posts where people can learn more.


  • Whenever you answer a question or share a tip that could potentially help other people, consider taking a few extra minutes to post it on your blog.
  • When you post an item on your blog, think about specific people who might find it useful, and share it directly with them.

2. Search

One of the advantages of a public blog archive is that it’s searchable. You can write a blog post about a solution to a technical problem, and other people who run into that problem can find your post without knowing you. This is a great way to save other people time.

Making your knowledge searchable saves you time, too. If people can find answers for themselves, they may spend less time asking you questions that you can easily answer. You can use that time to develop your skills further and solve more challenging problems.


  • Include details that people might use in their searches. For example, if you’ve solved a technical issue, post the error messages and your solution.
  • Increase the chances of people finding your post by using the kinds of words they would use to search.

3. Browsing

Not only can people find your blog posts by searching, they can also browse at their own pace. Encourage people to explore by organizing your posts in categories and by linking to relevant posts from other posts in your blog. When people can learn from you and get to know you on their own, you can scale up beyond the number of people you can help or get to know in real life.

It’s okay to write about many things. Cross-pollination can lead to fascinating conversations. I often hear from people who discovered my site because of the technical resources I shared. They browsed around, found my sketches and my stories about cooking and life, and got a better sense of who I am as a person. Make it easy for people to find posts on topics they’re interested in, and create opportunities for them to discover other things if they want.


  • Whenever you write a blog post, think of relevant posts and resources you can link to in order to help people learn more.
  • Use post titles that are clear, informative, and interesting to encourage people to click on them.

4. Referrals

To grow even further, make it easy for people to share your thoughts with others. Encourage people to think of other people who might find your blog posts useful. Add Twitter, Facebook Like, or other social sharing services to your blog posts.

By making your content easier to share, you help your readers create value for other people, and you reach out to your network’s network. When someone e-mails a friend link to your post, that’s a great referral not only for your content, but also for you. People can also share your material with a wider audience by posting it on Twitter, Facebook, or other sites. They might even write a blog post going into more detail and linking to your resources.


  • Add social sharing buttons for Twitter, Facebook, and other sites, and encourage people to share.
  • Keep an eye out for when people share content, and thank them.

5. Learning from others

Sharing your questions, ideas, experiences, and lessons learned with other people is a great way to learn from other people’s insights. When I share what I’m learning, people often share even better ways to do things. Encourage people to comment on your blog posts with questions and tips, and you learn so much in the process of sharing. Make it easy for people to send you e-mail if they have something they would like to share more privately.

For example, when I posted yesterday’s tips on the compounding value of an archive, Mohamed suggested improving it by adding a quote from Donald Knuth. I hadn’t come across that quote before, but it made the post better. People have shared their thoughts on waking up early, doing Lotus Notes mail merges, connecting with people, and so on. Share, and you might learn something from people you wouldn’t have thought of asking.


  • Enable comments unless you have a strong reason not to do so. If you’re concerned about spam, you can moderate comments, use spam-blocking plug-ins, or review your comments regularly. You might not get many comments in the beginning, but as you build your network, you’ll find a lot of value in the conversation.
  • Ask questions. Ask people for suggestions, experiences, and tips. Invite people to participate, and show your appreciation when they do.
  • Make it easy to send you mail, either by using the contact form or sharing an e-mail address. If you’re concerned about e-mail spam, create a special e-mail address that you can then filter.

Get More Value from Blogging, part IV: Connecting with People

February 28, 2011 - Categories: blogging, connecting, tips
This entry is part 4 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat on the professional and personal value of blogging on March 3, 2011 (2pm-3pm EST, #infoboom). When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series!

A blog is an incredible way to connect with people. It helps people get to know who you are, what you’re interested in, what you’re good at, who you know, what you’re working on, and any entity till they got to share. Reading a blog, people can find out what you have in common with them, how you can help them, and how they can help you.

1. Introduction

People like getting to know people. When you make a new acquaintance, you might look them up on the Internet to find out more about them. Likewise, people look you up to find out more about you. A blog can be like your self-introduction. Your about page can include a short biography, and your blog posts can provide further details for people who want to know more.

Make it easy for new acquaintances to find your blog by adding it to your e-mail signature, business card, and social networking profiles. That way, people can read your blog to build on a brief introduction. As a result, a prospective client or new acquaintance might discover common ground with you. It speeds up the process of introduction, and simplifies getting to know people.

Don’t count on being anonymous or obscure. If you have a blog that you’d rather people didn’t read, you might have a problem in the future. Even systems with privacy controls can disclose data through programming errors, accidents, or malicious use. Before you post something, think about whether you can deal with the consequences of sharing it. Don’t let that scare you away from sharing, though! People are generally good, and they probably won’t hold minor mistakes against you.


  • Add a short biography to your about page. Keep in mind that this may be seen by both professional and personal contacts.
  • Add your blog URL to your e-mail signature, card, social network profiles, and other places people might check.

2. Deepening the connection

How do people go from being acquaintances to colleagues or friends? How can you develop a chance conversation at a networking event into a partnership that last years? Shared experiences and personal knowledge go along way to deepening that connection, and you can help that along through your blog.

I find this aspect of blogging really helpful. It’s difficult for me to e-mail people to stay in touch, because I don’t want to waste people’s time. I’m often pleasantly surprised to hear from people who have kept in touch with me anyway by reading my blog. I appreciate being able to read other people’s blog posts and status updates as a way of finding out more about them without getting in their way. The conversation might grow in this low-key way until it becomes a friendship.


  • Post regularly to give people reasons to come back.
  • Make sure that it’s easy to subscribe to your blog through feeds or e-mail.
  • Keep an eye out for people who regularly comment on your blog or talk to you about what you’ve written, and invest time in learning more about them.

3. Appreciation

A thank-you note is good; a public thank-you, done well, is even better. When you share what you’ve learned from people and your appreciation for how they’ve helped, that builds your relationship with those people, inspires others, and reflects well on you. It also helps people confirm what they’ve helped you learn and to share that with others – a great way to pay mentors back.


  • Use your blog to show your appreciation for people. Be positive – don’t use it for passive-aggressive “appreciation”!
  • When someone takes the time to mentor you, share your lessons learned if possible. That way, your mentor can check it and share it with others.

4. Reaching out

A blog gives you both a reason and a way to reach out to people. If you’d like to talk to people but you aren’t sure how to start the conversation, you might write about those people on your blog. For example, you could share what you’re learning from them her even from a distance, and what you might want to talk to them about. Many people regularly search for their name, and they might come across your post and start the conversation. It’s an interesting way to meet book authors, thoughtleaders, and other people active on the Internet.

Don’t expect a response, but be ready in case people reach out. Who knows? Maybe you can even ask a question, and maybe people will share a quick answer. It can pay to ask.


  • Show your interest, but don’t be creepy. Yes to admiration, no to stalking.
  • If you reach out to people through e-mail, you can mention your blog post about them as a way of sharing what you’ve been learning from them.
  • Look for something of value that you can bring to the conversation, even if it’s a really good question. Don’t reach out just for the sake of getting an e-mail from an A-lister, and don’t beg people for a link back from their blog.

5. The great conversation

Around the world, lots of conversations are happening through blogs. Someone posts an idea. Others write blog posts linking to the first post and sharing their thoughts. Yet others write blog posts following up on those posts. Along the way, people comment on blog posts, share their reactions on Twitter and other social networks, and talk about posts in person or through e-mail.

Participating in the conversation is so much better when you have your own blog. You can write longer posts in it, and you can build an archive of your thoughts. If people think your thoughts are interesting, they can explore your blog to find out more. If your thoughts are sprinkled in comments on different blog posts, it’s harder for others to get that sense of you.

You’ll still want to reach out to other people through commenting on their blogs, of course. Many blogs can automatically detect blog posts that link to them, but it’s nice to leave a comment summarizing your thoughts and thanking people for the inspiration. Don’t make your comments all about you, though! When you’re commenting on people’s blogs, it’s like you’re chatting in their living room. You wouldn’t want to make the conversation all about you. Read comments on other people’s blogs to get a sense of the etiquette. Blatant self-promotion doesn’t work well. Focus on adding value to conversations on other blogs, and link to a relevant blog post if you’ve written about something in more details.


  • When you read a blog post that inspires you to think about it, write a blog post and link
  • Look for blogs on topics you’re interested in. Read the comments for a while to get a sense of what the discussion is like. Try posting a few comments. When you find yourself wanting to say more, post those thoughts on your blog, and link to it. (But nicely!)

March 2011

Dealing with intimidating projects

March 1, 2011 - Categories: career, ibm, work

I’m working on my first big IBM project, something that goes beyond Perl scripts and Drupal websites. My manager thinks it will be a good assignment for me. The component diagram looks like alphabet soup, and I haven’t worked with any of the pieces before. It’s intimidating.

Open source projects like Drupal or Rails don’t scare me as much, even though they require a lot of figuring out and hacking as well. I think it’s because I’m confident that I can figure things out from the source or from the Internet, and because I can hold more of it in my head. This project will involve quite a few IBM components, and I can’t work with, understand, or even remember everything. It’s big.

But I know this feeling of incipient panic, and I’ve dealt with worse before. It’s the same feeling I got as a teaching assistant at the University of Toronto, doubting myself because I was helping people learn something I was just learning about myself. I remember feeling uncertain. I remember feeling like an impostor. I felt like giving up. Then my department chair set me straight, and I made it through.

I can deal with this. My manager thinks I can handle it. IBM has a great support network and I’ve got plenty of mentors. I’m learning a lot from the other people on the team. It’s going to be okay. And at the end of the day, I’ll learn how to work with a pretty decent-sized IBM software stack, integrate with lots of middleware, work with complex web services, and maybe even turn things that scare me into things that I enjoy.

Here’s what I’m planning to do:

  • [X] Install Rational Software Architect and learn how to use it to view project designs.
  • [X] Learn how to use Rational Software Architect for web services.
  • [X] Figure out what I need to learn for Websphere Application Server or Websphere Portal to make the web services happen.
  • [X] Stay sane throughout the process. =)

2011-03-01 Tue 16:26

Get More Value from Blogging, part V: Communication Matters

March 1, 2011 - Categories: blogging, tips, web2.0, writing
This entry is part 5 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat on the professional and personal value of blogging on March 3, 2011 (2pm-3pm EST, #infoboom). When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series!

You might feel awkward in the beginning, but trust me, all that writing practice from your blog will pay off. Blogging is a great way to figure out not only what you want to say, but how you want to say it. Better communication skills will help you at work and in life!

1. Writing

  • Blogging helped me fall in love with writing. I got frustrated in school, writing book reports and essays that didn’t really matter. When I started blogging, I discovered the joy of writing for myself and others. It turned out to be a lot of fun, and now writing is one of my favourite activities. It pays off at work, too.Tips:
  • Practise outlining or mindmapping your blog posts. As you get better at planning your posts, you’ll be able to write them more quickly.
  • Review your old posts and revise them. Figure out what you keep writing about, and summarize or update your posts.
  • Read lots of blogs to get a sense of the kinds of blog posts you enjoy reading. Emulate different styles and challenge yourself to try different techniques.
  • Don’t let perfectionism stop you from writing. Your blog posts may feel like rough drafts, but you’ll get better at writing over time.

2. Visual communication

Whether you’re writing a professional blog or a personal blog, it can be good to add visual interest through photographs or drawings. You can develop an eye for images and visual communication by including Creative Commons-licensed photos or stock photos in your posts, appropriately attributed when necessary. You can also take your own pictures or draw your own illustrations, adding more of a personal touch to your blog while helping you develop your skills.

My blog–and the presentations that grew out of it–helped me rediscover drawing. You can see the evolution of my sketches from scrawny stick-figures on a Nintendo DS to slighly-less-scrawny stick figures on a tablet PC. I’ve come to enjoy drawing, and sometimes people even ask me to draw something for them.


  • Add something visual to your blog – either something you made, or a relevant image from the Internet. (Respect copyright.)
  • One way to get better at photography or drawing is to set a public goal of posting a photo or sketch regularly (ex: one photo a day). Give it a try!

3. Presentation

If you give presentations, a blog can be an incredible resource. You can use your blog to draft and share ideas, collect material, get feedback, share your presentation, and follow up with people.

Many of my presentations have grown out of blog posts, and I’ve received a number of invitations to speak from people who’ve come across my posts. My blog gives me a place to try ideas out, refine them, get feedback, and put together presentations.


  • Post your presentations and share the URLs when you give presentations. This gives people a way to follow up.
  • Post your outlines and presentation ideas on your blog, and use your blog posts to draft presentations or collect material. This will make it easier to prepare presentations later, and you can learn from other people’s feedback along the way.

4. Conversation

Blogs make conversations so much easier for me. When I talk to people, I often find myself thinking about or referring to things I’ve written. It really helps to have thought about some things and be able to express them clearly, and I love sharing additional resources.

My blog posts have also led to all sorts of conversations I wouldn’t have had otherwise. I sometimes find it difficult to start a conversation. Fortunately, people read my blog and start the conversation with me, both online and in person.

Conversations lead to blog posts, too. There, my blog gives me the opportunity to continue the conversation, reflect on things I’m learning, and share them with a wider audience. I get to show my appreciation for the insights people have shared with me, and I get to learn from other people’s perspectives.


  • Write about things people might find useful, then blend these thoughts into your conversations where appropriate.
  • Follow up on conversations in your blog.

5. Avoiding the curse of expertise

Many people don’t want to write about things they don’t feel are their expertise. Experts are experts because they’ve achieved unconscious competence; they’ve forgotten more than other people have learned. Experts often have a hard time explaining things to other people because they’ve forgotten the details that stump newcomers. So experts aren’t really the best people who can write about things, especially for beginners. It’s better to write along the way, while you’re learning, so that people can understand and so that you won’t take things for granted.


  • Don’t wait until you’re an expert. Write while you’re learning.
  • Use your archive to remember what it was like to learn something complicated.


Questions and answers from #infoboomSC tweetchat on blogging

March 3, 2011 - Categories: blogging, tips, web2.0, writing
This entry is part 8 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat about blogging. I learned so much from it, and I hope others do too! Here’s what we talked about.

On making the time to write

Your output is amazing. I don’t know where you find the time to post daily. How do you do it? @infoBOOM
Writing != extra work. Making it part of the way I work helps me be more effective. http://sachachua.com/blog/p/21845. Also, I think about ROI on my time. No TV; yes writing, reading, experimenting. http://sachachua.com/blog/p/22053.

How much time do you spend per blog? What time of day do you do it? @dgriess
I’ve tried writing morning pages, but I usually just write whenever I’m learning or solving problems.
Let me ask another way, about how much time goes into each entry? @dgriess
Depends on topic. Usually 5-15 minutes extra, or 30+ if I’m braindumping tips for others / exploring something new.

What would you recommend for those who try to blog on behalf of their company? How can they carve out time? @KevinMGreen
It’s marketing, professional development, networking, and all sorts of good stuff. Great ROI. Makes sense to do it.

Finding time always seems to be the biggest challenge. @KevinMGreen
Try tweaking your workflow so that you write along the way. Check importance/efficiency of other things you do.

On perfectionism and personal branding

My question for this chat: What would help _you_ get more value from blogging? What are your challenges / goals?
kurtisgriess: Hardest thing abt blogging for me is planning and perfectionism… takes me forever!
pgillin: Hardest thing for me abt blogging is feeling I have to always be profound. Worried about wasting ppl’s time.  (Sacha: Reading is optional, skimming is easy. You don’t have to be perfect, or profound, or even interesting. ;) )
KevinMGreen: likewise Paul #infoboomsc always trying to deliver can be intimidating
Sacha: Me, I’m looking forward to writing about more things (life! work! awesomeness!), and getting better at organizing for discovery.

What are common mistakes you see/experience? @KevinMGreen
Perfectionism and the related fear of having to publicly change your mind or admit room for improvement. ;) Partly our collective fault, because we scare people re: the unforgiving memory of the Internet. I disagree with that. You are never going to be perfect. You’re also never going to get better unless you try. ;)

I wrestle with “perfecting” a thought. Probably thinking too hard on my individual entries. @dgriess
It’s easier to work with a draft or post than with a blank slate. There will always be a better way to say things.

I can imagine there would be some folks out there who may not feel comfortable about blogging their work. @elsua
Blog transparency may not be for everyone just yet, but it’s surprisingly less scary than most people think.

How can people bypass that risk aversion and dive into it slowly, but steadily? Don’t fear, just blog? @elsua
Small steps can help people get over fear, experience immediate benefits: http://sachachua.com/blog/p/7316

… Ideally that people should understand how blogging is perhaps the most powerful trait for their personal brand @elsua
I wish people worried less about “personal brands” and felt better about connecting as _people_. =)

On finding ideas

Many people have trouble coming up with ideas for their blog. Any tricks you can share? @infoBOOM
Write about everything (http://sachachua.com/blog/p/22082). Don’t worry about niche (http://sachachua.com/blog/p/7046).

Can you share any tricks for what to do when you run out of ideas? Or does that ever happen? @infoBOOM
Do you ever run out of things to learn, or things you can help other people learn? No lack of material.

What’s the one tool/resource you rely on to create such compelling content? @KevinMGreen
Best resource for blogging: Life. Best tools: the questions: “Why? Why not? How can we make this even better?”

On practices

Do you write in your blog more for yourself or for others? What’s the balance? @kurtisgriess
Mostly myself (can’t trust my memory). Often for (usually specific) others, just in case others find it helpful.

What’s your thinking on comments? Do you try to respond to them all? @infoBOOM
I reply to as many comments as I can. I’m sure some slip through cracks. Easier than e-mail. =) Also, warm contacts.

How would you describe your voice? Or does that even matter to you? @infoBOOM
My blogging voice? Me. I’m like this in real life. It makes writing much easier — and living’s easier, too. =)

You don’t use gimmicks like “top 10” lists or “best and worst.” Is that by design? @infoBOOM
Can’t stand reading or writing generic blog posts with arbitrary rankings. I’ll use mnemonic structures, though.

You post weekly review lists. What’s the reason? @infoBOOM
On the practice of a weekly review: http://sachachua.com/blog/p/6946

In your opinion, what’s the ideal length of a blog post? Or does it depend on the topic? @elsua
I try to stick to one clear thought per blog post, saying as much or as little as I have to say about that. Lengths vary.

What do you use to manage your editorial approach? I still send myself emails which is not really effective. @KevinMGreen
I keep a big text file on laptop with rough notes and ideas, and I post snippets on a regular basis or by plan.

When someone sends you a question by e-mail, do you often post answer to blog and send them link? @infoBOOM
Shift e-mail conversations to blog posts when possible. Widens the conversation, reaches more people, saves more time.

You do write about a lot of topics. Do you ever worry that you lack expertise in these areas? @infoBOOM
When you’re learning, that’s the best time to write. Don’t wait until you’re an expert and you’ve forgotten.


When you started your blog, did you set goals on spec. milestones (traffic, subscribers)?  @kaeppler
Early: class notes, Emacs snippets, things to remember. Didn’t care about traffic or subscribers, but happy I helped. Still don’t focus on traffic or subscribers, although honoured to see them. It’s not about numbers, it’s about people.

[…] Was “living an awesome life” your first blog at all? @kaeppler
It’s actually just an alternative name for sachachua.com – livinganawesomelife.com is easier to remember/spell. ;)

You’ve written that blogging has made you a better presenter. How? @infoBOOM
Practice in figuring out what to say, how to say it. Archive of potential material. Better ROI and reach. Invitations. Also, feedback on content, delivery, and technology. Continuous improvement. Confidence. Connection.

Many bloggers are too focused on the audience and less about the personal value they receive. @KevinMGreen
Tons of immed. indiv. value.http://sachachua.com/blog/p/22119 New bloggers, take heart, even if no one reads you! #infoboomsc

Can you tell one or two stories of remarkable things that happened to you because of your blogging? @infoBOOM
Got job created for me (http://sachachua.com/blog/p/6456), found mentors (http://sachachua.com/blog/p/6928)…

Sacha, would love for you to share insights on how you use blogging to narrate your work @elsua
Blogging is a great way to understand complex issues. It also helps shape culture of knowledge-sharing – many benefits!

Is there one blog post that stands out as particularly memorable to you? And why? @infoBOOM
It’s like asking me what my favourite book is. ;) Lots of context-sensitive favourites. A recent highlight: http://sachachua.com/blog/p/22017, but that could be because I cut my finger in the process. ;)

We’re thinking of doing another tweetchat with #infoboom in three months. In the meantime, if you have any questions, thoughts, suggestions, or tips, please feel free to share them through comments, blog posts, and Twitter! Would you like to host a conversation about a topic I’m passionate about? Let’s talk about it!

Get More Value from Blogging, part VI: Let’s Get Down to Business

March 4, 2011 - Categories: blogging, business, career, tips, web2.0, work, writing
This entry is part 6 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat on the professional and personal value of blogging yesterday. When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series!

1. ROI

Blog your work to increase your return on investment or effort by remembering more effectively and by reaching more people.

How much time do you spend solving problems similar to what you’ve encountered before, answering questions you’ve already answered before, or remembering information you need to solve new challenges? Take notes and save that time.

How much time can you save other people if you share your notes with them? Are there other people in your organization, client base, or network who could benefit from your solutions? Share your notes.


  • Invest the extra minutes in taking and sharing notes in order to increase your ROI.

2. Questions, updates, resources, and serendipitous conversations

One of the challenges of blogging is that you don’t know who’s going to read it. That’s also one of the advantages. When you ask a question, you might be surprised by who answers it – perhaps someone you wouldn’t have thought of asking. When you post an update, you might make an unexpected connection with someone else, and learn about resources you might not have discovered on your own. When you talk about something you’re working on, you might end up in a serendipitous conversation with someone who can make use of it or help you with it. It’s the online equivalent of the lucky hallway chat, except with a lot more people in the virtual hallway.


  • Make it easy for people to discover your updates or even subscribe to them.

3. Connection

If you add personal touches to your professional blog, you can make it easier for potential clients and coworkers to connect with you through common interests. Write about why you do the work that you do and what you love about it. Write about your other interests, too.


  • Don’t be afraid of bringing your personality to your blog. Use it to connect with people.


4. Reputation

Blog your work to build your reputation. When people read about what you’re working on, they learn about your skills and get a sense of who you are as a person. The next time they come across a challenge that looks like it’s a good fit, they might think of you and refer the opportunity to you. Particularly if you’re starting out, sharing your knowledge will help you build your network and your reputation.


  • Use your blog to demonstrate your skills and your character.
  • Invest time into building thought leadership through blog posts, articles, and presentations.

5. Jobs and careers

A blog can help you look for a great job or plan your career. Use it to explore your strengths and figure out how to communicate them. Use it to think about what kinds of companies would be a good fit for you, and where you would be a good fit. Use it to connect with people and ask them for help. Use it to reflect on where you want to go with your career and what kind of value you want to create.


  • Don’t beg for a job. Use your blog to communicate strength, passion, and professionalism.
  • Build a network of mentors and friends. Connect with people and ask them for advice.

6. Accountability and transparency

Blogging is a great way to make public commitments and hold yourself to them. You can use this for both personal and professional goals..

If you speak on behalf of a company, then you definitely need a fast way to respond to any issues that come up. With the speed of conversation on Twitter and blogs, you can’t wait for press releases. Establish this channel before a public relations crisis comes up. It’s better to admit a mistake and work with people on resolving it than to stonewall.

7. Culture

Whether you’re an executive or a newcomer, you can influence the culture of your organization through what you share. When you share what you know through your blog, you encourage a culture of knowledge-sharing. When you add a personal touch, you contribute to a culture of human connection. When you show that you aren’t afraid of making mistakes and learning from them, you develop a culture of growth. This can have a powerful effect on your organization, both online and offline.


  • Consider the fit between how you want to write and what the existing culture is. Be prepared for differences, and modify your approach accordingly. For example, if you want to shift your surrounding culture to share more, anticipate and address people’s concerns.
  • If you’re a leader, take the initiative in demonstrating the kind of company culture you want to encourage.


Presentation experiment: Shy Connector, Six Steps to Sharing, and other presentations in March!

March 5, 2011 - Categories: presentation, speaking

Slideshare’s new Zipcast feature nudged me to experiment with giving more online presentations externally. I regularly give presentations inside IBM using our Lotus Live Meetings service. Because of the usage charges, though, I haven’t gotten around to offering many externally-available presentations. I accept invitations to speak, but I tend not to organize things myself.

I think that’s worth experimenting with. Not only are web conferences a good way to get ideas out to more people, they’re also a great way for me to learn from the questions and answers people have. I’m going to organize weekly presentations, taking advantage of Zipcast’s beta and seeing whether this is something worth investing in going forward.

Why come when you can get the content from my blog or posted presentations?

  • Get extra energy from hearing and seeing me talk about things I’m excited about
  • Ask questions and share your thoughts in the text chat
  • Connect and help me and others learn

Here are the presentations I’m thinking of doing. They’ll be every Saturday in March, 12 noon – 1 PM Eastern Time, and I’ll see if I can hack a way to record and sharing the presentations. Feel free to share these events with others!

The Shy Connector, March 5, 2011, 12pm-1pm EST, http://www.slideshare.net/sachac/meeting
Are you an introvert? I am too! Use these seven tips to help you make the most of your introvert strengths and connect with people.
Add to

Six Steps to Sharing, March 12, 2011, 12pm-1pm EST, http://www.slideshare.net/sachac/meeting
Want to get started in blogging, but don’t think you know anything worth sharing? Here’s how small steps can help you build the habit of sharing and learning online.
Add to

Remote Presentations That Rock, March 19, 2011, 12pm-1pm EST http://www.slideshare.net/sachac/meeting
Want to get better at reaching, teaching, and inspiring people through online presentations? Find it challenging to connect with people or continue the conversation? Use these seven tips to create and deliver remote presentations that rock.
Add to

Get More Value from Blogging, March 26, 2011, 12pm-1pm, http://www.slideshare.net/sachac/meeting
How can you make blogging pay off for you better, personally and professionally? Pick up tips and ask questions in this session!
Add to

Can you think of other people who might find these presentations useful?

What else would you like to learn more about?

Weekly review: Week ending March 4, 2011

March 5, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Deliver “Remote Presentations That Rock”
    • [X] Work on ECM project
    • [-] Get things going with Drupal project
    • [X] Prepare other presentations and resources
    • [X] Do IBM #infoboom tweetchat on how to get more value from blogging
    • [-] Post the rest of series on getting more value from blogging – Almost done
    • Back into programming, yay! Got AJAX/PHP project started.
  • Relationships
    • [X] Host tea get-together
    • [X] Reach out to new blog commenters – well, mostly old blog commenters
    • Checked out Liberty Village Toastmasters
  • Life
    • [-] Experiment with fixed-time wakeups
    • [X] Draw more
    • [X] Write monthly review
    • Helped with study group
    • Got my TD Waterhouse account sorted out (kinda)

Plans for next week

  • Work
    • [X] Work on critsit involving AJAX and PHP
    • [X] Start building web services using Websphere Application Server
    • [X] Shepherd the Rails project through legal approval process
  • Relationships
    • [X] Meet up with Cate Huston and Maggie Zhou
    • [X] Help with study group
    • [X] Book flights
  • Life
    • [X] Try more Zipcast experiments
    • [X] Practise driving
    • [X] Write about tweetchats and presentations
    • [X] Work on plans

Time analysis

Experiment for the week: more social stuff. Met people, had mentoring chats, reached out through e-mail, etc.

Category This week Last week Delta Notes
Break 1.3 3.7 -2.4
Drawing 4.7 -4.7
Exercise 3.8 3.3 0.5
Personal 1.6 1.7 -0.1
Learning 0
Preparation 3.2 5.0 -1.8
Routines – cooking 2.3 8.9 -6.6 Living off leftovers, efficiency yay =)
Routines – general 7.6 10.5 -2.9
Routines – tidying 7.8 2.4 5.4
Sleep 58.5 55.7 2.8
Social 29.2 27.0 2.2 Tea party
Travel 7.5 0.6 6.9 Went up to office several times
Work 40.2 37.4 2.8
Writing 4.8 7.1 -2.3

More time spent commuting, but it was with W-, so it was a lot of fun. =)

Monthly review: February 2011

March 6, 2011 - Categories: monthly

February was an interesting month at work. Lots of presentations, for one – that’s the easy part. Lotusphere was quite an experience, too. I’ve started helping with estimates, scoping projects, preparing paperwork, and learning new platforms. This is the longest I’ve worked at IBM without being heads-down on one or two projects. Instead, I’m juggling the plans for several. My manager isn’t stressed out about this, so I’m not stressing out about it either.

When it rains, it pours. If these proposals go through, they’ll probably sign at roughly the same time. Some of them are flexible and some of them have tighter timelines, so March and April promise to be full of learning experiences. This is great stuff, and exactly what I should be learning. Can’t wait!

From last month’s plans:


  • [X] Work on new project
  • [-] Put together talks for Deeper Insight, Remote Presentations That Rock, and the ITSC: Did the second two, but not the first
  • [X] Mentor more people
  • Participated in Lotusphere
  • Learned how to estimate and scope projects


  • [X] Organize get-together
  • [X] Get visa and arrange travel details
  • Learned new recipes


  • [X] Write up more reflections
  • Experimented with Zipcasts, tweetchats, and other ways to share what I know

Plans for March:


  • [ ] Shepherd more projects to signing and work
  • [ ] Learn how to implement web services on Websphere Application Server
  • [ ] Create and deliver more presentations
  • [ ] Finish blog series on blogging


  • [ ] Host another get-together
  • [ ] Build a set of people to call once a week
  • [X] Check out Toastmasters again
  • [ ] Practise driving


  • [ ] Refine my plans
  • [ ] Start seedlings

Weekly/monthly reviews:

Communication tips:

Other stories:

Can’t see cross-domain images in your Flash file? Make a crossdomain.xml

March 8, 2011 - Categories: geek

My mom recently noticed that images weren’t loading in the Flash viewer on www.adphoto.com.ph, but they were loaded on adphoto.com.ph. A quick look at the Javascript console showed that crossdomain.xml was missing. The Macromedia Flash 10 plugin is stricter about this than previous versions were, so if you don’t have a crossdomain.xml set up, you might find your older sites breaking for new browsers.

Here is a straightforward crossdomain.xml that allows requests from everywhere, useful for development:

<?xml version="1.0" ?>
<allow-access-from domain="*" />

You can specify domains like this:

<?xml version="1.0" ?>
<allow-access-from domain="adphoto.com.ph" />
<allow-access-from domain="www.adphoto.com.ph" />

More information: http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html

When debugging a website, it is often helpful to use Chrome or Firefox’s developer tools, such as the Javascript console. In this case, the request for crossdomain.xml and the resulting 404 (not found) helped me find out what was going on.

2011-03-08 Tue 08:01

Quick notes from Emacs Org-mode talk at GTALUG

March 8, 2011 - Categories: emacs, presentation, speaking

My Emacs Org-mode talk at GTALUG was a lot of fun. I had made a quick outline of things I wanted to cover, and the discussion took us to all sorts of places – really more like a romp through the world of Emacs. I kept my talk plan small and tightly-focused – not even Org-mode, just note-taking in Org-mode – but I ended up talking about all sorts of things because they were cool and that’s where the discussion took us. This means that my outline isn’t much use for reconstructing the talk, but maybe whoever recorded it can share the audio and the video. =)

Unexpected wow moments of the day, completely not in my outline:

  • Someone’s question about my tablet PC led to showing off M-x artist-mode, drawing using my tablet, and the line and spraycan tools. (I’d never tried it before. It works!)
  • A conversation on the way to the talk led to my showing M-x snake.
  • Someone’s joking query about whether you can run vi in Emacs (following up on someone who mentioned the vi emulation mode, perhaps) led to my demonstrating vim in M-x term, which naturally led to running console Emacs within my Emacs.
  • Someone mentioned mail, so I showed Gnus, and another person mentioned adaptive scoring, and we talked about news-inspired techniques for dealing with e-mail.
  • People asked me how big my config file had gotten. The word count tool says 226k characters – ah, the process of accretion. You can learn Emacs and customize it a little bit at a time, though!

I’ve given two Emacs talks so far, and both of them had delightful audience interaction – among the best of any of the talks I’ve given. I think it’s because with Emacs, even people’s jokes give me a starting point to mention something I’ve learned about or come across or built. The energy of the session is really something different. It’s almost like an infomercial-ish “But wait, there’s more!”, but everyone’s in on the joke, they’re part of what’s happening. It’s an adventure.

I don’t want to give the impression that Emacs is just about fun. ;) Of all the software I’ve ever used, I think Emacs has contributed the most to my productivity and my learning. Not only do I find the direct benefits useful, I also really appreciate the inspiration I get from all these other people who use and improve Emacs.

So the key question I want to address with more thought is: where does one find the time to learn these things? I think you answer this the same way you make the time for things that matter – strategic optimization. Like in code, premature optimization doesn’t work. You need to figure out what actions are important and where improvements would have the most effect – where your moments of truth are. For example, it really pays to improve my abilities in programming, writing, and note-taking, because I do that a lot and it creates a lot of value at work and in life. On the other hand, I don’t stress out about typing even faster, because that’s not my bottleneck. And I also make sure to invest time into all sorts of other aspects of life, because those are important to me too.

Back to Emacs and the presentation. My goal for the talk wasn’t to convert anyone or show people specifically how to set up their environment. I wanted to give people an idea of what my workflow looks like, expose them to some of the things Emacs can do, and perhaps inspire people to learn more about their tools. (I made sure to mention lots of cool things about vi, too!) We started at 7:30 and had a great discussion for two hours (two hours!) that flew by until the organizers suggested it was time to wrap up. Quite a few people came up to me afterwards and told me that they were inspired to learn more about Emacs. Whee!

That was tons of fun. I’d do it again. It has to be an interactive group, somewhat casual (so that people feel free to interject questions) and technical (helps to have a few other Emacs users in the audience, and a general interest in tools). Voice is probably a huge component of it – both being able to communicate enthusiasm and for the conversational aspect of the discussion. Screen-sharing or projection is vital; this kind of talk wouldn’t have worked with slides. So it’s probably a talk I’d need to give in person, considering webconference interaction patterns and screen-sharing delays. Hmm…

(Maureen: there is a screenplay mode for Emacs. Isn’t that amazing? Might be worth learning Emacs. More writing resources on the EmacsWiki. If you’re intrigued by it, check out the Emacs Newbie resources.)

2011-03-08 Tue 23:40

Leveling up as a developer!

March 9, 2011 - Categories: geek, ibm, work

It’s satisfying adding a bunch of IBM acronyms to my “marketable skills.” They’re not that intimidating after all!

I spent the morning and part of the afternoon pair-programming with Bharat Boddu on a time-sensitive project involving an IBM software stack. It was a struggle in the beginning. Both of us were new to all of this, and the sheer volume of information available for Rational Software Architect, Websphere Application Server, DB2, and other parts of the stack was overwhelming. The simplest of things tripped us up because we didn’t know how to debug them. For example, we learned the hard way that adding the DB2 classes to the project’s classpath didn’t mean that they were part of the runtime configuration classpath when the web services were deployed to the server. I also spent what seemed like an hour trying to deal with this issue from the web service explorer:

IWAB0135E An unexpected error has occurred. 

(Solution: Check the endpoints you’ve defined in your WSDL, or define new ones. example.org won’t work.)

Once we got over those roadblocks, things flowed smoothly. We used Rational Software Architect to define web services, deployed them on Websphere Application Server, and queried a DB2 database. We also figured out how to work with complex data types and lists for both input and output. We needed to figure out how to consume web services too, so I dug around until I found a web service defined by a WSDL that played well with our configuration. All these bits and pieces will come in handy when we start working on the real requirements.

I can feel myself learning all sorts of new things. I love these moments: the magic of concepts snapping together, like the way you reach out and find things right where you’re looking for them. And I’m slowly inching my way into another area of developer awesomeness: dealing with middleware, service-oriented architecture, and all sorts of other business-y things.

Here’s what I do well, and what I’m learning to do even better.

  • I’m good at breaking down tasks or ideas into small chunks that I can work on or test. This is really helpful when learning something new, because it helps me gain skills and confidence. It’s challenging when I can’t get enough of a grip on something to figure out what a good first task is, or sometimes what the intermediate tasks are, but once I get the hang of the internal logic of something, I can go pretty quickly. I’m getting even better at this by learning about more platforms and toolkits, and by learning bigger “chunks”.
  • Similarly, I’m good at breaking down unknown quantities and figuring out how to test parts of them. I can apply the problem-decomposition skill I use in development to estimating and planning, too. The book I recently read (How to Measure Anything) had great tips on how to strategically reduce uncertainty; reading that gave me a way to recognize what I’m doing and to improve that. So, for example, I can start with an estimate with a wide range, and I can break it down into the risky parts and some ideas on how to get a better understanding of the numbers.
  • I’m getting better at quickly prototyping applications. It’s fun taking a simple idea from a whiteboard sketch to a mostly-working prototype in a day. =D
  • I’m doing surprisingly well at juggling multiple projects. I’ve got two projects that are time-sensitive, and we seem to be doing okay. There are several projects in the pipeline that I’m working on, too. I keep personal notes on what’s on my radar and what I need to do, and I’m good at keeping folks up to date. I can get even better at this by spending more time to communication and planning, and possibly setting up some filtering rules for my inbox.

I’m glad my manager took a chance on these projects, even though I did have to work through looming panic. ;) (It gets much easier to deal with intimidating systems when you get going!)

This is good. I like this feeling. And I can still fit in sleep, presentations, blog posts, homework help, and sanity breaks. =) Hmm…

2011-03-09 Wed 16:51

Trying MemoLane (social timeline)

March 10, 2011 - Categories: web2.0

Trying MemoLane on David Ing’s recommendation. It organizes blog posts, Twitter posts, Facebook entries, and other social information into a rather pretty timeline. This has been done before, but Memolane does have a pretty interface.


Wish it could pull in all of my old blog posts and tweets, though! =)

Potentially interesting feature: collaborate with other people on a timeline. Hmm…

Math and energy

March 11, 2011 - Categories: learning, life, teaching

We’ve been hosting math study groups over at our place every Friday afternoon, and occasionally on other days too. Today we reviewed the multiplication table, and adding and multiplying fractions (even mixed numbers!). We also snuck in a preview of dividing fractions (mindboggling!) and some letters from the Greek alphabet (with brief excursions into pi, trigonometry, and others).

They had been practising! The kids rattled off the multiples of six, seven, and eight with growing confidence. They only needed a little reminder to handle addition and multiplication of fractions.

After they told me how their teacher had sprung a brainteaser on them (24, 68, 101, 214, …), I shared this one: 31, 28, 31, 30, 31, 30, 31… They solved it after a hint, and looked very excited about the idea of possibly stumping their teachers. And then there’s this other one they left the house with: 3, 3, 5, 4, 4, 3, 5, 5, 4, 3, 6, …

“I didn’t know how a math study group could be fun,” one of the parents said, “but now I see how.” She had joined us a little early to find out what it was like. Her son was practically begging us for a chance to do the multiplication tables, so we did another round of them, with the grown-ups joining in too. =)

What’s it like hosting a study group at our place? We aren’t like the tutors I remember from home: the quiet one who helped my sister with math and other subjects, or the ones who came to our house to help us with Chinese. W- and I have tons of fun teaching. We come up with examples and exercises, throw in all sorts of zany ideas, sneak in advanced material as well as confidence-building reviews.

I really like the small group format. I can bring even more energy to that than I remember from my days of teaching computer science in university, and I can modify the lessons and exercises faster. It’s like the thrill of an especially interactive presentation, except that I get to actually see what people do with the ideas in the end. I can see the aha! moments happen, see progress week after week.

I’m so glad we’re doing this. I wonder how we can share more of what we’re doing, maybe help more kids and parents gain confidence too…

2011-03-11 Fri 20:56

Weekly review: Week ending March 11, 2011

March 12, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Work on critsit involving AJAX and PHP
    • [X] Start building web services using Websphere Application Server
    • [X] Shepherd the Rails project through legal approval process
  • Relationships
    • [X] Meet up with Cate Huston and Maggie Zhou
    • [X] Help with study group
    • [X] Book flights
  • Life
    • [X] Try more Zipcast experiments
    • [-] Practise driving – it’s been very snowy and icy
    • [-] Write about tweetchats and presentations
    • [X] Work on plans
    • Gave GTALug presentation on Org mode

Plans for next week

  • Work
    • [ ] Work on critsit involving AJAX and PHP
    • [ ] Deploy web services onto Websphere Application Server in test environment
    • [ ] Create stub web services, maybe integrate with DB2
    • [ ] Sort out work priorities for April
  • Relationships
    • [ ] Catch up with mail, networks
    • [ ] Help with study group
    • [ ] Make pie for Pi Day
  • Life
    • [ ] Finish value of blogging series
    • [ ] Write about tutoring math
    • [ ] More Zipcast experiments: what if I treat them like office hours?
    • [ ] Write about tweetchats and what I want out of them
    • [ ] Make more bread

Time analysis

Had a focused week at work (critical projects plus lots of other things going on), but still managed to keep it within reasonable hours. Found some time to apply digital painting tips I picked up from the Web. Shifted travel time and social time to preparing for presentations.

Category This week Last week Delta Notes
Break 3.0 1.3 1.7
Drawing 1.2 1.2
Exercise 2.2 3.8 -1.6
Personal 6.1 1.6 4.5 Preparing presentations
Preparation 2.0 3.2 -1.2
Routines – cooking 3.2 2.3 0.9 Slightly more time for breakfasts
Routines – general 14.8 7.6 7.2 Probably included tidying time
Routines – tidying 1.6 7.8 -6.2
Sleep 59.0 58.5 0.6
Social 24.2 29.2 -5.0 Presentation, study group
Travel 5.1 7.5 -2.4
Work 40.8 40.2 0.6
Writing 4.8 4.8 0.0

Get More Value from Blogging, Part VII: Inspiring Yourself and Inspiring Others

March 13, 2011 - Categories: blogging, tips, web2.0, writing
This entry is part 7 of 8 in the series Get More Value from Blogging

Paul Gillin invited me to do a tweetchat on the professional and personal value of blogging. When I brainstormed some of the things I’d like to talk about, I ended up with a big list: not just the value I get from blogging, but also tips for how you can build that too. I hope you enjoy this blog series! You can also see other resources in this value of blogging series.

1. Making your goals real

Writing about your goals can be scary. You might feel that people will laugh at your goals, or that they’ll embarrass you if you don’t achieve them. You might worry about sounding over-ambitious, or not ambitious enough.

But there’s a lot of value in writing about your goals, even if you start by doing so in a private entry. When you write about what you want in life, why you want it, and how you can get to that point, that path becomes clearer. When your goals dim and your willpower fades, you can inspire yourself by reviewing your notes, reminding yourself of your goals and why they matter.

Tips: Set a goal for yourself. Write about it. Write about why it matters to you. Write about your plans for achieving your goal. Review your notes when you need a burst of energy.

2. Connecting with inspiration

The Internet can make it easy to connect with other people who have similar goals. Look for blogs that inspire you. If you share your reflections through blog posts of your own, linking to the posts or people who’ve inspired you, you can build unexpected relationships and learn from or even help your role models in surprising ways.

Tips: Comment on inspiring blog posts. If you have more to say, write a blog post that refers to theirs. Share what you’re learning from people and how you’ve tried those ideas in your life.

3. Progress

Change can be long, slow, and tiring. If you can look back at the progress you’ve made, though, you might find it easier to keep going. You can use your blog to keep track of your progress.

If you’re trying to establish a new habit, you might write about how well you’re doing, or what you can do to make it easier to do what you want to do. If you’re working on improving your skills, your blog posts can help you keep track of your growth. For example, when I started learning more about drawing, I blogged my stick figures. Thanks to my blog, I can see how my drawing techniques have evolved over time, and I get less frustrated because I know I’m making progress.

Tips: Write about your progress, and think about sharing examples of your work so far. Don’t beat yourself up if you miss a day, lapse into old behavior, or slide backwards. Focus on the positive, and keep going.

4. Inspiring others

Inspire others? Yes, you can do that, even if you’re just starting out. If you share what you’re learning and how you’re living life, you might be surprised by how you touch other people’s lives. And it gets even better – you might learn a lot from the people you inspire, too.

One of the things that makes it easier for me to think out loud – to share whatever I’m learning about or struggling with on my blog – is that I often hear from other people who’ve learned a little from what I’ve shared, or who are glad to find someone else dealing with similar situations, or who are happy to finally have words for something they’ve struggled to describe. We’re all in this together, and it’s great to be able to help and inspire other people.

Tips: Don’t be afraid of sharing what you’re learning, even the parts that are hard. Who knows whom you might help along the way?

Coconut buns and the economics of home awesomeness

March 14, 2011 - Categories: cooking, family, life, love, reflection

Sometimes making things at home is cheaper than buying them. Sometimes it’s more expensive. For example, the batch lunches we prepare and freeze come out to $1-$3 per meal, labour included. They’re definitely worth it compared to eating out. The coconut cocktail buns (pan de coco?) I spent this weekend learning are cheaper at the store, but they were still very much worth making.

We followed a recipe from an book that W- had bought from a pastry store in Chinatown a long time ago. It was a different way of making dough. The first step was to mix yeast, warm water, and flour. I was a little nervous in the beginning because it was more of a slurry than a paste. Once it rose and I combined it with the rest of the flour, it was beautifully dough-like, made smooth and elastic through kneading. After several rounds of rising, I filled it with the coconut mix, wrapped the dough around it, let it rest some more, then popped it into the oven for 15 minutes. The result:

Coconut cocktail buns

The buns were scrumptious. Not too sweet. Complex taste. Yummy yummy yummy.

I had a lot of fun making the buns with W-, playing around with the voice and mannerisms we’d picked up from a Julia Child video. I also made some pie crusts for Pi Day (March 14). W- filled the first pie crust with lemon meringue. I sewed up some tea towels from the fabric that W- helped me pick out, and those passed their field test. We salvaged some wool scraps from one of my bins and repurposed an empty paper salt shaker into a dice roller for J-‘s math study sessions. It was a great weekend for maing things.

We spend a lot of weekend time doing things ourselves: cooking, baking, sewing, fixing things, even woodworking during the summer months. Some of things cost us more in terms of time and money than we might spend on functionally equivalent alternatives, but we get a surprising amount of value from these activities. For example, baking coconut buns results in yummy coconut buns (for which a reasonable equivalent can be bought for a little more than a dollar each), but the activity is also:

  • intrinsically enjoyable for us
  • a way to develop skills
  • shared relationship time
  • an opportunity to create or build on in-jokes
  • an opportunity to strengthen other relationships (friends, neighbours)
  • a way to reinforce and express our shared values
  • a good reason for a blog post =)

So although baking buns takes time, it actually pays off better than many of the other ways I could spend weekend time, such as:

  • reading
  • watching movies (borrowed from the library, but still passive)
  • programming or working (important to invest time into relationships; doing well in programming and working at the moment, I think.)
  • writing, even

There’s a reasonable limit to how much time I would spend on baking or making other things at home. I don’t want to mill my own flour (just yet). I think I’ve got a decent balance right now, and I look forward to picking up more as I get better and more efficient.

Am I trading off, say, more brilliance at work, or racking up income through side-hustles, or becoming more famous through writing? Maybe. But this is good, and all of those other aspects of life are pretty okay (even awesome!). Life is good.

Continuing experiments with Slideshare’s Zipcast web conferences

March 14, 2011 - Categories: speaking

I did a quick presentation of Six Steps to Sharing on Slideshare’s Zipcast this Saturday.

I haven’t done enough audience/list development to invite lots of people to sign up, as most of my internal and external talks are organized and promoted by other people. As an experiment, I decided to think of this more like informal office hours and the bonus of being able to review and think about some of the presentations I’ve shared. That worked out well.

I’ve been using this to test video setups around the house, too. This time, I tried the kitchen, sitting on the floor near the back door. I got good light, a clean background, and the right height for the webcam – things that are more difficult to arrange when my laptop’s on the table. However, sitting on the floor made breathing slightly more difficult, and it changed the way I spoke. Downstairs is still my favourite setup, but it requires a bit of work – foldable background, three lights. The kitchen is the easiest to get up and running.

I couldn’t get my hair to stay still, so I wore a hat. They’re handy for that. =)

If I want to get better at this, here are the key areas for growth:

  • Connecting with more people who might find these presentations interesting
    • Mailing list?
    • Event registration system?
  • Figuring out a way to record the presentations: I’ve been having problems getting audio+video through Camtasia on the same computer, but I could record video and system audio if I can log in on a separate computer.
  • Developing material, of course
  • Doing this during the week

Is it worth investing time into this? Considerations:

  • PRO: Reviewing and presenting previous material is useful for confidence, flow, and constant improvement.
  • PRO: It would be good practice in building an audience and creating more value.
  • CON: Slideshare Zipcast pricing could change soon. Shift to advertising-supported Freebinar? (No webcam, but has screensharing and recording.) Webinars aren’t useful for me in terms of lead generation or revenue, so I won’t be going for the for-fee options. =) Really doing this more for fun and learning. Hmm, maybe if I think of it like
  • CON: I could spend the time and effort writing, recording videos, and helping people learn, and I would probably get better ROI from that.

I think I’m going to keep tinkering around with this, but I might not spend the time right now to make the most of Zipcasts or other webconferencing tools. It’s good learning, though, and I’ll be around every Saturday in case people have questions or ideas.

Recipes: Coconut cocktail bun recipe

March 15, 2011 - Categories: cooking, cookordie

As it turns out, ingredient lists are uncopyrightable, so I’ll try to post more of them when I write about our cooking adventures. (I’ve come quite a long way from the beginnings of Cook or Die!) Recipe steps might be copyrighted, particularly those that are creatively expressed, but that should be no problem – I’ll just write my own instructions.

So here are the buns that have just come out of our oven. (Yes, another set of buns. The ones I made just two days ago have vanished. There must be a bun-monster somewhere in the basement…)

After the success of this weekend’s coconut cocktail buns (gai mei bao), W- and J- suggested hotdog bao, Nutella bao, and some more coconut bao to use up the extra filling we had. Result:

Assorted buns

You will need a kitchen scale. This is actually good, because volume measurements of flour and other things can vary widely.

Gai Mei Bao – Chinese Cocktail Buns and flexible bun dough recipe
Adapted from David Ko’s Yung Sing Dim Sum Recipes (A Chinese Snackbook):

Bun Dough

David Ko uses this recipe for practically all the buns in his book. It’s a white, slightly sweet bread.

  • 12g active dry yeast
  • 495ml warm water
    • Dissolve yeast in water.
  • 340g sifted all-purpose flour
    • In a large mixing bowl, pour yeast solution into flour. The original recipe says to knead the result for 5 minutes, but this paste results in more of a liquid mix, so just mix it until it’s smooth.
    • Leave in a warm place for 2 hours. Or if you’re like us and baking season (winter) doesn’t leave you with an abundance of warm spots in the house, set the oven to 150’F for thirty seconds, then turn the oven off. Put the yeast mix into the oven and wait until it doubles in volume (around one hour).
  • 60ml warm water
  • 1 egg
  • 225g cake and pastry flour (sifted)
  • 560g all-purpose flour (sifted)
  • 110g sugar
  • 18g salt
  • 125ml milk
  • 3g lard
  • 3g butter
    • Mix all of the above with the yeast mix in a large mixing bowl. Knead until smooth and elastic, adding flour as necessary. Cover with a damp cloth (or cling wrap and a damp cloth; keeps your tea towels cleaner) and leave in a warm place for 2 hours, or until doubled in volume. You can use the oven trick here, too.

Coconut filling

  • 175g coconut flakes
  • 168g sugar
  • 56g melted butter
  • 1 egg
  • 30ml (2 tbsp) milk
  • 1 tsp vanilla extract (fun to make at home!)
  • 1/2 tsp baking powder
  • a few drops of coconut essence (optional; we didn’t have it in our pantry)
    • Mix well and put in the fridge.

We skipped the toppings because the regular coconut filling is awesome enough.


  • Divide the dough into 24 portions. I tend to do this by cutting the dough in half three times, then cutting the resulting eight pieces into three pieces each.
  • Roll each portion of dough into a round ball. Arrange on a baking sheet, then cover and put in a warm place for 15 minutes.
  • Flatten the dough balls. I like using a rolling pin here for a nice, even look, although it does take more time than squishing the dough manually.
  • Spoon your filling into each flat piece of dough, wrap it up, and roll it into the shape you like. Try to make sure the buns are pinched closed, as the filling might leak out during baking.
  • Set buns aside in a warm place to rise further, covering the buns with a damp cloth or cling wrap. Preheat oven to 375F.
  • Do an egg wash or another wash if you want. Brushing the buns with a beaten egg (egg wash) gives them a beautiful golden colour, and also makes it easier for sprinkled things (seeds, etc.) to stick.
  • Bake buns in a 375F oven for 15 minutes, or until the buns are golden brown.
  • You can brush the freshly-baked buns with melted butter, if you want, but we skipped that step.

Other fillings we’ve tried:

Wrap the flattened dough around a hotdog. Brush dough with beaten egg and sprinkle sesame seeds on top. You can push the sesame seeds into the dough slightly to help them stick.
Spoon Nutella hazelnut spread into the middle of the flattened dough and roll it up. Brush dough with beaten egg and sprinkle almond slices on top.

2011-03-14 Mon 23:14

Thinking about a developer setup template

March 16, 2011 - Categories: geek, ibm, kaizen, work

Development on one of my projects has gone in fits and starts. It’s been particularly challenging because the information about server configuration has been incomplete and scattered, trickling in as the IT architects sort out what’s going on and find people who can answer questions. The other developer and I are both new to this software stack (Websphere Portal, Websphere Application Server, FileNet, Enterprise Content Manager, DB2, Rational Software Architect). This means that we run into all the things that experienced developers take for granted: where to find documentation at the right level of detail, which ports and URLs to use (or even how to go about finding them), how to deploy our code, and how to diagnose and troubleshoot problems.

Stoic philosophy to the rescue. It’s no use whinging about not having all the bits and pieces up front. =) Besides, the people who set up the virtual images are people too, doing the best job they can while probably being pulled in a million directions or afflicted with the curse of expertise, forgetting the kind of knowledge they take for granted. It’s okay. It is what it is.

We’ve managed to figure most of the pieces out with a lot of poking around and experimentation. I’ve successfully deployed a web service, found sample code that can post a file to our Filenet object store, and written a web service client. We’ve previously been able to connect to DB2, so we should have all the major pieces now. The next step is to wire it all up with application-specific code.

I’m thinking of organizing all the bits and pieces of information we needed into a template that I can share with server administrators and developers next time we’re on a project like this. It would make work a lot faster and easier.

So, what do developers need? We typically need to:

Set up our development environment
software, licensing, config, source code control information, bugtracking, etc.
Orient ourselves on different environments
login/access/VPN details for integration, testing, and production environments; deployment procedure
Confirm that the service is running correctly
the full URL to the web-based administration console and to other web interfaces we can use, any hosts entries needed (for name-based virtual hosts, for example)
Log on the server and look around
VPN details, boundary firewalls, IP addresses, usernames, passwords, connection software (Remote Desktop? VNC?), file paths, location of log files
Write code
API documentation, software versions, ports, paths, usernames, passwords
Deploy and run code
file paths or upload interface, instructions on starting or restarting services
Test that things are working
web interfaces, ports, URLs, etc.

This could be a lot of information, and it might not be worth doing if you’ve got a couple of developers who can pick things up quickly. On the other hand, if you’re preparing a demo image that could be used dozens or hundreds of times for development, or if you gradually build this document over time, that could be pretty handy.

What’s in your developer setup template?

Photo (c) 2009 Mecookie – Creative Commons Attribution License

2011-03-15 Tue 20:03

Decision trees and self-challenges: how my laptop’s recent battery failure is a great excuse to think

March 17, 2011 - Categories: analysis, decision, geek, kaizen

The battery on my Lenovo X61 tablet refuses to hold a charge, and there seems to be no way to fix it. The battery is no longer covered under warranty, so I’ll need to replace it on my own if I choose to. An easy algorithm for decision-making is be to postpone spending money until I can demonstrate really good benefits for doing so. (Or in this case, nine business days before I really need a new battery.) Because I’m curious about the way I might think about other choices, I’m going to think through some of the strategies I use to make decisions. =)

Decision trees

I like breaking things down into decision trees, similar to the technique described by Ken Watanabe in his kid-friendly book Problem Solving 101. It’s useful to figure out what the options are and what their costs and benefits might be. I realized that I actually have two independent choices: what to do with the battery, and what to do with the laptop. Here is my current decision tree.

  • CHOICE A.1: Buy a new battery for my Lenovo X61T
    • Will need this if I sell or give the laptop to someone
    • CHOICE A.1.1: Lenovo battery
      • CHOICE A.1.1.1: Lenovo.com – trustable but more expensive; $160-200
      • CHOICE A.1.1.2: Craigslist – potentially $80-100, risk of getting older batteries
      • CHOICE A.1.1.3: Other Internet sources – risk of getting the wrong kind of battery
    • CHOICE A.1.2: Third-party battery $70-90 – risk of scams, unreliable batteries, hazards
  • CHOICE A.2: See if I can get by without one
    • Make my work laptop my main laptop for the moment.
    • Draw with the power cord plugged in.
    • Keep track of the instances when I’d like to plug in, and buy the battery when it gets on my nerves or when I notice myself using the computer much less. Currently using the tablet practically every day, so drop-off should be noticeable.
  • CHOICE B.1: Save up for X220 tablet
    • Longer battery life
    • 12.5″ outdoor-viewable display, more horizontal resolution: 342 extra pixels, widescreen aspect ratio
    • 3.9 pounds with 4-cell battery
    • Dual-array digital microphones – possible use for Skype, podcasting?
    • 2.7 GHz processor option
    • Rapid Drive for faster bootup/access?
    • Instant resume for wireless (up to 99 minutes)
    • Warns when walking away from stylus (heh, nifty; haven’t lost mine yet, though)
    • Gorilla Glass – scratch-resistance could be useful
    • CHOICE B.1.1: Give X61T to J-
      • May still need to buy a battery unless we want to treat it like a PC.
      • She’ll like the drawing bit.
    • CHOICE B.1.2: Resell X61T on Craigslist
      • Will need new battery anyway
      • Will need to sell at a discount because of wear and tear
  • CHOICE B.2: Stick with X61T until I reach the end of my two-year self-upgrade cycle, or until I have strong reasons to upgrade
    • 4.2 pounds, UltraBase, etc.
    • Doesn’t use new buttonless trackpad
    • Bigger wrist rest space
    • Could potentially scoop up X220T on secondary market, or wait for promos

I’m probably going to go with choice A.2 for the short-term choice, and we’ll see how my savings work out for choice B. We’re saving for a fair bit of travel this year, so B.2 is more likely than B.1. Fortunately, I work with two laptops, so it’s fine. My basic choice is good. Here’s another technique I use to examine that more closely:

Estimating option value

Hmm. Well, I can still use my battery-less X61T for drawing, writing, and coding. I’ll need to properly hibernate it before transferring locations, or leave it mostly in one place. I just won’t use it out and about as much. I don’t spend that much time in cafes, so it’s really more the shift between the kitchen and the living room or the basement.

So, what’s the estimated gap between the expected value of a fully-functional laptop and a battery-less one? In my case, probably not as much as it would be for other people, because I’ve got my work laptop in addition to this. The upper bound on value for me must be $5/day – definitely can’t be more than that, and is probably nowhere near that number. The cost is probably just a few more extra minutes starting up and shutting down, and a little less flexibility, which doesn’t translate into a large cost because I can use that time for something else. It might even be a net benefit if it encourages me to use a sketchbook during our upcoming trip. =) Worst-case scenario is that it might cost me an hour of work if I forget to save something, but that’s just about discipline.

The value gap might be bigger for J-, but we’ll see if she can handle it. It’s going to be a big gap if we sell this, but then it’s okay to get a new battery closer to that day. Besides, I usually run my laptops into the ground anyway. This one was an exception. I replaced my Eee after a little less than a year), but that was mainly because J-‘s need for a computer coincided neatly with my curiosity about tablet PCs.

Setting up challenges

Another way to find out if I’m sufficiently interested in something is to ask questions and set myself challenges. For example, if I want to double-check the potential benefits of the fancy new X220 tablet compared to, say, the lower-prices X220 laptop or my current X61T, I can ask the following questions:

  1. Will I draw often enough to make the tablet worthwhile?
  2. Will I need more than 3 GB often enough to make the upgrade to a 64-bit OS worth the hassle?
  3. Will I run into CPU processing limits often enough to make sense to switch?
  4. Will I need the battery life often enough to make the extended battery life worthwhile?

Answers 2 and 3 seem to be “no” at the moment. VMs would be a good use of additional memory and processing power, but I’ve been doing fine with two computers. If I can cope with a battery-less life, the answer to 4 is probably not significant, unless I find myself going to way more conferences and meetings (and if my scanner proves unwieldy). The answer to question 1 is the most interesting.

I’ve taken lots of sketchnotes, but I’ve done fewer illustrations than I’d hoped I’d draw with the X61T. The workflow isn’t as smooth as keyboard + Cintiq, but it’s (semi-portably) fun. I haven’t figured out how to stop GIMP and Inkscape from jittering so much, although MyPaint and OneNote make beautifully smooth lines. I tend to do my sketchnotes plugged in, but I have a few sketchnotes from meetings where power outlets were few and far between. If I use paper notes for the portable sketches (maybe index cards or notebooks?), then I’ll get a better idea of the incremental value of A.1 or B.1. I can set myself an arbitrary threshold – maybe fill a notebook full of out-and-about sketches and notes – and reconsider my decision when I’ve achieved it. Result: Better drawing skills, a habit of drawing, and an idea of how much I might benefit from the infinitely scrollable paper and the multiplicity of colours on a digital canvas.

I’ve exaggerated the level of thought I usually go to for something like this. There’s room in my “dream/opportunity/kaizen” fund for a new battery if it turns out I absolutely must have one. But it’s fun to think through the techniques I might use to decide something, and writing it down now for something that isn’t critical may help me remember it later when I need to decide something more major. And who knows, it might get you thinking about something… =)

(I might end up getting a lot of value out of not having a battery for this notebook. Look, a blog post, and more reasons to draw/sketch on paper! Stay tuned for progress.)

Cats: 0, toilet paper monster: 1; also, ArtRage and Autodesk Sketchbook Pro

March 18, 2011 - Categories: cat, drawing, family, life, sketches


One time when I came home, W- showed me the picture he took of a toilet paper trail going to the laundry basket. The cats refused to testify, but this is what I think happened.

W- says the other drawing I made of Neko(cat)’s favourite positions for sleeping might be too personal, it being set in our room and all. I said Cat versus Human does it. He said my blog isn’t Cat versus Human. Which is true, because Cat versus Human is awesome and even has a book coming out, but not inarguable. I didn’t break out the persuasive techniques we learned about in “Thank You for Arguing,” though. Instead, I’ll tease you with the captions:

  • The Pillow Hog
  • The Balancing Sphinx
  • The Chaperone
  • The Heat-seeker

People who know Neko (our oldest cat) or who have cats of their own can probably figure out the rest.

I’m playing around with Artrage Studio Pro to see if I like it. I think I get more value from it than from a new laptop battery. Putting my computer into hibernation mode before moving between the kitchen and the living room adds maybe a minute; not a big cost. Being able to draw with 16 million colours and infinite erasures – now that’s something real. It makes drawing a whole lot more fun. I might give the Autodesk SketchBook Pro trial another spin, too. It might be better for pencils and clean illustrations.

Drawing is a great way to remember, particularly for things I’ve forgotten to take photographs of or for which I’ve lost the files. My stack of blank index cards is dwindling fast, and sketches pile up on my bedside table. This is fun. =)

Quick comparison with SketchBook Pro:


Smoothing is more controllable in Artrage, and I should check out the flood fills in that program too. I do like the pen gestures in Sketchbook Pro, though, and I’m sure they’ll be a lot more convenient with experience. I’m going to practise drawing in both some more. Who knows? I may even get both, if it turns out that they exercise my brain in different ways. =)


March 19, 2011 - Categories: gardening, life, sketches

It was so warm on the walk back from the library that I shucked my coat. When I got home, I took my bicycle down from the wall hook. The warmth and sun made me think about biking, and gardening, and other wonderful springtime pursuits. I’ve started a set of bitter melon, basil, tomatoes, and peppers. We’ll see how they work out.

imageWhen I was planting peas in the garden, I realized that last year’s parsley had self-seeded and the new sprouts were starting to come up. The Internet says that parsley germination can be a slow and difficult process, taking four to six weeks to grow from seed, so I’m happy that the parsley decided to get a head start. I took a picture, but it didn’t feel just like that, so I drew what it felt like: life reaching towards the sun.

First game of lacrosse catch, first bicycle ride, first gardening session… Life is good.

All the seasons take some getting used to. Winter is the big attention-getter, of course, but even spring, summer, and fall have surprises for immigrants like me. Planning around growing seasons and frost dates? Dealing with super-long days? Raking leaves and staving off the anxieties of a looming winter? But it is what it is, and I’m where I am, so I’ll make the most of what I’ve got.

What do I want to do and learn this spring?

  • Help celebrate my sister’s wedding. (Whee!)
  • Grow more of our favourite herbs and vegetables.
  • Pick up lots of skills at work.
  • Practise drawing, writing, teaching, etc.
  • Organize more get-togethers
  • Bike farther
  • Have more fun! =)

As I head into summer, I want to be even more comfortable on my bike, I want to have friends over more often, I want to have an even more productive garden, and I want to fill notebooks with drawings and photographs. Hmm…

It turns out that it’s pretty easy to knock the power cord out of my laptop by, say, tripping on it or accidentally pulling it when drawing. I had to draw that three times! <laugh>

Weekly review: Week ending March 18, 2011

March 20, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Work on critsit involving AJAX and PHP
    • [-] Deploy web services onto Websphere Application Server in test environment
    • [X] Create stub web services, maybe integrate with DB2
    • [-] Sort out work priorities for April
  • Relationships
    • [-] Catch up with mail, networks
    • [-] Help with study group – moved to next week
    • [X] Make pie for Pi Day
  • Life
    • [X] Finish value of blogging series
    • [X] Write about tutoring math
    • [X] More Zipcast experiments: what if I treat them like office hours?
    • [-] Write about tweetchats and what I want out of them
    • [X] Make more bread

Plans for next week

  • Work
    • [ ] Sort out web services on Websphere Application Server
    • [ ] Figure out work priorities for April and May
    • [ ] Send staffing guidelines for project M
    • [ ] Catch up on work mail
  • Relationships
    • [X] Host pirate card game party
    • [ ] Catch up on mail
    • [ ] Chat with David Singer
  • Life
    • [ ] Draw more
    • [ ] Update plans
    • [ ] Catch up on mail

Time analysis

Category This week Last week Delta Notes
Break 4.5 3.0 1.45
Drawing 8.5 1.2 7.27
Exercise 9.8 2.2 7.60
Learning 0.5 0.50
Personal 2.0 6.1 -4.08
Preparation 3.3 2.0 1.28
Routines – cooking 6.0 3.2 2.83
Routines – general 9.8 14.8 -5.03
Routines – tidying 1.6 1.6 0.03
Sleep 60.1 59.0 1.07
Social 1.0 24.2 -23.25
Travel 3.9 5.1 -1.18
Work 44.3 40.8 3.52
Writing 11.8 4.8 6.98

I spent most of last week focused on work, drawing, and writing, shifting time away from social get-togethers. In the evenings, I usually sketched while W- and J- played Lego Star Wars. I’ve been drawing and baking a lot recently, and I enjoy doing so.

I haven’t spent a lot of time on mail, though, so I need to focus on that and catch up.

Pirate kitties

March 21, 2011 - Categories: cat, sketches

imageOne of the best things about drawing is that you can draw things that don’t exist. Somehow your world splits into all these different possibilities. Even if you can’t quite capture what you hold in your mind, it’s there. Your rough sketches remind you.

And so: pirate kitties.

Drawing things you can’t see turns out to be surprisingly fun.

Learning more about Websphere and web service development

March 21, 2011 - Categories: development, geek, ibm

So I finally figured out what was wrong with the way I was trying to generate my web services for Websphere 6.1. I’d been using “Generate Java bean skeleton” from the WSDL file, which worked fine for the 6.0 target, but which didn’t work for 6.1. The correct way to do it is to right-click on the service and choose “Generate – Top-down Service”.

I also spent some time figuring out how to correctly use the XSD the IT architect sent me in order to use it for the data types in the WSDL. This is how:

<xsd:import schemaLocation="....xsd" namespace="...">

One of the pieces that was missing for me was dealing with namespaces, but once I got my head around XML again, I added some namespaces and got the referred types working.

So I’ve retwiddled our web services and gotten them to work with the new data structures. My test cases pass again. Progress!

2011-03-21 Mon 20:03

Shanghaippy birthday, John Grimme! Recipe: Lumpiang shanghai

March 22, 2011 - Categories: cooking, family, sketches

John Grimme, my sister’s fiance, celebrates his birthday tomorrow. (Well, today already, given time in the Netherlands.) He gets this bad pun because of his deep love for lumpiang shanghai, and because I’ve decided to get lots more drawing practice. =) Makes me wish I thought of making birthday illustrations like this earlier! Oh well, I’ll just have to do some drawings for other family members on other occasions.


He probably doesn’t need this recipe, but here it is for other people who are curious.

Lumpiang shanghai

These ingredients can be changed quite a bit. Experiment!

  • 500g ground pork (fat is okay)
  • 1 large onion, chopped
  • a few cloves of garlic, chopped
  • 1 medium-sized carrot, grated
  • salt and pepper to taste
  • spring roll wrappers: look for packages with photos of golden-brown deep-fried delicacies on them if you need to be sure, as rice wrappers don’t work as well as the other kinds do
  • egg, beaten (for sealing)
  • plum sauce (for serving)

Mix everything but the egg, the wrapper, and the plum sauce in a large mixing bowl. Test the seasoning by frying some of the filling in oil until the pork is cooked, then tasting it. When the filling tastes good, make the spring rolls.

Take a spring roll wrapper and spread it on a plate or saucer. Put a teaspoon of filling slightly below the wrapper center, in a long finger-width line. Leave space on either side of the filling so that you can tuck the ends in. Fold the near corner of the wrapper over the filling. Fold the sides inwards. Moisten the far edges of the wrapper with some of the egg, then roll up your wrapper until you reach the end, rolling it as tightly as you can.

(*Optional: Wash your hands, browse the Internet for a video on how to make it, then get back to making lumpia.)

Make as many as you can until you run out of wrappers or filling. If you run out of wrappers first, you can turn the rest of the filling into meatballs or little patties. If you run out of filling first, you can use the wrappers for other fried goodies.

If you want to freeze any of the lumpia, you can do so now. (When Tita Gay came over for our wedding, we made well over 300 pieces of lumpia. Everyone had all the lumpia they could eat, and we enjoyed the extras for almost a month afterwards.)

When you’ve made a batch of lumpia, heat 1-2 inches of oil in a frying pan until a piece of bread sizzles or until the oil smokes. (This is why we don’t make lumpia often – frying can be  scary!) Fry the lumpia a few at a time, turning or rolling them so that they cook evenly. Avoid overcrowding them, and give the oil time to heat up again between batches. Lumpia is done when it turns crispy and golden brown. Let them drain on paper towels or in a strainer, and break one open to test if it’s cooked inside. If it is, eat the evidence. Stop yourself from eating more. Fry up another batch. Test those for quality, too. Remember to leave some for your guests.

Serve warm, with plum sauce.

The three argumenteers

March 23, 2011 - Categories: sketches


(Or arguers, more correctly? But Argumenteers is a fun little reference.)

Logos, ethos, and pathos. =) W- and I would like to help J-, her friends, and other people learn more about critical thinking, rhetoric, argument, and eventually negotiation. Someday I may even make a kid’s book about arguments so that kids (and grown-ups!) can get better at recognizing, identifying, and responding to arguments. First step: pick up more practice ourselves.

The sequence we might work with is:

  1. identify and break down arguments
  2. classify arguments
  3. identify fallacies and respond to them
  4. identify figures of speech and rhetorical effect
  5. repair and respond to stronger arguments

So I’m going to try reading the opinion pages of the New York Times and other news sources and analyzing the arguments there. First up: Teaching to the Text Message, Andy Seslsberg, March 19, 2011.

Argument: Short, Internet-focused writing assignments may be more effective than long writing assignments early in the college curriculum.

1. Long assignments don’t work.
1.1. Support: I’ve been teaching with long writing assignments for years, [so I know what I’m talking about.] 
Support: Students’ long writing assignments are of low quality (“font-size manipulation, plagiarism, cliches”).
1.3 Implied: Teachers don’t have the time to check long writing assignments in depth.
2. Implied: Short Internet-focused writing assignments will be more interesting and more useful.
2.1 Support: Alternative formats get people interested.
2.2 Support: Real-life contexts for communication such as networking e-mails, tweets, or comments will be more relevant to students than essays or book reports.
2.3 Support: Alternative assignments are more like students’ everyday life.
2.4 Support: Writing concisely is useful and more in tune with the world’s needs.
2.5 Support: Great thinkers can pack a lot of thought into a few words. [Therefore students won’t be missing out, and there might be useful ways to connect the lessons to past thinkers.]
3. Support: Short assignments can help students develop better skills and teachers give better feedback.
3.1. Support: Short assignments force clarity and reduce waste.
3.2. Support: Teachers can give short assignments more individual attention. [Implied: More individual attention can help students learn more effectively]
3.3. Support: Short writing assignments encourage conciseness and creativity
3.4 Support: Moderation – colleges can still have long writing assignments later in the curriculum.

Hmm… There must be lots of ways to make rhetoric and argument fun and interesting…

Weekly review: Week ending March 25, 2011

March 26, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Sort out web services on Websphere Application Server
    • [X] Figure out work priorities for April and May
    • [X] Send staffing guidelines for project M
    • [X] Catch up on work mail
    • Did first pass of estimates for project M
    • Drafted administration guide for project I
  • Relationships
    • [X] Host pirate card game party
    • [X] Catch up on mail
    • [-] Chat with David Singer
    • Received lovely French rolling pin from W-
    • Helped with study group
    • Had fun playing LEGO Star Wars with W-
  • Life
    • [X] Draw more
    • [-] Update plans
    • [X] Catch up on mail

Plans for next week

  • Work
    • [ ] Work on Rails questionnaire project for client C
    • [ ] Talk to client U regarding Drupal
    • [ ] Finish administration guide for project I
  • Relationships
    • [ ] Plant lots of yummy vegetables
    • [ ] Chat with David Singer
  • Life
    • [X] Learn how to cook dal
    • [X] Bake another batch of buns
    • [ ] Get through busy week
    • [ ] Order laptop battery

Time analysis

Category This week Last week Delta Notes
Break 17.6 4.5 13.1 LEGO Star Wars!
Drawing 11.7 8.5 3.2
Exercise 1.9 9.8 -7.9
Learning 0.5 -0.5
Personal 1.2 2.0 -0.8 Gardening
Preparation 0.6 3.3 -2.7
Routines – cooking 2.0 6.0 -4.0
Routines – general 6.7 9.8 -3.1
Routines – tidying 5.5 1.6 3.9
Sleep 60.8 60.1 0.7
Social 11.0 1.0 9.0 Pirate party, study group
Travel 7.1 3.9 3.2
Work 40.1 44.3 -4.2
Writing 1.7 11.8 -10.1

Lots of hanging out this week – hosted a pirate-related card game party, hosted math study group, and spent time playing LEGO Star Wars with W-. Work is plenty busy, too. =)

Filling in the learning gaps

March 27, 2011 - Categories: sketches, teaching


In our math study group sessions, we often find ourselves reviewing lessons that the kids briefly covered in school but hadn’t absorbed. For example, one of the kids was having a hard time with long division. “This is going to take a long time,” he said. He sounded hesitant, so I offered to help him review long division while W- gave the other kids additional exercises. I shared the mnemonic that helped J- learn long division: Dracula Must Suck Blood, which reminds people to divide, multiply, subtract, and then bring down the next number. We got through double-digit division, remainders, and decimal points, although he still needs to practise until he gets division down pat.

J- has moments like that with her schoolwork, too, so it’s good that we have these study sessions. The kids had taken up algebraic expressions before, but drew blanks when I turned our straightforward price + tax exercise into an exercise along the lines of “Let’s say I want to sell a shirt for $30 after tax, which is 13%. What should the initial price be?” So we did a quick review of algebra, and we’ll do more next week.

The kids’ classroom lessons are currently focused on a simulation of real life. They have jobs, and must balance their income and their expenses. Some are entrepreneurs, and some work at companies. They’re learning about business, advertising, accounting, and communication. They’ve even filed income tax returns. The teachers (also known as the Sometimes Benevolent Force in-game) occasionally shake things up. I think it’s an interesting idea.

This integrated, real-life-focused learning does leave little time to review lessons or build a sense of mastery in basic skills, and J- sometimes has a hard time talking about the specific lessons she’s learning from the exercise. That’s one of the reasons why we’ve been stepping up our involvement, tutoring J- and organizing these study groups. The teachers are doing their best, and I think the program might be more useful than a plain-vanilla-teach-to-the-textbook approach. Filling in the gaps at home is much more effective than waxing nostalgic or wringing our hands in worry.

It helps to understand that it’s normal for some things to be missed. No school is perfect, no teacher is perfect, and no student is perfect. It takes repeated exposure and practice to learn something – as I learn and re-learn myself, stretching with these projects and hobbies. =)

On typing in Dvorak

March 28, 2011 - Categories: geek, tips

Stefan asks:

I use the “normal” QWERTY-layout but I am thinking to switch over to
Dvorak. I read somewhere that you are using Dvorak. Can you recommend
it for someone who is not a programmer and just types some messages. I
am at 54 WPM in QWERTY. What is your count in QWERTY and in Dvorak. I
am really curious about it.

Short answer: Try it out if you’re curious, but don’t expect miraculous speed gains – typing layout is probably not your bottleneck.

One of my quirks is that I’ve switched my computer to the Dvorak keyboard layout – same keyboard, just different software configuration. I taught myself Dvorak on a whim during the summer of 2002, to see how easily I could reprogram muscle memory. It took a month of typing painfully slowly, and then things clicked. I currently type at about 90wpm on both Dvorak and QWERTY.

I prefer Dvorak, though, because it feels like more even use of my fingers. This is partly because of the layout, which optimizes for alternating fingers when typing English. This is also partly because I learned how to type Dvorak using a computer-based typing program that encouraged me to use the right fingers to press each key. In contrast, I don’t remember ever learning how to type QWERTY. We must have had keyboarding exercises in school, but by then I typed faster than most people around already, and no one minded that I tended to hit keys with whichever finger was already in motion.

Choosing the Dvorak keyboard layout has a few consequences. First, it certainly increases geek cred, as odd computer-related decisions tend to do. ;) It also means that I have to switch the keyboard layout on my computer if anyone needs to borrow it. I can switch layouts, although sometimes starting up – or alternating between computers with different layouts – takes a little more thought. I’ve changed some of my keyboard shortcuts to make them more useful on a Dvorak keyboard. For programs like Nethack, I switch to QWERTY because the shortcuts feel better that way. My inclination towards Dvorak is also dependent on the keyboard size and feel – too small or too big, and I’ll switch to QWERTY. There have even been times when I have most of my windows set to Dvorak and one or two windows set to QWERTY – mildly confusing because of the context-switching, but easy enough to sort out.

Typing layout isn’t the limiting factor for me, though. At 90wpm, I can type about as fast as I need to type in order to write or program. If I want to do things faster, it’s more about thinking more quickly rather than just typing more quickly. My brain is the bottleneck, not the way the keys are arranged. (For example, this post was written at effectively 22wpm, not 90wpm.) When I’m picking up lots of passages from books, I find that dictating into Dragon Naturally Speaking 11 is reasonably fast, and it’s easier on my hands and posture too. So I don’t feel any particular urge to further improve my typing speed, just as my reading speed is fine. I still haven’t gotten the hang of dictating new text to Dragon Naturally Speaking, though. I currently find it faster and less distracting to type new content than to say it.


Whether you’re on QWERTY or Dvorak, you might see a speed boost if you train yourself to type properly – pressing keys with the right fingers, keeping your fingers on the home row as much as possible, and using keyboard shortcuts and automation to reduce the amount of typing you need to do in the first place. Learning a new keyboard layout might be a way to break yourself out of bad habits. Aside from that, Dvorak, Colemak, and other layouts might be worth checking out as an intellectual exercise. Who knows, you might enjoy typing in one of them!

2011-03-28 Mon 21:47

Helping kids learn about automation

March 29, 2011 - Categories: teaching

J- shuffled in and out of the living room, listless and bored. As part of a 9-week simulation of real life in school, she and her classmates had been assigned jobs. Her job was to be an accountant, and the tedium of checking dozens of pretend tax returns had long sunk in. W- had encouraged her to use a calculator, so at least she didn’t have to multiple all those figures by hand, but there were still so many numbers to verify.

My geek sense tingled, as it does whenever there’s an opportunity for a quick win through automation. I coaxed her back to her homework. “Come on, let’s set up a spreadsheet,” I said. “That way, you don’t have to redo each of the calculations or worry about getting things wrong.”

We brought up OpenOffice.org Calc. She was still lackluster, so I took the lead in creating the spreadsheet. I asked her which tax return we could use as a model, and she picked hers. We started filling in the formulas, checking her work along the way. (We found and fixed an error in her tax return, too!) Then we tested the spreadsheet on a few other tax returns she had manually done, and she used it to check the rest.

Result: Not only could she verify a correct tax return in less than a minute, but she perked up and started having fun with it. She made a pile of correct tax returns and a pile of incorrect ones, with sticky notes pointing out the deficiencies. She still doesn’t want to be an accountant again, but at least she knows that tedious tasks might be automated away.

The next time J- finds herself doing tedious calculations or verifications, I hope she thinks about how much faster, more reliable, and more enjoyable the spreadsheet was compared to calculating things step by step, and perhaps invest time into learning how to automate whatever she needs to do.

How do people learn how to automate? It’s such a time-saving skill, but it doesn’t seem all that common. Maybe people are intimidated by spreadsheets and programming languages, and that fear of losing more time keeps them from gradually building the knowledge they need to save lots of time. If we can show J- and other kids the benefits of automating, maybe that light at the end of the tunnel will encourage them to learn. If we expose them to the methods for automating tasks, such as putting calculations into a spreadsheet, creating keyboard macros, or writing short programs, maybe they’ll realize it’s not scary – and maybe they’ll start modifying or creating new tools.

In my experience, working with new automating frameworks is always slow and somewhat frustrating in the beginning. It helps that I don’t usually need or want to automate everything right away. I break things down into small things, small wins. I might start by figuring out the most time-consuming parts and automating that 10%, or automating the most common operations. As I become more familiar with the tools and the process, I automate a little bit more, and more, and more. Eventually I might even create a tool that other people can use, like the way my Community Toolkit for Lotus Connections is off and running.

The hardest thing, I guess, is knowing where to start. I run into that problem a lot, because I work with lots of different technologies and frameworks. It’s like looking for the end of a tangled piece of string. That can be hard to find in the confusion, but once you do, you can start unknotting the mess. I want J- to be able to think: ah, this has to do with calculations, maybe I can get a handle on it by using a spreadsheet, putting in manual steps if needed.

How do you use teachable moments to encourage people to automate?

2011-03-29 Tue 21:09

More thoughts on time analysis: correlations and revealed preferences

March 29, 2011 - Categories: analysis, geek, quantified, time

People often ask about the time analyses I do as part of my weekly review. My weekly time tracking reports go back to about December 11, 2010, when I started tracking my time using the free Time Recording app on the Android. I do it because of the following reasons:

  • I need to track my project-level time for work anyway,
  • I want to see where I spend my time and if that’s in line with my priorities,
  • I want to know how much time it takes me to do certain things, in order to improve my estimates and get better at planning,
  • I want to avoid burning myself out
  • I want to make sure I allocate enough time to important activities instead of, say, getting carried away with lots of fun work and flow experiences, and
  • I want to cultivate other deep interests and relationships.

Fatigue and burnout are particularly big concerns for developers. There’s always the temptation to be unrealistic about one’s schedule, either through over-optimistic estimates or through business pressures. However, sustained crunch mode decreases productivity and may even result in negative productivity. Sleep deprivation severely cuts into cognitive ability and increases the chance of catastrophic error. I like what I do too much to waste time burning out.

Development is so engaging for me. I could keep writing code and building systems late into the night, at the expense of other things I could do. Tracking time helps me keep a careful eye on how much time I spend programming. Like the way a good budgeting system helps me make the most of my expenses and gives me the freedom to take advantage of opportunities, a good time budgeting system helps me make the most of my focused work time and allows me to also focus on other things that matter (the care and feeding of relationships, the development of new skills, and so on).

So here are some new things I’ve learned from time tracking:

  • I sleep a median of 59 hours a week, which is about eight and a half hours a day. This is more than I expected, but I manage to get a lot done anyway, so it’s okay.
  • I work a little over 40 hours each week, except for the occasional week of crunch time or travel. I don’t make a habit of 50-hour weeks, and I get a little twitchy when I work too intensely several weeks in a row (46 hours or so). This means that when I estimate timelines or project my utilization, I should assume 38 or 40-hour weeks instead of 44 hours.
  • I spend most of my time sleeping (44%), working (31%), or connecting with people (11%). Regular routines take up 9% of my time, while my favourite hobby (writing) takes only 5%. I enjoy my work and I sleep well at night, so this time allocation is fine.

In economics, there’s the idea of a revealed preference, which is basically what your actions show compared to what you might say or think you prefer. I may think I’d like to sew or learn languages or do the piano, but if I spend time playing LEGO Star Wars III instead, then that tells me that sewing, Latin, and Schumann are lower on my priority list. (Rationalization: LEGO Star Wars is awesome and it counts as bonding time with W- and J-, so it’s not all that bad.)

So, how do I really trade my time? Which activities are positively or negatively correlated with other activities? I made a correlation matrix to see how I spent my time. I used conditional formatting to make high correlations jump out at me. I found some interesting patterns in how I shift time from one category to another.

Activity 1 Activity 2 Linear correlation coefficient (r) Notes
Prep Personal 0.87 Getting things in order means I can give myself permission to learn something new
Cooking Prep 0.86 Makes perfect sense. Big chore days.
Break Drawing 0.75 More relaxing time = more drawing time
Travel Work 0.69 When I commute to work, I probably tend to work longer. Also, I needed to go to the office for some of the crunchy projects.
Sleep Break 0.67 Relaxed days
Sleep Writing 0.60 Nice to know writing isn’t conflicting with sleep
Social Drawing -0.50 The Saturday afternoons or weekday evenings I spend with people instead of sketching
Routines Drawing -0.65 Lots of chores = less drawing time
Personal Drawing -0.55 Learning other things = less time spent on drawing
Travel Cooking -0.60 Lots of travel = live off home-made frozen lunches
Sleep Cooking -0.62 Late weekend mornings = less cooking?
Sleep Prep -0.58 Likewise
Sleep Personal -0.57 More sleep = less time spent learning other things

I can guess at the causality of some of these relationships, but the others are up in the air. =) Still, I’m learning quite a lot from this exercise. For example, I thought I was giving up sleep in order to write more or draw more. It turns out that sleep cuts into cooking, prep, and other personal interests (sewing, piano, etc.), and doesn’t have much effect on work, writing, or drawing. I do sleep quite well, though, so it may be interesting to experiment with that.

I’m also happy to see I don’t give up too much because of travel – a median of 3.4 hours / week, much of which is spent reading, brainstorming, or listening to audiobooks with W-. Travel time reduces cooking time, but that’s okay because we batch-cook in order to minimize weekday cooking. It’s good to see that it doesn’t affect my other activities a lot.

The same dataset lets me analyze my sleeping patterns, report project-level breakdowns at work, and review quick notes on my day. I’m in consulting, so I need to track and bill my time per project. Time Recording makes it easy to do that, and I’m thinking of tweaking my workflow further so that I can use task-level times to improve my estimates.

So that’s where I am, tracking-wise. It takes me a few seconds to clock into a new category, and the habit is handy for making sure I know where my phone is. Tracking my time also helps me stay more focused on what I’m doing. If you’re curious about the idea and you have a smartphone or other mobile device, find a time-tracking application and give it a try. Have fun!

2011-03-29 Tue 21:54

Becoming a faster developer

March 31, 2011 - Categories: development, geek

(NOTE: Becoming a faster developer isn’t necessarily the same as becoming a more productive developer. Becoming a more productive developer is better. Speed isn’t everything!)

Following up on my post about typing speed, QWERTY/Dvorak/alternate layouts, and the idea that your keyboard layout probably has little to do with your performance (although it might have a little to do with your happiness), I wanted to think about what makes a fast programmer. People tell me I’m fast. I know people who can pull programs together even faster. We touch-type, for sure, but that’s the least of it.

A huge part of development speed is experience. If you’re familiar with a programming platform, the error messages, the structure, the way things work and the way things are named, you can learn new concepts and write correct code much faster than a newbie can.

What if you’re faced with a new framework? You’ll still get a speed boost if you can relate the concepts to other things you’ve learned. If you can figure out the control structures you need and the debugging techniques you can use, then it’s mostly a matter of translating to the new framework and picking up any quirks or local idioms.

So let’s break it down further. What are small, specific skills that can help a developer get really fast?

  • Touch-typing: Still practically a given. You need to be able to think about your code, not about typing code. If you aren’t yet a touch-typist, sit down and work on that.
  • Speed-reading: This comes in handy everywhere. Much of programming is reading: reading requirements, reading other people’s code, reading documentation, reading logs and debugging output. This is probably more useful than typing at a gazillion wpm. You need to be able to quickly spot the significant parts. Learn how to skim.
  • Working with complex structures: The better you get at understanding complex structures or logic, the faster you can come up with more effective solutions, and the less time you spend going back and forth. You don’t have to do it all in your head. Find systems that work well for you (notes? mindmaps? diagrams?) and use them.
  • Problem decomposition: Breaking big problems down into smaller testable steps can help you make quick progress and keep things manageable. This is also one of those skills that can give you lots of leverage on time. If you can get really good at spotting the core of the problem and figuring out the key parts of the solution, you can get something into place much faster. It’s also a useful skill for testing code thoroughly.
  • Good development practices: Source code control, testing, and all sorts of other development hygiene practices means less time spent fixing avoidable mistakes.
  • Collaboration: If you can get someone else to do the things you’re really slow at so that you can focus on the things you’re really fast at, the team can get much faster. This also includes documenting your work so that people don’t have to reinvent the wheel.

What would you add to this list?

Quid est nōmen tuum? Nōmen meum est “Sacha”

March 31, 2011 - Categories: learning

Latīnum studémus. Monē mē!

The Latin textbooks that W- ordered from the library have arrived, and we’re slowly making our way through both Wheelock’s Latin and an online copy of a Latin textbook from the 1880s. Writing is probably going to be painfully slow and ungrammatic for a while, but hey, it’s worth a try. =)

Why Latin? Geek quirkiness. Secret languages for greater connection. Potential classical education.

It will be interesting. Let’s see if my blog can handle the characters…

April 2011

Running the Selenium IDE testing plugin with Firefox 4

April 1, 2011 - Categories: development, geek

Selenium is a web testing framework that allows you to test web applications involving HTML and Javascript. The plugin hasn’t been updated to indicate that it works with Firefox 4, so you can’t install it directly.

You can use the Firefox Add-on Compatibility Reporter to install Selenium and other Mozilla Firefox plugins that have not yet been marked as compatible. After you install the compatibility reporter and restart your browser, you should be able to install the official version of the Selenium plugin.

Props to the Mozilla support forum for the tip!

2011-04-01 Fri 12:21

Weekly review: Week ending April 1, 2011

April 2, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Work on Rails questionnaire project for client C
    • [X] Talk to client U regarding Drupal
    • [X] Finish administration guide for project I
    • Wrote up descriptions of ongoing projects and shared them with other people who may be able to help
    • Helped with mail merge and Idea Labs
    • Connected with project manager for project M
  • Relationships
    • [X] Plant lots of yummy vegetables
    • [X] Chat with David Singer
    • Started learning Latin
  • Life
    • [X] Learn how to cook dal
    • [X] Bake another batch of buns
    • [X] Get through busy week
    • [X] Order laptop battery

Plans for next week

  • Work
    • [ ] Finish first phase prototype for client C
    • [ ] Host Idea Lab for Japan
    • [ ] Make presentation “The Busy Person’s Guide to Learning from the Network” (for IBM internal conference)
  • Relationships
    • [ ] Prepare garden
    • [ ] Learn more Latin
  • Life
    • [ ] Take a look at my time budget
    • [ ] Sketch more plans
    • [ ] Practice drawing

Time analysis

Category This week Last week Delta Notes
Break 11.2 17.6 -6.4 LEGO Star Wars!
Drawing 0.9 11.7 -10.8
Exercise 6.8 1.9 4.9
Personal 1.2 -1.2
Preparation 0.5 0.6 -0.1
Routines – cooking 2.0 -2.0
Routines – general 8.1 6.7 1.4
Routines – tidying 1.5 5.5 -4.0
Sleep 54.9 60.8 -5.9
Social 12.8 11.0 1.8 Study group, catching up
Travel 4.5 7.1 -2.6
Work 56.9 40.1 16.8
Writing 6.8 1.7 5.1

Starting up our garden

April 3, 2011 - Categories: gardening

One of my gardening role models is the woman down the street who grows all sorts of vegetables in the front yard of an apartment building. I walk past her garden on the way to the library and the supermarket, and I’ve often admired how productive it is: rows of bok choi between the walkways, beans and peas trellised with twigs, even the occasional squash peeking out through the foliage. I regularly see her tending the garden, watering it by hand with a dipper and a bucket, transplanting seedlings and pulling up weeds. She knows I like her garden, and even waves hi to me when we encounter each other on the street.

The woman down the street has started her outdoor garden, turning the soil over, forming it into neat raised beds, adding planks for walkways to avoid crushing the aerated soil. She has more than 100′ square feet to play with, almost all in full sun. Our backyard garden is shadier because of all the trees, but we’ve got about 70′ square feet, plus the pathway sides that I used for cat grass and parsley last year.

I’ve started our garden, too. Yesterday, I turned the compost over, consolidating the winter’s collection of leaves, kitchen scraps, and soil from three half-full bins to one and a half bins, appropriately layered (brown, green, brown, green) and liberally sprinkled with compost accelerator.

We’re giving compost accelerator another try this year. W- brought it up because he was impressed by how quickly last year’s organic material turned into rich, dark, compost. Then again, that was also the year I started turning the material regularly, so I’d like to take some of the credit. (It’s good exercise!) We found it at Home Depot for $8–much better than the ~$20 we’d paid at Plant World as part of last year’s experiment. It’s worth a try. If we get enough organic material, I might do one bin with compost accelerator and one without.

I also started a 5′ double-row of peas yesterday, and about 1.5 square feet each of bok choi and rocket lettuce. The seeds I started indoors still haven’t sprouted, although the cat grass from three weeks ago is now ready for consumption. It’ll be okay. Worst-case scenario is that we buy basil and tomato plants from the store. I do hope our bitter melon plants come up, though, as we can’t find those grown in nurseries here.

“Do you remember the sugar peas? It was a lot of fun eating them off the vine,” said J-.

“And the tomatoes!” W- added.

“My friends are so excited.” said J- as she helped tidy up the garden yesterday.

“Excited about our tomatoes?” W- asked.

“I guess we’d better plan a summer tomato party, then.” I said. (Although that might be like counting your tomatoes before they’ve set.)

That’s a great sign that gardening is paying off. One doesn’t get quite as excited about the plump sugar peas one can get from the supermarket, or the cherry tomatoes in plastic packaging that we pass by because of their premium pricing. But the thrill of checking for fresh strawberries, peas, tomatoes; the convenience of dashing out for some dill or some cilantro; the abundance of pesto picked from dozens of plants; the satisfaction of tasting the fruits (and vegetables and herbs) of your work–you can’t buy these things from the supermarket. And this summer we’ll get to enjoy it from the comforts of the Muskoka chairs we finished last fall!

I’m so lucky. To be 27 and live in circumstances like this – a good-size backyard, walking distance to the supermarket, the library, and the subway station, biking distance to the Home Depot whose garden centre I will undoubtedly frequent (last year some of the staff said “Welcome back!”)… Life is good.

2011-04-03 Sun 08:54

The Busy Person’s Guide to Learning from the Network (a guide for IBMers)

April 4, 2011 - Categories: ibm, learning, presentation, tips, work

I promised to put together a talk on learning for an IBM virtual conference for new hires. Here’s a rough draft, just to get it out of my head and into a form I can work with. I’ll add URLs internally. The next steps I want people to take are:

  • Find a mentor, or even several mentors.
  • Bookmark Lotus Connections so that they can easily search it in the future.
  • Learn to find people based on documents and other shared information.

One of my mentors told me that at IBM, it’s okay if you don’t know something. If you don’t ask for help and things get messed up, though, that’s when you get into trouble. So I want to share with you some tips I’ve picked up on how to learn as quickly as you can, from as many people as you can.

I’ve been with IBM for almost four years. I know what it’s like to feel overwhelmed by all the different things there are to learn: working with Lotus Notes and other applications, dealing with technologies, working with team members and clients… It can be really intimidating. Fortunately, at IBM, there are plenty of people who can help – but sometimes you need to step up and ask.

  • Mentors

    If you don’t have a mentor yet, find one. Even better, find several mentors. Mentors can help you figure things out: the specific technology you’re learning, the tools you need to work with, the processes in your team or business unit, even your career plans.

    How can you find a mentor? Share your questions with your manager and ask your manager to refer you to some people who might be good mentors for you. Look for people on Bluepages or Lotus Connections. Take advantage of the speed mentoring events that IBM Learning sometimes organizes and see if you can connect with anyone. Attend presentations and connect with speakers or other participants. Once you have a mentor, ask him or her for introductions to other people who might be able to help.

    Maybe you’re feeling shy. Maybe you think, “Well, I’m new to IBM. Why would anyone mentor me?” I found it hard to ask people to mentor me, too, but I was amazed by how generous people were when it came to helping new people. Many mentors help others because other people mentored them. Others mentor people because they learn a lot in the process. Mentors have lots of reasons for helping, so don’t be afraid to ask.

    Social networking tip: Look for mentors and role models who blog or post updates in Lotus Connections or on the Internet. That way, you can easily learn from people in between your meetings. You can even learn from people around the world, and people whom you might be too shy to reach to right now. For example, if you’re curious about what IBM Fellows do (they have the highest technical rank in IBM), or what vice presidents are like, or so on, you can learn from their blogs, tweets, and other posts. Maybe you’ll find something you can comment on or ask about!

    How to work with mentors: Talk to your mentors about your goals and figure out how they can help you. Take the lead in setting up meetings and asking questions. Show your appreciation through thank-you notes – and even better, show your appreciation through the results that come from taking your mentors’ advice.

    Okay. You’ve got mentors. But you can’t go to your mentors for every little thing you need to learn, so you still need to figure out things on your own.

  • Documentation, assets, and other sources of information

    You’re probably already used to searching the Internet for information when you’re trying to learn something new. It can be harder to find just the right document within IBM. If you’re new to a topic, it can be difficult to find beginner-level resources, or even to know what and where to search.

    If you’re stuck, ask your coworkers or your manager for help in getting started. Take notes! Make a list of the resources you find useful as a beginner, and you’ll be able to share that list with other people who join the project. It’s a quick way to create value – and people are more likely to invest time into helping you if they know that your notes will help them and other people save time in the future.

    Don’t stop with the documents you find, too. One of the best things you can learn from a document or an asset is where you can go to find more information. Are there related communities? Can you look up other things the author has written? When you come across a useful document, look for any author information or lists of related experts. If you need help finding the right resources or you have a question that’s not answered by the document, you might be able to ask those people for help. (Look for communities or forums first, though – this helps avoid e-mail overload, and you can ask more people for help. We’ll talk more about communities later.)

    Okay. Formal documentation is great, but there’s often very little of it, especially for new tools and technologies. What do you do when you need to learn about something that doesn’t have a lot of articles or manuals yet?

  • Files, bookmarks, wikis, and blog posts

    When I need to find out about something new, informal, or obscure, I often check people’s files, bookmarks, wikis, or blog posts. This is where Lotus Connections really shines. You can search people’s public files and presentations for new information, search bookmarks for information other people have found useful, check out wikis to see what people have collaborated on, and read blog posts for people’s notes and articles.

    What if you still can’t find what you need, and the people you ask don’t know of any resources, either? This is where you might need to ask more people.

  • More questions and answers

    Have a short question? Try posting it on IBM Answers. You’ll get an e-mail notification if anyone replies. While you’re there, see if you can answer any of the pending questions.

    Tip: Don’t just post your question on IBM Answers and walk away. Reach out to specific people to see if they can share anything. If you use Profile status updates, post your question with a link to the answer page.

    Regarding experts: If you have a question that needs deep expertise, you might want to give Expertise Locator a try. You don’t want to waste experts’ time, though, so if your request is non-urgent, it’s probably better to start at a lower level. People can escalate your request if needed.

    Sometimes it helps to ask many people instead of focusing on just a few. This is where Lotus Connections Communities and IBM forums come in.

  • Lotus Connections Communities

    Whatever you’re looking for, there’s probably a community or forum related to it. Search Lotus Connections Communities to find groups related to the topic. IBM Forums has older groups, too.

    Many communities have discussion forums. You’ll need to join the community in order to ask a question. Look at other posts to see how people ask for help. Provide as much information as you can in your message, but don’t post any confidential information. Show that you’ve “done your homework” – describe how you’ve tried to solve the problem or where you’ve looked for information. That way, people might be more encouraged to help you.

    Important: Ask the community owners (see the Members tab) Some communities use the “Mail community” feature to handle questions, before mailing the community. Many communities have thousands of members, and too much community e-mail can make the community useless.

  • Building your network

    What about all those questions that people haven’t answered before, and for which there are no active communities? This is where your personal network becomes important. When you’re faced with questions that need much broader or deeper experience than you have, or you have no idea where to even start learning, your network is essential.

    If you can’t think of anyone who would know the answers you need, try thinking of people who might know people who would know the answer. Ask them for referrals. You can also look for people in Lotus Connections Profiles or Bluepages and try reaching out to them.

    Social networking tip: Lotus Connections Profiles is a great way to ask questions and get quick responses from whoever’s available in your network at the time. You need to build your network before you can use this effectively, though. Look at the main Profiles page to see who’s been participating, and invite them to your network. If they agree, you’ll be able to see their updates in your timeline, and they can see yours. That means that if you post questions in Lotus Connections, people might see it and answer it.

    Why would people spend time checking out Lotus Connections and possibly answering questions? For many people, it’s like a quick break by the virtual office watercooler, a way to catch up with lots of people and to help out people if they can. Try it – spend a little time each day or each week building your relationships by reading people’s profile updates, answering other people’s questions, sharing useful resources, and posting notes of thanks or encouragement.

  • Wrapping up

    You’ll need to learn a lot at IBM, and you’ll need to learn it quickly. Not everything will be written down, and you might not find everything you need using w3 or an Internet search engine. You’ll need to learn from the network.

    • Learn from managers, coworkers, mentors, and role models about things you might not even know to ask about
    • Follow the clues from people’s files and assets to find related communities and experts.
    • Search people’s files, bookmarks, blog posts, and profile updates to see the latest.
    • Check out Q&A sites for additional resources.
    • Reach out to communities and forums if you need help from more people.
    • Gradually build your network so that you can easily ask for people’s help when you have new questions.

    Good luck!

    2011-04-02 Sat 21:42

Setting up Ruby on Rails on a Redhat Enterprise Linux Rackspace Cloud Server

April 4, 2011 - Categories: development, geek, rails, ruby, work

1. Compile Ruby from source.

First, install all the libraries you’ll need to compile Ruby.

yum install gcc zlib libxml2-devel 
yum install gcc
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel

My particular application has problems with Ruby 1.9.2, so I compiled Ruby 1.8.7 instead. This can be downloaded from ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz

Unpack the source code for Ruby. Configure and install it with:

make install

Add /usr/local/bin to the beginning of your PATH.

2. Install Ruby Gems.

Downloadcd the latest Ruby Gems package and unpack it. I got mine from http://production.cf.rubygems.org/rubygems/rubygems-1.7.1.tgz . Change to the directory and run:

ruby setup.rb

3. Install Rails and rake

gem install rails rake

If all goes well, you should now have Rails and rake.


*builder-2.1.2 has an invalid value for @cert_chain*

Downgrade Rubygems to version 1.6.2 with the following command.

gem update --system 1.6.2

(Stack Overflow)

sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade!

Compile sqlite from source:

wget http://www.sqlite.org/sqlite-amalgamation-
tar zxvf sqlite-amalgamation-
cd sqlite-amalgamation-
make install
gem install sqlite3

LoadError: no such file to load – openssl

  1. Install openssl and openssl-devel.
    yum install openssl openssl-devel
  2. Go to your Ruby source directory and run the following commands:
    cd ext/openssl
    ruby extconf.rb
    make install

LoadError: no such file to load – readline

yum install readline-devel

Change to your Ruby source directory and run the following:

cd ext/readline
ruby extconf.rb
make install

(Code snippets)

You can’t access port 80 from another computer.

Port 80 (the web server port) is blocked by default on Redhat Enterprise Linux 5.5. Edit /etc/sysconfig/iptables to allow it, adding a line like:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Make sure you put it above the REJECT all line.

Load your changes with

/etc/init.d/iptables restart


2011-04-04 Mon 11:06

Helping kids learn algebra

April 5, 2011 - Categories: learning, life, teaching

In the math study groups we organize at home, we’ve moved past fractions and percentages into the wild and wonderful world of algebra. Translating a problem into an algebraic equations is somewhat familiar to J-, but the process of solving algebraic equations confuses all the kids. I have a feeling that we’re either taking up the topic before the teachers have had a chance to adequately explain things, or the real-life situation (“Town”) leaves the students little time to focus on other lessons. Well, it is what it is (this is becoming one of my mantras these days), so we just have to do our best.

The small-group format is still working well. We’re going to try it with four kids to see if pairing them up to help each other will help the kids learn more effectively and build more confidence. W- has also checked out an armful of books from the library. I’ve been paging through “Real-World Algebra” and similar books to find some ideas for exercises the kids can relate to.

We try to liven things up with energy and amusing examples. They have to eventually become comfortable with abstract exercises such as 5n + 30 = 180, and it’s difficult to make that more interesting. I don’t want to just repeat the fake word problems of standard algebra textbooks, so I’m keeping an eye out for real-life situations in which I’ve used algebra myself. It can be hard to notice when you take math for granted, but math is everywhere, so I should be able to collect examples.

In the meantime, there are small things we can do to help them keep their attention on math or to remember the concepts more vividly. I tried this example for distribution:

2 * (number of lions + number of tigers + number of bears) = 2 * number of lions + 2 * number of tigers + 2 * number of bears.

I drew a lion, a tiger, and a bear instead of writing the corresponding phrases. =) Then J- said, “Oh my!” and everyone laughed.

The kids often forget that whatever they do to one side of the equation, they need to do to the other. As a result, J- once ended up with the interesting equation 2 = 4. Looks like we need to review how to use the equals sign. ;) We might try the see-saw metaphor. If you have a balanced see-saw, you can keep it balanced by adding or removing the same amount from both sides. You can keep it balanced by multiplying and dividing from both sides. If you add, subtract, multiply, or divide one side without doing the same to the other, you end up with an imbalanced seesaw. We’ll see if that helps them remember.

Because we’re discussing new material for them, we have to walk through the exercises together before they can try things on their own. When they try things out, progress can be slow and frustrating. We’re seeing if we can take advantage of group dynamics by posing a question and encouraging the kids to talk out loud about the strategies they might use. They help each other out, too. The group format definitely pays off – seeing other kids struggle or succeed helps a great deal.

Do you have any favourite middle school group study resources or tips? =)

Why we use more than math textbooks and general-purpose resources

April 6, 2011 - Categories: learning, teaching

For last Sunday’s study group, we focused on algebraic expressions. The kids were a little out of sorts at the beginning. “Math is boring,” one said.

“The way it’s taught in school, maybe. But math is really useful in life, so it’s good to learn it,” I said. I shared a few examples of saving money with math, enjoying life with math.

The group warmed up using a matching exercise, matching the word problems on the left side with the algebraic expressions on the right. Then we worked through some of the problems I’d prepared. In one afternoon, we talked about:

  • cats and how much food they eat (1/4 cup, twice a day, 365 days, n cats…)
  • T-shirts, sleeping cat toys, and chopsticks that look like lightsabers
  • how much it might cost to eat onigiri for every meal, every day, for a year
  • how long you might be able to eat onigiri given a particular budget
  • Scott Pilgrim, Wallace, and Knives Chau
  • more cats, including Neko on my head

There are several types of exercises. Completely abstract ones (here’s an equation, solve for n) get lots of confusion and little engagement. Practical exercises (how much would this cost after tax?) get some interest. Outlandish exercises drawing on the kids’ interests get lots of laughs – and solutions. So we mix practical exercises and outlandish ones, one to show math in real life and the other to get the kids involved. It’s like improv comedy, but for education.

This is where parents and tutors really need to step in and mix things up. Textbooks are written for everyone. They can’t take individual interests into account, and they can’t be revised each month to take advantage of pop culture references. When you make up your own exercises, though, you can do whatever you want.

I know J- likes Scott Pilgrim, Fruits Basket, and cats, so they turn up in math exercises. It’s not hard to pick up some standard forms of exercises from textbooks and translate them into more interesting situations.

Helping someone learn? Make up exercises based on their interests and see what happens.

Spousonomics: Using economics to master love, marriage, and dirty dishes

April 7, 2011 - Categories: analysis, book, love, reading, research

I love research-backed books that help us understand why we do what we do. Paula Szuchman and Jenny Anderson’s Spousonomics: Using Economics to Master Love, Marriage, and Dirty Dishes was no exception. The book takes a look at common marital conflicts and situations, showing the underlying economic principles that influence our actions. For example:

  • Division of labour: Splitting chores equally may not result in the most efficient or the happiest of marriages. Specialize, remembering that payoffs can change over time.
  • Loss aversion: People hate to lose, which can result in really drawn-out fights. The advice to “never go to bed angry” can backfire. It’s okay to have time-outs.
  • Supply and demand: If you want something to happen more often, don’t make it costly or risky.
  • Moral hazard: It’s easy to take good things for granted. It’s also easy to end up trying to avoid any sort of conflict. The sweet spot is in the middle, where you’re not taking your relationship for granted, but you’re not paranoid about your spouse quitting.
  • Incentives: Think about the incentives you use and if they’re really effective. Trust can be much more useful than nagging.
  • Trade-offs: Think at the margin: consider the costs and benefits of small changes. Ignore sunk costs when making decisions. Get over the “it’s not fair” fixation.
  • Asymmetric information: Communicate clearly. Don’t play games by hiding or withholding information. Figure out the essentials of what you need to share so that you don’t overload your spouse.
  • Intertemporal choice: It’s easy to make good decisions for the future, but hard to stick with those decisions in the present. Use commitment devices to help you stick with your resolutions or good ideas.
  • Bubbles: Non-bubbly married life is normal, so don’t stress out if you’re no longer infatuated. Beware of being unduly influenced by groups – just because everyone else seems to be doing something doesn’t mean it’s right for you, too. Don’t get overconfident.
  • Game theory: Don’t let the urge to retaliate or overcompensate lead to you to wildly polarized positions. Work together to get optimal results, not just individually-optimal results, and use commitment devices to help you stick with it.

The book goes into far more depth, and is an excellent read. It’s illustrated with case studies (problem couples who usually end up patching things up) and lots of research.

Here are some thoughts I particularly like:

If there are areas you care about but you feel helpless in, put in the time and effort to develop the comparative advantage in at least one of them. The authors tell the story of one economist who put the time into at least learning how to bathe an infant so that his wife wouldn’t end up with all the child-rearing tasks – and so that he wouldn’t get tempted to take advantage of that kind of a division.

Looking for things to read? In terms of marriage research, I’d recommend “Spousonomics” and Susan Page’s “The 8 Essential Traits of Couples who Thrive”. What do you like?

Decision review: Battery

April 8, 2011 - Categories: geek

After several days of accidentally unplugging my battery-dead laptop (knocking away the power cord, unplugging the wrong cable, etc.), I ordered a new battery. My laptop is still usable without a battery. I just have to put it into hibernation before moving it around. Power interruptions could result in hard disk corruption, though, and I’d rather not have to deal with two broken components.

I decided to order an official battery from Lenovo.com instead of taking a risk on a third-party battery. It wasn’t cheap, but I figured that investing in tools is worth it. I regularly set aside money for tools and opportunities, so I used that.

I ordered the new battery for full price. When I remembered that IBM has an employee purchase program with Lenovo, I crossed my fingers and sent Lenovo an e-mail to ask if I could cancel my previous order. They cancelled it for me, and I reordered it for about $30 less. Never hurts to ask!

I was thinking about the new Lenovo X220 tablet, too. I really like my X61 tablet. The X220 promises a faster processor, higher resolution, and a much longer battery life. I think I can get away without that for now, though. Waiting for used X220s to turn up on Craigslist or similar sites could really reduce my costs. (Hmm, maybe I can ask work about my laptop refresh cycle…)

My battery arrived today. I’m really glad I can unplug my laptop and move it from room to room now. Yay! =)

2011-04-03 Sun 08:32

Writing more about life

April 9, 2011 - Categories: blogging, decision, writing

I am going to write more about life.

It took me a while to get used to this idea. I started blogging as a way of taking notes – source code, class lectures, and so on. That makes sense to write down. It’s useful. It might even be useful to other people. I’m comfortable with writing through decisions and sharing what I’m learning from life, particularly if I can geek out. But everyday stories? Should I write about those when I could, say, write tips or draft presentations instead?

Reviewing my print-outs of past blog posts, though, I find myself coming back to the memories. The tips I’ve written up for other people (or for myself) are handy. They’ll be the nucleus of a book someday. The technical notes I keep help me save time re-solving problems. The memories are the entries that improve with age, becoming richer and more layered over time.

The friends I’ve made through writing about Emacs, Drupal, and other technical topics also have plenty of insights on life, education, crafts, and other things. The experiences and perspectives I bring to life turn everyday experiences into geek explorations. I think it will all work out.

What it comes down to is this realization: These everyday moments are worth writing about, learning from, and sharing. I might think they’re ordinary now, but they anchor my experiences and make it easier to remember whole chunks of life, fleeting sensations, elusive thoughts. Like the way that even rough drawings help me see and remember more clearly, words will be the white pebbles dropped by this Gretel to find her way back. And who knows? Memories trigger other memories. I’m sure I’ll learn from other people, and I might help other people along the way.

2011-04-09 Sat 22:09

Weekly review: Week ending April 8, 2011

April 10, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [-] Finish first phase prototype for client C – lots of good progress!
    • [X] Host Idea Lab for Japan
    • [X] Make presentation “The Busy Person’s Guide to Learning from the Network” (for IBM internal conference)
    • Helped plan for project M
    • Assisted with Get Social, Do Business event at work
    • Put together Idea Lab description, sent to manager
    • Helped Archie Trajano think about personal branding
  • Relationships
    • [X] Prepare garden
    • [X] Learn more Latin
    • Helped with math study group: positive and negative numbers, algebra
  • Life
    • [X] Take a look at my time budget
    • [X] Sketch more plans
    • [X] Practise drawing

Plans for next week

  • Work
    • [ ] Doublecheck mail, implement feedback for project C
    • [ ] Follow up on Idea Labs
    • [ ] Finish paperwork for project M
  • Relationships
    • [X] Make bagels and buns
    • [ ] Plan get-together
    • [ ] Make fresh cranberry bagels for J-
    • [ ] Make big batch of lunches
    • [ ] Write about math group study sessions
    • [ ]
    • Biked up to Dufferin/St. Clair library with W-
    • Started more dill and cilantro
  • Life
    • [ ] Post book notes
    • [ ]

Time analysis

Category This week Last week Delta Notes
Break 10.2 11.2 -1.0
Drawing 0.7 0.9 -0.2
Exercise 3.3 6.8 -3.5
Learning 1.0 1.0
Personal 5.5 5.5 Gardening
Preparation 8.6 0.5 8.1 Lots of planning
Routines – cooking 1.7 1.7
Routines – general 6.7 8.1 -1.4
Routines – tidying 2.0 1.5 0.5
Sleep 60.6 54.9 5.7
Social 17.1 12.8 4.3
Travel 1.3 4.5 -3.2
Work 45.9 56.9 -11.0
Writing 3.4 6.8 -3.4 Tried batch-writing posts


On developing a reputation for project work

April 11, 2011 - Categories: ibm, mentoring, work

Over lunch, Archie and I talked about one of his business goals for this year. He wanted to work on his personal brand.

I asked him what he meant by his personal brand. “What would success look like?” I asked.

Archie said that he’d like to be known more for troubleshooting, and that he would consider himself successful if more project managers asked him to troubleshoot their projects – both technical and non-technical issues. He’s been working at the company for 12 years, and he had plenty of war stories and lessons learned to share with me. He told me that his peers know about his skills, but he wanted to hear about more projects, expand the kinds of roles he took on projects, and go into projects with more authority and leverage.

Now that was a much more useful vision than “improve personal brand.” We could work with that. It might not even have anything to do with wikis, blogs, or Twitter.

So: How can one build a reputation for project work?

We figured that the best ways to reach the people Archie was interested in would be through managers and resource deployment managers. There are a couple of ways to do that: e-mail and presentations.

In terms of e-mail, one of the best things Archie can do is to make sure that the results that he’s getting turn up in the right people’s e-mail inboxes. As it can sometimes be difficult to get recognition or documentation of results from busy project managers, I suggested that Archie write up the problems he solves, the results, and tips for avoiding such problems in the future. If he sends this e-mail to the project manager and to our manager, they can forward it to other people as needed – if they hear of a project that has a similar problem, if someone asks them who can help with a troubled project, and so on. It’s important to keep one’s manager up to date on the kinds of things one is good at or interested in, because managers talk to other managers and can refer you to opportunities.

In terms of presentations, Archie can summarize key tips from his experiences into a short presentation – maybe a top 10 list, or focused on a topic such as performance. This gives him plenty of opportunities to use and reuse the material. Speaking at a lunch-and-learn is one way to do it, and he’ll get extra exposure from the invitations going around. Speaking at one of our internal education events will let him reach even more people. The presentation can be shared internally, included with newsletters, forwarded to other people.

What else would you recommend?

2011-04-08 Fri 20:40

Math study group: Positive and negative numbers

April 12, 2011 - Categories: education, learning, life, teaching

It was Friday, so J- and her friends were singing the Friday song as they hung up their coats and got ready for our math study group. It turned out that they had been so excited about coming home (to a math study group!) that they’d forgotten to arrange things with their parents, and V-‘s dad had been waiting for her at school. Once everyone had called around and sorted things out with their parents, and everyone was well-fed, we got back to math.

One of the benefits of hosting multiple kids in a study group is that you get more information about what people are learning in school. V- said she needed help with positive and negative numbers, so that’s what we started off reviewing.

A quick review: 2 – (-3) = ? . Boggles all around.

Okay. A step down: -2 – 4 = ?. Still boggles and some guesses.

I drew a number line and labelled it with the numbers. “Imagine a cat standing on -2. Which direction does the cat go if you’re subtracting 4?”

“Left!” chorused the kids. “-6!”

I drew the cat ending up on -6. We did a couple of other exercises along those lines. Nods all around. Okay.

“What about -2 + 3?” I drew another numberline. “Right! +1.”

“What about 2 – (-3)?” I drew the cat on the numberline. “Okay, we’re starting on 2. And we’re subtracting, so we would normally move to the left, but we’re moving -3 steps… so the cat walks backward three steps.”

“5!” said the kids. One of them asked, “Do your cats really walk backwards?”

“They do more of this hopping backward thing, yes, but cats can walk backwards if they want to.”

So we did a few more of those exercises, including things like -4 – (-5) and -(-(-2)). We also reviewed multiplying and dividing positive and negative numbers. The kids seemed comfortable with that, and answered our exercises with little prompting.

As we wrapped up our review of positive and negative numbers, A- arrived. She’s in grade 6, a grade behind the other kids, so we modified our exercises. She said she was taking up decimals in class. I asked her how she felt about the multiplication table. “Bad,” she confessed, at which the other kids begged (begged!) to do multiplication practice.

“But first, we’re going to talk about algebra very quickly,” W- said. He briefly reviewed what an algebraic equation really means, and the different parts of the equation: the constants, the variables, the operators, the assertion, and so on. We hope this will help them remember to keep their equations balanced, always doing operations on both sides of the equals sign.

“All right, multiplication,” I said, and we headed outside to practise multiplication. The way we do it is good for building confidence and a sense of numbers: we go through sets of five multiples until the kids can rattle them off smoothly. For example: 6, 12, 18, 24, 30. 6, 12, 18, 24, 30. And so on, around the circle. It’s really more of an audio recall task than a calculation task, and it gets them used to what the numbers feel like. They catch themselves now, when they make a mistake. And they’re enthusiastic and run ahead of themselves, doing sets of ten instead of sets of five, or challenging themselves further by doing jumping jacks while saying the numbers.

After multiplication practice, one of the kids piped up and asked, “Can we solve the equation in the breadbox?” Ah. Yes. Those. I’d spent some time the night before writing up simple equations and hiding them around the first floor of the house – possible exercises for J- or the study group, depending on how things went. So we agreed that they could look for the five Post-It notes I’d hidden IF they solved the equations as well. I settled in to review decimal multiplication and division with A- to help her catch up, and W- reviewed the other kids’ work on the algebraic equations.

Our Friday afternoon math study groups are a great ritual. Glad we stumbled into organizing them! I hope other parents can host study groups as well – it would be good for all the kids to see active involvement – but it’s probably easiest for us, logistically speaking, because we can often work from home and we both enjoy teaching. If you can, try it!

2011-04-10 Sun 12:05

Still cold? Wear a hat to bed

April 13, 2011 - Categories: life, tips

I remember teasing W- about how he wears a toque to bed. (It’s a small, brimless hat also known as a beanie.) Several winter months later, I’m a convert to the cause.

Wearing a hat to bed is an excellent way to keep your ears warm. This means less work tucking yourself in and fewer late-night struggles with blankets.

A hat also doubles as a handy sleep mask that keeps the light out if someone else wants to stay up late reading. Just pull your hat down over your eyes. A little bit of light may come in on either side of your nose, but the reduction in light may be enough to let you sleep easily.

A warm hat, fuzzy socks, flannel pajamas, and microfleece sheets – that should see me through the last gasps of winter and into spring. Slowly getting the hang of this!

2011-04-03 Sun 10:24

Using behavioural economics to motivate yourself when working on risky projects

April 14, 2011 - Categories: analysis, career, work

We’re scrambling to respond to a request for a proposal (RFP). We’re not sure if the RFP is a formality and the client is already planning to choose a different vendor, or if it’s a real request, but the powers that be say it’s worth exploring. My manager thinks it’s a good opportunity to develop architecture skills. I like working above my pay grade, so I’m doing this even if it means stretching quite a bit.

It’s interesting to see the applications of the behavioural economics principles I’ve been reading about in “The Upside of Irrationality.” For example, there’s a chapter on finding meaning in work. The perceived meaning of work greatly influences our motivation to do it. If you know there’s a chance your work will come to nothing (cancelled projects and so on), you might be less motivated to work on it, and more drawn to projects where you think you’ll make a difference. Makes sense, right? (Ah, that’s why school projects bored me…)

Recognizing this bias means that I can understand my motivations and tweak them. It’s natural for me to want to spend more time on my other project. I experience flow on it – meaningful engagement. Although this proposal is riskier and I more often run into the limits of my understanding, it needs to be worked on.   Here are some possible approaches for motivating yourself when working on risky, uncertain projects: 

Break it down into small wins and celebrate those. Don’t wait for that all-or-nothing decision. You might not even reach it. Instead, work in stages so that you can successfully complete and celebrate each step. Share as much as you can during the process, too, while you’re excited about what you’re accomplishing. It’s much harder to harvest assets when you feel like a failure. 

Exaggerate the odds of winning. Irrational optimism can be useful. Imagine that you’ve got a great chance of succeeding, and you just might. You’ll still want to have a backup plan in case you lose, of course.  

Focus on additional benefits. For example, whether or not you succeed on a stretch assignment, you’ll still learn a lot. Can you find meaning in the skills and relationships you’re building and the experiences you’re collecting? 

Balance speculative or uncertain work with solid contributions. Spend some time working on things that make you feel happy and fulfilled. You’ll have the energy and confidence to tackle new challenges. 

How do you keep yourself motivated and focused when you’re not sure of results?

Three cat life

April 15, 2011 - Categories: cat, kaizen, life

We have three cats, which works out just right. Three laps, three cats, and two of them can play with each other if the third one’s hissy. So when it came time for their annual checkups, I figured I’d see what I could negotiate.

The vet had an appointment slot open for a checkup, so I scheduled one. While I was on the phone with the receptionist, I asked if I could bring two cats. “Yes, you can,” the receptionist said. So I asked if I could bring three. All right by them. Okay! No multi-pet discount, though. (I had to check. ;) )

We rounded up the cats, put them into their carriers, and put the carriers into the car. Leia and Neko were quiet, but Luke was doing his scared-cat meow. He’s usually the most easy-going of the three, but I guess he’s not used to travelling. At the vet, we shuffled the cats into the lobby and settled in for the wait.

The vet saw us after about fifteen minutes. We decided to put Luke up first, as he was the most likely to behave. It was a straightforward examination for him – a cat in beautiful health, although with some tartar building up on his teeth. Luke didn’t give the vet any trouble when it came to the vaccine shots.

Leia went next. She got all huffy when the vet was prodding her, but didn’t make a big issue of the vaccine.

Neko turned out to have gained two pounds in the year that she’s been in Canada (when this is about 28% of your previous weight, that’s something!). She’s a little more than half Luke’s size and will probably never get to that weight, but she’s been filling out nicely – going from a square to a trapezoid, we joke. Neko’s been snoring and making strange noises while breathing in, but the vet didn’t find anything obviously wrong with her, so he said it might just be a respiratory virus she picked up that’s not life-threatening. Okay.

Now time for Neko’s shots. The vet called in an assistant with thick work gloves that went past his wrists. “Just to make sure,” he said. We laughed knowingly, as we went through similar precautions whenever grooming Neko’s claws: leather gloves and long sleeves for W-, although I could generally get away with handling Neko with bare hands.

On the way home, with the three cats lined up on the back seat, I turned to W- and asked, “Do you feel like a soccer dad yet?”

Total time going to the vet and back: 2 hours. Definitely worth bringing the cats together.

Weekly review: Week ending April 15, 2011

April 16, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Doublecheck mail, implement feedback for project C
    • [X] Follow up on Idea Labs
    • [X] Finish paperwork for project M
    • Followed up on migration plans for project I
    • Applied theme for project C
    • Learned tons about preparing use cases and responding to proposals
    • Learned tons about testing Rails: Capybara, Cucumber, and other awesomeness
    • Fielded many requests for Idea Labs
    • Put together instructions for external Idea Labs
    • Wrapped up Idea Lab for Japan recovery
    • Assisted Linux Jam community with exporting forum discussions
  • Relationships
    • [X] Make bagels and buns
    • [X] Plan get-together
    • [X] Make fresh cranberry bagels for J-
    • [X] Make big batch of lunches
    • [X] Write about math group study sessions
    • Biked up to Dufferin/St. Clair library with W-
    • Started more dill and cilantro
    • Had fun hosting study group
  • Life
    • [-] Post book notes

Plans for next week

  • Work
    • [ ] Work on more items for project C – Rails is so awesome!
    • [ ] Assist with proposal
    • [ ] Follow up on migration plans for project I
    • [ ] Prepare for code turnover for project I
    • [ ] Plan travel
  • Relationships
    • [ ] Pick up gifts for Kathy and John
    • [ ] Make gifts for Kathy, John, and Dan
    • [ ] Plan gifts for Linda
    • [ ] Host another study group
    • [ ] Plan cherry-blossom get-together
  • Life
    • [ ] Work on red dress
    • [ ] Read ahead: Latin homework

Time analysis

Category This week Last week Delta Notes
Break 7.5 10.2 -2.7
Drawing 1.3 0.7 0.6
Exercise 3.8 3.3 0.5
Learning 0.5 1.0 -0.5
Personal 0.9 5.5 -4.6
Preparation 0.4 8.6 -8.2
Routines – cooking 5.4 1.7 3.7
Routines – general 6.4 6.7 -0.3
Routines – tidying 9.6 2.0 7.6
Sleep 61.0 60.6 0.4
Social 6.2 17.1 -10.9
Travel 7.3 1.3 6.0
Work 48.7 45.9 2.8
Writing 7.4 3.4 4.0

Lots of work: juggling two projects plus lots of queries. Should scale back a little, perhaps?


Study group update: negative numbers, exponents, and awesomeness

April 17, 2011 - Categories: learning, life, teaching

W- started the kids on a review of positive and negative numbers. They got the hang of those quickly, so they worked on fractions, exponents, scientific notation, and engineering notation. They multiplied numbers with exponents, divided numbers with exponents, dealt with negative exponents, figured out the two answers to x2 = 1… Whee!

J- really wanted to review the Greek alphabet. We introduced it so that they can easily work with θ, α, β, and other characters when they encounter the letters in science and math. J- picked them up really quickly thanks to the flashcards we made. She used the same techniques to teach the other kids more of the letters, repeatedly cycling over small sets of letters, sharing original mnemonics (λ reminds her of “Mary had a little lambda” and a hill).

Watching the kids teach themselves Greek letters – and have fun doing so! – I wondered what on earth we were doing correctly, and if we could help other people do it too. Maybe it’s really just providing a space where the kids can get together and learn, and some guidance and exercises to help them grow.

J- says she learns more – and enjoys learning more – in our study groups than she does in school, because the study group is more fun, more focused, and easier to understand. It’s a happy middle between the intense focus and isolation of a one-on-one tutoring session, and the anonymity of a large class. I’m glad we’re doing it, and I’m amazed at how the kids are doing.

And they begged for more brainteasers! So now I get to dust off my collection of logic puzzles and go through them. Turnabout’s fair play, though, so they have free license to stump me with whatever they can throw at me. =)

2011-04-15 Fri 18:43

Learning from my mood data

April 18, 2011 - Categories: geek, quantified

One of the unexpected benefits of switching my phone plan to something that includes unlimited international texting is that I can participate in nifty things like Experimonth, which is a month-long study about moods. I get regular text messages prompting me to rate my happiness on a scale of 1-10, and it graphs it for me. I can probably come up with similar graphs using KeepTrack and a bit of spreadsheet magic, but the convenience and the social data make this fun and interesting.

Here’s how my mood data stacks up so far:


I stay on a fairly even keel, with awesome happy experiences possibly any day of the week. Hmm, maybe I should track text notes too, so I can get a better handle on what causes the 10s or the 6s. It might also be interesting to combine the happiness ratings with my time analyses to see if there any correlations.

Here are the results they’ve collected so far:

Making better use of travel time

April 19, 2011 - Categories: kaizen, life, time, travel

I’m going to be in the office a lot more as I help with proposals or coach new hours. Time to think about how I can make the most of the time!

As it turns out, I’m not a particularly audio kind of person. I’ve carried podcasts and audiobooks before, but I rarely listen to them unless I’m listening with another person. I might listen to instrumental music while writing, avoiding songs due to the verbal interference.

If I’m going to the downtown office, I take my bike whenever I can. It’s good exercise, and takes about as much time as the walk and subway trip would’ve taken. With the subway’s occasional delays, biking is faster and more reliable.

If I need to take transit, how can I make the most of that time?

I like writing and mindmapping. I do a lot of both when I manage to find a seat on the subway. I almost always use my Android, as a full laptop feels out of place in the subway. The smartphone works well for one- and two-hand use, maybe even better than a tablet might. The small display forces me to be more concise – good! The 1.5 hour commute up to 3600 Steeles is enough time to flesh out a mind map and draft a few blog posts. Writing is my favourite travel activity. I think I get the most value from it.  

I nap sometimes, but this isn’t particularly restful. Maybe if I try using the nap timer so that I don’t get anxious about missing my stop….  

Reading is fun. I can go through two, three books a day, especially if I get a seat. Carrying books is less fun, though. I’ve read books on my Android and on my tablet, but if I’m going to be using either, I’d rather spend the time writing instead of reading. So I tend to save reading for when I’m eating, walking around the house, or going to bed.  

Sometimes I draw. This is a bit harder, and definitely requires a seat. I don’t want to stare at people on the subway, so I tend to draw from imagination or memory. Index cards and small notebooks are useful here.  

I think it would be interesting to track the specific results of my commuting time. Seeing X hours of travel in my weekly time analysis is one thing. Tallying up Y posts or Z books is another. It’ll be fun!  

How do you use your commuting time?

Compost magic and happiness

April 20, 2011 - Categories: gardening, life

The compost heap steamed in the afternoon sun. “I’d never seen it do that before,” said W-. Neither had I. The compost heap was merrily breaking down organic matter. We knew the theory, but it was incredibly satisfying to see it in practice.

I’d turned the compost last week, layering carbon-rich and nitrogen-rich material and liberally sprinkling the compost accelerator W- had wanted to try out. The compost had been unremarkable last week, but now there were earthworms squirming through it – good-sized ones too, not just the baby earthworms I’d seen the other day. The compost pile smelled earthy but clean, even citrus-y, thanks to the grapefruit peels from our kitchen. It was a good pile, and it would be a great amendment to the sandy soil of our back yard.

I probably don’t need to turn the compost heaps weekly, but I enjoy doing it when the weather is mild. It’s exercise, it gets me out in the garden, and it’s part of the cycle of life. It’s good to see our kitchen scraps return to the soil, and to know that the compost will support this season’s plants. But there’s more to it than that – there’s more value to it than simply the physical or horticultural benefits.

It feels like such an improbable joy. It’s this awareness, I think, that makes it easy to be happy. Everyday activities become special because of the stories along the way. This compost heap has memories from kitchen, garden, and love, and it will take all of that and make something new.

Mr. Fluffers: Stray or not stray?

April 21, 2011 - Categories: analysis, cat, decision, life

I have a soft spot for cats. Our cats are all indoor cats, never allowed out except on a leash. There are a number of neighborhood cats who turn up on our deck for food or company. Some of them are definitely housecats let loose to run outdoors. Others, we’re less sure about. Housecat or stray? It can be hard to tell. We feed them some food, set out water, pet them if they’re amenable. Sometimes they even get dishes of warm milk.

Of the cats who visit us, we think one cat is either stray or somewhat neglected. Mr. Fluffers (as J- has named him) is a collarless gray tuxedo medium-hair domestic cat and a regular visitor. Medium-hair cats need a lot of brushing to keep their coats unmatted, and Mr. Fluffers obviously hadn’t been brushed in a while. W- combed away many of the mats in his fur, and even trimmed the most stubborn ones. But if Mr. Fluffers is a stray or neglected cat, it would be good to have that situation sorted out.

We’ve been thinking of taking Mr. Fluffers to the vet or to Animal services to have him scanned for a microchip, but we need to think through the decision tree first.

  • If Mr. Fluffers has a microchip
    • If the registered owners are reachable
      • Hooray! Cat reunion, or at least clarity on the situation
    • If the registered owners are not reachale
      • See decision tree for no-microchip case.
  • If Mr. Fluffers does not have a microchip
    • Take him to Animal Services as a lost pet?
      • Owners who lost him may not claim him there, considering impounding fee
    • Check for spay/neuter and then release him back into the neighbourhood?

For Mr. Fluffers and other potentially stray cats, I’m tempted to try the first step of attaching a safety collar with a tag that says: Not a stray cat? Please call us at XXX-XXX-XXXX… =)

2011-04-10 Sun 11:18

Back in the garden, the perennials are coming back

April 22, 2011 - Categories: gardening, life

While raking the pine needles and fallen leaves to prepare the garden, I found new sprigs of oregano and parsley growing by the path. The straggly bit of thyme I’d given up for lost had a few green leaves it didn’t have before. The sage that withered in winter is starting to perk up, too.

Watching the perennials reestablish themselves in our garden will help me pass the time it takes for the annuals to sprout.

Isn’t that like life? Sometimes things take a long time. You can’t rush them. You have to fight the urge to tweak things, because you might make things worse. Give yourself something else to focus on. Find some quick wins to encourage you. What you’re waiting for might be ready before you notice.

2011-04-03 Sun 16:23

Weekly review: Week ending April 22, 2011

April 23, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Work on more items for project C – Rails is so awesome! Wrote tests, added a CMS using RichCMS
    • [X] Assist with proposal
    • [X] Follow up on migration plans for project I
    • [X] Prepare for code turnover for project I
    • [-] Plan travel
    • Handled more Idea Lab requests
  • Relationships
    • [-] Pick up gifts for Kathy and John
    • [X] Make gifts for Kathy, John, and Dan
    • [X] Plan gifts for Linda
    • [-] Host another study group: Good Friday break
    • [X] Plan cherry-blossom get-together
  • Life
    • [X] Work on red dress
    • [X] Read ahead: Latin homework

Plans for next week

  • Work
    • [ ] Get Vijay up to speed on project C
    • [ ] Review code for project I
    • [ ] Make travel plans
  • Relationships
    • [ ] Host tea party – home-made buns and bagels
    • [ ] Prepare for trip
    • [ ] Host study group
    • [ ] Withdraw USD, maybe convert some euros
  • Life
    • [ ] Finish hem for red dress
    • [ ] Write some more! =) Maybe braindump marriage stories?

Time analysis

Category This week Last week Delta Notes
Break 8.3 7.5 0.8
Drawing 0.6 1.3 -0.7
Exercise 1.8 3.8 -2.0
Learning 0.5 -0.5
Personal 14.7 0.9 13.8 8.4 hours sewing
Preparation 0.7 0.4 0.3
Routines – cooking 5.4 -5.4
Routines – general 6.8 6.4 0.4
Routines – tidying 1.9 9.6 -7.7
Sleep 60.4 61.0 -0.6
Social 18.2 6.2 12.0
Travel 4.5 7.3 -2.8
Work 37.1 48.7 -11.6 About 5 hours over, considering holiday
Writing 5.02 7.4 -2.38

Ruby on Rails is too much fun. I got carried away and spent Saturday working on it. That was a decent way to spend a rainy Saturday, particularly as I got as far as I could get in my sewing project. Tracking my time and noticing how much I’m over my targets does make me ask, though: where is that time coming from? What could I focus the extra time on instead? Can I be more awesome at work with just the target amount of time? Yes, probably, and more safely too – less risk of negative productivity.

Friday was a holiday, so I spent the day sewing. I finished most of my red dress, and I might sew the hem in today or tomorrow. I also worked on simple gifts for my sister and for W-‘s friend Dan. I think I’m starting to get the hang of sewing – hooray!


Monthly review: March 2011

April 24, 2011 - Categories: monthly

I found this in my draft folder. Might as well post it!

Plans for March:

Ah, March. Wrapping up the first quarter with several projects on the go and even more proposals underway. I’m starting to get the hang of this. I wish the paperwork was smoother, and that we had more people in IBM with whom I could share Drupal and Rails projects! =)

Warmer weather means it’s time to get the garden going. We still get a bit of snowfall, but the forecast is looking up. Plenty of rain means free watering and no fussing about with hoses that could still freeze.

From last month’s plans


  • [X] Shepherd more projects to signing and work
  • [X] Learn how to implement web services on Websphere Application Server
  • [X] Create and deliver more presentations
  • [X] Finish blog series on blogging


  • [X] Host another get-together
  • [-] Build a set of people to call once a week
  • [X] Check out Toastmasters again
  • [X] Practise driving


  • [X] Refine my plans
  • [X] Start seedlings

Plans for next month


  • [ ] Get a good prototype together for project C
  • [ ] Get the paperwork in place for project M
  • [ ] Prepare for training on project I
  • [ ] Help with other work
  • [ ] Assist with “Get Social, Do Business”


  • [ ] Put together more study group resources
  • [ ] Practise driving
  • [ ] Prepare for May trip


  • [ ] Start garden
  • [ ] Write and draw a lot
  • [ ] Focus discretionary time on plans and experiments

Writing macrons in Linux for Latin pronunciation

April 25, 2011 - Categories: emacs, geek, learning

Frustrated with the inability to search the scanned images of the 1822 Latin textbook we’re using (Albert Harkness’ An Easy Method for Beginners in Latin – get the PDF, the full-text version is badly OCRed), W- has taken it upon himself to recreate the public-domain textbook as a fully searchable TiddlyWiki (sans illustrations). This meant that he needed to type in a great number of macrons in the words, and that meant finding a better way than copying and pasting from KDE’s character map.

Macrons turn up in many languages. In Japanese, you use them to indicate that vowels are doubled. 大阪(おおさか)can be romanized as Oosaka or Ōsaka. In Latin, beginner textbooks often use macrons (macra) to indicate pronunciation. (Why do we care about pronunciation for a dead language used mostly in church hymns? W- and I actually want to be able to use this conversationally, at least with each other. After all, if you don’t use it, you lose it.)

I suggested Emacs. In Emacs, it’s just a matter of using M-x set-input-method to choose latin-alt-postfix. With that input method, you can add macrons to letters by typing – after them. For example, typing “a -” will result in ā. Not only that, dynamic abbreviations (M-/) make it easier to retype words you’ve already written before.

W- wouldn’t hear of using Emacs, being almost as firmly wedded to vi as he is to me. ;)

Instead, we spent some time figuring out how to set up KDE and gvim to make it easier for him to type in macrons. HTML character sequences were out of the question, of course. W- used KDE’s settings to map his unused Windows key and menu key to compose keys. That made it easier to produce ē, ī, ō, and ū using the key sequence “Compose + hyphen + vowel”. However, “Compose + hyphen + a” produced ã, not ā. This was probably a bug based on some issue reports we found on the Net, but the suggested fix didn’t work (im-switch -c to change to default-xim). I found a page describing an .XCompose fix, customizing the key sequences. He copied the relevant key sequences from en-US’s locale settings for Compose in /usr/share/X11, restarted X, and it worked.

Now he’s off and typing!

2011-04-24 Sun 23:21

Stuff or experiences

April 26, 2011 - Categories: analysis, decision, finance, life, reflection

Soha wanted to know what I thought about the differences between spending on stuff and experiences. This took me several drafts to figure out, and I don’t think I’m all the way to a clear understanding yet, but I’m trying to say something I haven’t really found in the personal finance books and blogs I read.

Stuff or experiences? Neither. It’s a false dichotomy, and one that often starts with the wrong question: “What will make me happy?” If you aren’t happy, it’s very difficult to buy happiness. Probably impossible.

What will make me happier than I am now?” – is that a better question? Not really. What’s “happier”, anyway, but something that draws an ever-moving line between you and some ideal?

I like this question instead: “What do I want to learn more about?” No guarantee of happiness, no pursuit of happiness, just curiosity. Happiness doesn’t have to be pursued. It just is. Happiness can be a chosen, developed response. So what I decide to spend money or time on is determined more by what I’m curious about.

I confess to having a strong distrust for people trying to sell me ways to happiness. A designer handbag won’t make me happy (or happier). Neither will a three-week vacation of idle relaxation on a pristine beach. Quite possibly even an enlightening weekly course on meditation wouldn’t do the trick. My life will be a good life even if I never stay in the best suite in a five star hotel, see the aurora borealis, or learn to fly a plane (ideas from Richard Horne’s “101 Things to Do Before You Die”, which does have amusing forms). It will simply be different if I do, and that only matters if I can do something with the experiences and ideas I pick up and recombine.

In fact, I’d rather spend on stuff – the raw ingredients of an experience – than on pre-packaged experiences. I’d rather spend on groceries for experiments than on a fancy meal at a restaurant or a cooking class with a famous chef. I’d rather spend on lumber and tools to build a chair, than spend on a cottage rental. Turns out this is based on sound psychological principles: we value what we work on more than what we buy. (For more on this, read Dan Ariely’s “The Upside of Irrationality.”)

You can’t untangle good stuff from experiences. The bag of bread flour I buy leads to the experience of making home-made buns, the experience of enjoying them with W-, and the lasting enjoyment of developing skills and relationships. Fabric and thread become simple gifts accompanied by stories.

Besides, it doesn’t have to be the question of what you want to spend money on. That’s just a matter of budgeting. Many things are possible, but you may save up a little longer for things that require more money. What it really comes down to is a question of time: do you want to do this more than other things you could do? (For example: yes to cooking and gardening; a theoretical yes to improv, but it’s not as high as other things on my list, so I focus on other things; no to the massage deals I see on dealradar.com when I wander by.) If yes, then budget appropriately. Don’t get distracted by low-cost, low-value activities or expenses. (Or worse: high-cost, low-value ones.)

If you feel you’ve made a mistake about spending, don’t beat yourself up over it. Learn and make better decisions next time. Not saddling yourself with consumer debt helps, as debt has a way of multiplying regrets. Stuff can be second-guessed more than experiences can, but it’s even better to break the habit of second-guessing yourself. Think of your sunk costs as tuition. You’ve paid for the learning, now go and use it.

Money can be considered in terms of time, too. Is the incremental benefit you might get worth the opportunity cost of enjoying other things earlier, the compounding growth you may give up, or the corresponding days of freedom in the future? (For me: yes to some wedding photography in order to reduce friction, but no need to get the top wedding photographer; yes to a wonderful bicycle I feel comfortable with; no to the latest version of the Lenovo tablet, although I may reconsider in a year or two.)

Stuff or experiences? Start with what you want, not what other people want to sell you. Treat it as an ongoing experiment. Evaluate your purchases and improve your decisions. Think about what you want to spend your time on, not just money. Good luck!

2011-04-24 Sun 16:45

The enemy of your enemy is your friend: mnemonics and negative integers

April 27, 2011 - Categories: education, learning, life, teaching

From April 26, Tuesday: J-‘s studying for Thursday’s “in-class performance assessment” on integers. (In-class performance assessment? What happened to the good old word “quiz?” Too much anxiety?) We’re spreading the review out over the next two evenings.

The test will cover adding and subtracting positive and negative numbers. J- and her study group are already off multiplying and dividing (which apparently don’t turn up until grade 8 – really?). W- made up a quick worksheet for J- to practise adding, subtracting, multiplying, and dividing integers.

“The enemy of your enemy is your friend,” I heard her say as she solved the exercises, writing down the correct signs for all the products and quotients. I grinned. I’d taught them that mnemonic two weeks ago. It’s a way to remember the results of multiplying or dividing numbers.

As I explained to the kids: you don’t have to stick to this in real life. Pou can certainly be friends with the friends of your enemy. But this might help you remember the signs for multiplication and division:

  • The friend of your friend is your friend. Positive times positive is positive.
  • The friend of your enemy is your enemy. Positive times negative is negative.
  • The enemy of your friend is your enemy. Negative times positive is negative.
  • The enemy of your enemy is your friend. Negative times negative is positive.
A B Result
Friend + Friend + Friend +
Friend + Enemy – Enemy –
Enemy – Friend + Enemy –
Enemy – Enemy – Friend +

2011-04-26 Tue 20:05

Glad to see it stuck in her head! She answered all the exercises correctly (and quickly, too).

Remote training that rocks

April 28, 2011 - Categories: ibm, presentation, speaking

Some IBMers convinced me to share presentation tips with Lotus instructors. Here’s what I’m thinking about:

You know what’s really difficult in training? Staying interesting – and /interested/ – session after session after session. I used to teach university, and I’ve also given lots of presentations as an IBMer. It can be tough to be energetic and engaged when giving a presentation that you’ve given many times before. Even if you’re giving a new presentation, if it’s your umpteenth lunch-and-learn this year, you might feel tired just thinking about it.

I want to share some tips that help me when I’m giving presentations, and I want to hear from you what works for you and what you want to do even better.

First (and probably the most important for people who give presentations a lot): If you’re bored by your own presentations – and admit it, this can happen – it’s very hard to avoid boring others. How can you stay interested?

Let’s take the worst-case scenario: Your job is to present XYZ every week. Same presentation. Same slides. You could do it in your sleep.

Instead of just going through the presentation, look for small ways you can improve each time. Experiment with your timing. Try different examples. Ask questions. Try different questions. See if standing up makes a difference in your voice. Experiment with the capabilities of your web conference. This is a great time to experiment, actually – when you’ve practically memorized the material and can recover confidently from anything Murphy’s Law throws at you.

Would that help you stay interested? Yes. And other people will be interested because you’re interested. And you’ll be a better presenter at the end, too.

So that’s a good start. Let’s say your work is better than that. Let’s say you can improve your training as you learn – make new slides, add more resources, and so on.

Save time and create more value. Record your presentation. Share your slides and your speaker notes. Now you can give yourself a better challenge: How can you improve your training so that it’s really worth attending? What extra value will people get from you that they can’t get from recordings, slides, or speaker notes?

It’s a good idea to build plenty of room for interaction into your presentations. That’s because people can get everything else from the extra resources, but this is where they can really ask and learn. It’s also a great way for you to learn from people: what’s important to them, what else they want to learn, how to make your training better. Teach less, listen more.

Attend other people’s training sessions. See what you like – and what drives you crazy. Take notes.

It’s also a good idea to work on the next actions for your presentation. You should have a clear idea of what you want people to do after your presentation. What changes do you want them to make to the way they work? What resources do you want them to check out or bookmark? As you learn more by teaching people, build up those resources and refine those next steps. This is one of the areas where you can make a real difference as a trainer – you can help people get ready for and commit to change.

You can do lots of things to make your next steps even better. Can you make a checklist that people can save and follow? Can you share recordings and other resources? Can you tell people about other training they’ll find useful? For example, after this presentation, I want you to pick one small, specific way you can improve your next training session, and practise using it until you get the hang of it.

Let’s talk about some of those specifics. Here are three quick presentation tips that might help you make even better use of your web conference (and if you’re not using a web conference for remote training yet, switch to one!).

First: You can use the text chat for Q&A throughout your talk. Why? It’s important to see when people have questions. It’s hard for most people to interrupt speakers on the phone. You can pause for questions, but you’re probably not going to pause for questions often enough, and it breaks the momentum. Some people might use the hand-raising feature in web or phone conferences, which is good, but it’s even better to ask people to type their question into the text chat if possible. Why? You can prioritize questions, you can adjust your presentation on the fly, and you might even find that people are answering each other’s questions. If you find the text chat distracting, have a moderator or buddy keep an eye out for questions, or take a look at it every so often.

Second: Make your summary your Q&A slide. I can’t tell you how many presentations I’ve seen that end on “Thank you!”, “Q&A”, or some other mostly-blank slide. This is probably the slide that will be shown the longest – make it count! Show a one-slide summary that helps people remember what they want to ask questions about and reiterates the next steps you want them to take. Don’t let your session trail off into Q&A, either. 5-10 minutes before the end of your session, summarize the key points and review the next actions so that people can remember them.

Third: Consider adding video. Webcams are inexpensive and you can make your presentation more engaging. If you do use video, make sure your background isn’t distracting, and warn other people who might walk in!

So that’s what I’ve got to share, and I hope you’ve found one or two ideas you can use to improve your presentations. Let’s talk about it! What’s working well for you right now? What do you want to improve?

2011-04-27 Wed 17:56

Giving a presentation using Autodesk Sketchbook Pro and a web conference

April 28, 2011 - Categories: kaizen, presentation, sketches, speaking


I gave a presentation using Autodesk Sketchbook Pro and desktop-sharing in Lotus Live, and it worked out really well. I think I’ll do this for as many presentations as I can get away with. =) I’ll post a link to the recording when it’s up. It was much more fun and much more flexible than annotating in Microsoft Powerpoint. Here’s how I did it.

I pre-drew my one-slide talking points on a single layer so that I wouldn’t have to count on thinking, talking, and drawing all at the same time. I used an idea from children’s activity books: instead of drawing, you can use the eraser to make content appear, like the way you would scratch off black paint to reveal colours. I created a layer on top of my "slide", and I flood-filled this layer with white. I set the opacity of this layer to 90% so that I could see the traces of the images on the layer underneath. That way, I could use an eraser to reveal the sketches below. I selected a large eraser to make it even easier.

I also wanted to be able to draw new sketches or highlight items, so I selected a red ballpoint pen as my primary brush. Red goes well with black and white. Because my Lenovo X61 tablet pen has a pen tip and an eraser tip, I could easily flip between revealing pre-drawn sketches and adding new sketches. I drew on the the white layer that I gradually erased to reveal the underlying sketches. This meant that I could quickly remove accents or new sketches without disturbing my pre-drawn sketches.

Just in case I needed to go into more detail, I added another layer on top, filled it with white, and hid the layer. That way, I could always unhide it (thus blanking out everything else I’d drawn), add a new transparent layer on top, and sketch away.

I hid all the tools I didn’t need, and kept the layers window open on the side so that I could easily switch to another layer. Then it was time to share my screen, turn on the webcam, and give my presentation!

Here’s how you should set up your layers, from top to bottom:

  1. White layer, so that you can easily add layers on top of this for new drawings
  2. Translucent white layer with parts erased
  3. Pre-drawn sketches
  4. White background

The technique should work just as well with any drawing program that supports layers, a web conference that supports screen-sharing, and a tablet or tablet PC that lets you draw or erase easily.

Try it out and share your tips!

Study group: Flashcards and the Leitner method

April 29, 2011 - Categories: education, geek, learning, life, teaching

Flashcards are great for memorizing. They break topics down into learnable chunks, develop random-access knowledge, and turn learning into a game with visual progress. Flashcards also make it easier for people to learn together, testing each other on concepts.

We’ve been teaching the kids in the study group using flashcards for multiplication facts, fractions, and the Greek alphabet. We also teach them how to use cognitive theory to improve learning–well, perhaps not in those words. For example, when J- wants to help her friends learn the Greek alphabet (having handily mastered recognition herself), we encouraged her to cycle through letters in small sets (5 to 7 characters at a time) instead of running through all the letters in one go. It’s the same technique we used when they were learning the multiplication table.

J- also shared the mnemonics she used to remember many of the Greek letters. For example, she described λ as “Lambda, like Mary had a little lamb, going down a hill.” They’re quickly developing in-jokes, too, like the way V- calls α Pisces, they call Μ big mu, and ω makes the kids laugh.

W- and I have our own flashcards: Dutch, in preparation for our upcoming trip, and Latin, because we’re learning that too. Electronic flashcards offer convenience, of course, but paper flashcards are so much more fun.

In this week’s study group, we plan to teach the kids about the Leitner system for flashcard efficiency. I found out about the Leitner system by reading the comments in the Emacs flashcard.el mode years ago, when I was learning Japanese. The Leitner system optimizes learning by reducing the repetitions for cards you know well and increasing the repetitions for cards you answer incorrectly. It works like this:

Start with your flashcards in one group (group 1). Review the cards in a group. If you answer a card correctly, move it to one group higher. If you answer a card incorrectly, move it back to group 1. Repeat with each group of cards. When you answer a card in group 5 correctly, you can archive the card until you want to do a general review again. This weeds out the cards that you can correctly answer five times in a row and lets you focus on the cards that you can’t consistently answer.

I think the Leitner system is really cool. It’s an elegant algorithm with a physical implementation. Neat!

2011-04-24 Sun 14:16

Weekly review: Week ending April 29, 2011

April 30, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Get Vijay up to speed on project C
    • [X] Review code for project I
    • [X] Make travel plans
    • Got project I- sorted out, hooray!
    • More work on project C – lots of things to fix in user acceptance testing
    • Worked on Idea Lab offering
    • Sorted out my utilization
  • Relationships
    • [X] Host tea party – home-made buns and bagels
    • [X] Prepare for trip
    • [X] Host study group
    • [-] Withdraw USD, maybe convert some euros
    • Made battery-powered USB charger using MintyBoost kit
    • Got a haircut
    • Helped work on typing in “An Easy Method for Beginners in Latin”
  • Life
    • [-] Finish hem for red dress
    • [X] Write some more! =) Maybe braindump marriage stories?
    • Checked out Amazon Mechanical Turk – not worth my time, would rather write =)
    • Wrote future posts

Plans for next week

  • Work
    • [ ] Tidy up project C
  • Relationships
    • [ ] Hang out with my family! Yay!
    • [ ] Celebrate my sister’s wedding!
    • [X] Tidy up the strawberry and blueberry plants in the garden
    • [X] Start some bitter melon
  • Life
    • [ ] Draw! =)

Time analysis

Category This week Last week Delta Notes
Break 1.0 8.3 -7.3
Drawing 0.5 0.6 -0.1
Exercise 2.7 1.8 0.9
Learning 13.5 13.5 Lots of Latin and hacking
Personal 0.9 14.7 -13.8
Preparation 1.5 0.7 0.8
Routines – cooking 0
Routines – general 10.7 6.8 3.9
Routines – tidying 2.6 1.9 0.7
Sleep 57.6 60.4 -2.8
Social 19.3 18.2 1.1 Study group
Travel 2.7 4.5 -1.8
Work 43.9 37.1 6.8
Writing 11.0 5.02 5.98 Saving up posts

Wrapping up loose ends at work. Project I is well-sorted out, project C slightly less so. I let a few embarrassing bugs slip through to user acceptance testing – I really should find a way to make it easier and more fun to do manual testing instead of relying on automated tests! ;)

Looking forward to seeing my family again!


"An Easy Method for Beginners in Latin" and macron-insensitive search for Tiddlywiki

April 30, 2011 - Categories: geek

As previously mentioned, W- and I are re-typing parts of Albert Harkness’ 1822 textbook "An Easy Method for Beginners in Latin", which was digitized and uploaded to Google Books as a PDF of images. The non-searchable book was driving W- mad, so we’re re-typing up lessons. It’s a decent way to review, and I’m sure it will be a great resource for other people too.

Here’s what we have so far: An Easy Method for Beginners in Latin, Lessons 1-9

We’re starting off using Tiddlywiki because it’s a wiki system that W-‘s been using a lot for his personal notes. He’s familiar with the markup. It’s not ideal because Google doesn’t index it, the file size is bigger than it needs to be (0.5MB!), and it’s Javascript-based. It’s a good start, though, and I should be able to convert the file to another format with a little scripting. My first instinct would be to start with Org Mode for Emacs, of course, but we already know what W- thinks of Emacs. ;)

Most of the text was easy to enter. Harkness is quite fond of footnotes, numbered sections, and lots of bold and italic formatting. We’re going to skip the illustrations for now.

Typing all of this in and using it as our own reference, though, we quickly ran into a limitation of the standard TiddlyWiki engine (and really, probably all wiki engines): you had to search for the exact word to find something. In order to find poēta, you had to type poēta, not poeta. That’s because ē and e are two different characters.

We wanted to keep the macrons as pronunciation and grammar guides. We didn’t want to require people to know or type letters with macrons. Hmm. Time to hack Tiddlywiki.

TiddlyWiki plugins use Javascript. I found a sample search plugin that showed me the basics of what I needed.

I considered two approaches:

  1. Changing the search text to a regular expression that included macron versions of each vowel
  2. Replacing all vowels in the Tiddler texts with non-macron vowels when searching

The first approach was cleaner and looked much more efficient, so I chose that route. If the search text contained a macron, I assumed the searcher knew what he or she was doing, so I left the text alone. If the text did not contain a macron, I replaced every vowel with a regular expression matching the macron equivalents. Here’s what that part of the code looked like:

s = s.replace(/(.)/g, "['/]*$1");
if (!s.match(macronPattern)) {
  // Replace the vowels with the corresponding macron matchers
  s = s.replace(/a/, "[aāĀA]");
  s = s.replace(/e/, "[eēĒE]");
  s = s.replace(/i/, "[iīĪI]");
  s = s.replace(/o/, "[oōŌO]");
  s = s.replace(/u/, "[uūŪU]");

That got me almost all the way there. I could search for most of the words using plain text (so poeta would find poēta and regina would find rēgīnae), but some words still couldn’t be found.

A further quirk of the textbook is that the characters in a word might be interrupted by formatting. For example, poēt<strong>am</strong> is written as =poēt”am”= in Tiddlywiki markup. So I also inserted a regular expression matching any number of ‘ or / (bold or italic markers when doubled) between each letter:

s = s.replace(/(.)/g, "['/]*$1");

It’s important to do this before the macron substitution, or you’ll have regexp classes inside other classes.

That’s the core of the macron search. Here’s what it looks like. I was so thrilled when I got all of this lined up! =)


And the source code:

// Macron Search Plugin
// (c) 2011 Sacha Chua - Creative Commons Attribution ShareAlike 3.0 License
// Based on http://devpad.tiddlyspot.com/#SimpleSearchPlugin by FND

if(!version.extensions.MacronSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.MacronSearchPlugin = { installed: true };

if(!config.extensions) { config.extensions = {}; }

config.extensions.MacronSearchPlugin = {
  heading: "Search Results",
  containerId: "searchResults",
  btnCloseLabel: "Close search",
  btnCloseTooltip: "dismiss search results",
  btnCloseId: "search_close",
  btnOpenLabel: "Open all search results",
  btnOpenTooltip: "Open all search results",
  btnOpenId: "search_open",

  displayResults: function(matches, query) {
    story.refreshAllTiddlers(true); // update highlighting within story tiddlers
    var el = document.getElementById(this.containerId);
    query = '"""' + query + '"""'; // prevent WikiLinks
    if(el) {
    } else { //# fallback: use displayArea as parent
      var container = document.getElementById("displayArea");
      el = document.createElement("div");
      el.id = this.containerId;
      el = container.insertBefore(el, container.firstChild);
    var msg = "!" + this.heading + "\n";
    if(matches.length > 0) {
        msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\n";
      this.results = [];
      for(var i = 0 ; i < matches.length; i++) {
        msg += "* [[" + matches[i].title + "]]\n";
    } else {
      msg += "''" + config.macros.search.failureMsg.format([query]) + "''\n"; // XXX: do not use bold here!?
    wikify(msg, el);
    createTiddlyButton(el, "[" + this.btnCloseLabel + "]", this.btnCloseTooltip, config.extensions.MacronSearchPlugin.closeResults, "button", this.btnCloseId);
    if(matches.length > 0) { // XXX: redundant!?
      createTiddlyButton(el, "[" + this.btnOpenLabel + "]", this.btnOpenTooltip, config.extensions.MacronSearchPlugin.openAll, "button", this.btnOpenId);

  closeResults: function() {
    var el = document.getElementById(config.extensions.MacronSearchPlugin.containerId);
    config.extensions.MacronSearchPlugin.results = null;
    highlightHack = null;

  openAll: function(ev) {
    story.displayTiddlers(null, config.extensions.MacronSearchPlugin.results);
    return false;

// override Story.search()
Story.prototype.search = function(text, useCaseSensitive, useRegExp) {
  var macronPattern = /[āĀēĒīĪōŌūŪ]/;
  var s = text;
  // Deal with bold and italics in the middle of words
  s = s.replace(/(.)/g, "['/]*$1");
  if (!s.match(macronPattern)) {
    // Replace the vowels with the corresponding macron matchers
    s = s.replace(/a/, "[aāĀA]");
    s = s.replace(/e/, "[eēĒE]");
    s = s.replace(/i/, "[iīĪI]");
    s = s.replace(/o/, "[oōŌO]");
    s = s.replace(/u/, "[uūŪU]");
  var searchRegexp = new RegExp(s, "img");
  highlightHack = searchRegexp;
  var matches = store.search(searchRegexp, null, "excludeSearch");
  config.extensions.MacronSearchPlugin.displayResults(matches, text);

// override TiddlyWiki.search() to ignore macrons when searching
TiddlyWiki.prototype.search = function(s, sortField, excludeTag, match) {
    // Find out if the search string s has a macron
    var candidates = this.reverseLookup("tags", excludeTag, !!match);
    var matches = [];
    for(var t = 0; t < candidates.length; t++) {
        if (candidates[t].title.search(s) != -1 ||
            candidates[t].text.search(s) != -1) {
    return matches;

} //# end of "install only once"

To add this to your Tiddlywiki, create a new tiddler. Paste in the source code. Give it the systemConfig tag (the case is important). Save and reload your Tiddlywiki file, and it should be available.

It took me maybe 1.5 hours to research possible ways to do it and hack the search plugin together for Tiddlywiki. I’d never written a plugin for Tiddlywiki before, but I’ve worked with Javascript, and it was easy to pick up. I had a lot of fun coding it with W-, who supplied plenty of ideas and motivation. =) It’s fun geeking out!

May 2011

Negative productivity and learning from oopses

May 1, 2011 - Categories: geek, productivity, tips, work

So I accidentally blew away my self-hosted photo gallery because I overwrote the directories by copying them instead of using rsync. I attribute that to being slightly out-of-sorts, but the truth is that I might’ve made that mistake anyway bright and early on a well-rested weekend.

As it turns out, I back up my WordPress blog, but not my Gallery2-hosted photo album. And I hadn’t enabled server-wide backups before. You can bet I turned that on after I realized that.

It’s no big deal. The key thing I wish I hadn’t deleted was the sketch I’d made of the highlights of 2008, but that’s in my paper backup of my blog, and the rest of my sketches are probably somewhere in my files too. It’s just stuff.

The trick to dealing with negative productivity is to catch yourself – ideally, shortly before you mess up, but shortly afterwards is fine too. Do not make things worse in the process of trying to fix things.

It’s better to detect your periods of negative productivity on non-critical operations than to, say, accidentally corrupt the source code repository for the project you’ve been working on. In addition to remembering this general feeling of out-of-it-ness, it might be a good idea for me to come up with some small test for full attention/alertness before doing anything possibly irreversible. Then I would need to make it a habit, because it’s precisely when one’s tempted to cut corners and go ahead that one shouldn’t.

Hmm, checking for patterns…

Sleep 8.8 hours per night – normal (if not a little over)
Work 10.2 hours per workday so far – well above normal, and pretty high-intensity work, too
Work pattern current, 45.9, 56.9, 40.1 – current week is third of more intense period

Anyway. Dealing with oopses. Instead of beating myself up about it, I’d rather fix what I can fix, learn what I can learn, and then get on with a restful evening so that I can prepare for more awesomeness. Why beat myself up over a mistake? Better to figure out how to minimize the chances of making a similar mistake in the future, and to get on with life. =)

(Well, after wringing a blog post out of it first…)

2011-04-13 Wed 20:36

Thoughts from marriage: Learning together

May 2, 2011 - Categories: learning, life

Learning can be so much more fun when you learn with someone. Learning something with your spouse can be even better.

W- and I enjoy learning things together. Last summer, we taught ourselves woodworking. We checked books out from the library, spent hours at Home Depot looking at tools and picking out lumber, figured out how to get 16′ planks home without renting a truck or becoming a traffic hazard, and built deck chairs that actually fit us. Having a second pair of hands to hold something in place, having a second pair of eyes to check before you work – that saves a lot of time. W- also helped motivate me past the necessary-but-slightly-annoying parts, such as remeasuring the chair slats so that they fit properly. I probably would never have tried it without him, and now the chairs sit on our deck and provide an ongoing trigger for happy memories.

We’ve been teaching ourselves Dutch in preparation for our trip to the Netherlands for my sister’s wedding. W- made flashcards and has been helping me learn. Even with our limited vocabulary, we’ve quickly developed in-jokes, like the delight with which we encounter the flashcard for “spek” (bacon) or “gebakken ei” (fried egg), and how I mock-shudder at “krentenbrood” (I’m not fond of currants or anything raisin-like).

We’ve also been working our way through a Latin textbook as part of an Internet-based study group. We’re learning Latin together because we’re curious about a proper classical education. If kids of bygone eras could be well-versed in Latin, Greek, and French, why couldn’t we get the hang of it too? I’m inspired by books like The Well-Trained Mind: A Guide to Classical Education at Home. While the rest of the world wrings their hands over the state of education, W- and I want to do something. This is not a bad place to start.

Cooking provides many opportunities for learning. We’ve been moving further down the supermarket food chain:

How do we make time for this? Avoiding financial pressure helps. A frugal lifestyle means that neither of us needs to work a second job, or gets stressed out about work. We spend most of our discretionary time at home because we enjoy doing so. A nearby library provides almost all the books we want, and Internet booksellers fulfill the rest of our learning needs. Internet videos, audio recordings, and websites also give us plenty of resources.

Learning pays off in many ways. If we model this kind of curiosity and life-long learning for J-, she might be inspired to explore her own interests. It’s like the way I learned a lot from watching my mom teach herself about business and education and watching my dad learn about planes and photography. Who knows what J- and other kids will be able to do if they learn that learning is fun?

2011-04-24 Sun 09:07

Cucumber, Capybara, and the joys of integration testing in Rails

May 3, 2011 - Categories: geek, rails

Development is so much more fun with test cases. They give you a big target to aim for, and it feels fantastic when you write the code to make them pass. Tests also avoid or shorten those late-night “oh no! I broke something!” sessions, because you can backtrack to versions that pass the tests. (You are using version control, right?)

So naturally, as I worked on my first IBM project using Ruby on Rails, I wanted to know about how to perform automated testing – not just at the unit level, but at the web/integration level.

I like using Simpletest in Drupal. I love the testing frameworks available in Rails.

You see, Cucumber for Rails allows you to write your tests in English (or something reasonably close to it). For example:

Feature: Contributor
  In order to maintain security
  As a contributor
  I want to be able to edit existing submissions
  Scenario: Contributor should not be able to create or delete submissions
    Given I am a company contributor
    And there is a 2010 survey for "Company X"
    When I view the dashboard
    Then I should not be able to delete a submission
    And I should not be able to create a submission

Putting that in my features/contributor.feature" file and executing that with =bundle execute cucumber features/contributor.feature gets me a lovely test with green signs all around.

You’re thinking: Rails is awesome, but it’s not that awesome, is it? How can it know about the specifics of the application?

Rails knows because I’ve written my own step definitions for Cucumber. Step definitions are simple. You can define them with a regular expression like this:

When /^I view the dashboard/ do
  visit root_path

Then /^I should not be able to create a submission/ do
  page.should_not have_button("Create submission")

You can also define steps that parse arguments from the string or call other steps:

Given /^there is a ([^ ]+) survey for \"([^\"]+)\"$/ do |year,name|
  @company = Company.find_by_name(name)
  assert [email protected]?
  Given "there is a #{year} survey"

You can even take multi-line input, such as tables.

Automated testing is so awesome!

On people changing companies

May 4, 2011 - Categories: career, work

Over the past few weeks, several people I’ve had the pleasure of working with have left the company. I used to feel confused and a little disturbed by people’s departures, particularly if they’d tried to find other internal opportunities and the timing didn’t work out. Quite a few of my mentors left IBM, and one of my colleagues even lightheartedly teased me about it.

I feel much less worried about people leaving now. I wish them luck on their next adventure, connect with them through social networks so that we can keep in touch, subscribe to their blogs or follow them on Twitter, set myself a reminder to follow up with them, and perhaps write them a recommendation on LinkedIn.

Here’s what I understand now that I didn’t understand in the beginning: It’s okay.

When people leave for other companies, they colonize those companies with the things they’ve learned in ours. They spread skills and ideas they’ve honed here, while learning even more from new cultures and new situations. New things become possible.

The network grows. Now I might be able to easily reach out to one more company, one more industry. Now I might hear about interesting ideas and trends outside my usual areas of focus. Now I might connect even more diverse worlds.

It’s not all an easy win, of course. People leave behind these gaps, these unfulfilled possibilities. They also leave new opportunities. What will their successors create? How will the organization adapt around them? How will everyone grow?

I still work on helping IBM improve, in my own little way. But now I can properly wish people good luck on their new adventures, and be confident that things will generally work out.

2011-04-08 Fri 20:23

Tweaking married life for everyday happiness

May 5, 2011 - Categories: life

One of the things that works really well for W- and me in marriage is that we invest time and effort into making everyday life enjoyable. It’s not about big vacations or escaping from life; it’s about making regular life awesome. Let’s take a closer look at that.

Sleep takes up a third of our life. We make sure we get enough sleep, as sleep deprivation leads to general tetchiness and negative productivity. There’s no sense in doing more if you end up being unhappy, so we keep our schedule light and flexible.

Work takes up another third of our life, so we also make sure work is good. I love learning, working on open source, and helping clients and coworkers make things happen, so I work with my manager to make sure I’ve got plenty of opportunities to do so. W- also puts the time into improving his processes and getting better at what he does.

We invest in making chores enjoyable. A lot of this is mindset. For example, memories of the great washing machine adventure turn laundry into something that makes me smile. It helps that our washer and dryer sound so cheerful. (Really! Listen to someone else’s recording.)

“Right, Sacha, but that took a lot of work.” you might be thinking. But it’s surprising how a story can add more enjoyment to a routine task. For example: doing the dishes. I feel warm and fuzzy about the yummy food we just made, and I enjoy remembering W-‘s story about this Fisher&Paykel dishwasher. You see, when I moved in, W- had a regular dishwasher. He explained that he’d replaced his preferred dishwasher with a standard one because he had been thinking about selling the house. He kept telling me about how awesome this dishwasher was, and we joked that it was the kind of dishwasher that was accompanied by choirs. When we decided we were going to stay, we took a trip up to his parents to retrieve the dishwasher. After I saw how it was cleverly divided into two independent drawers and it had time-delay features, I became a convert. (It seems it really does go “Aaaah!”)

I’ve shown W- some clever ways to use the dishwasher, too, like using the top rack as a temporary holding space when the handwashed items need more space than the dish drying rack. Tiny improvements make life more awesome.

Sharing a task makes it fun, too. W- and I both enjoy cooking, and the L-shaped kitchen layout means that we don’t get in each other’s way. Cleaning up together makes that more enjoyable, too. Turn chores into social events to make the time fly.

What about other routines, like eating or getting ready for work? Again, this is something that can benefit from continuous improvement. For example, we switched to batch-cooking lunches and freezing individual portions. This not only simplifies mornings and saves us money, it also makes me smile whenever I have lunch. We tweaked our entrance workflow, and now it’s easier to take off our coats and put down our bags. Little things.

So that takes care of sleep, work, chores, and routines. What’s left? Mostly discretionary time – time that we can spend developing interests, enjoying hobbies, learning, relaxing, and so on. We spend a fair bit of this time together: hosting study groups, learning Latin, playing games. Sometimes we spend it on individual pursuits, like my tea parties or his calculator. We use this time not just to rest and recharge, but also to grow, and we deliberately invest in capabilities that can make future everyday life even better.

Is this kind of happiness a finite honeymoon-ish sort of period? Maybe. Who knows? But it makes perfect sense to invest that energy into strengthening the foundation and building good routines, and to enjoy the compounding benefits. It isn’t about big changes, just small and simple everyday happinesses

2011-04-23 Sat 11:32

Rails: Exporting data from specific tables into fixtures

May 7, 2011 - Categories: geek, rails

Rails is pretty darn amazing. There are plenty of gems (Ruby packages) that provide additional functionality. They’re like Drupal modules, except with more customizability (not just hooks) and fewer pre-built administrative interfaces (you win some, you lose some).

For example, the client asked me, “Can we edit the static content?” Now if I had asked about this as a requirement at the beginning of the project, we might have gone with Drupal instead–although the Rails Surveyor still feels cleaner than a CCK-based survey type, so we might’ve stayed with Rails.

Anyway, we were well into Rails now, so I looked for a content management system that I could integrate into the Rails 3-based website. After some experimenting with Refinery CMS (looks slick, but couldn’t get it to do what I wanted) and Comfortable Mexican Sofa (looked pretty geeky), I settled on Rich CMS. I nearly gave up on Rich CMS, actually, because I’d gotten stuck, but the web demo helped me figure out what I needed to do in order to enable it.

We’re still emptying and reloading the database a lot, though, so I wanted to make sure that I could save the CmsContent items and reload them. I didn’t want to back up the entire database, just a table or two. There were some gems that promised the ability to back up specific models, but I couldn’t figure it out. Eventually I decided to use the table-focused Rake code I saw in order to export the data to fixtures (seems to be based on code from the Rails Recipes book).

task :extract_fixtures => :environment do
  sql  = "SELECT * FROM %s"
  skip_tables = ["schema_info"]
  if (not ENV['TABLES'])
    tables = ActiveRecord::Base.connection.tables - skip_tables
    tables = ENV['TABLES'].split(/, */)
  if (not ENV['OUTPUT_DIR'])
    output_dir = ENV['OUTPUT_DIR'].sub(/\/$/, '')
  (tables).each do |table_name|
    i = "000"
    File.open("#{output_dir}/#{table_name}.yml", 'w') do |file|
      data = ActiveRecord::Base.connection.select_all(sql % table_name)
      file.write data.inject({}) { |hash, record|
        hash["#{table_name}_#{i.succ!}"] = record
      puts "wrote #{table_name} to #{output_dir}/"

Being a lazy programmer who doesn’t want to remember table names, I also defined the following Rake tasks:

task :save_content => :environment do
  ENV["TABLES"] = "cms_contents"
task :load_content do

Then I can call rake myproj:save_content and rake myproj:load_content to do the right thing. Or rather, my co-developer (a new IBMer – hello, Vijay!) can do so, and then check his work into our git repository. =)

Now we can re-create the development database as often as we’d like without losing our page content!

2011-04-24 Sun 16:29

Condensing requirements into use cases

May 8, 2011 - Categories: ibm, learning, work

(From April 23:)

I’m helping out with a proposal at work. The team asked me to condense a 250+-page requirements document into a spreadsheet of use cases. I’m new to architecture, but I gave it my best shot, sending the architect quick drafts so that we could zero in on something useful.

My first draft was too low-level, too detailed. My second draft was a bit better, but still too granular. My third draft was at about the right level, but some use cases were still too big. My fourth draft was workable. Hooray!

When you’re learning something that’s hard to pick up on your own, figure out how you can iteratively improve with feedback. Even if an expert doesn’t have the time to walk you through the process, he or she might be able to quickly tell you if you’re on the right track. See if you can break your work down into small portions you can work on until you get them right, and apply what you learn there to the rest of the work. Good luck!

On kids and the learning of tangible things

May 9, 2011 - Categories: life

“Treat her to a scoop!” said the man in the ice cream shop as we walked by. He waved us into the ice cream shop, where W- chose maple walnut and I chose butter pecan. Our orders were rung up by a 4-year-old, all eagerness and tiny fingers at the cash register, coached by her mom to punch in the buttons and wish us a good day. I thought it was delightful.

That’s one of the advantages of a family business that deals with tangible things, I guess. I remember my dad teaching us how to transfer rolls of film in the darkroom. We didn’t help out regularly, but it was great to learn about how parts of the business worked.

It’s a little harder to show J- the magic of building applications, so we focus on tangible hobbies instead: cooking, baking, woodworking, gardening, and so on. They’re good introductions to the joys of learning and accomplishment.

2011-04-25 Mon 08:40

Rails: Paperclip needs attributes defined by attr_accessible, not just attr_accessor

May 10, 2011 - Categories: development, geek, rails

I wanted to add uploaded files to the survey response model defined by the Surveyor gem. I’d gotten most of the changes right, and the filenames were showing up in the model, but Paperclip wasn’t saving the files to the filesystem. As it turns out, Paperclip requires that your attributes (ex: :file_value> for my file column) be tagged with attr_accessible, not just attr_accessor.

Once you define one attr_accessible item, you need to define all the ones you need, or mass-assigning attributes with update_attributes will fail. This meant adding a whole bunch of attributes to my attr_accessor list, too.

If you’re using accepts_nested_attributes_for, you will also need to use attr_accessible there, too.

Sharing the note here just in case anyone else runs into it. Props to Tam on StackOverflow for the tip!

2011-04-01 Fri 12:41

Back from the Netherlands

May 11, 2011 - Categories: family, life

We were in the Netherlands from May 3 to May 10 to celebrate my sister’s wedding. I still have to sort through all the pictures and sketches, but here are some highlights:

Seeing Keukenhof again: My sister and her fiancé timed their wedding so that we could catch the spring flowers at Keukenhof , which has hectares and hectares of tulips and other blooms. My family and I had been there before, when I was in high school. W- had never been to Europe, so it was his first time for everything. Taking up gardening myself

The wedding: We had a small civil wedding ceremony in the gazebo in Agnietenberg, a campsite in Zwolle. Kathy wore a white terno (full-length dress with butterfly sleeves) beaded and decorated with hand-painted blue tulip appliques; a fusion of Philippine and Dutch cultures. John wore a suit. I wore the red dress I sewed myself. =) I’ll link to photos when they become available.

Moments that made me laugh:

  • Seeing the world’s tallest ringbearer get pressed into service (Mathew filled in for the actual ringbearer, who was late)
  • When they celebrated the end of the wedding ceremony with the Hallelujah chorus
  • When my dad got flustered reading the witnessing statement in Tagalog and ended up putting in all sorts of other things

Den Haag: We visited W-’s friend Dan in The Hague and we had a lot of fun catching up. In the evening, we rented bikes from OV Fiets and headed to the beaches near the North Sea. The Netherlands’ biking life made me so envious: separate bike lanes going practically everywhere, rental systems, flat terrain, garages with grooves in the ramps, locks integrated into bikes, and the freedom to bike without worrying too much about opened doors or inattentive drivers…

Geek: One of the advantages of being a geek is that most people appreciate getting tech support. We don’t do this on a regular basis for family or friends, but if we happen to be in the same country and we have some time on vacation, why not? =)

Dan had warned her husband that we were both geeks and that we were not allowed anywhere near the computers or even the microwave, because we might reprogram stuff. We ended up looking into their WiFi router, writing down the password for them and their future guests, and setting the BIOS settings on one of the computers so that it could recognize the printer that was on LPT1. (Smart IO chipset for the parallel port! Gosh.) Most of the interfaces were in Dutch, but we figured it out. We also fixed up Auntie Katharina’s computer, but that’s the next story.

Germany: We were hanging out in John’s house in Zwolle, and Auntie Katharina mentioned she’s been having problems with her computer. My parents had been planning to get Auntie Katharina a new computer for a while, so that she could talk to them using Skype. Day trip!  After much back-and-forth, we convinced Auntie Katharina to let us go on this adventure. (After all, W- had never been to Germany, and it would be so nice to visit Wiesbaden again, and…) So we piled into the car, rushed back to the camp, packed our suitcases and backpacks, and headed off to Germany. (Don’t you just love being able to take a day trip to a different country?) We bought a laptop from the Media Markt near Auntie Katharina’s house, visited her son and her grandkids, then headed over to her place to set it up. Then it was a long drive back to the Netherlands for a short nap before W- and I took the train to the airport. That was definitely cutting it close, but we made it!

Weekly review: Week ending May 6, 2011

May 12, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Tidy up project C
  • Relationships
    • [X] Hang out with my family! Yay!
    • [X] Celebrate my sister’s wedding!
    • [X] Tidy up the strawberry and blueberry plants in the garden
    • [X] Start some bitter melon
  • Life
    • [X] Draw! =)

Plans for next week

  • Work
    • [ ] Catch up on work
    • [ ] Get ready for training trip for project I
    • [ ] Follow up on project C
    • [ ] Refile time for project M
  • Relationships
    • [X] Hang out with family some more!
    • [X] Spend time with W-‘s friend Dan in The Hague
    • [ ] Write and sketch stories from trip
    • [ ] Organize photos from trip
    • [ ] Catch up with mail
  • Life
    • [ ] Plant more herbs and greens
    • [ ] Decompress
    • [ ] Write more for upcoming trip

Time analysis

Between timezone changes and vacation… what time analysis? =)

First foray into community-supported agriculture

May 13, 2011 - Categories: cooking, kaizen, life

W- borrowed In Defense of Food from the library. I read it with him, dipping in and out of the book when he read nearby. Now we’re tweaking what and how we eat: buying organic vegetables, checking out a nearby butcher, and preparing lighter summer fare.

We signed up for a local spring share from Plan B Organic Farms. The way that community-supported agriculture works is that you buy a share in a farm’s produce and you get a portion of whatever’s being harvested. Plan B Organic Farms works with several farms, so you can get a good selection of food (and your risk is probably lower, too). We signed up for a bi-weekly regular-sized share to see what it’s like. We’ll probably sign up for a weekly half-share for summer, as the garden will yield fruits and vegetables too.

After much anticipation, we picked up our first box yesterday! It contained:

  • lettuce
  • baby kale
  • living sprouts
  • pea tenders
  • apples
  • shiitake mushrooms
  • potatoes
  • parsnips
  • beets
  • apple cider (mmm!)

I rinsed and tossed handfuls of lettuce, baby kale, sprouts, and pea tenders with vinaigrette. I added dandelion leaves from the garden. (Mwahaha! It’s extra-satisfying to pull up weeds for munching.) A sprinkling of pine nuts on the greens, and tada! Salad.

Meanwhile, W- cooked the sausages and prepared pasta with store-bought pesto. (Haven’t started our basil plot yet!) We added some sage, oregano, and thyme from the garden – just a bit, as the plants are still small. Yummy!

Working with a random assortment of fruits and vegetables is a lot more fun now than it was back when I was a student cooking for myself. I used to get the Good Food Box (another organic/local produce subscription service) when I lived on campus. Identifying the vegetables that came and figuring out good recipes for them that wouldn’t result in too much waste – that was quite a challenge! I remember losing the list of the box contents and then flipping through the pages in my full-colour fruit and vegetable identification book (a gift from my family), trying to figure out if I had beets or rutabagas. (Beets, as it turned out.) Now, W- and I can bounce ideas off each other, we have more flexibility and a better-stocked pantry for quick meals, and we have the freezer space to handle odds and ends if needed. Yay!

I’m still looking forward to getting our garden growing. The plants look promising. I’m learning how to pack the garden more densely and to grow more kinds of food. But it’s great to enjoy lettuce and all these other things while the garden gets started, and to get fruits and vegetables we won’t be growing ourselves.

The community-supported agriculture shares will be a great addition to our kitchen, encouraging us to be more creative with our cooking and more diverse in our diet. It’ll be fun – and it will be good eating!

Cattus Petasatus

May 14, 2011 - Categories: learning

On a whim, W- and I are learning Latin. We figure that schoolkids used to learn Latin and Greek, so we should be able to hack it too. So we’ve signed up for an Internet study group, borrowed books from the library, and looked for other Latin resources.

We were delighted to find Cattus Petasatus, a Latin translation of Dr. Seuss’ The Cat in the Hat. There are even translations for some of the other books, like Green Eggs and Ham. I like reading them in addition to our textbooks. They make Latin feel more contemporary.

Learning Latin with W- is a lot of fun. He shares the ways Latin reminds him of French. He thinks I find it easier to say Latin than he does because of my background in Filipino, which also has a lot of short syllables. We review our study group homework together, laugh at the contrived examples, and look around for other resources. I’m so lucky my husband is a geek. =)

We’ll gradually work our way up to Winnie ille Pu. Maybe we’ll even put together our own Latin projects!

Weekly review: Week ending May 13, 2011

May 15, 2011 - Categories: weekly

From last week’s plans

  • Work
    • [X] Catch up on work
    • [X] Get ready for training trip for project I
    • [X] Follow up on project C
    • [X] Refile time for project M
    • Prepare for upcoming presentations
    • Added status tracking feature to project C
  • Relationships
    • [X] Hang out with family some more!
    • [X] Spend time with W-‘s friend Dan in The Hague
    • [\] Write and sketch stories from trip – wrote a few
    • [-] Organize photos from trip – haven’t looked at them!
    • [-] Catch up with mail – answered some mail, but not yet all
    • Got first Plan B Organic Farms box. Had lots of salad. Yum! Plus dandelions, too.
  • Life
    • [X] Plant more herbs and greens
    • [X] Decompress
    • [-] Write more for upcoming trip

Plans for next week

  • Work
    • [ ] Conduct training for project I in Colorado
    • [ ] Keep an eye on project M
    • [ ] Sort out upcoming projects
    • [ ] Prepare for social media / Gen Y talk for client D
  • Relationships
    • [ ] Catch up on mail
    • [ ] Write more about Netherlands trip
    • [X] Plant more herbs and greens – basil basil basil basil
    • [X] Make bagels
    • Helped hem J-‘s pants – made a hair bow, ribbon, and brooch from the scraps
  • Life
    • [ ] Set aside writing time while on business trip, and actually write
    • [ ] Think about what I want to learn next – more sewing projects?

Rails: Preserving test data

May 16, 2011 - Categories: development, geek, rails

I’m using Cucumber for testing my Rails project. The standard practice for automated testing in Rails is to make each test case completely self-contained and wipe out the test data after running the test. The test system accomplishes this by wrapping the operations in a transaction and rolling that transaction back at the end of the test. This is great, except when you’re developing code and you want to poke around the test environment to see what’s going on outside the handful of error messages you might get from a failed test.

I set up my test environment so that data stays in place after a test is run, and I modified my tests to delete data they need deleted. This is what I set in my features/support/env.rb:

Cucumber::Rails::World.use_transactional_fixtures = false

I also removed database_cleaner.

You can set this behaviour on a case-by-case basis with the tag @no-txn.

Running the tests individually with bundle exec cucumber ... now works. I still have to figure out why the database gets dropped when I do rake cucumber, though…

2011-04-24 Sun 16:21

Finding the bright side of business travel

May 17, 2011 - Categories: travel, work

I don’t like travelling. I’d rather be home: husband, cats, garden, library, home-cooked food, regular routines, everything I need where I want it to be. But we haven’t figured out teleportation and some clients want face-to-face contact, so I go if necessary.

It’s a little hard to focus on the bright side of business travel, aside from the opportunity to meet people in person. Travel changes such a large chunk of personal time. Long days trail off into the temptation to spend evening hours catching up with work e-mail or flipping through the movies on the television. Restaurants overwhelm with choices and serve too-large portions. Laughter and meows are replaced by the white-noise hum of hotel airconditioning.

But there’s a bright side there, somewhere, new opportunities that open up during every disruption. Here’s what I might be able to do this trip:

  • Wake up earlier. There’s no one to disturb, and there’s more incentive to go to bed early and wake up early.
  • Spend more time writing and drawing. No meals to prepare, no dishes to wash, nothing else to do but work and write and draw.
  • Eat different kinds of food. Eat the kinds of things we would find difficult to prepare at home. Avoid the temptations. Focus on soups and salads – maybe that will help…
  • Listen to more music. I rarely do so at home. Here, it’s better than the constant traffic and weather updates on the lobby television that’s tuned to the news channel.

I could enjoy business travel more, I suppose, if I stayed an extra day in the cities we visit. Here loss aversion rears its behavioral-psychology head, I think; I’d find it hard to tear myself away from home a day early in order to walk around a city by myself. This is not completely true. I haven’t tried it, and I should give it at least one try. And for places I know we have friends in, I’d be happy to come a day earlier or leave a day later so that I can spend time with them. Perhaps the next trip.

It’s difficult but essential to be where you are, not mis-placed.

2011-05-15 Sun 09:26

Walking outside my comfort zone – bike? push/kick scooter?

May 17, 2011 - Categories: analysis, decision, kaizen, travel

This walking-around-a-strange-city has its pluses and minuses. Plus: I got to see Denver’s downtown pedestrian zones and how they’ve set up the 16th Street Mall with plenty of trees and benches. Minus: My phone was dead, so I didn’t have GPS, and I hadn’t fixed and brought my MintyBoost yet, and I didn’t have a physical map. I missed my stop on the way back and ended up walking an extra 4.5km. Easy enough to plan for next time. On my next trip, I’ll definitely bring a power supply!

While walking around, I thought about what would make exploration easier. GPS and offline maps are definitely big ones, which probably means just making sure that I can recharge my smartphone on the go.

The thing with walking is that if you make a mistake or you miss a stop, it takes a long time to get back on track. On a car, you can swing around quickly and be halfway across town in a few minutes. On a bicycle, you can still cover a lot of ground. Walking? Trudge trudge trudge trudge. In the dark, this can be a little scary.

Walking also means I can’t cover that much ground. I know I can take a taxi, but I find it hard to shake the idea that taxis are a luxury. ;) Public transit is good, but the schedules can be tricky. CoPilot Live for Android shows me where the nearest bus stop is. As long as I keep the last bus times in mind, I’m pretty okay with asking for directions and waiting a bit at stops.

Reasons why it might be worth hacking this:

It would be really awesome to reduce anxiety. I get fidgety if I’m walking by myself and there are few people around. Public transit schedules tend to have gaps, and sometimes it’s hard to find a place where I can get a cab. (Which of these roads will lead to a hotel? Hmm.) If I’m on a bike, I can cover more distances myself, with the trade-off that I’ll just be worried about accidents. (Bright lights, reflective tape, road caution, helmets?) Even a push scooter might get me quickly from a silent patch to someplace with more light and/or people.

It would be great to not take cabs to client sites. Yes, I know, it’s a business expense. But I still take public transit whenever possible, even if I don’t benefit from the savings. Part of it is being aware of the moral hazard of a company expense account (when you change your behaviour knowing someone else is footing the bill), and part of it is fighting the hedonic treadmill (when you get used to a level of consumption).

It would be great to see more of the places I stay at. Might as well, I’m there already. I’m an odd sort of traveller, though. I’m not driven to take my picture beside famous landmarks. I don’t collect knick-knacks. I occasionally meet up with people, but I’m also fine connecting virtually. I do like checking out thrift stores. I can’t stand paying retail, and browsing through people’s donations gives me a little idea of what people are like.

I’m probably looking at two or three solo trips over the next year and some light use back home. No big deal – the null option (listed below) might still be cheaper.

How can I cover more ground and reduce the cost of making mistakes?

What about renting bikes? Most cities have bike rentals. I’m not sure if I can generally take advantage of them – time, familiarity. Well, maybe a handlebar mount for my Android, and spare power in case I need to charge up? If the weather forecast didn’t call for thunderstorms this week, I might’ve borrowed a bike and used it to get around.

What about a folding bike? Two of my friends take folding bicycles with them on trips. That might work, too, because then I won’t have to think about rental hours or availability. I tend to pack light. My travel clothes fit in my carry-on, which means I can keep the suitcase for the bicycle. A bicycle would give me better range and might come in handy if I can’t hitch a ride with a coworker. Would a folding bicycle be worth the investment? It will primarily be useful for solo air travel, and I don’t plan to take more than two or three such trips over the next year. (Note: Watch out for airline fees!) It may also be useful for subway or bus-assisted trips – not the one to work, but maybe when visiting friends. If it’s light enough, I might also use it for short trips in spring and fall, when my town cruiser is hung on the bike rack.

How can I test this idea?

  • Bikeshare program: Cheapest, if available. Will need helmet and lock. May have a hard time adjusting bike height. Dependent on bike sharing locations – usually only downtown core.
  • Rentals: Inexpensive for trips shorter than 1 week. Dependent on bike availability, rental shop hours, and location.
  • Bringing bike over: $100+/trip + bike packing materials. May be difficult to get from the airport to the hotel with a bicycle and a suitcase. Larger van, more costly?
  • Shipping bike over: Some people ship their bikes by FedEx or UPS. This is a little scary, though, and requires that I find a mailing store for the way back.
  • Folding bike: $400-500, maybe more? Might be easier to lug, though. Airline bike fees might mean that renting would be cheaper. Plus side: it will be my height, and I don’t have to worry about different brake systems.
  • Taxi/bus: The null option is worth keeping in mind, given the few times I might want a bicycle. This is really about making sure I have emergency power for my phone, the phone number for local taxi companies, and enough cash in case they don’t take credit cards.

What about push scooters? Other people swear by them, as they fold up smaller and are lighter than even the lightest folding bikes. A folded-up scooter is less bulky than a folded-up bicycle, and many models can be rolled along like strollers or shopping carts. Pushing myself might be interesting given the flat shoes I typically wear, though – I might change into a pair of sneakers. A push scooter would primarily be useful for getting around town on solo trips in conjuction with public transit. It might also be useful for going to the library or to the grocery store for quick trips, and for getting to the subway station when I’m not biking to work (when rain is expected, or if my bike’s still up on the rack). I walk to the supermarket or library about twice a week, but this is usually a social walk with W- and J- too.

How can I test this idea?

  • Check out the push scooters in Toronto. Check prices, feel, etc. Rainbow Songs (Roncesvalles) sells the Xootr Mg Push Scooter with fender/brake for $243.78. It’s ~$229 in the US, so it looks like getting it in Canada will be fine, although the US will have more choice. There’s also the Razor A5, which Toys R Us sells. Advantage of being short: I can raid the teens’ scooter lineup, although the perks of grown-up scooters look tempting.
  • Check scooter prices in the US. Plan to spend an extra day looking around, perhaps? Maybe I can visit friends and have stuff shipped.
  • Walking. The null alternative to a scooter would simply be more walking, maybe with extra power for my phone/GPS or a separate GPS unit with longer battery life. Extra power for phone seems like a better bet, so that I can call a cab if needed – and I’ve got the MintyBoost for that, I just need to fix the electrical short.

If the forecasted thunderstorm lightens up, I’m going to take the bus down into Boulder tonight to check out some of their thrift stores and to try the dining options along Pearl street. While there, I can think about which of the options would have given me the most benefit.

Hmm. Thoughts? Experiences? Advice?

2011-05-17 Tue 14:37

Ordered a Kindle with free 3G

May 18, 2011 - Categories: geek, kaizen, travel

After much consideration (and you know how I analyze my decisions), I ordered the 6″ Kindle with free 3G and WiFi. I chose the smaller Kindle instead of the DX because I have tiny hands, and the Internet said that the DX might get a little tiring to carry if you have small hands. I chose the Kindle instead of an iPad or Android tablet because I wanted a device for travel (decent battery life and the ability to search for addresses / public transit directions). Roaming data charges for iPad or Android use would be really expensive. Even if Amazon discontinues Whispernet (as it might – who knows?), it’ll be worth it if I can get a good couple of years. Books will actually be a nice bonus, not the key selling feature.

I read a ton of books, and the Kindle can read the EPUB books I check out of the Toronto Public Library. It can also handle PDFs. You can bet that I’m going to try Albert Harkness’ “An Easy Method for Beginners in Latin” as soon as I get the Kindle unboxed and charged up. I might as well learn something on the way to the airport. =) It’ll be better than my Android, which has problems viewing PDFs with images in them. The Harkness e-book is all images (it’s a scan of an out-of-copyright book), so I haven’t been able to read it at all on my Android.

Of course, there’s actually buying books from the Kindle store and having them delivered on the fly… Tempting! I will have to set a book budget. I hardly buy books now – the library’s been enough for me – but I may get swayed by the new releases that will be instantly available.

Here’s hoping that Amazon’s delivery mechanism goes without a hitch and I receive my Kindle on Friday! If not, I’ll have to figure out how to reship the package back home.

Fingers crossed!

2011-05-18 Wed 22:09

Travel updates: GPS, Pearl Street, Vibram toe shoes

May 20, 2011 - Categories: geek, kaizen, travel

From Thursday evening: Success! I spent late afternoon and evening wandering around Pearl Street Mall and thereabouts in Boulder, Colorado.

I walked around a bit more, checking out Buffalo Exchange and Goldmine Vintage. I like browsing through second-hand stores. You get a more eclectic, more comprehensive feel for a place’s style, and you can often pick up some great deals. Both stores had smaller selections than Goodwill, but they had interesting items. I didn’t buy anything, though. Looking at clothes in general makes me want to get back to my fabric stash and my sewing machine. =) I did look around for inspiration, and I experimented with some colour combinations and silhouettes.

From Phone

While walking along the Pearl Street Mall, I came across Outdoor Divas, a store focused on women’s sports clothing and accessories. I found some travel things I liked. Outdoor Divas also stocked Vibram, the toe shoes I remember reading about on a productivity blog. I’d been curious about Vibram for a while. It’s supposed to be a more natural way to walk, because your toes can go where they’re supposed to go instead of being confined and deformed by a narrow toe box. I have wide feet and I avoid shoes that squeeze my toes, but Vibram shoes would be taking that one logical step further. MEC occasionally stocks them in Canada, but it was somewhat cheaper to get them in the US considering currency values, foreign exchange fees, and taxes. Being able to fit them to find the right size for me was certainly helpful, and it was great having better shoes to walk through the rain with! I also picked up a pair of performance toe socks – wicking, fast-drying, and with a colorful pattern for extra fun. (Performance toe socks! By golly.)

For dinner, I had udon topped with tofu at Hapa Restaurant. It was so delicious and so filling! The soup was delicately flavoured and the tofu was just right. They’re justifiably proud of their udon, and it was the perfect way to round off a cold, rainy day.

I made it back to the Boulder Transit Center with plenty of time to spare. The BOLT bus (Boulder-Longmont; the city has cute names for bus routes, such as HOP, SKIP, and JUMP) took me to the Twin Peaks mall (fare: $4), and I walked to the hotel. Being able to review my route using the GPS made me worry much less about missing my stop or walking around the outside of the mall.


Neither a bike nor a push scooter would’ve been of much use for that excursion. It was all about walking – but then again, I stuck pretty closely to the pedestrian mall downtown. For pedestrian-oriented places, I might just need GPS and possibly 3G. For places that are spread further apart or that lack sidewalks, a bike might come in handy.

CoPilot Live rocks. I set it to turn the backlight on near turns and to warn me of upcoming turns. This was great for walking around and for making sense of my bus ride while minimizing battery use. I also really liked the local search for points of interest, which is how I found my way back to Hapa. Sweet!

I can save battery for GPS by skipping WiFi on my Android. With some discipline, I managed to avoid using my Android for WiFi browsing until I was safely back in my hotel room. WiFi drains the battery surprisingly quickly. I had run out of battery on Wednesday, when I had used my Android for lots of browsing before leaving for my adventure. With WiFi off, my phone battery lasted through a few hours of GPS navigation, and it still had about 50% left when I reached the hotel.

Hey, this Vibram thing looks promising. I’ve just started wearing this funny-shaped shoe, but I think it’s more comfortable than my other flat shoes. I’m already plotting when I’m going to be able to wear them next. Unfortunately, not to the office, but I might head downtown again tomorrow to check out the Goodwill in Boulder. Besides, it’ll be raining. No sense puddle-wading with my leather shoes. I know the Vibrams can deal with puddles. I may buy gloves and legwarmers, though!

Waiting for my Kindle

May 20, 2011 - Categories: geek

I’m waiting for the delivery of my Kindle. Well, I’m not really waiting for it. I’m waiting for my co-worker so that I can hitch a ride with him to the office. But my Kindle has made its way from Arizona to Colorado, with a brief stopover in Ontario. (What?!) It got loaded on a delivery truck at 7:27 AM this morning, and now we’re down to the wire and wondering if it’ll get here before my non-morning-person coworker gets his coffee. No big deal if it doesn’t. I can pick it up when I get back to the hotel.

I’m this close to waiting for it and then just taking the bus to work, but that way lies temptation – even though it would be great to fully charge it before heading out later. Must. Resist.

7:56. My coworker has made an appearance. Oh well! I’ll see my Kindle later. =)

Presentation draft: Mentoring on the Network

May 21, 2011 - Categories: mentoring, presentation, speaking

Gail LeCocq asked me if I wanted to give a presentation for the Other-Than-Traditional-Office (OTTO) group in Toronto. At the time, I was preparing The Busy Person’s Guide to Learning from the Network, so I suggested that. When she got back in touch a ew weeks later to confirm, though, I realized that I wanted to talk about a different topic instead. I suggested a topic on mentoring, which several people had asked me about. Here’s a rough draft.

Mentoring on the Network

View more presentations from Sacha Chua


Mentoring. We all know mentoring is good for your career, but sometimes it’s hard to make time to find and meet with mentors. Here’s how mentoring can make a big difference in the way you work:

  • Information: Mentors can help you learn complex tools or processes, review your work, and avoid or resolve problems.
  • Advice: Mentors can share insights you didn’t even know you needed. Mentors can also help you understand your hidden strengths and weaknesses.
  • Accountability: Mentors can help you commit to your goals and stay motivated.
  • Stretching: Mentors can challenge you to grow and call you out if you’re slacking off.
  • Connection: Mentors can help you navigate a large organization and find just the right people who can help you.
  • Sponsorship: Mentors can help you find opportunities you may not hear about yourself, or convince people to take a chance on you. Mentors can also speak up for you when people are making decisions.
  • Social interaction: Regular mentoring conversations can bring some of that social interaction back into remote work.

    Challenges and advantages

So mentoring is good, but how can you convince someone to invest the time and energy into mentoring you, particularly if you can’t make that face-to-face connection with them or develop familiarity by working together in a colocated office?

Mentoring can be difficult if you’re a remote employee. In an office, you might bump into someone you admire and ask them questions, your manager might walk over and introduce you to someone, or you might buy someone coffee or lunch while picking their brain. When you’re remote, you need to be more creative about connecting with people.

On the plus side, you can connect with possible mentors around the world. This means you can learn from very different perspectives. You can get a sense of what life and work is like in different business units and geographies.

Finding mentors

In IBM, you can use the Bluepages company directory system to find people who have volunteered to mentor other people. IBM Learning organizes speed-mentoring events where you can connect with many possible mentors, ask quick questions, and follow up for additional help or introductions. IBMers are also usually open to e-mail requests or questions.

Mentors can be older than you or younger than you, in the same business unit or in a different one, next door or around the world. Keep your mind open, and reach out. It doesn’t hurt to ask.

You can build a mentoring relationship over time. Start by connecting with your potential mentor and asking for a small piece of advice. Act on that advice if it’s good. Send a thank-you note with the results. Ask for more advice, and share more updates. Share what you’ve been learning from other people, too. If it turns out to be a good fit for both you and the other person, you might ask if you can set up a regular monthly chat to learn more.

If your potential mentor posts blog entries or profile updates, you can use that to build a relationship as well. Read what they post, comment, and share any updates on insights you’ve picked up from them and applied in your work or life. Send thanks – or better yet, post your thanks online too.

Making the most of mentoring

  • Have a clear idea of what you want to learn, how your potential mentor can make a difference, and why he or she may want to help you.
  • Set up a regular time to connect with your mentor – once a month, for example. Meet in person if possible, or connect using a video-conferencing program like Skype.
  • Talk about communication preferences with your mentor. Some people like having very focused meetings. Send them prepared questions before your conversation. Other people prefer e-mail or blog conversations over phone conversations. Try that out.
  • Take notes. Mentors invest time into helping you, and you can save them time and increase the ROI by writing down what you’ve learned in a form that they can easily share with other people.
  • Thank people!

    Helping others

Helping others is fulfilling, and you’ll learn a lot along the way. Even if you don’t consider yourself an expert, you’ve probably learned a lot of things you take for granted. You can help people get started, save time, and learn more. Give mentoring a try!

Some ways to connect with mentees:

  • Talk to your manager and other people about the things you can help people with. They can refer people to you.
  • Give presentations and share your slides. There are many groups in IBM who organize regular conference calls, and they’re always looking for speakers.
  • Attend virtual and real-life networking events. Ask people what they want to learn or what could help them be more successful.
  • Post profile updates or write blog posts. This helps people learn what you’re good at and get a sense of who you are.

Don’t forget to mention your mentoring during the Personal Business Commitments (PBCs) review. It’s a way of giving back to the community and investing in others!

Next steps

Now we get to the networking part of this presentation, where you might find a mentor or connect with a mentee. You’ll probably want pen and paper for this one, so you can write down people’s names. Let’s go around and introduce ourselves. Say your first and last name, then answer these questions: What do you need help with? What can you help people with? Then say your first and last name again, in case people missed your name the first time around. (Spell your name if you need to.) If you’re listening to someone’s introduction and something interests you, feel free to connect on this call or through Sametime!

What do you think? What would you like to share with other people looking for mentors or mentees?

2011-05-20 Fri 14:55

Notes from the airport: Missed my flight; not the end of the world after all

May 21, 2011 - Categories: travel

For the first time in my life, I missed my flight. I was in tears. I called American Express, and was on hold with them while they rerouted my itinerary through Vancouver. It will be an overnight flight and I’ll arrive Sunday morning instead of Saturday night, but I’ll arrive.

Then I called W-, who told me things were going to be okay and helped me remember that I was strong. I don’t feel very strong at the moment – my fingers shake – but I can feel the storm of panic and frustration and self-pity pass. Denver International Airport has free wireless, but I can’t seem to connect to it. I used my Kindle to send him a Twitter direct message with the flight details the travel agent gave me. I may be frazzled, but I still turn to frugal workarounds for roaming charges.

There’s a lesson in here about timezones, public transit, and triple-checking my departure time against my printed ticket instead of my copied itinerary. Better to learn the lesson this time than at a more crucial moment – that’s what I always tell myself when I make a mistake large enough to throw me off-kilter. Better now than later. Better a small situation than a life-or-death one. Going home, with Monday a day off, on a US-Canada flight, a missed flight has much smaller ripples than an inbound flight on a critical business trip or an expensive personal trip halfway across the world–and I still get to distill from it whatever it can teach me about life and myself.

That’s the second thing I tell myself during these hiccups: It all becomes part of the story, the rough watersas well as the smooth. I’m learning that after that initial flood of panic, I feel this preternatural calm sets in. I can’t change the past, so I don’t fret about it. No amount of worrying is going to change my short-term future. This nervous energy can be channelled into writing. Not too long from now, there’ll be a day when everything will be back to normal. Why stress out about things I can’t change and that won’t be permanent? Everything is going to be okay.

The situation is not that much different from a hypothetical world where I’m sitting in the airport patiently waiting for my intentionally-booked flight to Vancouver with a connection to Toronto. I’ve done that before. After setting the wheels in motion, it is an easy thing to shift to that track, like rail lines that start at different stations and converge. I learn what I can from stress, then call up that feeling of purposeful waiting.

Missing a flight, surprisingly enough, isn’t the end of the world. (Even if you miss said flight on May 21, the supposed day of the apocalypse.) Even though this is my first missed flight, the travel agencies and airlines have handled innumerable cases like mine before, and they know what to do. The American Express agent found another route to get me to Toronto. although it takes much longer than my original flight does, and arranges it for the change fee $150 plus the fare difference. Better than losing the full value of the flight, for sure! I don’t know if IBM will allow me to expense the increase in my fare, but if not, I can charge it to my experience fund – and thank goodness I have one, so that unexpected expenses don’t plunge me into more lasting troubles. I already know the process for paying part of my American Express card in case IBM policy doesn’t cover the itinerary change. Even though the flight lands early in the morning, W- will be there to meet me. Boy, will I be ever so glad to see him! Everything’s going to work out okay. Worst-case scenario, I pay for the fare difference myself, and it takes me a little longer to save up for my next goals. No big deal.

W- is right. I’m strong. I bounce back almost involuntarily. Maybe this hiccup will help me become even more resilient, if I remember to take the right lessons from it, if a future crisis makes me think, “Aha, I know how to deal with this, I’ve survived something similar before” instead of “I’m such an idiot, I can’t do anything right, like that time I missed my flight.”

Things I am glad about:

  • Amazon Kindle 3G connection. I’ve been talking about this so much on my blog and on Twitter, I know! But in areas without free, reliable WiFi networks, it’s been really really useful to be able to search for information and post updates.
  • Travel agencies, airline personnel, and lots of other travellers. I’m glad I booked this work trip through American Express, because they knew how to work the system in order to get me home. For our personal trips, I’m going to make sure I write down the toll-free numbers for the airlines so that I can get to them quickly if I need to reroute. I’m glad that airline personnel have handled many other missed flights before, and I’m a tiny bit glad that other people have run into and solved these problems. Can you imagine being the first person to miss a flight in the
  • Chocolate stroopwafels. As I headed out the door of our house, W- gave me two chocolate stroopwafels from our trip to the Netherlands. “For emergencies,” he said. I ate the first stroopwafel on the way out, cheering myself up after facing the prospect of a week-long trip. I saved the second stroopwafel. This counts as an emergency worthy of a stroopwafel, I believe, and I will have it shortly. The thought itself is comforting already.
  • Air travel and computers. Isn’t it amazing that we can fly through the air? And that computers can link together different routes, different cities, different companies? Can you imagine what it might’ve been like to miss a steamship that runs only once a month?
  • Writing. If you had told me in school that writing could be a comfort and a joy, I might’ve fallen in love with it then instead of getting bored by all the book reports and critical essays we wrote for teachers and never for ourselves. Writing will be my last and longest love, I think, even after time strips away friends and family, and hands and eyes fail.

There are more thoughts for this list, but I’m at the gate waiting for the flight to Vancouver. Everything will work out.

2011-05-21 Sat 17:00

Victoria Day weekend: back to the garden

May 22, 2011 - Categories: gardening

Back home and back to the garden! The plants had been very busy growing while I was away. The oregano at the back has doubled in size. The peas are climbing up the twine. The blueberry bushes are flowering. The dill’s starting to sprout. Some of my spring onions have even made it, although a few had been dug up by squirrels who disagree with my landscaping.

The Victoria Day long weekend practically marks the start of the main gardening season. The garden centres are open during the holiday, and the herb and vegetable starters have joined the annuals. People are out planting.

W- and I walked around the neighborhood looking at people’s gardens. Down the street, Awesome Garden Lady’s plants are lightyears ahead of ours, and she’s already started harvesting herbs. We looked at the flowers in other people’s gardens, the way the perennials and annuals were arranged, the color combinations that caught our eyes. We identified fruits, herbs, and vegetables tucked into unusual places: mint slowly spreading across a front yard, alliums (onions, probably) with delicate bulb-like flowers, strawberries peeking out between hostas.

I think we’ll plant the front yard for herbal teas and other edibles. =) That will be fun and useful! Here’s what I’d like to plant:

Common name Height
Sage 2-3′
Bergamot 2′
Anise hyssop 2-4′
Lemon verbena (potted/annual?) 4′, can be more compact
Catnip (potted) 3-4′
Stevia (not hardy) 2-3′
Peppermint (potted) 2′
Variegated common thyme 6-10″
Sweet woodruff 6-12″
German chamomile 12-24″
Lemon balm (potted) 12-24″
Curly spearmint (potted) 12-24″
Pot marigold (annual) 18″
Purple basil (annual) 18-24″
Lavender 12-24″
Golden lemon thyme 6-8″
Marjoram 12″
Cilantro (annual) 18-24″

This is roughly based on http://www.countryliving.com/outdoor/garden-plans-finder/herbal-tea-garden-plan-2, with possible substitutions for things that are not hardy in Zone 5. I’ll probably arrange it in some kind of a circle, with the taller plants in the middle.

The library has a couple of books on herbal tea gardens. Exciting!

2011-05-22 Sun 19:13

Gardening: Horticultural investments, social dividends

May 23, 2011 - Categories: connecting, gardening

It started when we peeked through the bedroom blinds and saw our next-door neighbour cross the street to the house of the neighbour opposite us. He waved to them and took a wheelbarrow of triple-mix soil from the cubic yard bag sitting in front of the house, rolling it back down the curb, across the street, and up the other curb to his house. “They must’ve gone in together on a yard bag of soil,” W- said. It probably didn’t require much neighbourly coordination – a casual conversation, an offer of help – but we envied the ease and connection it implied. We knew our neighbours on either side of our house, but not so much the ones across the street. How could we get to know more people in the neighbourhood?

Gardening, apparently, is an excellent way to meet people over here. Investing in perennials and annuals turns out to pay social dividends. We dug up and gave our front-yard irises to one of our neighbours – we made space for new plants, and he added some more colour to his garden. We replanted the front yard as a herbal tea garden, with the sidewalk box planted as rows of colourful annuals (including one row of edible flowers, the petunias). We dug up the boxwood and juniper shrubs, placed the new plants, and chatted with neighbours and passers-by who complimented us on our garden. We even had an extended conversation with Awesome Garden Lady Down the Street, who as it turns out is Mrs. Wong, and who gave us extra vegetable seeds and plenty of advice.

Here’s what we planted today:

  • stevia
  • lemongrass
  • bergamot
  • spearmint (in a pot, of course)
  • peppermint (in the same pot)
  • garlic chives
  • curry
  • tricolor sage
  • lemon thyme
  • chamomile
  • lots of basil
  • lots of lavender
  • miscellaneous flowers

Weeding and cultivating the front yard will no doubt keep us busy throughout the season, and familiarity leads to conversations. I hope to get quite a few herbal infusions out of it too, and perhaps even a garden party. Our back yard garden is growing well, but is understandably limited as a conversation starter.

If you’re an introvert with a front yard, you might want to give gardening a try too. It’s easier for both W- and me to talk to people when there’s an excuse to do so, instead of just chatting with people out of the blue. Gardening provides an excellent excuse – people talk to us, or we can ask about other people’s gardens as we walk around. Lawns might draw remarks if they’re well-kept, but a more diverse and colourful garden will probably be easier. Have fun!

2011-05-23 Mon 17:35

Experimenting with standing desks

May 24, 2011 - Categories: geek, kaizen, life

(From May 12) People in IT tend to spend a lot of time sitting in front of a computer. Unfortunately, sitting is bad for you, so we’ve been looking for ways to improve the structure of our work.

I came down one morning to find the router on the kitchen table – not the networking kind of router, but the woodworking kind of router that spins at more than 20,000 rpm. You see, W- built a bench-top router table last year. The router table houses the router and has a long edge that fits into the Workmate vise for stability. With the router lowered and the long edge set along the kitchen table’s edge, the router table turned out to be about the right height for a standing desk for W-.

I’m shorter than W- is, so I needed a footstool to correct the ergonomics of our router-kitchen-table combo. This was inconvenient, but we found another option for me: the kitchen counters. With my slippers (Kaypee Islander flip-flops with thick soles and comfortable support; I’ve had them for years), I found it easy to type on my computer throughout the day.

W- reported that the printer downstairs also provides a platform at the right height for a laptop. Once you start looking around for surfaces at about the right height, you find many.

If standing works out, the next step might be to find a semi-permanent place, maybe even hook up a monitor for even better ergonomics.

Doesn’t take a lot of money to experiment with standing desks. Just a little creativity. =)

2011-05-12 Thu 19:09

The flow of opportunities in a large company

May 25, 2011 - Categories: ibm, work

Henry Will asked me how I got to work on such interesting projects. What worked particularly well: blogs? presentations? networking?

Working in a big company is a bit different from marketing yourself outside. In a big company, it’s easier to establish and maintain large networks of people, and the organizational structure also helps pass messages up and down. When you hook in through a number of connectors (for example, my manager), figure out the tools for finding opportunities on your own, or build a reputation, opportunities can flow easily. Outside a large company, word of mouth is still powerful, but it can be difficult to build those relationships over distance and with an large number of competitors.

I do a lot of work related to Web 2.0, social media, Gen Y, PHP, Rails, and AJAX. For consulting and strategy work related to Web 2.0, social media, or Gen Y, I find that most of the leads come in through the presentations I’ve given, or from people I’ve worked with in the past. Short presentations with catchy titles or designs can go a long way. I haven’t been proactively investing in presentations. I tend to create them on request. Presentations take a lot of time for me to prepare, so I try to maximize their ROI. In fact, I get a lot more value from the blog posts that I write before a presentation (full speaker notes, ideas, etc.) and after a presentation (questions, lessons learned).

Many of my PHP/Drupal, Ruby/Rails, and AJAX work comes in through my manager, who knows about my different skills and interests. Sometimes I search our professional marketplace for upcoming opportunities requiring those skills so that I’l always have projects in the pipeline. I actually like this work more than consulting (which can be fuzzy and hard to define), so my manager and I try to pick development projects that will keep me busy and happy while still being flexible enough to accept consulting work.

If you work in a company, it really helps if your manager knows what you’re good at and what you’re interested in. He or she may be plugged into streams of opportunities, and help the right ones flow to you. It also helps to invest time into sharing what you know and helping other people out. That way, people know what you’re good at, and they can keep an eye out for things that fit too. You might get to the point of having too many opportunities, which is a great problem to have. If so, build relationships and help others by sharing those opportunities. Good luck and have fun!

Taking a break while working on presentations

May 26, 2011 - Categories: speaking

I’m taking a break from working on presentations. Not a long break – there’s still a lot of work that needs to be done – but I need to get myself back into the swing of preparing presentations after spending so many weeks doing development. This means stopping when I can tell my mind is resisting, figuring out why, and tweaking how I work until it works again.

Many people would rather watch presentations or flip through slides than read blog posts or books or search results. for presentations. I really should just become okay with slurping in tons of information, digesting it, and regurgitating a summary.

The core of the resistence: I’d much rather build cool websites than talk about trends. Development is clear. You know what you know. You know when you’re making progress. You know when you’re correct. At the end of the day, things are better.

Presentations are a whole lot fuzzier. There’s this entire Jacobian struggle with a topic, trying to get your arms around it, struggling to understand and be understandable. You’re never quite sure if people will actually change their lives (even a little bit?) after listening to you. I always try to influence people’s lives through presentations. Why spend time preparing or speaking for anything less? But then there’s more risk of rejection – or worse, apathy.

I try to use presentations to change my own life, too. At least I learn something, try something, do something. Besides, all the ideas become part of me, raw material for unexpected combinations in the alchemy of learning.

It’s a struggle to hold down the imposter syndrome that threatens to choke me. I remind myself that these rough presentations can be drafts for people to improve on, perhaps the spark that triggers something else. It’s okay.

Maybe I should stop accepting presentation invitations for now, and focus instead on creating new presentations as a way of deadline-less deliberate practice. I can commit to giving them in person only if I’ve created and revised them already. Maybe I should do what Jonathan Coulton does: set the challenge of making a Thing a week. He’s brilliant and he writes funny songs. Maybe I’ll have more fun making presentations when I get better at making presentations through practice.

Ways I can get better at making presentations:

  • Research: Find sources, collect statistics and quotes, read extensively, keep notes.
  • Organization: Experiment with structures, revise presentations, organize thoughts.
  • Design: Experiment with graphic design. Try text again. Play with images. Don’t get boxed in.
  • Delivery: Practise. Watch other people’s presentations for inspiration. Experiment. Find the fun in this again.

Developing a workflow with Autodesk Sketchbook Pro

May 27, 2011 - Categories: drawing, sketches, speaking

J- is digitally inking her writing assignment using Autodesk Sketchbook Pro on the Cintiq 12WX drawing tablet downstairs. I’d become a big fan of Autodesk Sketchbook Pro while working on it on my laptop, so I thought she might prefer it over GIMP. The pen-based controls are intuitive, and the feel of digital drawing is better than the frustration of redoing and reinking on paper. Now she’s off zooming in and out, adjusting her brush sizes, and working with a large and zoomable canvas. =)


I’ve been using Autodesk Sketchbook Pro to do more and more of my presentation planning, too. The workflow is slightly different from Microsoft OneNote. With OneNote, I can draw storyboards, then scale up the storyboards without any loss of information and without jaggy lines. (The joys of vector drawing!) Autodesk Sketchbook Pro lets me scale up rough sketches, but the interpolation isn’t always smooth. Instead, I storyboard everything. Then I hide any layers I’m not working with, lower the opacity of my storyboard layer, add new layers on top, and draw each slide as a full-size layer. I do any colouring on a second layer below the ink, so that the black lines stay crisp. The finished layers are easy to copy to a separate presentation program.

So how does my Autodesk Sketchbook Pro workflow compare to Inkscape? When I use Inkscape (a proper vector drawing program) for presentations, I usually set up an infinite canvas, and clone a series of rectangles for my storyboard. Inkscape makes it easy to sketch elements here and there, rearranging them on my storyboard, rotating and scaling them to fit. After I do a little masking and line adjusting, I import the finished slides into a presentation program. Simple shapes are easy to colour. If I need to shade things more, I can import the images into GIMP.

I can still do text presentations, but they’re a little less fun. ;) Drawing takes time, but I like the practice. How do you do your presentations or drawings?

2011-05-27 Fri 18:52

Weekly review: Weeks ending May 20, 2011 and May 27, 2011

May 28, 2011 - Categories: weekly

Things have been a little hectic around here. =)

Over the past two weeks

  • Work
    • [X] Conduct training for project I in Colorado
    • [X] Keep an eye on project M
    • [X] Sort out upcoming projects
    • [X] Prepare for social media / Gen Y talk for client D
    • Booked flight to New York
    • Biked to the office twice
    • Presented “Mentoring on the Network” to 50 IBMers
  • Relationships
    • [X] Catch up on mail
    • [X] Write more about Netherlands trip
    • [X] Plant more herbs and greens – basil basil basil basil
    • [X] Make bagels
    • Helped hem J-‘s pants – made a hair bow, ribbon, and brooch from the scraps
  • Life
    • [X] Set aside writing time while on business trip, and actually write
    • [X] Think about what I want to learn next – more sewing projects?
    • Found out what happens when you miss a plane (world does not end)
    • Lots of gardening! Redid front yard as a tea garden

Plans for next week

  • Work
    • [ ] Finish Gen Y/Gen C presentation
    • [ ] Get started on project M
    • [ ] Wrap up on project C
  • Relationships
    • [X] Help J- with homework
    • [X] Make cute cat soap holder
  • Life
    • [ ] Fix this calendar bug: what can I do to make it easier to remember events and tasks?
    • [ ] Draw a presentation-style thing for myself =)

Dealing with a bad calendar week

May 29, 2011 - Categories: geek, kaizen, life

I’m having a bad calendar week. I don’t check my calendar often enough, and I miss things. The other day, I missed a Skype chat. Yesterday, I sprinted to the subway station in order to get downtown for a 4:30 PM performance of the opera Orfeo ed Euridice. I made it to my 5th-floor seat just before the lights dimmed. I’ve missed other things in the past – not many, but enough to point to a clear life-bug that I need to hack.

What can I do to get back into the rhythm of having a solid, trusted system for calendar reminders and tasks?

Put it in my way. I always check my Android in the morning. I can clean up my task list, add calendar entries to my lock screen (I’m trying out Executive Assistant on my phone), and get into the habit of checking those before I indulge in reading feeds. I added a calendar widget to my home screen too – I think that will help.

Set up interruptions. I can set my calendar alarm to something I usually notice, such as my ringtone. When I combine this with using timed mutes instead of manually muting my phone, that should make it easier to let important things interrupt me.

Here we go!

May 29, 2011: bagels, banana bread, bok choi, bath stuff, and books

May 29, 2011 - Categories: life, sketches


Today was a wonderfully domestic day. I did laundry, baked bagels and banana bread, helped J- make a soap holder based on Nyan Cat, planted bok choi seeds, and sewed a bright orange cover for my Kindle so that I stood a better chance of finding it around the house. I’m starting to feel properly relaxed, slowly unfolding myself from the ack!stress!stress!stress! of travel. Not too relaxed – I’ve got another short trip coming up – but I’m beginning to feel normal again.

Made a kitty soap holder

May 30, 2011 - Categories: sewing

I think I’m getting the hang of crafting. When J- said that she was thinking of sewing a stuffed-toy-like soap holder for one of her school projects, I prototyped something along those lines to see how easy it would be to make. I liked how mine turned out:

It can act like a washcloth, and it can hold all those little scraps of soap that otherwise fall down the sides. =)

Seasons and salad days

May 30, 2011 - Categories: cooking

imageThe stove idles as we switch gear to salads. No heat. No cooking. Just the whirl-whirl-whirl of leaves in the salad spinner, a quick whisk-up of salad dressing, and whatever I can grab from the fridge. Today: chicken on top of kale and lettuce tossed with a lemon vinaigrette. Even the chicken was a kitchen shortcut, bought from the supermarket rotisserie.

Salads don’t fill me as much as a warm meal would, except with a certain self-satisfaction. I tell myself that salad is better for me. This helps me ward off the temptations of rice and adobo, pan-fried bangus, spaghetti bolognese. Mmm. If I can eat those in the heat of Manila summer, I can certainly make them during Toronto’s spring. But we still have salad greens in the fridge, and they will go to waste soon enough. We’ve signed up for a summer share of a community-supported farm, so more vegetables will come in. No sense freezing the spinach, then, or saving the beets. May as well eat them. Behavioural economics in the kitchen: the loss-aversion approach to eating well.

So I stock up on slivered almonds, olive oil, and different kinds of vinegar, thumb through recipes for inspiration, and talk myself into enjoying the fruits and vegetables that are harder to get the rest of the year.

In the Philippines, where it’s warm all the time, my meals felt abstracted from the seasons. Here in Canada, nature’s influence is practically inescapable: what to buy at the supermarket, what I feel like eating, how I want to prepare it. Winter is baking season and soup season. Spring brings the first salads. Summer is a burst of colour and flavour, barbecue afternoons and ice-cream treats. Fall winds down with an abundance of root crops and the return to pies. I miss being able to eat whatever I like. No, I miss the constancy of those likes unshifted by the sun. I still like baked lasagna, but it feels odd to make it when the days are so long and the spinach is wilting.

Basic Vinaigrette (adapted from the Joy of Cooking)
About 1 1/2 cups, which is more than enough for two people’s worth of salad as a main dish

1 small clove garlic, peeled
2 – 3 pinches of salt
Mash into a paste; the tines of a sturdy fork will do the trick

1/3 to 1/2 cup red wine vinegar or fresh lemon juice
1 shallot, minced – you can also use part of an onion; I didn’t have any
1 teaspoon Dijon mustard (optional)
Salt and ground black pepper to taste
Whisk with the garlic and salt – use the same fork you used to crush the garlic, to cut down on the washing

Add slowly, streaming it in with one hand while you whisk with the other:
1 cup extra-virgin olive oil – or really, however much oil you need; taste periodically to make sure it still tastes like vinegar or lemon juice instead of being too olive-y.

Learning from Mr. Collins: Practice, conversation, and what to do when someone says something mean

May 31, 2011 - Categories: communication, life

"You judge very properly," said Mr. Bennet, "and it is happy for you that you possess the talent of flattering with delicacy. May I ask whether these pleasing attentions proceed from the impulse of the moment, or are the result of previous study?"

"They arise chiefly from what is passing at the time, and though I sometimes amuse myself with suggesting and arranging such little elegant compliments as may be adapted to ordinary occasions, I always wish to give them as unstudied an air as possible," [said Mr. Collins.]

Pride and Prejudice, Jane Austen

In Pride and Prejudice, Mr. Collins thinks up compliments and practises them until they flow smoothly. He comes off smarmy and supercilious, but the idea is generally useful.

imageI have a confession to make: I practise responses. After I find myself tongue-tied or I respond to something with less grace than I want to, I rehearse it and similar situations in my mind so that I can figure out a better way to respond. I think about translations that help me get to what people might really mean, phrases to use, tones of voice to adopt, ways to bring the conversation back on track. It’s a little like the way a witty retort might come to you hours after an argument (there’s even a name for this: l’ esprit de l’escalier, staircase wit), but done deliberately, and for good and self-improvement instead of for scoring points or getting back at someone. Deliberate practice makes perfect, after all.

For example, if someone says something sexist, I know my response won’t be silence, it will be something like "That’s sexist!" in as joking a way as I can manage – and I’ve practised not taking it personally, so it bounces off me. (Kapoing!)

I’m still figuring out what to do when someone says something mean. It happens to the best of us. I struggle to avoid saying mean things, too. I’m glad my first instinct isn’t to fight fire with fire, because that just makes things worse. I can recognize when something may be mean and stick up for myself: "That’s mean!" – not "That’s not fair!" or "That’s not nice!", which are a bit soft. I can separate what someone says in the heat of a moment from who they are and from what I think about myself, and I’m working on getting faster and more instinctive at doing so.

The Internet suggests several ways to deal with hurtful words:

  • Ignore it. It’s a gift, like praise is, and you don’t have to take it. (There’s a Zen story about that…)
  • Translate it. You can pick out the useful parts of hurtful words, work with them, and throw the rest away. People are human. We’re not perfect communicators. Somewhere in there, there might be something you can work with – or at the very least, an opportunity to step back, look at the person as a whole, and appreciate what you can about that person. Everything teaches you something.
  • Ask for clarification. Sometimes this is enough to slow things down and raise the conversation to a reasonable level.
  • Respond positively or surprisingly. "I love you too" is a popular come-back, even when responding to strangers’ insults.
  • Call a time-out or walk away, particularly if things are turning into a vicious circle. You don’t want to be drawn into a fight that throws you off your balance. This doesn’t mean ignoring the issue entirely. Hit the pause button, untangle the issues, and discuss them when you’ve got some distance.

I want to get to the point of being able to respond with loving-kindness to whatever life throws at me.

How do you deal with the occasional hiccup in people’s niceness?

2011-05-31 Tue 12:18

June 2011

VMWare, Samba, Eclipse, and XDebug: Mixing a virtual Linux environment with a Microsoft Windows development environment

June 1, 2011 - Categories: development, drupal, geek

I’m starting the second phase of a Drupal development project, which means I get to write about all sorts of geeky things again. Hooray! So I’m investing some time into improving my environment set-up, and taking notes along the way.

This time, I’m going to try developing code in Eclipse instead of Emacs, although I’ll dip into Emacs occasionally if I need to do anything involving keyboard macros or custom automation. Setting up a good Eclipse environment will help me use XDebug for line-by-line debugging. var_dump> can only take me so far, and I still haven’t figured out how to properly use XDebug under Emacs. Configuring Eclipse will also help me help my coworkers, who tend to not be big Emacs fans. (Sigh.)

So here’s my current setup:

  • A Linux server environment in VMWare, so that I can use all the Unix tools I like and so that I don’t have to fuss about with a WAMP stack
  • Samba for sharing the source code between the Linux VM image and my Microsoft Windows laptop
  • XDebug for debugging
  • Eclipse and PDT for development

I like this because it allows me to edit files in Microsoft Windows or in Linux, and I can use step-by-step debugging instead of relying on var_dump.

Setting up Samba

Samba allows you to share folders on the network. Edit your smb.conf (mine’s in /etc/samba/) and uncomment/edit the following lines:

security = user

   comment = Home Directories
   browseable = no
   read only = no
   valid users = %S

You may also need to use smbpasswd to set the user’s password.


Install php5-xdebug or whatever the Xdebug package is for PHP on your system. Edit xdebug.ini (mine’s in /etc/php5/conf.d) and add the following lines to the end:


Warning: this allows debugging access from any computer that connects to it. Use this only on your development image. If you want to limit debugging access to a specific computer, remove the line that refers to remote_connect_back and replace it with this:


Eclipse and PDT

I downloaded the all-in-one PHP Development Toolkit (PDT) from http://www.eclipse.org/pdt/, unpacked it, and imported my project. After struggling with Javascript and HTML validation, I ended up disabling most of those warnings. Then I set up a debug configuration that used Xdebug and the server in the VM image, and voila! Line by line debugging with the ability to look in variables. Hooray!

2011-05-31 Tue 17:37

Hungry hungry compost and other garden updates

June 1, 2011 - Categories: gardening

The compost bin chomps through imageall the organic material we give it. It’s nowhere near the smooth dark brown of finished compost yet, but when I turn it every week, my two full bins have mysteriously become two half-bins of compost. The Internet says it takes a ton of organic material (a literal ton, mind you) to make half a cubic yard of compost. To make two cubic yards of compost, then, you need about one Asian elephant’s weight in organic material. (Yes, I estimate tons in elephants, thanks to hanging out with my dad at the zoo.) So I’ll probably buy lots more cow manure (moo poo, as we call it) to amend the soil next year, instead of hoping that the compost bins will pull through quickly.

Other garden updates:

  • Asparagus: Tall and ferny. This is their second year, so we’re leaving them alone to grow and store energy for next year. Four square feet of asparagus might be too little, though. =) We’ll give it a try anyway!
  • Basil: Still getting established in the garden. Slow new growth.
  • Blueberries: Setting fruit. I’m going to put up some netting this weekend or next weekend so that we have a chance of tasting some berries, not like last year when the birds and squirrels had them all…
  • Cilantro: First true leaves emerging. Thoughts of stir-fries dance through my head.
  • Dill: Starting to look all dill-like. Still small, though!
  • Lettuce: Starting to go to seed. I may have a baby lettuce salad after all.
  • Mint: I had my first cup of home-grown mint tea the other day. Mmmmm.
  • Oregano: Thriving like anything. I must make pasta soon.
  • Onions, garlic, and garlic chives: Growing around the garden. Quite easy to grow. I think I’ll pull up more perennials next year and plant those instead.
  • Peas: More than two feet tall now, climbing up the strings like they’re racing the other seedlings. The ones in the unprotected box near the house are winning.
  • Spinach: Probably growing. I think I might be confusing it with weeds, so I’m leaving that section alone for now.
  • Strawberries: The new runners have established themselves and are even blooming, which is a pleasant surprise. All the plants are beginning to set fruit. Exciting times! Must pick up straw or some other mulch so that I can keep the berries off the ground. Also, it turns out you can make tea from strawberry leaves. Looking forward to trying that!
  • Tomatoes: Growing slowly, but getting there. I think we might have some kind of blight, though. =|

Casualties: a Thai basil plant, and the curry plant in front

I planted bok choi last weekend, and I planted some edamame today. We’re more likely to take the time and effort to cook the edamame than the string beans I grew the other year. =) I also sprinkled a lot of lettuce and spinach near the borders, where I pulled up the lilies of the valley. All those sprouts are coming up now that I’m home enough to keep the soil moist. (Note: Don’t plant lilies of the valley in your garden unless you mean it. They’re invasive and will take over. Ditto mint, which I keep in a pot.)

Pity it’s no longer dandelion season. We pulled up almost all of ours and ate them as salads. If we have more next year, I may host a party. We do have a berry tree out back that will be fun to harvest. We missed harvesting it last year, but we caught a lot of berries on a tarp the year before that. I think it would be a good combination with pastry cream, tart shells, maybe some powdered sugar on top. By that time, the tea garden should be growing quite well, too. Garden party! J- said her friends are excited about our tomatoes and peas, so we should have them over to harvest too. Mmm…

It’s Bike Month in Toronto!

June 2, 2011 - Categories: Uncategorized

imageWhile we don’t have anything like the awesome biking infrastructure of the Netherlands (oh, and all that flat land – envy!) or the widespread bikes-on-every-bus mixed commutes of Boulder, Toronto is still pretty decent when it comes to biking. June is Bike Month here, so there’ll be plenty of events coming up! It’s a good time to take to the road and explore routes I don’t normally pass. Here’s what I’m thinking of:

  • June 3: Friday Night Ride: starts near work, ends up near home, going all along the waterfront. Biking from work on a Friday may be tough (I’ll be bringing a laptop, maybe two) so I may skip this
  • June 4: Saturday Morning Easy Roller Ride: starts near our place, goes to Port Credit in Mississauga, and I can always stop if I get tired along the way
  • June 18: Bells on Bloor: also starts near High Park (I love being near a common bike starting point!), goes to Queen’s Park

Not biking-related, but may still get me out of the house:

  • June 5: Catch Pirates of the Caribbean: On Stranger Tides on the IMAX 3D screen downtown – maybe the 12:15PM showing, or the 3:30 one?
  • June 12: Toronto Raw/Vegan Festival at 918 Bathurst Street

Anyone want to come along?

2011-05-31 Tue 17:53

Monthly reviews: April and May 2011

June 3, 2011 - Categories: monthly

Time flies! Travel throws me a little off track when it comes to reviewing, but that’s okay – I’m back on the ground and will probably stay home for at least the next little while.

Based on March’s plans:


  • [X] Get a good prototype together for project C
  • [X] Get the paperwork in place for project M
  • [X] Prepare for training on project I
  • [X] Help with other work
  • [X] Assist with “Get Social, Do Business”


  • [X] Put together more study group resources
  • [-] Practise driving – eep!
  • [X] Prepare for May trip


  • [X] Start garden
  • [X] Write and draw a lot
  • [X] Focus discretionary time on plans and experiments

Mostly there, except for the driving bit! I may just register for classes again, or set up a training schedule with W- and stick with it. But it’s summer and I’d much rather bike than sit in a car. Excuses, excuses… =)

Here’s what went on in April and May:

April: Started learning Latin. Worked on Ruby on Rails project (yay!). Gave a presentation on training. Helped with math study group sessions. Sewed a dress.

May: Celebrated my sister’s wedding in the Netherlands! Wore the red dress I made. =D Started the garden. Deployed a PHP site and conducted training in Colorado. Started with community-supported agriculture. Shifted to eating lots of salad and vegetables. Lots of learning. Some sewing, too.

My favourite posts:

How do I want June to add to my life?

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!

Decision review: calendars, development, standing desks, toe shoes, Kindle, bike, CSA, Autodesk Sketchbook, blogging

June 4, 2011 - Categories: decision, kaizen, review

Calendar reminders on my Android: Working so far. I see the calendar reminders on my lock screen and on my home screen, so there are plenty of reminders. I’ve also started adding more events to my calendar, to increase the reward of checking it.

Test cases: Yes, for code’s sake, yes! I’m returning to a Drupal project after several months’ hiatus, and one of the first changes we’re making is extensive: changing a field to a taxonomy, changing lots of logic along the way, making sure all the forms work again… I am so glad I wrote a lot of tests covering the parts I wrote, and I only wish that I got all the other developers to do the same.

Laptop battery replacement: Replacing the battery on my tablet was a good idea. I’ve been getting tons of use out of it, particularly now that I’m back in development. Although W’s new tablet does look pretty tempting, I’m going to hold off buying new gadgets for a while.

Developer setup template: I added “Getting started notes” to our developer guide. Slowly getting there! And I’m glad to see that virtual-machine-based development is much easier now, too.

Standing desks: The kitchen counter is now my default standing desk. It’s well-lit, there are plenty of outlets near by, and I can easily refill my water glass or grab a snack.

Vibram toe shoes: Comfortable as anything, and then some. I prefer to wear these instead of my flats when I’m walking around the neighbourhood. W- still thinks they look funny, but that’s okay, he loves me anyway.

Kindle 3G: Awesome for looking up things on the go, and for occupying myself during subway rides. I’d still rather ride my bicycle than take the subway, but reading classic literature makes up for the fare and the missed opportunity for great exercise.

Folding bike/push scooter: Still haven’t taken the plunge. No local need to do so – I don’t mind saddling up my bike for short trips to the library or supermarket. No travel plans ahead, either.

Community-supported agriculture: We tried a bi-weekly spring share from Plan B Organic Farms, and that’s been working out well. I’ve been having salads I finished the last of the kale and the lettuce

Autodesk Sketchbook Pro: While using Autodesk Sketchbook Pro for presentations doesn’t give me the overview, the infinite canvas, or the clean lines of Inkscape, it’s a smoother workflow, and I rather like it. I’ve been sketching more, too. W- has just gotten his own tablet, and Autodesk Sketchbook Pro (trial version) was one of the first things he installed. I’m looking forward to practising drawing with him.

Writing more about life: I like it. I think of it as writing for my future self.

Blog limits: I sometimes schedule my posts, and I sometimes post more than once a day. Fine with you so far? If you find the e-mail frequency a bit too much, it might be a good idea to check out Google Reader or another feed reader. You can subscribe to my blog using that, too!

Bike ride in the rain

June 4, 2011 - Categories: Uncategorized

I’ve just come back from a bike ride organized by the Toronto Bicycling Network. The ride was supposed to go from High Park to Port Credit, but we stopped at the Tim Hortons near Alexandra Avenue and Lakeshore Road because it was raining so hard. The Tim Hortons we stopped at was just 3.5km from the destination, though, so I’d count that as mostly there. =) In total, I biked 33.7km in about two hours of constant rain, although part of that time was spent rather comfortably sipping hot chocolate inside the cafe.

This is where we ended up:


I’d never been that far west on my bicycle, and I haven’t biked in the rain for such a distance or length of item. It’s not that scary after all, although I wish I’d worn my rain pants and my gloves!

Weekly review: Week ending June 3, 2011

June 5, 2011 - Categories: review, weekly

It was very much a salad sort of week. I finished the last of the kale and the spring lettuce from the community-supported agriculture box, discovering along the way that I’m not particular about the kind of oil I use for salad dressing: regular olive oil, fancy-schmancy fruity olive oil, or expensive walnut oil. So run-of-the-mill olive oil it is. I do like tossing nuts into my salad, and the hard-boiled eggs I’ve been keeping in the fridge have been convenient too.

W-‘s new Lenovo X220 arrived, so we’ve both been busy drawing on our tablets. Getting the hang of drawing cubes. =) Baby steps!

Starting a Drupal project at work. It’s great to be back in the world of a gazillion community-contributed modules, although I miss the interactivity of rails console. (drush shell is helpful, but not quite as awesome as that!) Getting back up to speed.

I hope my manager can keep my engagements sane. More demand than supply. It’s a good problem to have, but it’s still pretty crazy. Fortunately, he can sort all of those things out while I focus on code.

Next week: the start of the summer CSA share, more gardening, more writing, more development, more awesomeness… =)

From last week’s plans

  • Work
    • [C] Finish Gen Y/Gen C presentation – no longer needed
    • [X] Get started on project M
    • [/] Wrap up on project C – getting there!
    • Set up Redmine for issue tracking, because of the git integration
  • Relationships
    • [X] Help J- with homework
    • [X] Make cute cat soap holder
  • Life
    • [X] Fix this calendar bug: what can I do to make it easier to remember events and tasks?
    • [X] Draw a presentation-style thing for myself =) – practising drawing cubes, not presentations, but close enough

Plans for next week

  • Work
    • [ ] Get priorities and development responsibilities sorted out for project M
    • [ ] Continue working on development for project M
    • [ ] Bike to work to discuss project M with the information architect
  • Relationships
    • [X] Watch “Thor” with Maira and Scott
    • [X] Prepare some meals in advance
    • [X] Review short-term plans
    • [ ] Prepare lots of salad
    • [ ] Pick up summer share CSA box
    • [ ] Make a list of summer meals
  • Life
    • [X] Go on group bike ride (High Park to Port Credit)
    • [ ] Write about scenarios/planning

Plans for summer: Relationships, work, gardening, biking, drawing and photography, making, and finances

June 6, 2011 - Categories: planning

Cate Huston asks for inspiration: What are you focusing on in June? Work is straightforward: Drupal web development until September, at least, and probably similar work after that. Summer also makes it easy to decide what to do. Biking and gardening, yes. Baking and sewing, not so much. Social events, yes. But it’s a good idea to go beyond these vague categories and figure out what I’d like to explore.

This blog post is not really about focus. It’s more of a list of things I’m thinking about, but at least it’s a shorter, more concrete list than just "stuff". =) Focus comes when I go through the different categories and focus on making one item for each category happen.

Short-term thoughts for summer

Relationships: I should take advantage of summer’s long days and warm weather by meeting up with people. It might be awkward in the beginning, but I’m sure it will get easier. I should nudge my friends to organize things more often. Maybe I just happen to be the most get-folks-together-and-feed-them sort of person in the different groups I’m in. This is okay, although I’m curious about what it might be like to get a regular potluck going. Or a regular cookathon going. Hmm… Possible improvements:

  • Shift us to salads and other yummy things to eat during summer.
  • Think through upcoming decisions and scenarios, and write about them.
  • Meet at least one person each week, possibly around events I’m interested in.
  • Think about cool things to offer during get-togethers. Fruits and lemonade, mmm.
  • Set aside social time and proactively reach out to people through the Internet.
  • Set aside driving practice time, too.
  • Schedule Latin-learning dates with W-, so we stop cramming our Latin homework on Saturday evenings.

Work: Development is the way to go for me, I think. I like it more than consulting. I like making things happen, and I like the way it continuously sharpens my skills. Yes, it’s a global marketplace, and the work may be tougher than consulting because it’s more easily virtualized. But that’s good, too – less travel. I can keep growing in this by learning more about Drupal and Rails, and improving my front-end skills. I would like to work on a Drupal 7 project and another Ruby on Rails project this year. I want to be the awesome backend developer or technical lead people like working with in order to make websites happen. Possible improvements:

  • Get even better at automated testing (Selenium for web-facing tests?)
  • Develop more patience for manual testing; yes, coding is fun, but testing prevents embarrassment and increases learning
  • Figure out continuous integration, perhaps with Hudson
  • Make sure I’ve got interactive debugging set up for both frameworks I like working with
  • Learn more about working with other developers: managing projects, workflow, etc.

Gardening: I think it’s incredible. You put seeds in soil, you give them some water, and sunlight and nature do the rest. I want to take advantage of the sunlight to learn a little more about growing our own food. I love how the strawberries are starting to bear fruit, and how the peas race up the string-trellis I made. I want to grow more and more fruits and vegetables so that someday, we can grow most of the produce we eat. Possible improvements:

  • Increase my trial rate (and perhaps success rate!) by planting new things weekly
  • Implement drip irrigation again, or find other ways of keeping seedlings well-watered
  • Keeping a garden journal so that I can track my progress and plan ahead

Biking: I enjoy biking. It’s a great way to get to places. I would like to bike more as casual exercise and a way to get myself outdoors. I tend to bike as a way of getting from one place to another, instead of just taking a joyride. One way to bike more would be to just come to work more often, particularly when it’s sunny. Another way to bike more often would be to plan more events that get me outside the house, because I’d rather bike than take public transit if the destination isn’t too far. Hmm… Possible improvements:

  • Plan more excuses to go biking.
  • Consider getting a lighter second-hand 21-speed bike? Not essential.

Drawing and photography: I’m slowly getting the hang of drawing, and now that W- has a tablet PC, we can make it a relationship-building thing too. Summer is a great time to sketch or shoot the outdoors, use bright colours, and have fun with drawing and photography. Possible improvements:

  • Get into the habit of shooting and reviewing pictures. Shooting doesn’t count if I don’t look at the pictures again!
  • Take pictures of the garden. It’s convenient, personally fascinating, and I can leave the macro lens on the camera all the time.
  • Upgrade my hard disk. Then I might use my tablet PC as my main photo processing device.
  • Practise sketching those cubes! Maybe draw one thing a day, too.

Making: My wardrobe has settled, so sewing is lower-priority, although I like making gifts and accessories. We might make some shelves for the living room and for upstairs, but that’s also not urgent.

Finances: Nothing special here, just saving up. We’re shifting our grocery patterns (lighter summer meals, organic and local produce), so I’m going to do some more price-checking to see if the community-supported agriculture box is a better deal than, say, shopping at the Sweet Potato (a local health food store) or checking out farmers’ markets. I’ve been thinking about experimenting with dividend-focused stocks after I reach one of my savings milestones, but I’m not completely sold on it yet, and I’m fine just putting money into low-MER index funds for now.

Plenty of good things to grow into.

Made a stuff sack for J-

June 6, 2011 - Categories: life, sewing

imageW- asked me if I could make a stuff sack for J’s sleeping bag, as it turned out she was going camping this week. These bags are handy for compressing loose items such as sleeping bags, jackets, clothes, and so on. You simply stuff as much as you can into the bag, and the bag keeps the items compressed.

I had white ripstop nylon in my fabric stash, left over from the time we were thinking of making a fabric softbox. J- measured the compressed sleeping bag – 25” circumference, about 16” of height – and I started working on a simple tubular stuff sack.

The project came together quickly, even the tricky part of sewing the circular base to the tube. My seams were mostly straight and neat, although I had some bubbling near the bottom. For the drawstring, we reused the free shoelaces that came with J’s new shoes. (Waste not, want not.) The stuff sack ended up just the right size for the sleeping bag. Hooray!

I think I’m getting the hang of going from idea to actual thing, and it’s a lot of fun. All the cat hair that got sewn into the seams along the way probably means I shouldn’t go into commercial production yet, though! Winking smile

Negative optimization

June 7, 2011 - Categories: geek, rails

Checking on one of my projects (a Ruby on Rails survey site), I realized that it was running painfully slowly, taking 30 seconds to render a page.

The first thing I checked was memory. I was on a 256MB slice at Rackspace Cloud. Was the server running out of memory and swapping to disk? I put in the recommended settings for Apache+Passenger+Rails on 256MB:

RailsSpawnMethod smart
PassengerUseGlobalQueue on
PassengerMaxPoolSize 2
PassengerPoolIdleTime 0
PassengerMaxRequests 1000
RailsAppSpawnerIdleTime 0
PassengerStatThrottleRate 5

The website was still crawling. I reviewed the logs and found that ActiveRecord was taking a while. The Internet had a few performance optimization tips, so I checked out the survey controller to see if I could improve performance by preloading information.

As it turned out, I was already preloading information. So I tried turning off preloading by removing the :include directives for my queries.

The system went back to a decent speed.

You see, I’d been working with lots of associations, and eager loading had probably resulted in a gazillion rows in my result set.

Moral lesson: Test your system before and after you put in something to improve the performance, because you just might be making your performance worse. ;)

Oh well. Live and learn!

2011-06-07 Tue 16:19

Thinking about our development practices

June 8, 2011 - Categories: development, geek, kaizen

We’re gearing up for another Drupal project. This one is going to be interesting in terms of workflow. I’m working with the clients, an IBM information architect, a design firm, another IBM developer, and a development firm. Fortunately, the project manager (Lisa Imbleau) has plenty of experience coordinating these inter-company projects.

I feel a little nervous about the project because there are a lot of things to be clarified and there’s a bit of time pressure. I’m sure that once we get into the swing of things, though, it’ll be wonderful.

I’m used to working with other developers within IBM, and I’m glad I picked up a lot of good practices from the people I’ve had the pleasure to work with over the years. I’m looking forward to learning even more from the people I get to work with this time around.

In particular, I’m looking forward to:

  • learning from how Lisa manages the project, clarifies requirements, and coordinates with other companies
  • learning from the other developers about what works and doesn’t work for them
  • planning more iteratively and getting more testing cycles in
  • implementing continuous integration testing using Hudson and Simpletest
  • getting even deeper in Drupal: Views, Notifications, maybe Organic Groups
  • using a git-integrated issue tracker such as Redmine
  • … while knowing when to just use pre-built modules, of course

It’s also a good opportunity to figure out which of our practices are new to others, and to write about those practices and improve them further. Some things that have turned up as different:

  • We organize our Drupal modules into subdirectories of sites/all/modules/: features, custom, contrib, and patched.
  • I use Simpletest a lot, and would love to help other people with it or some other automated testing tool.

Much learning ahead!

Drush, Simpletest, and continuous integration for Drupal using Jenkins (previously Hudson)

June 9, 2011 - Categories: drupal, geek

One of my development goals is to learn how to set up continuous integration so that I’ll always remember to run my automated tests. I picked up the inspiration to use Hudson from Stuart Robertson, with whom I had the pleasure of working on a Drupal project before he moved to BMO. He had set up continuous integration testing with Hudson and Selenium on another project he’d worked on, and they completed user acceptance testing without any defects. That’s pretty cool. =)

I’m a big fan of automated testing because I hate doing repetitive work. Automated tests also let me turn software development into a game, with clearly defined goalposts and a way to keep score. Automated tests can be a handy way of creating lots of data so that I can manually test a site set up the way I want it to be. I like doing test-driven development: write the test first, then write the code that passes it.

Testing was even better with Rails. I love the Cucumber testing framework because I could define high-level tests in English. The Drupal equivalent (Drucumber?) isn’t quite there yet. I could actually use Cucumber to test my Drupal site, but it would only be able to test the web interface, not the code, and I like to write unit tests in addition to integration tests. Still, some automated testing is better than no testing, and I’m comfortable creating Simpletest classes.

Jenkins (previously known as Hudson) is a continuous integration server that can build and test your application whenever you change the code. I set it up on my local development image by following Jenkins’ installation instructions. I enabled the Git plugin (Manage Jenkins – Manage Plugins – Available).

Then I set up a project with my local git repository. I started with a placeholder build step of Execute shell and pwd, just to see where I was. When I built the project, Hudson checked out my source code and ran the command. I then went into the Hudson workspace directory, configured my Drupal settings.php to use the database and URL I created for the integration site, and configured permissions and Apache with a name-based virtual host so that I could run web tests.

For build steps, I used Execute shell with the following settings:

mysql -u integration integration < sites/default/files/backup_migrate/scheduled/site-backup.mysql
/var/drush/drush test PopulateTestUsersTest
/var/drush/drush test PopulateTestSessionsTest
/var/drush/drush testre MyProjectName --error-on-fail

This loads the backup file created by Backup and Migrate, sets up my test content, and then uses my custom testre command.

Code below (c) 2011 Sacha Chua ([email protected]), available under GNU General Public License v2.0 (yes, I should submit this as a patch, but there’s a bit of paperwork for direct contributions, and it’s easier to just get my manager’s OK to blog about something…)

// A Drush command callback.
function drush_simpletest_test_regular_expression($test_re='') {
  global $verbose, $color;
  $verbose = is_null(drush_get_option('detail')) ? FALSE : TRUE;
  $color = is_null(drush_get_option('color')) ? FALSE : TRUE;
  $error_on_fail = is_null(drush_get_option('error-on-fail')) ? FALSE : TRUE;
  if (!preg_match("/^\/.*\//", $test_re)) {
    $test_re = "/$test_re/";
  // call this method rather than simpletest_test_get_all() in order to bypass internal cache
  $all_test_classes = simpletest_test_get_all_classes();

  // Check that the test class parameter has been set.
  if (empty($test_re)) {
    drush_print("\nAvailable test groups & classes");
    $current_group = '';
    foreach ($all_test_classes as $class => $details) {
      if (class_exists($class) && method_exists($class, 'getInfo')) {
        $info = call_user_func(array($class, 'getInfo'));
        if ($info['group'] != $current_group) {
          $current_group = $info['group'];
          drush_print('[' . $current_group . ']');
        drush_print("\t" . $class . ' - ' . $info['name']);

  // Find test classes that match
  foreach ($all_test_classes as $class => $details) {
    if (class_exists($class) && method_exists($class, 'getInfo')) {
      if (preg_match($test_re, $class)) {
        $info = call_user_func(array($class, 'getInfo'));
        $matching_classes[$class] = $info;

  // Sort matching classes by weight
  uasort($matching_classes, '_simpletest_drush_compare_weight');

  foreach ($matching_classes as $class => $info) {
    $main_verbose = $verbose;
    $results[$class] = drush_simpletest_run_single_test($class, $error_on_fail);
    $verbose = $main_verbose;

  $failures = $successes = 0;
  foreach ($results as $class => $status) {
    print $status . "\t" . $class . "\n";
    if ($status == 'fail') {
    } else {
  print "Failed: " . $failures . "/" . ($failures + $successes) . "\n";
  print "Succeeded: " . $successes . "/" . ($failures + $successes) . "\n";
  if ($failures > 0) {
    return 1;

I didn’t bother hacking Simpletest output to match the Ant/JUnit output so that Jenkins could understand it better. I just wanted a pass/fail status, as I could always look at the results to find out which test failed.

What does it gain me over running the tests from the command-line? I like having the build history and being able to remember the last successful build.

I’m going to keep this as a local build server instead of setting up a remote continuous integration server on our public machine, because it involves installing quite a number of additional packages. Maybe the other developers might be inspired to set up something similar, though!

2011-06-09 Thu 09:51

Sketchnotes from Democamp Toronto 29, June 2011

June 9, 2011 - Categories: democamp, geek, sketches, sketchnotes

UPDATE: 2011-06-10: Made demo notes more visual. =)image

Highlights from Social Leverage talk by Howard Lindzon. Keep an eye on the sentiment for your industry, figure out where there’s momentum, build domain expertise, and get in the game.


500px, TitanFile, High Schore House, Vizualize.me, We are TO Tech, Alphaslides. (Click for bigger version.) I liked High Score House’s demo the best. They’d obviously tested a lot and had fun along the way. =)

Sketched with Autodesk Sketchbook Pro on my Lenovo X61T. Sketchbook is my new favourite note-taking program. Even though it doesn’t have Microsoft Onenote’s handwriting recognition and search capabilities, it encourages me to draw more compactly and to use more colours, and it’s more reliable. See other sketchnotes if you want to explore!

(Update: @truejebus says TitanFile is hosted in Canada.)

What did you think about Democamp Toronto? Have you blogged about it? Please share your thoughts and links in comments!

Also check out Tom Purves’ writeup.

Managing configuration changes in Drupal

June 10, 2011 - Categories: development, drupal, geek, work

One of our clients asked if we had any tips for documenting and managing Drupal configuration, modules, versions, settings, and so on. She wrote, “It’s getting difficult to keep track of what we’ve changed, when, for that reason, and what settings are in that need to be moved to production versus what settings are there for testing purposes.” Here’s what works for us.

Version control: A good distributed version control system is key. This allows you to save and log versions of your source code, merge changes from multiple developers, review differences, and roll back to a specified version. I use Git whenever I can because it allows much more flexibility in managing changes. I like the way it makes it easy to branch code, too, so I can start working on something experimental without interfering with the rest of the code.

Issue tracking: Use a structured issue-tracking or trouble-ticketing system to manage your to-dos. That way, you can see the status of different items, refer to specific issues in your version control log entries, and make sure that nothing gets forgotten. Better yet, set up an issue tracker that’s integrated with your version control system, so you can see the changes that are associated with an issue. I’ve started using Redmine, but there are plenty of options. Find one that works well with the way your team works.

Local development environments and an integration server: Developers should be able to experiment and test locally before they share their changes, and they shouldn’t have to deal with interference from other people’s changes. They should also be able to refer to a common integration server that will be used as the basis for production code.

I typically set up a local development environment using a Linux-based virtual machine so that I can isolate all the items for a specific project. When I’m happy with the changes I’ve made to my local environment, I convert them to code (see Features below) and commit the changes to the source code repository. Then I update the integration server with the new code and confrm that my changes work there. I periodically load other developers’ changes and a backup of the integration server database into my local environment, so that I’m sure I’m working with the latest copy.

Database backups: I use Backup and Migrate for automatic trimmed-down backups of the integration server database. These are regularly committed to the version control repository so that we can load the changes in our local development environment or go back to a specific point in time.

Turning configuration into code: You can use the Features module to convert most Drupal configuration changes into code that you can commit to your version control repository.

There are some quirks to watch out for:

  • Features aren’t automatically enabled, so you may want to have one overall feature that depends on any sub-features you create. If you are using Features to manage the configuration of a site and you don’t care about breaking Features into smaller reusable components, you might consider putting all of your changes into one big Feature.
  • Variables are under the somewhat unintuitively named category of Strongarm.
  • Features doesn’t handle deletion of fields well, so delete fields directly on the integration server.
  • Some changes are not exportable, such as nodequeue. Make those changes directly on the integration server.

You want your integration server to be at the default state for all features. On your local system, make the changes you want, then create or update features to encapsulate those changes. Commit the features to your version control repository. You can check if you’ve captured all the changes by reverting your database to the server copy and verifying your functionality (make a manual backup of your local database first!). When you’re happy with the changes, push the changes to the integration server.

Using Features with your local development environment should minimize the number of changes you need to directly make on the server.

Documenting specific versions or module sources: You can use Drush Make to document the specific versions or sources you use for your Drupal modules.

Testing: In development, there are few things as frustrating as finding you’ve broken something that was working before. Save yourself lots of time and hassle by investing in automated tests. You can use Simpletest to test Drupal sites, and you can also use external testing tools such as Selenium. Tests can help you quickly find and compare working and non-working versions of your code so that you can figure out what went wrong.

What are your practices and tips?

2011-06-09 Thu 12:25

Weekly review: Week ending June 11, 2011

June 11, 2011 - Categories: review, weekly

From last week’s plans

  • Work
    • [X] Get priorities and development responsibilities sorted out for project M
    • [X] Continue working on development for project M
    • [X] Bike to work to discuss project M with the information architect
    • Did some more troubleshooting for project I
    • Shared more Drupal tips
    • Attended Democamp
    • Discussed Idea Labs with ibm.com/communities
    • Hacked together Profiles summary tool for Darrel Rader
    • Set up continuous integration with Jenkins, yay!
  • Relationships
    • [X] Watch “Thor” with Maira and Scott
    • [X] Prepare some meals in advance
    • [X] Review short-term plans
    • [/] Prepare lots of salad
    • [X] Pick up summer share CSA box
    • [/] Make a list of summer meals
    • Sewed stuff sack for J-
    • Worked on Latin homework with W-
    • Hung out with Gabriel Mansour and
    • Experimenting with doing more chores on Friday (laundry, compost, etc.)
  • Life
    • [X] Go on group bike ride (High Park to Port Credit)
    • [/] Write about scenarios/planning
    • Watched X-Men: First Class
    • Posted Democamp sketchnotes, revised sketch
    • Biked a lot, yay!
    • Took pictures of garden

Plans for next week

  • Work
    • [ ] Get started on development with Snake Hill for project M
  • Relationships
    • [ ] Attend Linda and Tim’s wedding
    • [ ] Make pesto
    • [ ] Maybe join Bells on Bloor?
  • Life
    • [ ] Put in drip irrigation system

Getting things ready for the next week: cooking and gardening

June 12, 2011 - Categories: gardening, kaizen

Tired! Did lots of cooking and gardening today. We went into full process-the-community-supported-agriculture-box mode today. I made pesto from the basil in the box (supplementing it with basil from our garden) and another pesto from green garlic. Chopping up the green onions and freezing them means more convenient soups later on. A quick stock made the most of the woody ends from several breakfasts’ worth of asparagus. W- prepared six packs of chicken leg quarters (shake and bake, jerk chicken marinade) and stirfried lots of vegetables. We packed maybe 36 lunches – a few in the fridge, and two neat columns in the chest freezer.

I also put in the drip irrigation system for the backyard. Well, most of the backyard. There has been some attrition among the 1/4″ irrigation fittings, so I set up only the vegetable garden near the house. Home Depot didn’t have the parts I wanted, but Lee Valley has them, so I might pass by one of these days to pick those things up. After I put in the soaker hose, I mulched the strawberries to keep the fruits off the soil. I also put up nets around our blueberries to see if that will improve our chances of actually enjoying them ourselves. We’ll see – there are some serious-looking squirrels around here.

Planted a few more square feet of beans and some lettuce. It’s been cool lately, so maybe the lettuce still has a shot. Saw my first pea flower! The tomatoes aren’t doing too well, though – they’re still scrawny. I’m sure we’ll get plenty of tomatoes in our summer share box.

Tired, but happy. We’ve gone through most of our vegetable box, so I’m less worried about wasting it. We’ve got frozen lunches. We’ve got salad plans. Next week should be a little smoother, and the next week after that even better, and so on.

Decision review: Packing lots of chores into Friday evening worked out. With the laundry finished, I spent Saturday downtown. Might’ve been a good idea to have my massage after the cookathon/gardenthon, though!

And people wonder why I don’t dread Mondays… ;)

2011-06-12 Sun 21:01

This is what my blog looks like on paper

June 13, 2011 - Categories: blogging, life, reflection, writing

I’ve switched to printing out my blog archives monthly instead of yearly, so now I’m all caught up again. It’s surprising how it all adds up. Here’s my blog since just 2007, printed single-space, double-column, double-sided, with monthly indexes:

There’s more beyond that, as I didn’t print out my older posts. Here’s a visual summary from my reflection on 8 years of blogging:


I’m surprised that I quite enjoy reading my old posts. I find it difficult to listen to my presentation recordings – I get impatient, I want to move on – but I like reading, particularly when I come across posts I’ve forgotten writing. There’s a lot in here. It’s fun remembering what it was like to look for my first apartment, hanging out with friends, dealing with challenges. I like revisiting my questions, decisions, and plans. There are many things that spark ideas for new posts and sketches.

This print-out is part of playing the long game with writing. I’ve got electronic backups of my blog. A paper backup further increases the chances that I’ll be able to revisit these ideas decades down the line. And it supports serendipity and reflective practice, too. Who knows what I’ll rediscover or review?

Pretty cool. Thanks for sharing the journey so far. Looking forward to what’s ahead!

Decision review: Kitchen counter computing (ad hoc standing desk)

June 13, 2011 - Categories: decision, geek, kaizen, review

imageI switched to using the kitchen counter as my standing desk last month, and it’s working really well. I like working in the kitchen: natural light, plenty of water and healthy snacks, and the occasional cat-cuddling break. The kitchen counter is just the right height for typing. I don’t have an eye-level monitor, but if I keep good posture and take frequent breaks (to cuddle cats, for example), my neck doesn’t hurt.

Standing up also keeps me from the bad habit of crossing my legs at the knees. I fidget more, too – do more stretches, take care of more little chores around the kitchen while thinking about code. Good for circulation.

Not a bad experiment. I think I’ll keep on going.

Now if only we had counters at the right height in the office. There’s a bar-height counter, but it’s a little too high for me to comfortably type on. Maybe two recycling bins upended on a desk…

Cook Or Die Season II: Community-Supported Agriculture

June 14, 2011 - Categories: cooking, cookordie

My “Cook or Die” project started when I moved into an apartment-style dormitory shortly after university. My room was equipped with a small kitchen – really, just a hot plate, a microwave, and a toaster oven. Instead of always eating at the nearby KFC, I resolved to prepare at least one of my meals each day. Hence: Cook or Die. (Well, Cook or Starve.)

I’ve come a long way since I discovered that pita pockets were called pita pockets for a reason. I hardly ever eat out now. I’d much rather eat at home, where meals are frugal, tasty, and just the right size for me. The kitchen is well-stocked. The garden’s full of herbs. I’ve got a decent collection of favourite recipes, and I’m always learning more about cooking.

We’re heading into our second month of community-supported agriculture. W- has signed up for a weekly summer half-share from Plan B Organic Farms. Every Thursday, we pick up a box containing an assortment of vegetables, some of which I’ve never tried before. The box arrives every week, a relentless parade of perishables. (You can postpone for vacations and get a credit, but I think that would be cheating on our experiment.) I’m getting pretty creative about how to get through all of this plus the groceries we buy. The nooks of our freezer are filled with pesto in small Nalgene containers and chopped green onions in Ziploc bags.

I’m also discovering new recipes. I’d never made green garlic pesto before, but the Internet thinks it’s good, so I gave it a try. Today I baked kale chips, although I oversalted my first batch; and yes, they do taste oddly like potato chips. We’ll see if I can get W- and J- to try them. We all like seaweed, and the texture’s not far off.

I turned our ripening avocados into guacamole, mixing in my chopped-up frozen green onions from the vegetable box. I still had lots of guacamole after making myself an omelette. Turns out you can freeze guacamole, but I figured it was more useful to just share it with our neighbours, as they were having a small party. So I rubbed the tortillas with olive oil, cut them into eighths, and baked them for about 8 minutes at about 400’F until they were crisp and light brown. After testing a few, I assembled the chips and the guacamole on a plate and carried it over. Win!

Now we just have to finish the parsnip and the lettuce, and we’ll be ready for Thursday’s box. Cook or Die? More like Cook or Get Overwhelmed By Vegetables…

2011-06-14 Tue 19:27

Kaizen in the little things: The way the door opens

June 14, 2011 - Categories: kaizen, sketches

One of my principles is kaizen: continuous improvement. If you can make your life 1% better every day, you’ll double your life’s awesomeness in less than three months. Even if you improve life by 0.01%, you’ll still do pretty darn well over time. Today was one of those 0.01% days. I don’t know why I didn’t think of this before.

You see, I often ride my bicycle to work. This means maneuvering my long-framed bicycle through the mudroom, out the door, and down the porch stairs. The door has two parts: the actual door, which opens inward, and the screen door, which opens outward. If I roll my bicycle near the door, then open it, the door often gets stuck in front of my bicycle. If I open both the door and the screen door, one of our cats usually slips out and starts exploring the porch. (I’m looking at you, Luke.)

Today I had an epiphany. If I open the house door but not the screen door, then I can get out more easily and I don’t have to worry about the cats slipping past. This is what it looks like:


Yes, I know, obvious, but I managed to get through one whole year with this bicycle without having that aha! moment, because I always thought of door-opening as an integral operation: open the house door, then open the screen door. Close the house door, close the screen door. Even though we sometimes leave the house door open and the screen door closed to let in summer breezes, it didn’t click until I stopped and thought about why I was getting stuck in the bike room.

Little things like that are the cruft of un-consciously moving through life, and it’s so much fun to fix them. So many opportunities for improvement everyday!

Make-ahead meals

June 15, 2011 - Categories: cooking

Patricia wanted to know what sort of meals we like preparing in advance. We often make large batches of frozen meals so that we can take them to work or have them as quick, no-fuss dinners. Here are some of our staples:

  • Shake’n Bake chicken: well, really, the generic equivalent of it; baked breadcrumb-style chicken with rice and vegetables
  • Jerk chicken: mostly W-, as it’s too spicy for me
  • Lasagna
  • Chicken curry
  • Tomato sauce for pasta
  • Pesto
  • Rotisserie chicken from the supermarket
  • Roast turkey
  • Soup
  • Rice and beans
  • Baked beans
  • Home-made bagels or biscuits
  • Chicken pot pie or turkey pot pie
  • Shepherd’s pie

What are yours?

2011-06-15 Wed 20:33

Personal projects

June 16, 2011 - Categories: decision, kaizen, life, productivity

I rein in work to about 40-44 hours a week so that it doesn’t run away with me. This gives me some time during evenings and weekends to work on personal projects. It’s a good idea to have clear personal projects in mind so that I don’t end up wasting the time mindlessly.

“Do you want to spend your time productively or unproductively?” I asked J-.

“That’s a leading question,” W- said.

“No, I’m serious about it. Unproductive time is good too, as long as you choose it consciously,” I said.

For example, I spend some time here and there playing LEGO Pirates of the Caribbean. I don’t do it just because I can’t think of anything else to do or I don’t feel like doing anything else. I play because I’m curious about how the game designers have constructed puzzles and all those little secrets that dot the LEGO world. That’s definitely not a project, though.

What are the things I’m working on? Spelling them out will make it easier to pick a task that moves me towards them when I find myself with blocks of time.

Latin: W- and I are slowly working our way through Albert Harkness’ “An Easy Method for Beginners in Latin.” We’re on lesson twenty-ish now. Most people are working off the scanned book in Google’s digitized collection, but because the scans are images instead of text, the file is a little slow and unwieldy. I bought the first edition (it’s now the oldest book I have) and we’re working on digitizing it properly, re-typing it in with all the finicky accents and footnotes. We’re less than a fifth of the way through the book, so there’s plenty of work to do on this front. Goal: Digitize the whole book and answer all the questions.

Gardening: I want to get better at planning and growing the fruits and vegetables we like. That means getting more practice at starting seeds and helping them thrive. Gardening is relaxing, too. Goal: Grow, harvest, and measure the yield this year.

Cooking: Our frozen meals get us through most of the week, but I also cook new things based on what we need to finish in the fridge. For example, today I’d like to do something with the asparagus stock so that it doesn’t go to waste. I’m also picking up the community-supported agriculture box today, so that will give me a new set of challenges. This helps me develop the eminently useful skill of preparing healthy meals. Goal: Experiment with and collect summer recipes, then put together other seasonal notes.

Writing: I enjoy writing. I like reading my archive and remembering the steps. I like practising writing every day as a way to share what I’m learning, and it’s a good way to keep learning about content and style. Goal: Review, rewrite, and compile into an e-book.

Drawing: I’d like to get even better at drawing. It’s fun, and I’m learning how to communicate through it. I want to feel more comfortable using colours and drawing shapes. It’s all about practice. Goal: Draw a graphical review each week for a month.

Photography: It’s good, and we’ve got all this equipment already, so I might as well. ;) Besides, I enjoy taking pictures of the garden. Goal: Post at least one photo a week for a month.

What are you working on?

2011-06-16 Thu 08:25

Getting the hang of community-supported agriculture

June 16, 2011 - Categories: cooking, cookordie

I’m starting to get the hang of working with our community-supported agriculture box: a weekly assortment of fruits and vegetables from farms in Ontario. I finished last week’s lettuce today, supplementing it with lettuce from our cut-and-come-again planter (which is actually working as planned!) and topping it with two eggs from last week’s share.

Today we picked up baby greens, two kinds of lettuce, broccoli sprouts, two tomatoes, kale, basil, green onions, and a dozen eggs.

I like processing the vegetables as soon as possible so that I can lock in their freshness and avoid waste. I chopped the green onions and added them to last week’s freezer bag; they’ll see us through many recipes. I made lentil soup with the leftover asparagus stock, the green onion ends, and some carrots we had in the fridge. I ground the Genovese basil into pesto and popped it into the freezer. I baked half of the bunch of kale as chips, making sure to go easy on the oil and salt. The results:


The kale chips came out just right.

Kale chips: Preheat oven to 350F (175C). Wash, dry, and tear a bunch of kale into bite-sized pieces, removing the stems. Toss with a tablespoon of olive oil and a teaspoon of salt. Spread kale on a baking sheet covered with parchment. Bake for 8-10 minutes, or however long it takes for the kale to become crispy but not burnt. Munch away guiltlessly.

Summer is short enough as it is. I might as well eat like it. =)

Gardening notes: Cut-and-come-again lettuce

June 17, 2011 - Categories: gardening

One of my gardening goals this year was to have a cut-and-come-again bed for leafy greens. The idea is to grow lettuce and other greens for continuous harvesting instead of waiting until the head has fully formed. We’re using a self-watering planter from Rona perched on the deck rail. I can even harvest barefoot. (Well, in my slippers.)


I started these plants from seed, which was another one of my goals. I’ve gotten two salad lunches out of this box already. The lettuce is starting to set seed and the leaves are a little more bitter, but they’re still good to eat. I’ve got bok choi and other plants starting there, too, and I tend to putter around and plant more every week.

I should’ve considered the community-supported agriculture box too, because we’re now swimming in lettuce. Today I changed my salad dressing by using tamari instead of balsamic vinegar, topping it with sliced egg. Bit more of an Asian taste. Next time, I’ll toss in some sesame seeds, too.

Salad greens are actually better in some shade than in the hot sun, so if you’ve been looking for things to grow on a balcony, consider growing your own salad bowl. With the cut-and-come again method, you could get quite a few harvests out of them.

An abundance of cilantro, now freezing in cubes; strawberries and peas

June 18, 2011 - Categories: cooking, gardening

Awesome Garden Lady down the street gave us two large bunches of lettuce and a bag of cilantro, so I made an Asian-inspired salad yesterday: toasted sesame seeds, cilantro, tomatoes, hard-boiled eggs, and the rest of our bag of baby greens, dressed with tamari and olive oil. The cilantro made it feel like eating one of those Vietnamese sandwiches, except without the meat. Yum.

Today I spent the morning chopping up the rest of the cilantro and packing it into our ice-cube tray for freezing. That way, we can easily add cilantro to stir-fries, soups, and other meals.

Many herbs freeze well, which is a good thing because they usually come in large bundles.

In other news, look at what’s in the garden:

The first of many, I hope!

Weekly review: Week ending June 18, 2011

June 18, 2011 - Categories: review, weekly

Tired after lots of biking, cooking, and gardening, but it’s a happy sort of tired. New hack working well: leaving smartphone downstairs to avoid temptation of late-night browsing, then using regular phone as alarm clock set slightly before smartphone.

From last week’s plans

  • Work
    • [X] Get started on development with Snake Hill for project M
    • Helped Darrel Rader with Profiles summarization tool
    • Started thinking about possible presentations on Gen C and banking, Drupal development, career
    • Attended Dries Buytaert’s presentation on Drupal 8
  • Relationships
    • [-] Attend Linda and Tim’s wedding – this Sunday, actually!
    • [X] Make pesto
    • [-] Maybe join Bells on Bloor? – also this weekend
    • Received lettuce and cilantro from Awesome Garden Lady
    • Shared home-made guacamole and baked tortilla chips with neighbor
  • Life
    • [X] Put in drip irrigation system
    • Typed in a few chapters of Latin
    • Had lots of salad

Plans for next week

  • Work
    • [ ] Smooth out session creation form for project M
    • [ ] Work on Generation C and banking presentation
  • Relationships
    • [ ] Attend Linda and Tim’s wedding
    • [ ] Organize get-together
  • Life
    • [X] Join Bells on Bloor
    • [X] Harvest compost
    • [ ] Spread compost in front garden
    • [ ] Type in five chapters of Latin
    • [ ] Have soup and salad every day in order to try to make a dent in the lettuce

Thinking about speaking topics

June 19, 2011 - Categories: braindump

Holly Tse invited me to speak at Lotus Blossoming, an upcoming virtual summit for Asian women. We’re negotiating what my topic might be. I’ve challenged myself to speak mostly about things that pass the following criteria:

  • must be something I want to learn more about,
  • must be something I have experience in, and
  • must be something people will find useful (not just interesting, useful)

I’m picky because I’m not selling anyone stuff. No coaching services, no e-books, no here’s-the-secret-to-happiness. This means I’m not speaking to get exposure or to do marketing. It also means that speeches have to be worth the preparation time I’d take away from other things. Is the speech something I can’t wait to work on, or is it something I’m going to end up procrastinating until the last minute? Is it something that might result in a good blog post and a presentation  I can share? Is it something that can help me grow in terms of content or technique?

I invest time up front before committing to a topic so that I can enjoy the preparation and delivery more, and so that the talk will be more useful for people who invest their time in attending. I know I can be energetic and interesting even when I’m annoyed with the situation or when I have strong doubts about the topic, but I really don’t want to make that habitual.

The great thing is that negotiation teaches me a lot about what I want to write about and explore. For example:

  • I’d like to share more stories and tips for other immigrants, particularly people moving by themselves, but I need to do some more work in this area to clarify things that are still prickly for me.
  • I want to write about happiness in the corporate world. So many blogs and books treat corporations as desolate wastelands and portray self-employment or startups as The Way.
  • I’m less interested in social media for personal networking and community building, and more interested in writing your life as a way to practise continuous improvement. I think the ability to connect with more people more deeply is icing on the cake-pop – it’s not the reason I blog, but it does help me learn a lot more.

Hmm, there’s an interesting thing there. You see, people often ask me to do social media presentations. I prefer to focus on individual behaviours instead of trends because I want people to be able to do something. I dislike all this emphasis on personal branding and social networking, because it’s so much like scare-mongering. “You MUST be on Facebook/Twitter and your own blog or else you’ll be invisible and irrelevant.” Social networking is fine, but I want to be really clear that it’s not about getting friends/followers/readers/comments.

I’d rather encourage people to take these two approaches: develop their interest in other people and use social tools to make it easier to cultivate those relationships, and start that journey of self-discovery and find something they can share with other people.

The first one is a bit harder if the people you care about aren’t active on social networks, but you can also learn a lot by looking for people who inspire you. When you find people you resonate with, you can learn a lot about them, life, and yourself. For me, blogs tend to be better than Facebook or Twitter for being inspired by other people, because people put more of their thoughts and their personality into their blog. For example, I love the way my mom tells stories and what I learn about her and our family. The way Mel Chua shares her passion for open source and life (we’re not related, but I’d have loved to be) teaches me more about how to let my enthusiasm shine through. I enjoy reading Roger Ebert’s journal and learning about culture and growing old, and I like Penelope Trunk’s vivid stories. People tell me they enjoy reading my blog, too – the way I practise continuous improvement and optimism, the joy I take in life, the things I learn along the way.

As for finding something worth sharing with other people – that’s an excellent place to start, especially for introverts like me. Writing helps you learn a lot more effectively. It gets things out of your brain and into a form you can look at or share.

Come to think of it, I take more of a self-centered approach to social media compared to most of the other presentations or blog posts I’ve come across. It’s not the quick hit of here’s-how-to-make-the-most-of-Facebook-and-Twitter. It’s more about becoming yourself and helping others. Hmm… Will flesh this out some more.

Switching back to Linux as my development host

June 20, 2011 - Categories: development, geek, work

I switched back to using my Ubuntu partition as my primary development environment instead of using Windows 7. I still use a virtual machine to isolate development-related configuration from the rest of my system.

Linux makes better use of my computer memory. I have 4 GB of RAM on this laptop. My 32-bit Windows 7 can only access 3 GB of it, a limit I regularly run into. The resulting swapping slows down my development enough to be noticeable. I could switch to 64-bit Windows, but reinstalling is a disruption I don’t want to deal with right now. On Linux, my processes can access up to 4GB of memory each, which means there’s even room for future expansion. I’m at just the right level now – using 3.9 GB, but not swapping out.

Using Linux also means that it’s easy for me to edit files in my virtual machine. Instead of setting up Samba + Eclipse, I can use ssh -X to connect to my virtual machine and run Emacs graphically. If I want to use Eclipse for step-by-step debugging, I can use sshfs, smbfs, or NFS to mount the files.

The key things I liked about Microsoft Windows 7 were Autodesk Sketchbook Pro and Microsoft Onenote. I can draw a bit using the GIMP or Inkscape, although I really need to figure out my smoothing settings or whatever it is that would make drawing as fun as it is in those other programs. I don’t need those programs when I’m focused on development, though, and it’s easy enough to reboot if I want to switch.

Hibernate doesn’t quite work, but I’ve been suspending the computer or shutting it down, and that works fine. Pretty cool!

(500) days of salad

June 21, 2011 - Categories: cooking

I’m nearly done with the community-supported agriculture box’s haul of lettuce, although I still have Awesome-Garden-Lady’s lettuce to get through. This one is a grape and walnut salad. Next time, I’ll probably slice the grapes to make them easier to spear with my fork.

I’m learning that I like these in salads:

  • Crunchy and nutty warmth: Toasted sliced almonds, toasted pine nuts, and home-made glazed pecans; walnuts not as much as the others, actually
  • Something sweet: strawberries and grapes so far; maybe apples or pears? (oh my)
  • A simple dressing, a bit on the sweet/sour side: balsamic vinaigrette, mostly, but I don’t need fancy oil
  • Maybe some additional protein: sliced eggs, nuts, or pairing the salad with a lentil soup

I just have to get through enough salads so that I can get back to writing about other things. I’m getting better at photography, though! =)

Portal 2 and teachable moments in argument

June 22, 2011 - Categories: communication, life, teaching

Portal 2 became an obsession in our household after W- shared with us the Youtube clips of the ending songs, Still Alive and Want You Gone. I downloaded the demo today, and J- flew through it eagerly. The final demo level came all too soon.

Aha. Teachable moment.

“Do you remember the three Greek words we have in the kitchen?”

“Ethos, pathos, and logos.”

“Right.” I wrote them down, with brief descriptions, under the title, “Why should we get Portal 2?” I read the title out: “Why should we get Portal 2?”

“Umm… Because it’s educational?”


“Speedy thing goes in, speedy thing comes out, that’s all I have to say.”

I look at her and do the you-can-do-better-than-that smile.

“I’m not good at this stuff.”

“Try writing all of your ideas down. You can make your arguments stronger by editing them afterwards.”

We’re still a bit fuzzy about the categories, but it’s great to see where she’s going. Here’s the list she came up with:


  • helps improve sense of humour
  • I will actually do my homework properly and thoroughly
  • can create a topic of conversation
  • can create more interesting stories to tell others


  • spend time together solving puzzles and getting a good laugh or two (bonding factor)
  • fun! (lolz!)
  • more inside jokes


  • hand-eye coordination
  • momentum
  • solve puzzles – helps make you better at solving puzzles
  • may help me with typing faster
  • can create inspiration for writing a book or drawing a picture

“Try thinking of reasons why we might say no, too,” I said. After some thought, she listed:

  • might take up too much time
  • too close to screen too often
  • may not play it as often, may be wasted

“Now think of ways you can address those concerns.”

“Maybe I can set a time limit, like 30 minutes…”

“That would take care of the first and second concern. How about the third?”

“It’s like you don’t want to play it too much, but you also don’t want to play it too little…” she said.

“Right. Because if you played only a couple of levels more, it would be a waste. But you played the demo and…”

“… it was amazing…”

“… so the rest of the game…”

“… will probably be ten times as amazing…”

“… and you know you’ll enjoy it. There, see what happens? When you think of why someone would say no and you address those concerns, your argument becomes stronger.”

“Oh, I get it now.”

“Great! Would you like to take this further by organizing your arguments into a proper speech, like this”, and here I sketched out what the speech would be like, with English mixed with fast-forwarded gibberish and hand-gestures so that she could get the sense of it.

She laughed. “Sure!” she said.

Persuasion is a useful skill. Good to find opportunities to help people develop it!

2011-06-22 Wed 21:21

Portal 2

June 23, 2011 - Categories: geek

So we bought Portal 2 for the PS3, because you can unlock a PC version if you link your Playstation Network and Steam accounts. Turns out the PS3 version plays pretty smoothly, too, so J- is playing it now. The game has great spatial puzzles, is excellently designed, and entertainingly scripted and voiced. I’m looking forward to playing it myself.

We don’t play many video games here. There’s so much we can do instead: cook, garden, sketch, write, read books from the library, watch the occasional movie (also borrowed from the library) while folding clothes or eating dinner… But there’s something to be said about the way games help people learn how to solve puzzles and enjoy mastery. A bit of gaming is like salt and pepper on a meal, perhaps; it sharpens the experience, as long as you don’t add too much.

Also, Portal 2 is really cool.

Spatial puzzles. I can do those typical unwrapping puzzles and things-fitting-into-things puzzles that you find in those Mensa-type books. I have a hard time finding my way around a first-person game though, and I find maps really useful when navigating. I am so glad that GPS + maps showed up during my lifetime. Maybe this will help me get the hang of it too!

Must make sure it doesn’t edge out th other things I want to do. =)

Now starting coop split-screen mode with W-… =D

2011-06-23 Thu 20:15

Mindful spending, experiments, and living in line with your values

June 24, 2011 - Categories: analysis, decision, kaizen

A friend was thinking about splurging on an event that included an 8-course dinner for $95. He wrote, “I’d like to go, but that’s more than I’ve ever paid for a single meal. Thoughts?” He said that he had justified past splurges by telling himself, “Well, I’ve spent money on more frivolous things before.” He didn’t need to see me give him The Look to know that this was not the best way to go forward. I gave him plenty of advice, and here are additional reflections.

I think about spending carefully. If I can spend on the right things, minimize spending on the wrong things, and learn as much as I can from getting it right or wrong, I’ll enjoy better quality of life than I would otherwise. 

One of the techniques I use is something I picked up from Your Money or Your Life (Dominguez and Robin, 1999) – there’s an excellent blog post series on The Simple Dollar for people who want to catch up. I calculate the discretionary value of my time and use that to see if things are worth the time it takes to earn the money for them. One way to do this is by taking your income, subtracting taxes, fixed expenses, and work-related expenses, and dividing it by the number of hours you spend working or preparing to work. I like an even stricter measure. I look at the discretionary part of my bi-weekly savings allocations – that’s after taxes, savings, retirement, and other categories. I divide that by 14 days, so that I can easily get an idea of how much of a typical week, month, or year I might be committing to a purchase. This is actually a small number, because I take so much off the top for savings – less than a dollar per hour, which is why I calculate by day instead. ;) Then I can easily get a sense of how large a part of my year something will take up, and whether I think it will be worth it.

I often write down the options I’m considering and the costs, benefits, and consequences of each. For example, when I was thinking about replacing my laptop battery, I listed the options and estimated the value differences of each. I sometimes do this even for small decisions because I learn so much about my preferences and values along the way. I consider intangibles, too, and I use this technique for non-financial decisions as well. Sometimes I’m looking for a clear winner, and sometimes I’m interested in just writing my thoughts down and seeing what I’m leaning towards.

I also review my decisions to see how things turned out and if I need to tweak things further in the future. For example: clothes from Value Village, yes; compost accelerator, no; watching movie in a theatre by myself, maybe (better if I get together with friends). If something turns out to be really worth it (or really not worth it), then I learn a lot. This also helps me avoid analysis paralysis, because even if I’m not certain about a decision, I’m sure I’ll learn something from it. In fact, the more uncertain I am, the more I’ll learn – a tip I picked up from How to Measure Anything (Hubbard, 2007), which defined a measurement as whatever reduces uncertainty. Your Money or Your Life also encourages people to review their monthly budget and expenses to see which categories they want to increase or decrease depending on what contributes to their life. The practice of reviewing decisions is key to making better ones.

I sometimes nudge myself towards action using the First Circus principle, a family favourite. Not only does this tend to lead to interesting experiences, but this also takes advantage of some psychological biases. We’re more likely to regret things we didn’t do more than ones we did, and we’re also more likely to notice the presence of something (in this case, joy or disappointment) than to figure out the subtler effects of deciding not to do something.

Those are decision-making tactics. Strategy, on the other hand, involves getting a better idea of what I value, enjoy, want to become, want to support, and so on. That’s a great learning adventure, too. The more I learn about what I want in life, the easier it becomes to say no to the things I don’t want and to focus on the things that matter to me (and to the people who matter to me).

It’s all about getting better at making decisions – with money, with work, with love, with life, with everything. You’ll make tons of decisions over time, so developing your decision-making skills pays off tremendously. Money is a good way to practise: a finite resource (particularly if you think of it in terms of time) that you can choose to spend in line with your values.

How do you make spending decisions?

Weekly review: Week ending June 25, 2011

June 25, 2011 - Categories: review, weekly

From last week’s presentation

  • Work
    • [X] Smooth out session creation form for project M
    • [-] Work on Generation C and banking presentation
  • Relationships
    • [X] Attend Linda and Tim’s wedding
    • [-] Organize get-together
    • Gave Gabriel advice
    • Helped J- learn more about persuasion
    • Bought Portal 2
  • Life
    • [X] Join Bells on Bloor
    • [X] Harvest compost
    • [X] Spread compost in front garden
    • [-] Type in five chapters of Latin
    • [X] Have soup and salad every day in order to try to make a dent in the lettuce
    • Made strawberry and rhubarb tarts
    • Made lots of salad
    • Reviewed old blog posts
    • Blogged more pictures
    • Returned webcam

Plans for next week

  • Work
    • [ ] Visit client U to help with Drupal
    • [ ] Work on user registration and profile editing for project M
    • [ ] Help team members on board for project M
  • Relationships
    • [ ] Organize get-together?
  • Life
    • [ ] Sleep earlier

Strawberry rhubarb baking

June 25, 2011 - Categories: cooking

Okay, I was wrong. I guess it’s baking season all year round.

The strawberries from the garden are lovely, red and firm. I’ve baked strawberry shortcakes before, so I thought I’d give strawberry rhubarb tarts a try. Rhubarb is available so rarely – all the more reason to experiment. (I think we’ll plant it next spring!)

Recipe from Joy of Baking:

  • 454g / 1lb sliced rhubarb – the recipe called for 1″ pieces, but I had big chunky field rhubarb, so 0.5″ slices might be better
  • 454g / 1lb sliced strawberries – this one’s a mix of garden strawberries and local strawberries
  • 1/4 cup (35g) all-purpose flour
  • 3/4 cup (150g) white sugar

Mix all ingredients. Fill purchased tart shells or home-made pastry circles (see original recipe). Chill assembled tarts for 15-30 minutes in the fridge. Preheat oven to 400F (200C), with the rack in the center of the oven. Bake for 25-30 minutes until crust is golden. Cool on a wire rack before serving. (The original recipe suggests serving with whipped cream or iced cream, ooh.)

Strawberries from the gardenTart with purchased shellsStrawberry and rhubarb homestyle tart

I liked spending my Saturday afternoon baking, trying out new recipes. It’s a little like going to a cooking class, except much cheaper. =) I shared some tarts with neighbours so that we wouldn’t have too much dessert in the house. (Particularly as we’re still planning to bake brownies too…)

Writing your way past “What have I been doing with my life?”

June 26, 2011 - Categories: blogging, kaizen, life, reflection, writing

One of my friends is dealing with a quarter-life crisis of the “what have I been doing with my life?” variety. Comparing himself to other people or to where he had hoped he’d be at this point, he feels like he comes up way short. I shared some advice, and here are some other thoughts that came along the way.

It’s a common feeling, right around birthdays and other yearly milestones. Where did the year go? Why does time fly so quickly? Look at all these people your age – or younger! – doing incredible things. What have you been doing with your life?

Here’s how I deal with it: I write.

That’s because no matter how good your memory is, your brain’s probably going to be bad at remembering the highlights, lowlights, goals and accomplishments of the previous year. You have to deal with a number of limitations. The recency bias means you remember the most recent items better. That leaves lots of fuzzy areas. And because the brain is optimized for associations, not linear access, you’ve got to have the right hooks to get back into some memories.

Photographs are good, but they can only take you so far. There are a lot of important moments you can’t take pictures of: you don’t have a camera handy, you don’t recognize it at the moment, it’s intangible… Writing – even just a quick sketch, a private note – might help you remember.

Write about your thoughts, your goals, your accomplishments, your experiences, your questions, your answers. This doesn’t have to be public. This doesn’t even have to be coherent, although it helps if you can read your writing afterwards. This gives you a record that you can review at the end of the year to see how far you’ve come.

You don’t even have to wait until the end of the year. Use your writing to remember why your goals mattered to you. Use your writing to celebrate the little victories as well as the big ones. Use your writing to make everything in life part of the story you’re becoming – and yes, that includes the tough parts.

Use your writing to slow down life – not all the way, just enough to make it livable. Not too much. Writing about life means standing at a little bit of a distance from it, so that you can turn it over and look at it from different angles. Might not work for everyone. But for the people it works for – maybe you! – it could turn the quicksilver in that hourglass into something you can work with.

Doesn’t matter if you haven’t been doing it before. Now’s as good a time as any to get started. Doesn’t matter if you keep stopping. Even a spotty trail of stones is better than breadcrumbs in the forest of Hansel and Gretel. Doesn’t matter if you feel inarticulate. Start somewhere.

Don’t like writing for yourself? Tell people stories through e-mail or text messages and keep a copy for your notes. After conversations, jot down notes to help you remember. Ask people to help you recall.

What have you been doing with your life? Probably more than you can remember. =) Make the most of each year, and that’ll help you make the most of your life.

Learning from the speeches of grade seven students

June 27, 2011 - Categories: learning, speaking

As part of the grade 8 graduation ceremony, J- and the other grade 7 students spoke about the students who were going on to high school.

J- was initially unsure about her speech. She didn’t know much about her honoree beyond a few short facts and a couple of stories from her interview. Her speech reflected it: generalities like “nice” and “funny”, and two pieces from the interview that were strung together with little transition.

We helped her edit her speech. She found ways to connect the pieces, trim unneeded words, and become more specific. Larger fonts and more space between lines simplified reading. Slashes helped her find places to breathe and remember to make eye contact. It wasn’t perfect, but it had fewer filler phrases, and it flowed more smoothly than her first draft.

She rehearsed with the cat-tree as an ad-hoc podium. She didn’t drill it endlessly, but she practised it enough to get a sense of how the words felt.

When she delivered the speech, she got laughs – and high-fives, fistbumps, and compliments afterwards.

There’s a beginning, perhaps – that feeling of competence, that “hey I can do this”, the way that the music notes of her favourite songs are beginning to melt into melodies and her writing is becoming more about thought instead of mechanics.

One of the key things in helping people learn, I think, is to nudge people over that hump and into that “I rock” experience, so that they get to the point of being able to enjoy it.

I wonder how more people can get over that hump and enjoy exploring and sharing ideas.

Also, it turns out that you can learn a lot about speaking from watching students. A few of the other speeches drew on clear, personal experiences. Others were delivered confidently and capably. Many echoed a common outline – perhaps the suggested questions from the interview: How long has the student attended the school? What are some characteristics you would use to describe the student? What’s a memory you can share about the student? Students were described with generic adjectives: “nice,” “funny,” “athletic.” Stories were left in the air, with little connection to the beginning or end of the speech. But that’s okay, they’re still learning. (Aren’t we all?)

Worth the time.

2011-06-27 Mon 21:36

Drupal notes from helping a client improve her development environment

June 28, 2011 - Categories: drupal, geek

Keeping a to-do list helps you keep sane. If you don’t have a full-scale issue tracker, use a wiki page, text file, or something like that. It’s really useful to be able to get the list of things you’re working on or waiting for out of your head and into a form you can review.

*Drupal Features help you export configuration into code.* This is much better than creating an installation profile because you can update your features with new settings and apply them to existing sites. Invaluable when working with multi-sites that may need to be updated. You may need to clear your Drupal cache before you see changes applied.

Version control is really handy even when you’re working on your own. The ability to go back in time to a working setup (code + database) can help you experiment more freely and avoid late nights spent recovering from mistakes.

*Drush (Drupal shell) is awesome.* It’s a big timesaver. We use it to download and enable modules (dl and en), clear the cache (cc), run database updates (updatedb), launch a SQL console (sqlc), execute PHP (php-eval), run tests, and so on. I use it a lot because I hate clicking around.

Even more powerful with a little bit of xargs magic so that it’s easy to run a drush command against all the sites. Like this:

cat sites.txt | xargs -n 1 -I {} drush -l {} somecommand

Design decisions: Multisite without shared tables; services or syndication for sharing content between sites; central authentication for admin users…

Bash script to create or clone multisites makes tedious things a little bit simpler. Tasks:

  • Create a database and give access to a user.
  • Create the site and files directory.
  • Create the settings.php with the database settings.
  • Copy the base database into the new database.
  • Create a symbolic link.

2011-06-28 Tue 08:55

Meaning and acknowledgement

June 29, 2011 - Categories: book, education, learning, teaching

J- brought home her report card this week. She did well in so many subjects that it’s hard to pick which strength to build on first. Her mathematics study group sessions and science projects paid off, as did her personal interest in music.

To celebrate her work, W- and I made a colourful card. She likes making greeting cards for us, and it was fun making one for her.

It’s important to acknowledge good work. One time, W- was reviewing J-‘s answers to the math exercises he gave her. “Very good,” he said. He crumpled the finished piece of paper.

I plucked it from his hands and smoothened it out. “Ahem,” I said meaningfully.

“Oops. I tossed the other one already,” confessed W-. I retrieved the previous paper from the recycling bin and uncrumpled it. W- made a point of scoring both papers and adding smileys. J- beamed.

Ah, behavioural psychology at home. You can influence people’s motivation by acknowledging or devaluing their work. In The Upside of Irrationality: The Unexpected Benefits of Defying Logic at Work and at Home (Dan Areily, 2010), I read about experiments that explored how motivated people were if they thought their results were meaningless. As it turns out, people are strongly affected by the immediate perception of the usefulness of their work.

In a task involving assembling Lego figures, participants who completed figures and put them into a box did more and enjoyed the task more than participants whose figures were disassembled right after they finished completing them. Another experiment described in the book involved finding pairs of letters on pages, a small payment scheme that stopped at the 10th sheet, and three scenarios where:

  • people wrote their names on the papers they completed, and they were positively acknowledged by the experimentr
  • people completed and submitted papers with no names and without acknowledgement
  • people submitted papers that were then shredded, unread, right in front of them

49% of the people who were acknowledged went on to complete ten sheets or more, while only 17% of the people whose work was immediately shredded completed 10 or more. Only 18% of the people whose work was ignored completed ten sheets or more.

Verbal acknowledgment of good work is good, but could it be at odds with the physical message of tossing the paper into the recycling bin? Best to be coherent. So the paper is celebrated, labeled, and put into a folder.

W- reminds me of this principle too, when I forget. On the way home from work one day, I brought up how he spent some time selecting and copying items from the workbook onto a piece of paper for J-‘s exercises. “Should we get a workbook without explanations, so J- can test herself?” I asked W-.

“No, it’s okay. Besides, it shows her that I value this,” W- said. “If I give her a workbook so that I can do something else, it’s not the same.”

We invest learning with meaning and value, and that helps.

Context-switching and a four-project day

June 30, 2011 - Categories: drupal, geek, rails, work

Context-switching among multiple projects can be tough. I’m currently:

  • working full-time on one project (a Drupal 6 non-profit website)
  • consulting on another (helping an educational institution with Drupal 7 questions)
  • supporting a third (Ruby on Rails site I built for a local nonprofit, almost done), and
  • trying to wrap up on a fourth (PHP/AJAX dashboard for a call center in the US).

I’m doing the Drupal 6 development in a virtual machine on my system, with an integration server set up externally. Consulting for the second project is done on-site or through e-mail. The Rails site is on a virtual server. The dashboard project is now on the company’s servers (IIS6/Microsoft SQL Server), which I can VPN into and use Remote Desktop to access. I’m glad I have two computers and a standing desk (read: kitchen counter) that makes it easy to use both!

Today was one of those days. I helped my new team member set up his system so that he could start working on our project. He’s on Mac OS X. It took us some time to figure out some of the quirky behaviour, such as MySQL sockets not being where PHP expected them to be. Still, we got his system sorted out, so now he can explore the code while I’m on vacation tomorrow.

In between answering his questions, I replied to the consulting client’s questions about Drupal and the virtual image we set up yesterday. That mainly required remembering what we did and how we set it up. Fortunately, that part was fairly recent, so it was easy to answer her questions.

Then I got an instant message from the person I worked with on the fourth project, the call-center dashboard. He asked me to join a conference call. They were having big problems: the dashboard wasn’t refreshing, so users couldn’t mark their calls as completed. It was a little nerve-wracking trying to identify and resolve the problem on the phone. There were two parts to the problem: IIS was unresponsive, and Microsoft SQL Server had stopped replicating. The team told me that there had been some kind of resource-related problem that morning, too, so the lack of system resources might’ve cascaded into this. After some hurried searching and educated guesses about where to nudge the servers, I got the database replication working again, and I set IIS back to using the shared application pool. I hope that did the trick. I can do a lot of things, but I’m not as familiar with Microsoft server administration as I am with the Linux/Apache/MySQL or Linux/Apache/PostgreSQL combinations.

I felt myself starting to stress out, so I deliberately slowed down while I was making the changes, and I took a short nap afterwards to reset myself. (Coding or administering systems while stressed is a great way to give yourself even more work and stress.)

After the nap, I was ready to take on the rest. The client for the Rails project e-mailed me a request to add a column of output to the report. I’d archived my project-related virtual machine already, so I (very carefully) coded it into the site in a not-completely-flexible manner. I found and fixed two bugs along the way, so it was a good thing I checked.

Context-switching between Drupal 6, Drupal 7, and Rails projects is weird. Even Drupal 6 and Drupal 7 differ significantly in terms of API, and Rails is a whole ‘nother kettle of fish. I often look things up, because it’s faster to do that than to rely on my assumptions and debug them when I’m wrong. Clients and team members watching me might think I don’t actually know anything by myself and I’m looking everything up as I go along. Depending on how scrambled my brain is, I’d probably suck in one of those trying-to-be-tough job interviews where you have to write working code without the Internet. But it is what it is, and this helps me build things quickly.

On the bright side, it’s pretty fun working with multiple paradigms. Rails uses one way of thinking, Drupal uses another, and so on. I’ve even mixed in Java before. There were a few weeks I was switching between enterprise Java, Drupal, Rails, and straight PHP. It’s not something I regularly do, but when the company needs it, well… it’s good exercise. Mental gymnastics. (And scheduling gymnastics, too.)

I like having one-project days. Two-project days are kinda okay too. Four-project days – particularly ones that involve solving a problem in an unfamiliar area while people are watching! – are tough, but apparently survivable as long as I remember to breathe. =)

Here are tips that help me deal with all that context-switching. Maybe they’ll help you!

Look things up. It’s okay. I find myself looking up even basic things all the time. For example, did you know that Ruby doesn’t have a straightforward min/max function the way PHP does? The canonical way to do it is to create an array (or other enumerable) and call the min or max member function, like this: [x,y].max. Dealing with little API/language quirks like that is part of the context-switching cost. Likewise, I sometimes find myself wishing I could just use something like rails console in my Drupal sites… =)

Take extensive notes. Even if you’re fully focused on one project and have no problems remembering it now, you might need to go back to something you thought you already finished.

Slow down and take breaks. Don’t let stress drag you into making bad decisions. I felt much more refreshed after a quick nap, and I’m glad I did that instead of trying to force my way through the afternoon. This is one of the benefits of working at home – it’s easy to nap in an ergonomic and non-embarrassing way, while still getting tons of stuff done the rest of the day.

Clear your brain and focus on the top priority. It’s hard to juggle multiple projects. I made sure my new team member had things to work on while I focused on the call center dashboard project so that I wouldn’t be tempted to switch back and forth. Likewise, I wrote the documentation I promised for that project before moving on to the Rails project.

Breathe. No sense in stressing out and getting overwhelmed. Make one good decision at a time. Work step by step, and you’ll find that you’ll get through everything you need to do. Avoid multi-tasking. Single-task and finish as much as you can of your top priority first.

I prefer having one main project, maybe two projects during the transition periods. This isn’t always possible. Programming competitions helped me learn how to deal with multiple chunks of work under time pressure, and I’m getting better at it the more that work throws at me.

What are your tips for dealing with simultaneous projects?

2011-06-30 Thu 16:19

July 2011

Four-day weekend ahead

July 1, 2011 - Categories: planning

Today is Canada Day. Monday is a floater day for IBMers in Ontario. (IBM uses floater days to balance out the number of holidays across the provinces. Nice, isn’t it?) This adds up to a four-day weekend. You can get a lot done in a four-day weekend.

I make lists of things to do so that I don’t give in to the temptation to spend the time working. Time to review my initial list of unstructured time activities (update focusing on evenings and weekends), maybe think about plans for the summer and long-term plans.

Things to work on:

Chore-day: – just get everything ready for more good weeks:

  • Turn compost
  • Wash clothes
  • Tidy the house
  • Prepare large batches of food
  • Weed the garden, maybe plant another batch
  • Return library books and check out new ones
  • Reset the litter boxes

Other things I can work on:

  • Write a detailed blog post about our experiences with community-supported agriculture
  • Organize files on our server
  • Review old blog posts and write updates; organize thematically?
  • Prototype photo database W- was thinking about
  • Learn how to play Portal 2’s “Still Alive” so that I can help J- learn it
  • Work on Latin digitization and homework

I was thinking about sewing, but I’m fine in terms of clothes, so I don’t particularly need it. Last year, we used these long weekends for woodworking. Shelves and cabinets would be nice, but again, we’re doing pretty well right now.

Organizing and writing, I think. That’s the key. And maybe some more Latin.

2011-07-01 Fri 12:06

How I organize my personal finances

July 1, 2011 - Categories: finance

Update: I found the image!

Mia is learning more about personal finance. She came across my post on my financial network map and virtual envelope system and wanted to know if I had a copy of the image. Unfortunately, I don’t seem to, but it’s as good a time as any to post an update.

What’s changed in the last two years? What have I learned about personal finances?

One of the key things I think people should learn when they’re mapping out how they organize their money and how they want to organize their money is this:

The logical organization of your money doesn’t have to be limited by the physical organization of your money – which bank accounts, which jars full of coins, whatever.

I make my logical decisions first: how much to save, what to save for, what levels of risk to accept. Then I use those decisions to guide how to organize my money: chequing, savings, GICs, investments; registered, non-registered, tax-free, etc.

I use a virtual envelope system to keep track of what I’m saving up for and how much I’ve budgeted for regular expenses. I like this more than a straightforward budget because of the flexibility. If I have a surplus in one category (say, I don’t sew as much), or if I need to spend more in a more important category, I can move money around.

Current envelopes (no particular order):

  • Retirement: maximize RRSP room every year
  • Medium- and long-term investments: non-registered
  • Charity
  • Sabbatical: replace one year of income every 7 years
  • Household
  • Internet: web hosting and domain names
  • Phone: cellphone service
  • Pet care: cat food, vet visits, long-term savings (self-insuring our pets)
  • Travel: visiting family
  • Personal care: clothing, supplies, health, massages, etc.
  • Hobbies
  • Dream: Larger expenses worth saving up for; experiences
  • Play: Miscellaneous expenses

I track almost all my expenses, with miscellaneous cash expenses grouped together if I can’t categorize them properly.

I keep my financial data in plain text files using John Wiegley’s awesome ledger tool. It’s very geeky. I use it because I can quickly answer questions like:

  • How much do I spend on groceries each month?
  • What are the balances in my virtual envelopes?
  • At what prices did I buy my index funds?
  • How much did I make last year after tax?

I use more financial institutions now. It does take me a little bit of time to check on my accounts at all of them, but I think the benefits outweigh the costs. Here’s how and why I use each of them:

  • ING Direct: I’ve been using ING for savings for a while, and I’ve also shifted my payroll direct deposit to the chequing account I created. I use ING because of decent rates on GICs, the ease of creating sub-accounts, and instantaneous transfers between chequing and savings accounts. I don’t want to make it my only chequing account, though, because the bank machine network isn’t as wide as the other banks.
  • PCFinancial: I used to use this as my main chequing and savings bank before I moved to ING. I also used to use this as my primary credit card before I moved to MBNA. I keep these accounts around mainly so that I can withdraw cash easily.
  • TD Canada Trust: I have a chequing account and a USD account here. The chequing account has the minimum balance needed to avoid fees. This account is mainly to make it easier for me to invest at TD (see TD Waterhouse).
  • TD Waterhouse: I switched from TD Mutual Funds to TD Waterhouse so that I could hold investments in my tax-free savings account (TFSA). I have three types of investment accounts here: my non-registered investments, my tax-free savings account, and my registered retirement savings plan. All of them currently hold TD e-funds, but I may shift to ETFs later on.
  • MBNA: The MBNA Smart Cash credit card gets me 3% cashback on groceries and 1% cashback on everything else, beating PCFinancial’s effective 1%.
  • Sun Life: Sun Life holds my defined-contribution pension plan from work. I maximize the IBM match, but I keep the rest of my long-term investments at TD because I get lower management expense ratios for similar index funds there.

Overall, I’m at about 6% cash, 20% GICs, 49% Canadian index funds, 9% US, 9% international, and 7% bonds. 31% of that is in my RRSP. It skews a bit more conservative because of the GICs.

Update: Here’s the old map:

Here’s what that map looks like now:

It takes me 15-30 minutes a week to update my accounts, reflect on my expenses, and review my goals. I like the steady progress.

Good personal finance is boring. ;) It’s mainly a matter of time: saving up, adapting to changes, letting interest compound, learning more… The next thing might be to move money from index funds to ETFs in order to take advantage of the teensy difference in management expense ratios, but it’s no big deal. I’m on track to make my savings target this year. I can’t do anything about the markets, but I can do something about how much I save. We’re getting better at what we spend on, too, as we learn more about what we value and enjoy.

What have you learned about personal finance?

Getting a grip on a large database migration

July 2, 2011 - Categories: drupal, geek

Michael is working on migrating a custom website with hundreds of database tables to Drupal, and he wanted to know if I had any advice for keeping track of table mappings and other migration tasks.

I’ve worked on small migration projects before (including migrating my own blog from lots of Planner-mode text files to WordPress!), but no large projects like the ones Michael described. But if I needed to do something like that, here’s what I’d probably do. I’d love to hear your tips!

I’d list all the tables and start mapping them to entities. What content types would I need to create? What fields would I need to define? How are the content types related to each other? An entity relationship diagram can help you get an overview of what’s going on in the database.

Then I’d start untangling the entities to see which ones I can migrate first. If you have entities with node references, it makes sense to migrate the data referred to before migrating the data that refers to them. If I can get a slice of the database – not all the records, just enough to flesh out the different relationships – that would make testing the migrations faster and easier. I would probably write a custom Drupal module to do the migrations, because it’s much easier to programmatically create nodes than it is to insert all the right entries into all the right tables.

I’d commit the custom module to source code control frequently. I’d write some code to migrate an entity type or two, test the migration, and commit the source code. As I migrated more and more of the relationships, I’d probably check them off or colour them differently in the diagram, making note of anything I’d need to revisit (circular references, etc.).

I might break the custom module up into steps to make it easier to rerun or test. That way, I’m not reconstructing the entire database in one request, too.

I’d take notes on design decisions. When you migrate data, you’ll probably come across data that challenges your initial assumptions. This might require redesigning your entities and revising your earlier migration code. When I make design decisions, I often write about the options I’m considering and the reasons for or against them. This makes those decisions easier to revisit when new data might invalidate my assumptions, because I can see what may need to be changed.

How would you handle a migration project that’s too large to hold in your head?

Fifty kilometers on my bicycle

July 3, 2011 - Categories: Uncategorized

Maira and Scott suggested biking along the Humber river trail, which stretches north-southish all the way up to Steeles. I’d never been along the north part of the trail, and it sounded like a great way to spend the Sunday afternoon. They originally wanted to meet up at 12. It was 11:30 by the time I left. It would’ve taken me too much time to get there through public transit, so I arranged to bike up and meet them at some point along the trail.

The Humber trail is an easy ride with the occasional hill. The only tough parts are that you sometimes need to find the trail again. I got a little lost along the way, but GPS and other people helped me get back on track.

My friends were running quite late, so I ended up leisurely pedaling all the way to the beginning of the Humber trail near Kipling and Steeles. I had my Kindle with me, so I passed the time reading. After we met up, we took the trail south. We overshot Bloor and circled back, emerging at Royal York and Bloor. We headed our separate ways at Bloor, and I made it back home by 4:30pm.

I covered 50km, finished two bottles of water (and wished I’d brought a third), and snacked on one granola bar. When I got home, I had a refreshing shower, then read two books and took a short nap.

So. Biking a long way. I think it’s the longest and farthest I’ve biked semi-continuously. I wasn’t winded afterwards, just a tad wobbly, and W- and I still got plenty of things done the rest of the day. I think it’s more like plugging away at this exercise thing, like perhaps you might on a stationary bike, except that the scenery changes, there’s the occasional breeze, and you really should put on sunblock (which I did). It’s not hard. It’s just being present and keeping your legs moving, and maybe not getting run over by cars on the stretches between the proper trails.

I think it’s amazing being able to bike on a small paved trail clearly in much use – we saw lots of pedestrians and other cyclists – far away from the sights and sounds of the city, yet in the heart of it, and never too far away from help or the rest of the world. There are many other things I can do in five hours, sure, but this is pretty good too.

2011-07-03 Sun 20:25

Embracing Pollyanna

July 4, 2011 - Categories: happy

Happy people are sometimes derided as unrealistic Pollyannas, other people’s way of bringing them down to earth. I’ve heard it from people who don’t yet understand how I can be so optimistic. The dictionary defines “pollyanna” as an excessively or blindly optimistic person. Curious about this, I requested Eleanor Porter’s book Pollyanna from the library. In the pages of this easy-to-read book, I discovered a philosophy similar to the one I live.

You see, Pollyanna’s life centers on the Glad Game that she plays – the game of finding at least one thing to be glad about in any situation. An orphan taken in by her stern aunt, she inspires the town and eventually her aunt into playing this game. Invalids are comforted, quarrels are patched up, life gets better all around. When she runs into her own challenges, the whole town pitches in to help her play the toughest Glad Game she’s ever faced.

I play something like the Glad Game too. Grew into it unknowingly, took it as my own. It becomes easier – almost instinctive – as you do it. In the book, Pollyanna says:

“Why, Nancy, that’s so! I WAS playing the game—but that’s one of the times I just did it without thinking, I reckon. You see, you DO, lots of times; you get so used to it—looking for something to be glad about, you know. And most generally there is something about everything that you can be glad about, if you keep hunting long enough to find it.”

The game I play isn’t quite the Glad Game, though. I don’t stop at being glad. I guess I play the Learn-Share-Do Game. What can I learn from this situation? How can I share what I’m learning? How will I respond – what will I do about this situation? This turns every joy and success into something greater, and every heartache into part of the story.

It’s a blend of the infectious optimism of the 11-year-old Pollyanna and the resolute freedom of the Holocaust survivor Victor Frankl, who wrote this:

Between stimulus and response there is a space. In that space is our power to choose our response. In our response lies our growth and our freedom.

There is no shame in being a Pollyanna, on facing life with conscious optimism and deliberate gratitude. Optimism can be firmly rooted in reality, finding nutrients in its depths, using the rocks of life as anchors.

I play the Learn-Share-Do game. What game do you play with life?

Organizing my digital life

July 5, 2011 - Categories: geek

W- upgraded our file server to a RAID-1 configuration (mirroring without parity or striping) using two 1.8-terabyte disks. Now we can back up and reorganize our files, and set up regular backup routines too. It’s a good time to think about what I want from archives and how I can organize them to improve retrieval and serendipity.

What would a good archive be like?

  • [X] HTML and images of my blog, so that I can browse it and recover even if I mess up my database or my images
  • [X] Database backup of my blog, so that I can restore it more easily – test by setting up virtual host
  • [X] Backup of my whole website
  • [X] Backup of my personal files (organizer.org, outline.org, ledger, etc.)
  • [X] Presentations
  • [X] Photos, sketches, and book notes, organized so that I can browse/search by keywords and other criteria, maybe get statistics
    • Inbox
    • Processed
    • Favourites?
  • [ ] Backup of Twitter/Facebook activity, perhaps using ThinkUp
  • [ ] Database of books I’ve checked out from the library: title, author, ID, start date, end date, and maybe any notes I have (possible link to Goodreads if I can get that working?)

What would good workflows look like?


  1. Copy files off the camera and put them in my folders.
  2. Use Bibble5 to rate the photos and process them.
  3. Export the pictures and upload them to Picasa and Facebook.
  4. Order prints.

Blog posts:

  1. Draft posts using organizer.org in my Emacs, or use ScribeFire to draft graphical posts.
  2. Illustrate them with sketches or photos (optional).
  3. Publish to blog.
  4. Save daily backups of database and monthly backups of HTML.
  5. Print blog dump monthly.
  6. Do a monthly or weekly review of unpublished drafts to see if I can build on them.
  7. Review past years’ blog posts to see if I can build on any.

What do I want to access from my laptop while I’m at home?

  • Personal files / documents
  • 1024×768 versions of sketches and favourite photos
  • Presentations organized by topic?

What do I want to be able to access offline or away from home?

  • Personal files / documents

Hmm, might be worth saving up for a larger hard disk drive for my laptop, too…

How do you get more value out of your archives?

Hacking Drupal views and taxonomy: looking for 100% matching of terms

July 6, 2011 - Categories: drupal, geek

I’m working on a Drupal 6 site that helps match volunteers to speaking opportunities, or sessions. I use Taxonomy to keep track of the qualifications so that I can maintain the qualification hierarchy. Given a list of subject areas that a person is interested in, I need to find all sessions that match any of those subject areas. The quirk: the session must have at least one of the person’s terms, and the person must also have all the session’s terms.

Let’s say that our volunteer is interested in speaking about biology and physics. I couldn’t use a straightforward AND search. If I searched for biology AND physics, I wouldn’t get sessions for just biology. It also means I can’t use a straightforward OR search, because I shouldn’t list sessions that require both biology AND another subject the person hadn’t listed, such as chemistry.

Views didn’t seem to have a built-in way to do it. I couldn’t think of a standard-ish way to describe my challenge in order to find relevant posts on drupal.org. Content recommendation modules seemed similar, but I wasn’t familiar with any of them enough to know which one would be the closest to hack for my cross-type comparisons and 100% match requirements. So it was time to hack my Views query.

After several attempts, I settled on the approach of precalculating how many terms were associated with each session node. I created a table with the information and used the following query to populate it in my install file.

db_query("INSERT INTO {node_term_count} 
  SELECT nid, vid, count(tid) AS term_count 
  FROM {term_node} GROUP BY nid, vid");

I also used hook_nodeapi to update the table on insert, update, and delete operations.

Then I started experimenting through the SQL console. I used COUNT and GROUP BY to find out how many terms the session had in common with the person. Selecting from that MySQL subquery let me filter the list to the nodes where the total number of terms equaled the number of terms the session had. I ended up with a query that looked like this:

SELECT nid, vid FROM (SELECT tns.nid, tns.vid, 
  COUNT(tns.tid) AS match_count, 
  c.term_count FROM term_node tns 
  INNER JOIN node_term_count c ON tns.vid=c.vid 
  WHERE tns.tid in (55, 56, 42, 39, 41) 
  GROUP BY tns.vid) AS result 
WHERE term_count = match_count;

When I was happy with the query, I used hook_views_pre_execute to change my $view->build_info['query'] and $view->build_info['count_query']. With all the other filters I needed, it eventually looked like this:

    $view->build_info['query'] = "SELECT * FROM (
SELECT tns.nid, tns.vid, count(tns.tid) AS match_count, c.term_count, workflow_node.sid FROM node n 
INNER JOIN term_node tns ON (n.vid=tns.vid AND n.nid=tns.nid)
LEFT JOIN workflow_node workflow_node ON n.nid = workflow_node.nid 
INNER JOIN node_term_count c ON tns.vid=c.vid
INNER JOIN content_type_session session ON (n.nid=session.nid AND n.vid=session.vid)
INNER JOIN node school_node ON (session.field_session_school_nid=school_node.nid)
INNER JOIN content_type_school school ON (school_node.nid=school.nid AND school_node.vid=school.vid)
INNER JOIN content_field_session_dates date ON (n.nid=date.nid AND n.vid=date.vid AND date.delta=0)
WHERE (n.type in ('%s')
AND workflow_node.sid=%d
AND session.field_session_request_mode_value = '%s'
AND (n.status <> %d) 
AND (DATE_FORMAT(ADDTIME(date.field_session_dates_value, SEC_TO_TIME(-14400)), '%Y-%m-%%d') >= '" . date('Y-m-d') . "')
AND school.field_school_district_nid IN ($district_where)
AND tns.tid in ($tid_where))
GROUP BY tns.vid
) as result WHERE term_count = match_count AND match_count > 0";

I used variables like $tid_where and $district_where to simplify the query. They use array_fill to create placeholders for the arguments.

Result: I think it works the way it’s supposed to. It passes my unit tests and manual testing, anyway. If performance becomes an issue, I might precalculate the results and store them in a table. I hope I don’t have to do that, though.

Views 3 is supposed to have arbitrary data stores that let you write views on top of any sort of query or function, but I’m going to stay with Views 2 for now.

Whenever I write about stuff we’re doing with Drupal, I often hear about even awesomer ways to do things. =) Is this one of those times? Is there a little-known module that Does the Right Thing?

Planning for summer

July 7, 2011 - Categories: education, life, planning

J-‘s now on her summer break. We’ve been thinking of ways to help her use her summer well. There’ll be time for unstructured play and for hanging out with friends, of course, but it’s also good to help her develop initiative and life skills, fighting the temptations of video games along the way.

Both W- and I are working through summer because we’re saving our vacation days for Kathy’s upcoming wedding, so J- will need to be self-driven. She’s pretty good at dealing with the inevitable what-do-I-do-now moments (and we all get those, if we’re lucky). She often practises piano or ukulele, reads a book, or hangs out with friends. We can help by setting some challenges, nudging her to work on mastery or life skills, and giving her feedback on how she’s doing (such as for writing or math exercises).

Overall plans for the summer:

  • Read
  • Practise music
  • Hang out with friends
  • Prepare for next school year
  • Work on life skills

It’s often easier to pick from a list than to think of something to do in the moment, so here are some ideas for things to do:


  • Swimming
  • Biking
  • Exercising
  • Running, playing in the park


  • Reading a book (critical reading – maybe discussion at dinner?)
  • Working on reading exercises
  • Working on math exercises
  • Going to the library


  • Drawing (comics, sketches, etc.) – maybe put together a sketchbook or comic book
  • Writing notes, stories, and so on
  • Playing the piano or the ukulele
  • Visiting the AGO, the ROM, the science centre, etc.
  • Taking pictures
  • Exploring arts and crafts (ex: collage, sculpting)

Life skills

  • Learning how to cook
  • Making life better: cleaning, tidying, looking for ways to improve, etc.
  • Volunteering (Free Geek?)
  • Learning life skills: taking public transit, biking, etc.
  • Negotiating/persuading


  • Hang out with friends
  • Play video games (time-limited?)
  • Play board games

We’ll encourage her to add to this list, too.

We like the way her school uses rubrics to make it clear what excellence looks like. We’re not planning to use one to grade J- for her summer work – grading summer! what a thought – but it might be useful to work out one with her so that she can self-evaluate how she’s spending her time and so that she can motivate herself to push her limits. W- and I thought about the process first so that we can guide her through planning her own. Here’s the draft W- and I came up with:

Category 1 2 3 4
Physical Sat on couch all day / stayed indoors Basic calisthenics Extended physical activity Stretching your limits
Mental Played video games all day / watched TV all day 1 unit of work 2 units of work 3 units of work
Creative No creative output Drew / wrote / practised piano/ukulele / etc. Memorized part of a song / New story/comic/drawing to share Discussion of work
Life skills Mess Cleaned up after self Cleaned up after cats Made life better / cleaned up after others
Technology Played video games or surfed the Internet all day Practised IT skills (typing, presentations, etc.) Created something using technology and shared it with us or others Learned something on your own / experimented with tools

Thinking of ways to build scaffolds for J-‘s learning through these lists of ideas and rubrics for self-evaluation inspires me to make some of these for myself, too.

What would my discretionary-time activities look like?


  • Biking
  • Exercising
  • Gardening


  • Reading a book, maybe blogging notse
  • Improving development skills


  • Drawing – sketches, presentations, etc.
  • Writing notes, stories, blog posts
  • Playing the piano
  • Visiting the AGO, the ROM, the science centre, etc.
  • Taking pictures

Life skills

  • Preparing a new recipe or experimenting with a familiar one
  • Making life better: cleaning, tidying, looking for ways to improve, etc.
  • Learning how to drive

What would a rubric for myself look like?

Category 1 – minimal 2 – acceptable 3 – good 4 – awesome
Physical Sat and worked all day / stayed indoors Worked at standing desk / did some gardening Turned the compost / exercised Exercised for hours
Mental Did OK at work Solved new problems or built new functionality at work Read one or more books Worked on learning a new skill / Shared what I was learning
Creative No creative output Blogged / practised piano Created and shared pictures or sketches Learned a new technique / memorized part of a song
Life skills Mess Cleaned up after self Cleaned up after others Made life better

In an imperfect world

July 8, 2011 - Categories: life, reflection

Quinn wanted to know how I respond to systemic injustice, wicked problems, and other things that are so far beyond individual scale that they tend to reduce people to helplessness.

I used to be paralyzed by these thoughts. I fumbled with class divides, marked as privileged by language and accent and access. I avoided relationships because I worried about the statistics showing discrimination against married women and mothers. I felt torn apart by guilt over being part of the brain drain, tempted to think of what-ifs.

I’m learning to pick my fights and focus on doing the best I can.

So, yes to… Even though it will probably be much harder to…
Pursuing my passion for code and writing, despite knowing that there are scary people out there Deal with such people if they make me a target
Blogging about what I’m learning, sharing whatever I can Contribute to open source code while at IBM (it’s doable, but there’s quite a bit paperwork ;) )
Both my husband and I keeping our names, and to always phrasing it as decisions we both make for ourselves Go with non-patrilineal naming for children
Promoting equality through avoiding deemphasizing motherhood and emphasizing parenting, valuing homemakers and caregivers, and appreciating people who choose not to have children Deal with gender-role assumptions, subtle professional discrimination against mothers, and ageism in technology careers
Managing my finances myself and resisting the pull towards consumerism get everyone to live below their means and manage their accounts reasonably
Microlending and encouraging entrepreneurship Get people to self-start, or solve systemic biases against the poor
Living as full a life as I can with W- Deal with the occasional biases against and the certain challenges of a relationship with a large age gap
Making the most of where I am and helping other people get started Move back to the Philippines and make a bigger difference there
Working reasonable hours at full capacity and investing in building a full life as well Change the work-life expectations for executives or startups

It isn’t about solving the world’s problems. It’s about facing the world lovingly, finding unknown depths of energy in yourself so that you can keep on going even if life challenges you.

Here’s something from people wiser than I am:

The bodhisattva vows to save all sentient beings, but that is not a
goal in the relative sense. The bodhisattva realizes that what she is
saying in that vow is completely impractical. You can’t really do it.
We see this from the mythical story of the great bodhisattva
Avalokiteshvara. He had a literal mind in the beginning. He took that
vow, “Until I save all six realms of existence, I will not attain
enlightenment.” He worked and he worked and he worked to fulfill his
vow. He helped beings, and he thought he’d saved hundreds of millions
of them. Then he turned around and saw that an even greater number
than he had saved were still suffering, and he had flickers of doubt
at that point.

At the beginning, when he took that vow, he had said, “If I have any
doubts about my path, may my head split into a thousand pieces.” This
vow came true at this time. His head began to fall apart. He was in
tremendous pain of confusion, not knowing what he was doing. Then,
according to the myth, Amitabha – a great buddha of compassion – came
to him and said, “Now you’re being foolish. That vow you took
shouldn’t be taken literally. What you took was a vow of limitless
compassion.” Avalokiteshvara realized that and understood it. Through
that recognition, he became a thousand times more powerful. That’s why
the iconographical image of Avalokiteshvara often has twelve heads and
a thousand arms. You see, once you take the meaning of saving all the
others literally, you lose the sacredness of it. If you’re able to see
that compassion applies to every situation, then compassion becomes

… The path is what there is to work with, and that work is there
eternally, because sentient beings are numberless, and we have to work
with them eternally.

Trungpa, Gimian, and Kohn’s Work, Sex, Money: Real Life on the Path of Mindfulness (p73-74)

Sometimes it feels like the world rolls backwards faster than we Sisyphi can push it up. That’s okay. We get better and better at making little differences. We get better at making bigger and bigger differences. There’s no game over. There’s no happily ever after. There’s just the constant work and growth of being human.

Sometimes I roll backwards faster than I can push myself up. I forget something. I ignore someone’s needs. I make mistakes. But if I can keep focusing on small things I can do to move forward instead of trying to keep score over the entirety of things, then it’s easy to find the energy to start again.

The world also rolls forward, unexpectedly, through no effort of our own. Keep an eye out for those moments. The world is full of things that aren’t right, but it’s also full of things that are.

Thinking about activities to share with others

July 9, 2011 - Categories: analysis, kaizen, life, reflection

Over the past two weeks, I had been planning to go see Hugh Jackman’s concert with some friends. Apparently, he can sing quite well.

I found myself hesitating even as I juggled coupon codes and RSVPs. With a week to go and seats selling out, I ended up deciding not to go. I realized that I’d rather spend a quiet evening with W- or by myself than watch a concert.

One of my friends really wanted to go. He asked me if there was anything stopping W- from watching with us. I replied that it wasn’t really W-‘s kind of thing. Come to think of it, concerts aren’t particularly my kind of thing either.

That made me think about what activities I might share with friends, and about introversion and friendship.

It’s easy to reflect on this because J- provides good contrast. She’s on her summer break. At 13 years old, she’s independent enough to choose her own activities, such as sketching at home or walking over to friends’ houses. She’s comfortable spending time on her own, but she lights up when she hangs out with friends. Not a day goes by without a get-together.

I remember being a bit like that: enjoying lunch with friends at school, inviting people to our house for snacks, suggesting things to do and movies to watch. But I’m also really comfortable by myself or with W- and J-, so it takes effort to organize or go to get-togethers.

Time to break out a tool that I sometimes use to help J- think of ideas: the list. If I think about activities I can share with other people, then it might be easier to get out there and do it, and it might make it easier for other people to share activities with me.

Some ideas:

  • Concerts and symphony performances: Probably not. They tend to be more expensive, too.
  • Musicals: Very rarely. I enjoyed “Evil Dead” and “Wicked” greatly, and sprung for the awesomest tickets I could get. Other musicals tend to be .
  • Opera: I like opera. Watching opera makes the music come alive for me. I prefer community opera by the Toronto Opera Repertory over the Canadian Opera Company. Maybe it’s the memories (the particularly awesome date with W- that kicked all of this off). Maybe it’s knowing that the singers are doing this on top of their other lives.
  • Movies: Hmm. I watch some movies in theatres because I want to vote for them with my dollars or because I think the theatre experience will be worth it (usually great effects or decent 3D). Watching a movie is a fairly passive sort of experience, though.
  • Movies at home: I much prefer watching movies at home, actually – a cat or two on my lap, subtitles, the ability to pause it whenever, a comfortable couch, maybe laundry to fold… The library is awesome.
  • Exercise: Biking. Walking around. I’d be up for that, even if biking involves relatively little conversation unless there’s some sort of picnic.
  • Cooking: Definitely. I wish more of my friends organized potlucks, or were up to coming over for one. In the meantime, I host tea parties as an excuse to prepare interesting recipes. I enjoy the process of cooking, particularly when I’m sharing it with other people, and I like sharing the results.
  • Writing/reading/drawing/sewing: I think it would be really cool to share more of my learning activities with friends. I might be up for a book club, for example. Or a writing group with exercises. Or drawing lessons. Or sewing lessons, although I’m more keen on writing, reading, and drawing. =) I’d much rather develop skills than consume experiences.

It’s a little weird working on understanding this. J- plans the other way around: she calls people and invites them to hang out, and then they figure out what to do. I feel the influence of my introversion here. I often prefer to spend time writing (look! here I am) than hanging out.

I suspect it’s good to put myself in the way of learning from other people’s lives, though, especially since many people share their lives in conversation and not online. Maybe it’ll come in time. (I’m starting to have parent-y conversations about summer enrichment!)

What activities do you share with other people?

Weekly review: Two weeks ending July 9, 2011

July 10, 2011 - Categories: review, weekly

Ah, holiday weekends. Forgot to do my review last week. =)

From the other week’s plans

  • Work
    • [X] Visit client U to help with Drupal
    • [X] Work on user registration and profile editing for project M
    • [X] Help team members on board for project M
    • Also worked on project C – more small improvements
    • Got lots of stuff done for project M
    • Applied Drupal theme from design company
  • Relationships
    • [/] Organize get-together? Tentatively planned for July 15
    • Biked along Humber trail with Maira and Scott
    • Helped J- with homework and summer planning
    • Started drawing exercises with W- and J-
    • Got back into Latin
    • Answered blog questions
    • Hung out with in-laws and J-‘s friends’ parents
    • Checked out Free Geek as a possible volunteer opportunity; looks interesting
  • Life
    • [-] Sleep earlier: Ah, Portal
    • Organized my files
    • Backed up my photos

Plans for next week

  • Work
    • [ ] Project M: Tidy up user registration, get clients to start testing
    • [ ] Project M: Implement more reports
  • Relationships
    • [ ] Host get-together
    • [ ] Help mount new cabinets
    • [ ] Work on inventory app for mom
  • Life
    • [ ] Do some more gardening

Monthly review: June 2011

July 11, 2011 - Categories: review

June was a good month for health-related experiments. The community-supported agriculture box meant that we had lots of vegetables in the house. I joined several long bike rides, getting plenty of exercise. Sun + warm weather = garden growing at full speed, although my lettuce has bolted. At work, I dived back into Drupal development. I’ve been working from home almost all the time because I really like the standing-desk set up I’ve got at home – our kitchen counter, which is conveniently close to water and snacks. Good things all around.

July is shaping up to be a great month too. Summer’s heat means more ice cream and less baking. I’m fascinated by the way my social interactions are shifting: I’m growing more and more comfortable talking about grown-up things (what J-‘s learning this summer; what W- and I are working on), and I get together less frequently with my old circles. Work is chugging along nicely. It’s a good month to practise managing the pipeline of opportunities, too, so that I can move from one engagement to another without many hiccups. Onward and upward!

Blog posts in June:






On cherry tomatoes, frugality, and wanting

July 12, 2011 - Categories: life

[Tomatoes]We spent Saturday afternoon hanging out with W-‘s brother and his family, as W- was helping them move the fridge. Over the post-fridge-moving barbecue, his brother Morgan and I were chatting about gardens. I confessed that I grew cherry tomatoes because I can’t stand paying the premium for them at the supermarket.

Morgan pointed out that we make enough for me to buy cherry tomatoes if I want them. He said that when he craves steak, he goes out and buys it.

I can always want different things, I said. If cherry tomatoes aren’t ripening in our garden or on sale at the supermarket, I can get regular tomatoes, or other fruits and vegetables. I generally don’t crave things. It’s great to dig into a freshly-baked pan of lasagna or munch a sweet strawberry, but I can eat whatever fits the season or circumstance.

Moving to Canada from the Philippines helped me learn that, actually. I missed mangoes and cantaloupes like I missed colours in the desaturation of winter. No market here stocks anything like my remembered summer treats: green mango shakes, ripe mangoes at breakfast, melons scraped into strips and made into juice. Now they are rare treats, something to look forward to on our infrequent trips back to the Philippines.

Instead, I’m learning to like what I can get. Strawberries, then cherries and blueberries, then firmer fruits like peaches and apples. Sugar peas and cherry tomatoes when they’re fresh from the garden, basil and dill likewise. Now the blueberries at the front are starting to darken, and I can’t wait to see what they’ll be like. (Taking the risk that I might be convinced to never buy blueberries again…)

With practice, it becomes easier to follow the seasons and sales. We find more recipes for making use of the kale and zucchini that show up in our agriculture box, get better at using up the bits and pieces, develop routines for filling up the freezer with ready-to-go meals. In fact, the community-supported agriculture box is an interesting experiment: it removes choice and forces us to be even more creative.

So here it is, and I wait for the first proper cherry tomato of the season. I can buy them any time I want, but I find that I want other things instead while waiting. =)

Love, web development, and imaginary friends

July 13, 2011 - Categories: geek

There’s an interesting thing here I’d like to explore: love and web development. (If only because you’ll probably never see Joel Spolsky write about it from this perspective…)

Not passion. Love.

Passion gets all the press. Web development has plenty of opportunities for clever hacks and technical brilliance.

This is a quieter thing. It has to do with why I develop and where I find the energy.

On all the projects I’ve had the pleasure of building with IBM, I’ve been able to build sites for friends. Well, not quite. Most of the time they don’t know they’re friends. There’s nothing stopping me from imagining they are. Sure, I’ll put my business hat on when negotiating requirements, but when I’m in the groove of development, I build for specific people.

Sometimes it’s frustrating. This week I worked my way through a twisty, tangled bug in an app I’m building for a local nonprofit. It was one of those embarrassing “I can’t believe I didn’t come across this when I was testing it myself” bugs, too, of which I still have far too many. You know that feeling when you disappoint someone? It sucks, even if they don’t know it. I’m getting better at pushing aside the self-recrimination and ignoring that feeling of being so limited, focusing instead on moving forward, holding on to this idea of friendly encouragement. One step at a time. I’m learning, too.

It’s hard to be patient. I want to get things to people quickly. Sometimes I miss things. I’m working on getting better at placing myself on the other side of the screen, seeing any rough edges, then coming back out and sanding those off.

When it rocks, though, it rocks. Then the work is also a gift, a little change in someone’s life. Maybe even many people’s lives. I’m looking forward to learning how to make it rock more.

Another thing I’m learning: taking that energy and applying it to a team. I want them to do awesome. I want them to feel awesome doing it. I’m still learning a lot about planning and coordinating, but hey, it’ll probably only get better from here.

Maybe someday code will just be code, but I hope not yet. The time is going to pass anyway, and the work will need to be done one way or another. It’s better for me to care than to not care.

I’m moving past the imposter syndrome – hooray for experience – but there’s still “wish I was even better than this; oh well, learning opportunity” to get through. Maybe sharing this will resonate with people, help you feel you’re not alone. When you look at code, do you see people too?

The first blueberries from our garden

July 14, 2011 - Categories: gardening

The blueberries are so shockingly flavourful that I wonder what the local supermarket has been selling us all this time.

Another garden milestone: We’re growing and enjoying our own blueberries. The nets were a great idea. I can see why the birds and squirrels didn’t leave us any berries last year. Now I want to edge the backyard in blueberry bushes.

Blueberry blueberry blueberry.

The cherry tomato plants are hitting their growth spurt. I’ve got two that I bought, four that I started, and three that just volunteered in the garden. No flowers yet, but we’ll get there eventually.

Blueberries, strawberries, tomatoes, basil, peas. I wonder what other garden joys I’ll discover.

A zucchini a day keeps the vegetable drawer okay

July 15, 2011 - Categories: cooking

This community-supported agriculture experiment has surprising benefits. I’ve eaten more zucchini in the past week than I have in the preceding year. It’s the combination of:

  • loss aversion: powerful force in behavioural psychology
  • lack of choice: commitment device; also makes surprising contributions to happiness – people feel unhappy when overloaded by choice; I know I sometimes blank at the supermarket, and my lists are sub-optimal because they focus only on a small set of produce
  • thousands of Internet pages dealing with zucchini recipes: because lots of other people have been in the same boat

The other day, I made zucchini fritters. Today I decided to make zucchini pancakes. I mostly followed the recipe, except for the following moments:

  • “Soy milk? I’m fine with dairy, so I’ll just use regular milk.”
  • “Ground flax seeds. Hmm, I can do that… <grind grind grind> ARGH, this is taking forever! I’ll just add some egg replacement powder.”
  • “Honey… Hey, that’s not vegan. Fortunately, we don’t have any dietary restrictions. I wonder if it works with crystallized honey…”

Result: W- woke up to a yummy and filling breakfast. He said, “Is it the weekend already? Did I sleep all Friday?”

I like zucchini pancakes more than I like zucchini fritters. This zucchini brownie recipe I’m trying needs some work, though. It’s a bit dry and crumbly. I hate to admit it, but I think it needs more zucchini. Then again, I didn’t quite follow the recipe for that one. The other two zucchini turned out to be cucumbers, so this batch has just one zucchini. I’ll try it again with the next CSA batch. (Because there’s always more zucchini…)

Zucchini zucchini zucchini. Slowly getting the hang of this!

Cake was not a lie

July 16, 2011 - Categories: cooking



Cucumber sandwiches. Chocolate cake. Burgers. Poutine. Free-flowing conversations that bring out all sorts of awesome things I didn’t know about my friends. Mmm.

Cucumber sandwiches, roughly based on this cooks.com recipe:

  • Peel 2 medium-sized cucumbers (or 1 large cucumber) and remove the seeds. Grate it.
  • Mix the cucumber with 1 tsp salt. Put it in a strainer, put the strainer in a bowl, and keep it in the fridge for at least 1 hour.
  • Mix a softened 8-oz package of cream cheese, 1/2 tsp Worcestershire sauce, and 1/2 tsp garlic salt.
  • Stir cucumber into the cream cheese mix. Spread on buttered bread.
  • Refrigerate until ready to serve.

The chocolate cake was roughly based on the Portal recipe, except I was out of whipped cream, so I didn’t do the white dollops with cherries on top, or the candle. So it was really more like Black Forest cake. 

I always stress out in the lead-up to these get-togethers. Is the house reasonably clean? (“I promise, this kitchen was clean-ish before I started frosting this cake…”) But then people come, and the conversation gets going, and it’s awesome.

Catching a break before I clean up the kitchen. Happy.

An elephant love story: Real stories of Manila Zoo

July 17, 2011 - Categories: life

I retell this story for my dad, whose stories about Maali and the zoo are mostly on Facebook and harder to get to for people who aren’t already one of his more than 4200 friends. I’ve edited it for clarity and storytelling, but you can read the original thread if you connect with him on Facebook. I’ve also added a few editorial notes.

Papa, Maali the Elephant, and me

Photo (c) 2010 John Chua – All rights reserved, used with permission

From my dad, John Chua:

I am a photographer and I would rather have my photos speak for themselves, but I need to tell Maali’s story.

I don’t own the elephant. I came to know Maali in 2001, when my daughter Kathy volunteered at the zoo. She loved animals and wanted to help. As a father supporting the dreams of his daughter, I went to Manila Zoo and helped convince the Zoo director to have these yo