June 2, 2018

Bulk view

May 2018

  • Field trips: We made it out to Riverdale Farm, the Science Centre, and High Park Zoo. We also made it all the way out to Hamilton while hanging out with Jen and E-.
  • Gross motor
    • We’ve been practising going for walks in the neighbourhood. A- can walk to the supermarket or the playground now, although I usually need to carry her on the way home.
    • She enjoyed building sandcastles and swinging across the monkey bars with help.
    • A- has been practising rhythmically swinging her feet back and forth on the swing.
  • Fine motor
    • So much scissors practice!
    • A- wanted me to trace her feet, her hands, and her arms.
    • A- was interested in pushing and stacking large pegs at the OEYC.
    • A- had fun wrapping tape all around a column of Duplo blocks. She passed the tape from hand to hand and around all by herself.
  • Language
    • A- asked for and made up stories about everyday objects.
    • She referred to herself by a nickname and corrected me a few times.
    • A- is learning how to ask questions instead of just declaring that she wants something. “Can I have this?” She’s getting better at thoughtfully asking about other people, too.
    • A- and I took turns telling a story that ended up like this: “Once upon a time there was a little girl named A- who wanted to nurse. So her Mama set a timer.”
    • A- talked about something she wished we bought a few months ago: “I have no stars. I have a star at IKEA.”
    • A- lined up random magnetic letters along their baseline.
    • “I did not caught the ball.”
    • “Oh no, hair. That is from you.”
    • “I don’t know what that is.”
    • I made a quick book about going to the hospital, and one about babysitters.
  • Self-care
    • We’ve been trying lots of playful tactics to get A- to let us brush her teeth. Improvising silly songs, involving her toys, and playing dentist seem to work.
    • We went to Sick Kids for A-‘s dental surgery to repair cavities in her top four teeth.
    • Afterwards, we hung out with Popo and R-.
    • A- was okay with drinking 1.5ml infant Tylenol diluted in two small glasses of smoothie.
  • Emotion
    • A- got a little anxious about Mr. Potato Head and a monkey puppet.
    • A- wanted to play with dolls, and she wanted me to put on a hand puppet.
    • A- didn’t want to go to sleep. After trying to insist for ten minutes, I decided to give her suggestions a shot. We went downstairs, played a bit, and even practised a lot with scissors. Surprisingly focused time. Maybe I should trust her a little more when it comes to sleep.
  • Household
    • A- dropped a lot of breadcrumbs on the kitchen floor. Unprompted, she got her broom and tried to sweep it up.
    • A- and I made muffins, blueberry scones, and red bean buns, which we’ve been sharing with the neighbours.
    • A- wanted to water the lawn with the hose.
  • Social
    • We’ve been experimenting with having a babysitter over one afternoon a week so that A- can interact with people who are not me. =) A- handles the transition well, and I can usually get around two hours of focused consulting time. We’ve picked up a few new games to play, too. I’ve been working with a babysitter agency so that I don’t have to worry about scheduling or screening, and I might experiment with having an independent babysitter once we have more experience.
    • A- has started getting curious about other kids’ toys in the sandbox and wanting to borrow stuff. She often asks me to ask, and I also nudge her to try asking.
    • J- stepped in for emergency child care during my dentist appointment, since the independent babysitter cancelled the day before.
    • A- was okay with going to the JFRC, and even stayed there all afternoon one time.
  • Pretend
    • I stuck a twig in a sandcastle and pretended it was a flag, and then A- repurposed it to be a candle on a birthday sandcake.
    • A- liked helping her toy dinosaur have a bath, brush teeth, wear its conformer, and read a book. She happily took her turn, too.
    • A- loved pretending to order food from a restaurant.
  • Cognition
    • We stayed at the JFRC all afternoon. She played with cars and paint, a matching puzzle with three sets of 18 photos, and a playdough press. She even played with a facilitator while I interviewed a babysitter.
    • A- had fun spotting the cat in the Plume book. I think she’s starting to appreciate incomplete images.
    • A- paid lots of attention to stop signs and stop lights, and even insisted on following them while on the sidewalk.
  • Kaizen
    • We set up the sprinkler and the timer to help us grow grass in the backyard, and the grass has been doing quite well.
    • I worked on automatically filtering, categorizing, and formatting my journal entries.
    • We got a shopping trolley from Ikea so that we can easily carry more supplies.
    • I tweaked my Memento Database workflow to make it easier to edit the CSVs on my computer in case I have time.
    • I stayed up late to compare the numbers for hiring an experienced babysitter directly or through an agency. Along the way, I developed an appreciation for using Calc’s fsolve with org-babel. Nice way to quickly solve an equation.
    • I set up Google Pay and tried it out at the supermarket. It’s pretty handy.
  • Us
    • J- made chickpea masala. It was yummy!
    • I checked out Persona 5.
    • Lots of gardening: basil in the boxes, peas, tomatoes, and chives in the ground, more seeds started, and thyme and tarragon out back. W- has been putting a lot of work into the backyard. He built a ramp for the shed, a platform for the sprinkler, and three planter boxes.
    • Slowly getting back into consulting.

Thoughts for June:

  • Music classes start up again, so we’ll see about waking up early.
  • I might experiment with requesting the same babysitter again so that we can see what that’s like.
  • More neighbourhood walks, too, I think.
  • Maybe potty training?

Week ending 2018-06-01

  • Fine motor
    • A- carefully cut freeform spirals out of paper, turning the paper with one hand while cutting with the other. She also occasionally did a good job of following curves drawn on the paper, or cutting around drawings. She learned this from W-.
  • Language
    • “I did not caught the ball.”
    • “Oh no, hair. That is from you.”
    • I made a quick book about going to the hospital.
    • “I don’t know what that is.”
  • Self-care
    • Playing pretend dentist let me brush A-‘s teeth frequently.
    • A- didn’t want me to change her diaper, so I cheerfully changed Giraffe’s diaper. Then she decided it was her turn.
    • We went to Sick Kids for A-‘s dental surgery. Afterwards, we hung out with Popo and R-.
    • A- was okay with drinking 1.5ml infant Tylenol diluted in two small glasses of smoothie.
  • Household
    • A- wanted to water the lawn with the hose.
    • A- gently watered the seedlings.
  • Social
    • A- experimented with her excited voice and her normal voice.
    • A- was okay with this week’s babysitter, but she wasn’t as engaged as she was with other ones. She was a little more attached to me, and she wanted to end the babysitting session half an hour early. She kept saying, “Bye bye Priscila. Priscila go home.”
  • Pretend
    • A- liked pretending that she was stuck under the laundry basket.
  • Us
    • W- built more planter boxes. He planted thyme and tarragon.
    • I edited some text for my mom.
    • J- made creamy pesto pasta bake and a warm shrimp salad.
    • I realized that it’s okay to enjoy this moment as it is, instead of thinking of it as preparation for something else.

2018-04-02 Emacs news

Links from reddit.com/r/emacs, /r/orgmode, /r/spacemacs, Hacker News, planet.emacsen.org, YouTube, the changes to the Emacs NEWS file, and emacs-devel.

Monthly review: November 2017

The biggest thing this month was potty training. We decided to postpone the pantsless approach recommended by the Oh Crap Potty Training book until life had settled down after our September trip, and that time had come. To my surprise, A- took to it readily. There were a few accidents at home, but nothing that couldn’t be mopped up with the towels and cloth diapers we kept handy. She’s now pretty good at going to the potty, especially if I trust her to know her own cues instead of prompting her too much. She refuses to wear diapers for naps or bedtime, and she often refuses clothes, too. We spent most of November at home, and we’re slowly gaining the confidence to go further afield.

Another big thing this month was reading Dr. Seuss. She loves The Cat In the Hat, The Thinks You Can Think, I Can Read With My Eyes Shut, and One Fish Two Fish, and will say bits of the books as we read to her. She also likes prompting us to recite snippets throughout the day, so I’ve memorized large chunks of the books too. The Cozy Classics versions of Emma and Pride & Prejudice occasionally get requested at bedtime, and several rounds of Goodnight Moon too. All that reading means bedtime is an extended affair, but that’s all good.

Lots of new words from books, and plenty from everyday life too. A- often asks me to wear my gloves or oven mitts and “catch” whatever she names. She uses three-word sentences such as “all full bubbles” or “E- poo diaper.”

She’s interested in number words and in counting with her fingers. She seems to also matches up sets. When I doled out one scoop of cat food each for the two cats that were there, she named the cat who wasn’t and she asked me for another scoop of cat food. She thinks about the sizes of bags when nesting them, too.

There were a few days when “streetcar” was her favourite word, so we rode streetcars up and down all afternoon. I still didn’t break even on the transit pass I bought for the month. Between that and the classes we haven’t been able to make it out to, I’m getting better at ignoring sunk costs and focusing on what’s better for us in the moment.

She’s learning to play more independently. By far, her favourite activity is “shopping” for groceries with the bags in the kitchen and putting everything away afterwards. Our pantry gets randomized, but it’s worth it. Sometimes she wants me to help her, and sometimes she enjoys doing things by herself. I usually tidy up nearby while she plays, although one time I even managed to do a bit of consulting.

To balance that, A- occasionally enjoys being “baby A-,” asking us to feed her, flopping down for ” tummy time,” and recreating scenes from baby pictures. It’s fun (and good) to follow her lead as she negotiates this transition, so we do.

We’ve been stepping up housecleaning and decluttering, which is good. We spend most of our time in the kitchen or in A-‘s room, so I’ve been focusing on those areas. I wonder how I can make the living room more inviting. I prefer the kitchen myself, but it’s good to have more space for play.

Lots of consulting this month, since there’s a major upgrade in the works. I’m pleasantly surprised by my ability to do useful things in small, interruptible chunks of time. The rhythm I set up for my late-night discretionary activities seems to be mostly paying off, although of course sometimes A- has other plans.

I filed my corporate taxes, yay! This year, I decided to move my accounting from QuickBooks + Turbotax to Ledger + MyTaxExpress (under Wine), giving me another reason to stay in Linux. It took me a while to figure out what to do about foreign currency transactions and to get all the numbers on the tax form to add up properly, but now my books make sense. I can use version control on my ledger, too.

December will be mostly about consulting, paperwork, and the upcoming trip. For A-, maybe we’ll focus on self-dressing, and on setting up her environment for more autonomy and learning. Hmm….

Monthly review: June 2017

First steps! A- needed both hands in order to carry a small basketball, so she picked it up and tentatively walked a few steps independently. She has tried it out a few more times since then, although she mostly prefers to hold our hands while walking.

A- got a larger conformer. She cried for an hour while we waited for the ocularist to do his thing. I took her for a blood test on the same day, too, so it was a hard day for her. We managed, though. A- also got tooth #7 (bottom left lateral incisor), so she’s been a little out of sorts.

Lots of enrichment this month. We completed eight sessions of toddler music classes at the Royal Conservatory of Music. I picked up lots of new songs and rhymes. A- got better at tapping rhythmically, and she also got the hang of sitting down and standing up at the right spots in Ring Around the Rosies. She even warmed up enough to walk around along with me, picking up the pace when the music was faster. Nilda also suggested painting and playdough, both of which A- enjoyed. I sent A-‘s first batch of paintings to my parents in the Philippines so that they can enjoy a fridge art exhibition too. We’ve been going to the ROM

A- has been showing a keen interest in things around the house. She likes pulling a chair up to the sink to help us with the dishes. She collected weeds and maple seeds from the garden and put them into the bin we use for compost. She likes imitating us, and is quick to pick up new gestures.

It’s easier to feed A- a variety of food now. This month, we found out that she likes gyoza, watercress, ham, pepperoni, cherries, bell peppers, and blueberries. She’s not too keen on mangoes yet, but that’s okay. We’ve been enjoying more fruits and vegetables, too. Yay, summer!

A- got a little more comfortable with independence this month. She’s getting better at sleeping without being latched on, and staying asleep even after I take her out of the carrier. The tips I picked up at the Early Abilities orientation seem to have helped in terms of modeling play. She crawled through a very short tunnel at the OEYC. She liked standing on a stool and playing with the paper dots at the JFRC. She played with J- and Y-, which freed me up to do a few quick things around the kitchen.

Nudged by one of my readers who’s also interested in tracking time, I dusted off my development environment for Quantified Awesome and got things working again. It’s nice to code. If I nap along with A- in the afternoon, my brain’s sometimes fresh enough to think after A- goes to bed late at night. I have a long task list that I make slow progress on, but hey, at least that’s something. On the consulting side, I reorganized our data extract script and added more notes to document things.

W- worked on the concrete pad for the stair footing and numerous projects around the house. We harvested a few radishes from the garden and transplanted the tomato and basil seedlings I’d grown indoors. There’s a lot of room for improvement in terms of gardening, though. Ah well! A- likes digging in the dirt and pulling stuff up, so it’s already worth it even if our yield is very low.

July: more music classes, more outside time, and getting ready for all the long medical appointments in August.

Blog posts



Category Previous month % This month % Diff h/wk Diff h/wk
Business – Build 0.0 2.7 2.7 4.4 4.6
Unpaid work 5.8 8.3 2.5 13.4 4.1
Personal 10.2 11.3 1.1 18.3 1.9
Discretionary – Productive 3.5 4.0 0.5 6.5 0.8
Discretionary – Social 0.1 0.4 0.3 0.7 0.6
Discretionary – Family 0.2 0.2 -0.1 0.3 -0.1
Business – Earn 1.1 0.7 -0.5 1.1 -0.8
A- – Childcare 42.1 40.6 -1.6 66.0 -2.6
Sleep 33.0 30.8 -2.2 50.0 -3.7
Discretionary – Play 4.0 1.1 -2.8 1.8 -4.8

Hmm, an average of 7.1 hours of sleep a day… I feel too fuzzy if I miss the afternoon nap, so I might play around with this a little. It’s good getting Business – Build (mostly coding Quantified Awesome) up again, though – a pretty straightforward time shift from playing Trails of Cold Steel. I split childcare off into its own top-level category (A-) so that it’s easier to see that versus unpaid work time.

2017-05-01 Emacs news

Links from reddit.com/r/emacs, /r/orgmode, /r/spacemacs, Hacker News, planet.emacsen.org, Youtube, the changes to the Emacs NEWS file, and emacs-devel.

Past Emacs News round-ups

Thoughts on getting a membership to the Royal Ontario Museum (ROM)

I’ve been building up a small opportunity fund for A- so that it’s easy to take chances on memberships, classes, books, and other good things. After some consideration, I decided to use some of it for a membership to the Royal Ontario Museum. We’ve been working on animal names and sounds, so I figured it would be good to point to animals in addition to pictures in books, Duplo pieces, and small models at the early years centres.

The ROM turned out to be a nice quiet place to walk around and contemplate the vastness of history, A-‘s thirteen months of existence a blink contrasted with millennia. I picked up all sorts of tidbits as I tag along on tours, too, and I’m working on getting better at identifying animals myself. (I could probably spend a few years in the bird section!)

What do I want from the ROM?

  • I want to develop a deeper appreciation of our place in history and nature, and I want to be able to share that with A- as she grows.
  • I want to train my eye to recognize and differentiate various things.
  • I want to pick up more words and share them with A-.
  • I want to learn stories and tidbits that I can share with A- and W-.
  • I want a quiet, sheltered, spacious place to walk with A- or hang out with friends. I want to have interesting things to look at and chat about.
  • I want to expose A- to different sights, sounds, and textures. Sometimes they have smellable exhibits, too.
  • I want A- to feel at home in the museum instead of it being just a destination for school field trips.
  • I want to have something to offer to other parents and friends.
  • I want to support culture.

The benefits are mostly for me at the moment, but I hope this will pay off when A- starts asking questions about the world or learning about history. It might be handy for helping her increase her vocabulary and see how the world is connected. I’m still going to prioritize hands-on learning for her, since she needs to exercise all her senses, but I think the museum might add something useful to the mix. That means I should take notes (and perhaps photos) so that I can jog my memory, and I should slow down and point to things while naming them multiple times, paying special attention to exhibits at her eye level. I’d like to make it out to the museum at least once a week, ideally inviting other people along.

Now is a good time to bring A-, actually. It’s still a bit cold and rainy, so it’s better to be indoors than at a park or playground. She’s not walking independently yet, so she usually doesn’t mind hanging out in the carrier and nursing on the go. That gives me an opportunity to join tours or read labels, and then I can think about those things when she gets antsy and wants to walk around while I hold her hand. She toddled around the Ancient Egypt exhibit quite happily, and I could still hear some of the tour guide’s stories even though A- sometimes took me around corners. Come to think of it, A- seemed to warm up to the place faster than she usually does at the early years centres. Maybe she prefers to be more reserved when there are lots of active kids. She’s still a bit hesitant to touch strange things, but that might pass in time.

The math: The curator’s circle membership I signed up for lets me take three guests and four kids, includes free coat check, and costs $189. The social level of membership allows one guest and costs $149, so +$40 gets you free coat check and the ability to bring two additional guests and four children (4 <= age <= 17). Half of a two-year solo membership is $86, so +$63 gets you the ability to bring in one guest each time you come. An adult ticket is $20 (+$10 for the special exhibition), so the solo membership breaks even after one visit that includes the special exhibition plus three visits without. The premium for the social membership works after three guest visits including the special exhibition, and the premium for the curator’s circle membership works after two extra guests including the special exhibition, or lots of coat check use. (The member price of $1 per item would’ve added up quite a bit given all these coats and diaper bags!) Yay math! And now it’s a sunk cost, so I can just treat it as an investment in cultural knowledge and potential social interaction.

Among the things I learned this week:

  • Blue whales are huge! Standing next to the skeleton of one is a great way to realize how tiny you are.
  • Noise pollution is a challenge for whales.
  • Whales have really big poop flumes which can be seen from airplanes. The poop is bright orange because they eat krill, and krill is bright orange.
  • Bootlace worms are very long.
  • Researchers solve interesting puzzles with incomplete pieces. I liked how they pieced together the evolutionary history for whales with the help of Pakicetus. They also have to deal with weird one-off fossils like the Toronto subway deer – cool stuff!
  • You can differentiate between mastodon and mammoth skeletons by looking at the lower tusks, the curvature of the big tusks, at whether the teeth are cusp-shaped or smooth.
  • Cartonnage (linen and plaster) gave the Egyptians an alternative way to encase their mummies, since wood was scarce.
  • Chinese roof tiles could be quite elaborate and well-preserved. The designs were strictly regulated in some places and more free-form in others.

I’d like to go again on Tuesday and/or Friday, depending on A-. More to learn!

Weekly review: Week ending October 28, 2016

More sleep disruptions for A-, but W- helped make the time more manageable. I’ve been working on getting her used to being set down to sleep, but I don’t think we’ll get the hang of it before the trip. Ah well! We can deal with fussiness and tough times as long as we keep things safe.

It’s amusing presenting A- with a variety of finger food and noting her preferences. At one meal, she ate all the cucumber sticks before moving on to beets and then cheese, even though the cucumber sticks required her to reach past the other items.

So far so good with the weight gain. Her most recent weight was 7.002 kg, gaining roughly +81g/week. That’s within the normal range, and she continues to be just under the 15th percentile curve. She’s been crawling around a lot, so there’s definitely been an increase in calorie expenditure. I guess she’s been keeping up with intake too. Sometimes I get into a rut in terms of her meals, defaulting to cereal and mushrooms or cheese or whatever’s available. It would probably be good to sit down and plan more baby-friendly meals this week, since she can’t have the curry I just made. (The boxed Japanese curry we like has honey in it.)

Went on plenty of walks despite the cool weather. To help keep A- cozy, I sewed a pair of baby leg warmers and a hat from a sweater. We’ve already lost one of the leg warmers, but that’s okay, I can make more. :) They work pretty well, when they can stay on. I also embroidered skull and crossbones on the felt pirate hat I made for A-‘s Halloween costume. I’m glad I did. The white thread was much more visible than the chalk outline I started with.

We finished the Make the Connection course delivered by Toronto Public Health. I didn’t get any photos sorted out for the album. Hard to get interaction shots. Might make more of an effort to get decent lighting and framing so that GoPro videos are useful. If not, no worries.

I’ve been practising Brahms’ Lullaby and I’m a Little Teapot on the ukulele, and I can mostly finger-pick them at a decent tempo. I can only get so far before A- wants a turn at plucking the strings, which is totally cool because it’s for her anyway. :)

Figured out database persistence for my consulting project, and did a quick analysis of top searches as well. Got my business taxes ready, too. Just have to review and submit the numbers. I might do that during our trip.

Need to figure out a sustainable rhythm for discretionary time…

2016-10-31a-week-ending-2016-10-28-journal-weekly output

Blog posts


Focus areas and time review

  • Business (10.2h – 6%)
    • Earn (9.3h – 90% of Business)
      • ☑ Analyze phrases
      • ☑ Add error handling
      • ☑ Sort out persistence
      • ☐ Earn: E1: 1-2 days of consulting
    • Build (0.8h – 8% of Business)
      • ☐ Write shareholder’s resolutions
      • ☐ Prepare invoice
    • Connect (0.1h – 1% of Business)
  • Relationships (3.1h – 1%)
    • ☑ Review insurance information
  • Discretionary – Productive (4.2h – 2%)
    • Drawing (3.1h)
    • Emacs (0.2h)
    • Coding (0.0h)
      • ☑ Check out Samba share
    • Sewing (0.8h)
      • ☑ Make pirate hat
    • Writing (0.0h)
    • ☑ Sketch garden
    • ☑ Update Kiva
  • Discretionary – Play (0.0h – 0%)
  • Personal routines (26.1h – 15%)
  • Unpaid work (72.5h – 43%)
    • Childcare (68.5h – 40% of total)
  • Sleep (51.8h – 30% – average of 7.4 per day)

Monthly review: September 2016

A- has gotten a lot more active. She’s figured out how to roll both ways both directions, and can now roll over and over and over. Walls confused her for a bit, but she seems to have gotten the hang of them now – or at least she doesn’t keep rolling into them, then away a little, then back into them, then away, then back… She can also crawl short distances and sit or play mostly independently for a good number of minutes. She likes it when I play peek-a-boo, and she can whisk a cloth away to reveal me or a toy I’ve hidden. She’s been expanding her vocabulary, too: lip smacking, slobbery kisses, and more intonation. She’s definitely vocal about her appreciation of bubbles and other fine things.

A- has really taken to self-feeding in her high chair. A month of solid weight gains helped her make it past the 5th and 10th percentile curves, and she looks like she’ll be past the 15th percentile curve soon. Kamut puffs and Toodle-Os let her work on her pincer grip, and she tends to prefer bits of our meals more than baby cereals or purées. I’ve been applying what I learned in the nutrition workshop, making an effort to get in more iron for her and more calcium for me. She’s been settling into somewhat of a routine when it comes to eating, nursing, and sleeping (having mostly gotten the hang of longer naps, of which she usually has two). Between that and her increasing capacity for entertaining herself, I’ve actually been able to get back into cooking and other household chores. Whee!

The caseworker from the Canadian National Institute for the Blind assessed A-‘s vision and capabilities with the help of blinking toys, small objects, and a musical triangle. It was fascinating to watch her probe A-‘s field of vision, observation, and tracking. So far, it seems A-‘s doing perfectly well with one eye. The caseworker will close our file for now, but we can get in touch with CNIB if A- needs more help when she’s mobile. In other news, the cardiologist said A-‘s okay to travel, so all systems go. Yay!

TD lost our forms, so we redid the paperwork for A-‘s RESP. Added our first investment! In other education-related news, J- started university, and seems to be enjoying her program. They’re both off to a good start.

I switched from a digital index card workflow back to a paper one in order to accommodate changing baby-proofing needs (no more laptop chargers beside the bed, now that she’s crawling and rolling!) and prepare for our upcoming trip. It’s working surprisingly well. I draw after A-‘s asleep, or if she’s focused on playing on her own. The index cards are easy to carry to another room if I want to spend more time with W-. I can draw with my headlamp on, and I’m not as tempted to stay up late doing other things on my computer. ClearScanner on my phone takes care of deskewing and cleaning up images, and my Emacs functions for renaming and organizing images were easy to tweak for the new filenames and formats. I should probably think about colour at some point, but that can come later.

I’ve also been tweaking what I can do on my phone during nursing sessions. I’ve been trying out Orgzly for writing and a few Org-related things. Using Connectbot to SSH to my server has come in handy, too. I upgraded my server thanks to Linode’s anniversary promo, and I’m still thinking of more things I can do with the extra RAM.

Speaking of computer stuff – my fiscal year end is here, so I spent a little time reconciling my bank statements and getting things ready for taxes. I won’t be able to finalize the numbers until December or so, but it’s always nice to have an idea of how things will shape up. My notes from last year have been helpful, and I’ve been filling in more notes as needed. Hooray for Org Mode outlines and to-dos! It’s been a surprisingly good year, even with pregnancy and becoming the primary caregiver for an infant. My clients are super-flexible, and I’ve managed to get stuff done. Whee!

Social things this month: attended the midwives’ picnic and caught up with a few folks from the prenatal class we attended, started attending the Make the Connection program and the peer nutrition support site, and bartered the glass bottles A- barely used for two large bags of baby clothes. Moved to the Friday sessions at our neighbourhood early years centre, too.

W- has been busy with J-‘s closet reno and all the little things that popped up along the way, including getting the carpet professionally stretched in order to eliminate bumps and bring it up to the wardrobe. We moved all the upstairs stuff around so that all the carpet there could get fixed. W- built custom shelving, too. Neat.

Starting to get the hang of this, I think!

2016-09-30c-september-2016-monthly-review-journal output

Blog posts



Category Period 1 % Period 2 % Diff h/wk Diff h/wk
Business – Build 0.1 0.4 0.3 0.6 0.4
Discretionary – Play 0.5 0.9 0.5 1.5 0.8
Unpaid work 42.5 43.3 0.8 70.4 1.4
Unpaid work – Childcare 36.9 38.1 1.1 61.9 1.9
Discretionary – Social 2.5 2.2 -0.3 3.5 -0.5
Discretionary – Family 2.0 1.1 -0.9 1.8 -1.5
Sleep 34.3 34.6 0.3 56.3 0.5
Business – Connect 0.0 0.2 0.1 0.3 0.2
Business – Earn 1.3 1.6 0.4 2.6 0.6
Discretionary – Productive 4.6 4.5 -0.1 7.3 -0.2
Personal 12.4 11.3 -1.1 18.4 -1.8

Weekly review: Week ending September 30, 2016

The week was off to a rough start. A- was hard to settle to sleep on Saturday. W- spent some time bouncing her up and down in case she was antsy from being confined in the carrier most of the day, and that entertained her for a bit before she went to bed. But A- kept waking up crying throughout the night, which made her congested. I snuggled her and rocked her each time, sometimes sleeping on an incline to help with her breathing. We both got very little sleep. I tried looking up tips on the Internet, but I was too sleepy to read the information or feel confident about giving her painkillers. Once W- woke up, he gave her some infant Motrin. Then she finally settled down for a 3-hour nap, which meant I could sleep too. Sunday was mostly a low-power day. Fortunately, there was plenty of food in the fridge and freezer. Our sleep/eat routines were all thrown off, though. Oh well!

I picked up a cold somewhere along the way too. That combined with the chilly rain meant this was a mostly indoors low-energy sort of week. Such is life. Fortunately, there are lots of easy-to-make comfort-food meals involving chicken, which happened to be on sale this week. I managed to make quite a few fresh dinners: chicken noodle soup, arroz caldo, and so on.

I hit a roadblock on my consulting project, but I think I can figure out a way around it. Might be something about the way the server is set up… It’s hard to debug or explore when there’s not a lot of documentation, but I can think of a few things to try.

A- shared a bagel with W- by putting it in his mouth – yay, sharing! Lots of peekaboo on my end – she’s getting quite good at tugging the cloth away. And I think she’s started giving slobbery open-mouthed baby kisses, or at least that’s what I’m going to call this “grab your face and mash it into my tongue” thing.

I’ve been thinking about the kinds of toys I’d like to expose A- that I can’t find in the neighborhood resource centres or that I’d like to have at home so that she can develop long-term familiarity. I checked out the Children’s Pillage in the Village sale for musical instruments (especially non-electronic ones), a few simple wooden toys, and a couple of cloth books that she can flip through or mouth as much as she’d like. I also bought a laundry basket of crafting supplies and a bin of wooden puzzles from someone who was closing her home daycare.

The carpet in A-‘s room has been fixed. W- is almost done with J-‘s closet reno, which means we’ll be able to move some of J-‘s stuff out of A-‘s room soon. I organized A-‘s cold-weather clothes, and she’s got plenty of things to wear. Everything’s shaping up nicely.



Blog posts


Focus areas and time review

  • Business (3.3h – 1%)
    • Earn (3.2h – 98% of Business)
      • ☐ Earn: E1: 1-2 days of consulting
    • Build (0.0h – 0% of Business)
      • ☐ [#A] Prepare invoice
    • Connect (0.0h – 1% of Business)
  • Relationships (4.4h – 2%)
    • ☑ Check on RESP to see if it’s been set up; transfer if so
  • Discretionary – Productive (5.4h – 3%)
    • Drawing (2.6h)
    • Emacs (0.4h)
    • Coding (0.0h)
    • Sewing (0.0h)
    • Writing (1.2h)
  • Discretionary – Play (0.0h – 0%)
  • Personal routines (15.3h – 9%)
  • Unpaid work (77.2h – 45%)
    • Childcare (71.0h – 42% of total)
  • Sleep (62.4h – 37% – average of 8.9 per day)

Oookay, 71 hours of childcare, although that’s probably overstating it a little. Hmm. Actually, the numbers say it’s a little less of almost everything else (except for family time, which actually increased), and a lot more childcare. Comparison:

Category Period 1 % Period 2 % Diff h/wk Diff h/wk
Business – Build 0.4 0.0 -0.4 0.0 -0.7
Discretionary – Play 0.0 0.0 0.0 0.0 0.0
Unpaid work 39.6 46.0 6.3 77.2 10.6
Unpaid work – Childcare 33.8 42.3 8.5 71.0 14.3
Discretionary – Social 3.4 1.8 -1.6 3.0 -2.7
Discretionary – Family 0.6 0.8 0.2 1.4 0.4
Sleep 38.0 37.2 -0.8 62.4 -1.4
Business – Connect 0.6 0.0 -0.6 0.0 -1.0
Business – Earn 2.8 1.9 -0.9 3.2 -1.5
Discretionary – Productive 3.6 3.2 -0.4 5.4 -0.7
Personal 10.9 9.1 -1.8 15.3 -3.0
  • We had colds, so we stayed home instead of going to OEYC or other activities. Less walking time and social time. Lots of nursing and night-time soothing, too.
  • W-‘s been focusing on the wardrobe and bookshelves, so his A- time is mostly when he takes breaks or wraps up for the night. Not as much consulting time as last week.
  • Hmm, might be personal routines/childcare blending. I’ve been tracking many of our meals as childcare (since I’m feeding her too) instead of personal care. Might start tracking some of that personal care time again, since I can usually focus on my meal (and even catch up with W-) for a good fifteen minutes or so.

I still feel okay about my time for drawing and consulting, even if I end up pushing them into the wee hours of the morning. I’ve gotten better at writing on my phone, although I still need computer time for reviews. I managed to squeeze in some reading this week, too. So it doesn’t feel particularly crunch-time-ish, but I should keep an eye on that balance to make sure things stay okay. It’s all good.

2016-05-02 Emacs News

Links from reddit.com/r/emacs, /r/orgmode, Hacker News, planet.emacsen.org, Youtube, the changes to the Emacs NEWS file, and emacs-devel.

Past Emacs News round-ups

Monthly review: January 2016

January was mostly about planning, people, and preparations. I re-read my blog posts and reviewed my sketches as part of my annual review process. It was great to see the overall patterns from 2015, and from the past ten years that I’ve been here. =)

We had W-‘s family over for a holiday dinner, and we cooked lots of food. Unfortunately, our source for pork belly closed soon afterwards, so we’ve been checking out different places to find a new favourite.

I’ve been gradually transitioning my consulting tasks over to the team. They’re doing wonderfully, and will probably do even more awesome things than I can pull off. =D I’ve also been building little tools for myself, like a web-based interface that lets me use the tablet to review my sketches. Some sewing, some decluttering, some freezer cooking… Everything’s pretty much ready for the next step.

Let’s see how February goes!

2016-02-02c January 2015 -- index card #monthly #review output

Blog posts



Category Period 1 % Period 2 % Diff h/wk Diff h/wk
Business – Build 0.3 0.2 -0.0 0.4 -0.1
Discretionary – Play 6.9 6.7 -0.3 11.2 -0.5
Unpaid work 11.1 9.5 -1.6 16.0 -2.6
Discretionary – Social 0.7 0.9 0.2 1.6 0.3
Discretionary – Family 4.6 6.4 1.8 10.7 3.0
Sleep 41.4 40.9 -0.4 68.7 -0.7
Business – Connect 0.9 0.8 -0.1 1.4 -0.2
Business – Earn 4.6 5.6 1.0 9.3 1.7
Discretionary – Productive 13.7 12.4 -1.2 20.9 -2.1
Personal 15.9 16.6 0.7 27.8 1.2

Weekly review: Week ending January 1, 2016

We’re hosting a get-together for W-‘s family today, so last week was all about tidying up, preparing food ahead of time, and getting things ready. W- has been on a home improvement kick, painting some of the walls and ceilings that were recently patched, updating the track lights that go down the basement stairs, and installing a set of track lights in the living room. For my part, I’ve been getting rid of stuff, organizing and updating inventories, and helping out with whatever I could. All this decluttering and rearranging prompted us to learn more about interior design. We watched the six-part Design Rules series from BBC on YouTube, and will probably look up a few more resources as we gradually reshape our living areas.

I’ve been thinking about ways to repurpose my sewing scraps. Cutting them into 4″x4″ squares and using them for patchwork seems like a good, frugal way to keep things under control. My first patchwork piece is a little on the visually busy side, but mabe that’s not a bad thing. Over the next few weeks, I’ll process the rest of my scraps, and then we’ll see what I can do with the pieces.

The end of the year is a good time for an annual review, so I’ll probably be focusing on that this week. I’m looking forward to making sense of last year and picking a few ideas to follow up on this year. I suspect the year turned out better than I sometimes think it did; distance, data, and my archive will help me get a better sense of that. We’ll see what comes out!

2016-01-02a Week ending 2016-01-01 -- index card #journal #weekly output

Blog posts


Focus areas and time review

  • Business (10.2h – 6%)
    • Earn (6.1h – 59% of Business)
      • ☐ Prepare invoice
      • ☐ Do monthly data dump
      • ☐ Earn: E1: 1-2 days of consulting
    • Build (3.0h – 29% of Business)
      • Drawing (3.0h)
      • Paperwork (0.0h)
      • ☑ Index card visualization
      • ☑ Learn Coffeescript
    • Connect (1.1h – 11% of Business)
  • Relationships (7.9h – 4%)
    • ☑ Research good practices
    • ☑ Copy recordings to phone
    • ☑ Move the heated cat bed into our bedroom
    • ☑ Revisit seats
    • ☑ Plan party for Jan 3
      • ☑ Move stuff out of the way
      • ☑ Make pumpkin pie
      • ☑ Defrost korma
      • ☑ Make banchan
  • Discretionary – Productive (16.3h – 9%)
    • Emacs (2.1h – 1% of all)
      • ☑ Insert and categorize link
      • ☑ Do another Emacs News review
      • ☑ See Org linked files in a Dired buffer
      • ☑ Write Emacs Lisp to help with quilt planning
      • ☐ Do another Emacs News review
    • Sewing (9.6h)
      • ☑ Lunch bag for J-
      • ☑ Sew quilt blocks
      • ☑ Cut 4×4 squares
    • Writing (3.0h)
    • ☑ Figure out other things I can read in my e-reader
    • ☑ Figure out other things I can read on my phone
    • ☑ Research NAS recommendations
    • ☑ Review the organization of my Org files
    • ☑ Organize old files
    • ☑ Review stuff in basement cabinets, update inventory, and get rid of more things
    • ☑ Type or copy song lyrics
  • Discretionary – Play (12.1h – 7%)
  • Personal routines (23.5h – 13%)
  • Unpaid work (26.9h – 15%)
  • Sleep (71.1h – 42% – average of 10.2 per day)

Monthly review: November 2015

Lots of coding this month, and lots of tech-related blog posts. =)

Consulting-wise, I’ve been learning a lot about NodeJS and Angular. I’ve been refining the internal command-line scraping tools and dealing with new requirements. I’ve also been working on a mobile prototype that uses ng-touch and a few other niceties. I’ve been making good use of the Q library for promises, too. Good thing I spent some time last month learning more about asynchronous programming.

The Emacs News series I’ve been publishing every Monday was well-received, and I’m gradually creating little tools to make it easier to summarize the news from various sources. I’ve also been using it to queue up some tweets for @emacs, so there’s regular activity over there. We had a fun Emacs Hangout, and I’ve scheduled another one for next month.

I’m glad I came across the poster for the Toronto Public Library hackathon. It was a good opportunity to learn about neat things you can do with the library’s web interface and data. They’ve posted a recap, and I’ve also braindumped a bunch of notes on the hack I made for visualizing search results by branch. Boggle of boggles, my userscript still works. =D

I’ve been thinking about how I want to use my time during this phase of the experiment, since I have more energy these days. Spending more time consulting means building up useful skills and prototyping cool stuff that my clients find helpful, so that’s good. It’s also good to take some time to explore other interests and skills, and to prepare for what’s likely to come up. Playing it by ear seems to be the way to go. I keep a long list of little ideas to work on for consulting, and I’ve been cleaning up my Org Mode agenda files to make it easier to see the personal stuff I want to work on. Since the weather is nice today, I’ll go for a walk to the library. Maybe I’ll do some sewing this afternoon.

Also, I filed my business taxes. The dry-run I did last month paid off. All I had to do was update the numbers and double-check my calculations. Yay! I might actually be getting the hang of this. I’ve taken more notes, so next year should be even easier.

I’m back to dual-booting Linux, hooray! I’m still figuring out parts of my new workflow. I think I’ll get it all sorted out over the next few weeks. I’ll probably still boot into Windows for things like Quickbooks and TurboTax (unless I feel like manually crunching the numbers for business taxes – wouldn’t that be something!), but everything else seems to be just fine.

Still feeling pretty much in hermit-mode, although I did make it out to a few low-key things. Next month is probably going to be complicated, but we’ll see.

In December, I’m looking forward to catching up on the cool things that have been going on in the Linux world since the last time I checked. I’d like to document and automate more of my processes, too, in preparation for possible fuzziness. Onward!

2015-12-02a November 2015 -- index card #journal #monthly #review


Blog posts


Daily sketches: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 27 29 30


Category Last month % This month Avg h per week Delta (h/wk)
Business – Build 3.2 5.5 9 3.9
Discretionary – Play 6.9 8.9 15 3.4
Unpaid work 6.3 7.9 13 2.7
Discretionary – Social 0 0.6 1 1.0
Discretionary – Family 2.6 3.1 5 0.8
Sleep 37.4 37.9 64 0.8
Business – Connect 1.1 1.5 3 0.7
Business – Earn 11.2 10.7 18 -0.8
Discretionary – Productive 11.2 7.5 13 -6.2
Personal 20.0 16.2 27 -6.4

Huh. More drawing, more Borderlands, more cooking, actually a little
less consulting, and less time on personal projects and routines. More
time on coding, though. Didn’t expect that. Two and a half days is
still more consulting than the one-day-a-week pace I’d been keeping
before this recent intensification, anyway. Anyway, time still feels
pretty good, so I’ll carry on.

2015-11-02 Emacs News

Previous roundup – Links from reddit.com/r/emacs, planet.emacsen.org, and Youtube

A deeper dive into absent-mindedness and misplacing things

I haven’t misplaced anything today, but I know I will at some point. This week? This month? Definitely this year, and probably more and more as the years go by. It got me thinking about misplacing things, and what I might be able to do about that.

When or why do I misplace things?

  • Active
    • Putting something down in one of many frequent places
    • Putting something down in an infrequent place
    • Getting distracted half-way and putting something down somewhere I don’t remember
    • Putting something down because my hands are full and I need to pick up something else
    • Putting something in a place that’s similar to but not the same as the place it should be, and not catching the mistake
    • Putting something somewhere near it should be instead of where it should be because that place is occupied or inaccessible
    • Putting something away for the long term, then forgetting where it is
    • Putting something away, then forgetting whether I have it or not
    • Putting aside something in progress or waiting for something else, then forgetting where it is or when I need to get back to it (ex: mismatched socks)
    • Shuffling things into similar things (ex: papers)
    • Making a mental note of where I put something, but not remembering it well enough
  • Passive
    • Someone moving or dislodging something from where I expect it to be
    • Forgetting to check for things that have accidentally fallen or been left behind (ex: gloves, scarves, things in pockets)
    • Leaving things in an opaque container for convenience, and then not taking them out and putting them away (ex: gloves)
    • Things falling out of pockets or through linings, un-noticed
    • Familiar tasks in familiar environments lead to automatic thinking and reduced attention
    • Forgetting to prepare or take something
    • Gaps when retracing steps
  • Retrieval
    • Skipping over something because something else is covering it or obstructing my view
    • Looking at something but not recognizing it
    • Limiting my field of view unnecessarily
    • Misremembering things that are similar to things I remember getting rid of, so I don’t look for them
    • Not searching in a systematic manner
    • Having a false memory of putting something away in a different place
      • Confusing with previous memory
      • Confusing plans with reality

What tools and tactics do people use to minimize the hassle of misplacing things?

  • Build automatic habits
    • Have one clearly defined place for each thing, or very few clearly defined places
    • Explicitly encode memories around picking things up or putting things down
      • Looking
      • Mental note
      • Note to self, out loud
      • Text note
      • Audio note, recorded
      • Picture
    • Have a handy holding place for in-between things or miscellaneous things, and review this frequently (ex: bin, belt bag)
  • Reduce retrieval costs
    • Regularly tidy with fresh eyes
    • Make lists of where things are
    • Label containers with their contents (ex: cabinets)
    • Keep things clear and tidy
  • Label
    • Label things so that in case they’re lost, someone might be able to return them to you
    • Offer rewards
  • Reduce the need for the item
    • Replace or supplement often-misplaced identification with always-present information or more frequently used devices (ex: biometrics, keycodes, smartphone)
    • Buy or budget for replacements (ex: pens)
    • Keep extra stock of items in multiple places (ex: pens)
    • Minimize the number of unneeded things you carry, and keep other things in a known place (ex: infrequently-used keys)
    • Eliminate the item entirely
  • Add alerts
    • Track location (ex: smartphones, parking)
    • Add proximity alerts (ex: smartphone-laptop Bluetooth proximity detection, tracking stickers)
  • Fill in gaps
    • Retrace steps
    • Ask someone else who might be able to look with fresh eyes or who might have different memories

When are these tools particularly useful?

From “External and internal memory aids: when and how often do we use them?” (Intons-Peterson and Fournier, 1986):

  • When intervening events may interfere
  • When there’s a long delay between encoding and retrieval
  • When accuracy is important
  • When information is difficult to remember
  • When there’s limited time to remember
  • When you want to avoid the effort of remembering

Based on these thoughts, what can I tweak about my life? Maybe I can pay closer attention to incidents of misplaced things and other action slips over the next few weeks so that I can see where the gaps are….

Starting from a small life

The impression I get from people’s descriptions of their lives or careers is that many people (or at least the ones who talk about stuff like this) go for a big goal. They want to influence lots of people. They want to make a big difference. Sometimes it works out really well, but there are plenty of cautionary tales too: people who get what they strove for, but who’ve sacrificed their health, happiness, or relationships along the way.

It seems, based on the prevalence of these cautionary tales, that it’s quite rare to find healthy ambition. This is an assumption, though. Is it true or false? I think it might be false. There are probably lots of examples of people who dream big and have wonderful, happy lives, but they don’t get written about as much. (Something about news and schadenfreude, maybe?)

Anyway, an alternative might be to start small and build a solid foundation along the way. If I look around, I can see lots of good examples of this, although people some are more deliberate about it than others are. Instead of moving towards a specific, large goal that’s a big jump from your current positions, you develop capabilities and gradually expand in interesting directions.

2015-03-06c Growing slowly from a solid foundation -- index card #purpose #influence #success #growth

2015-03-06c Growing slowly from a solid foundation – index card #purpose #influence #success #growth

You start with a solid foundation of self-care. You cultivate a good community around you, and then you grow at a sustainable rate.

I used to have hang-ups about opportunity costs or wasted potential. Now I reason that if I don’t get around to figuring out XYZ because I’m growing too slowly, someone else is probably going to figure it out, or it wasn’t needed anyway.

Another danger, perhaps, is complacency. After all, if you’re growing outwards from a strength or a position of comfort, it’s easy to say: “Why not just stay here a little longer?”

I think it helps to think of some skills or areas you can improve at each stage, since you’ll be making progress on multiple stages all the time anyway. It’s not like you’ll master self-care and then move on to relationships. You learn a little of one, you try a little of another, and you build up different areas gradually.

2015-03-06d What does that progression look like -- index card #growth #success #purpose

2015-03-06d What does that progression look like – index card #growth #success #purpose

For example, I’m pretty happy with my self-care skills of understanding, being happy, learning, and reflecting. If I get better at health, everything gets better too. I’m getting the hang of enjoying vegetables, and I’m back to biking – yay! Similarly, I can practise getting better at thoughtfulness in close relationships, and at asking for help in terms of connecting with a small community. For expanding the communities I’m in, I can practise sharing tips and lessons learned.

Another thought about slow progress: it might be okay even if I’m taking things more slowly than I think other people do (or that a hypothetical Sacha might do). If I’m accelerating, I can do interesting things later on. So, that leads to these questions: Am I accelerating? If so, how?

2015-03-06e Am I accelerating - If so, how -- index card #growth #success #acceleration

2015-03-06e Am I accelerating – If so, how – index card #growth #success #acceleration

Compared to myself from five or ten years ago, I think I’m improving my self-care skills at a faster rate. Learning more about tools for thinking has helped, and I’m picking up life skills too. In terms of close relationships, I’m accelerating in terms of W- and local friends, but not in terms of family and friends in the Philippines. In terms of a tribe or small community, I think Hangouts accelerate things a little, and so does asking questions or thinking things through out loud. In terms of community, I accelerated more over the past few years (experiments with publishing and knowledge management) than I have in the past few months, but there might be ways I can play with that.

Back when I was a whiz kid (probably like most people who were into programming at an early age), I occasionally thought about those fast-growth success stories like 30 Under 30 (or 40 under 40, or Young Presidents’ Organization, or…). There’s something to be said about being on the fast track, demonstrating momentum. The narrative is clear. The goal burns bright. It’s easy to prioritize.

This other path of slow growth and neighbouring possibilities has its own challenges. It’s easy to get distracted and drift. I’m curious if I can do it well, and what I can learn from the process. I imagine that if it plays out beautifully, I’ll have a rich tapestry of a life while being able to trace the threads that connect the different sections. People are great at rationalization, so I can connect the dots going backwards.

In the meantime, looking forward, I imagine that I’ll grow steadily and solidly, with the occasional leap enabled by trust and safety nets, and with a community of people I admire, learn from, and help. I imagine that my impact will grow as I develop my capabilities, so I don’t accidentally end up screwing up thousands of people’s lives or wasting millions of people’s time. It might feel embarrassingly slow at moments (or even most of the time), as I take tiny steps or cover the same ground. But it’s a life, and it might be an interesting one.

If I’m curious about this path, how can I explore it more effectively? I’ve sketched a few areas to focus on, so I can work on those. And then there’s reminding myself that it’s okay to write about the small steps, the lessons learned, the reviews… Let’s see how it works out!


Sketched Book: Write Faster, Write Better – David A. Fryxell

David A. Fryxell’s Write Faster, Write Better (2004) is a journalist’s collection of tips that might help you write faster. Fryxell focuses on eliminating waste: wasted research, wasted interviews, wasted notes, wasted words, wasted drafts. You can do this by organizing, planning ahead, keeping your focus in mind, and writing a good-enough draft the first time around (instead of revising loose drafts that run too long or circling around a never-finished perfectionist draft).

I’ve sketched the key points of the book to make them easier to remember and share. Click on the image to get a high resolution version that you can print if you want.

2014-12-14 Sketched Book - Write Faster Write Better - David A Fryxell

One of the things that I struggle with is that I often don’t have a clear idea of what I want to write when I start writing it. I don’t have a focused high-concept phrase that explains my angle and the surprise twist. I don’t have a clear outline that tells me what kind of research I need to do, who I should talk to, and how everything fits together. I don’t have an editor who’ll force me to come up with a clear concept.

Maybe I’ll get there with experience. It might be okay to do this kind of exploratory writing – a little like journaling in public – and then apply Fryxell’s techniques to extract and polish a chunk that would be useful to other people.

Curious about the book? You can get it from Amazon or other places if you like. (Affiliate link)

Like the sketch? Find more at sketchedbooks.com. They’re under the Creative Commons Attribution License (like the rest of my blog), so feel free to share it with people who might find this useful. Enjoy!

Monthly review: January 2015

2015-02-01 January 2015 -- index card #monthly #review
2015-02-01 January 2015 – index card #monthly #review

Last month, I wrote that in January, I planned to:

  • Set up a rhythm of monthly Emacs hangouts and Emacs chats: Scheduled a few more
  • Shift my finances around a bit so that I’m more relaxed: Refilled, yay!
  • Sort out some small snags with consulting: Smoothed out
  • Get the exercise ladder habit going again: Associating microwaving with exercising is a small start.
  • Make little improvements around the house, so it doesn’t end up waiting for vacations: W- has been doing most of this, so I’ve been focusing on cooking instead.

It was a good month for thinking about questions and goals. Eric’s update on his Quest of Awesome at the Quantified Self Toronto meetup inspired me to list accomplishments, goals, and questions, and I’m gradually making sense of those things.

I’ve been relaxing my self-imposed one-post-a-day limit, since there’s so much I want to write about and I’ve built up quite a backlog. I need to think about how to keep this manageable. Sometimes I really like having posts scheduled but not posted, since that allows me to update them when I find little bugs in the code or opportunities to improve. On the other hand, there’s something to be said about faster feedback cycles. Hmm.

At work, I’ve learned a lot about using Tableau for recursive queries, dashboard actions, and filters. Level up! Speaking of data and analytics, my self-tracking got mentioned in the Toronto Star.

Focusing on Emacs microhabits has been paying off nicely. I’m still not as fluent as I’d like to be in terms of abbreviations and window-switching, but I’m better at them than before. I’ll continue working on those habits in February, and maybe I’ll delve into Helm too. I’ve also been writing little Node and Emacs Lisp scripts to automate parts of my workflow, which makes me happy.

In February, I’m looking forward to:

  • Preparing for some projects
  • Hosting another Emacs Hangout
  • Learning more about Helm (in Emacs)

I’m experimenting with a combined outline that includes my blog posts and sketches so that things are logically grouped. Since I have lots of sketches, I’ve skipped the ones that have already been included in blog posts. Sketches are the ones that start with the date, and blog posts have regular titles. Might be useful, might be noisy, but I won’t know until I try. =) Here’s what I wrote and drew this month:

Learning from artists: making studies of ideas

When people are starting out with sketchnoting, it’s helpful to remember that sketchnoting’s about “ideas, not art” (as Mike Rohde says in The Sketchnote Handbook). It’s easy to get intimidated by the visually-impressive sketchnotes people post, so the reminder is useful.

I’ve been using sketchnotes to explore my own thoughts instead of recording other people’s content. I like flipping things around, so that got me thinking: What can I learn from the way artists work, and how can I apply that to learning and drawing?

Here are a few ideas:

2015-01-05 What can I learn from artists about learning -- index card
2015.01.05 What can I learn from artists about learning – index card

  • Collect: Artists collect inspiration. They fill sketchbooks, make moodboards, clip reference photos, and so on.
  • Emulate: Artists develop their skills by emulating masters.
  • Observe: Artists draw what’s there, not what they think is there. They also analyze the techniques other artists use and the effect of these techniques on the piece.
  • Imagine: Artists aren’t limited to what they see. They can draw what isn’t there. They can draw the essence of a thing.
  • Transform: Great art transforms the way people see.
  • Experiment: Artists try different techniques and styles to figure out what works for them.
  • Craft: Artists refine their work and improve their tools.
  • Sketch: Artists do quick studies to try several views or focus on different aspects before making the commitment of paint on canvas.

I was particularly curious about this idea of making studies or sketching things in order to experiment with different views or to focus on small parts before composing the whole, so I dug into that further.

2015-01-05 Why studies for drawing or writing thoughts -- index card
2015.01.05 Why studies for drawing or writing thoughts – index card

The limits I want to address are:

  • When I start with a large sheet, I sometimes peter out halfway through because I’ve dug to the bottom of that idea (at least for now, with the tools and time I have).
  • If I work with large sheets, it’s not as easy to keep all the relevant ones in view at the same time. I need to summarize more frequently.
  • I often zig-zag between topics, leaving sheets unfinished. Half-sheets are awkward to post.

2015-01-05 Quick idea studies -- index card
2015.01.05 Quick idea studies – index card

Using index cards for “studies” of an idea might be a useful technique. Each card is a small chunk, quick to capture, complete in itself, and yet linkable with others. The cards are easier to rearrange. If each card represents one idea or summary, I can keep more ideas in view.

There are trade-offs, naturally. Sometimes the desire to fill a large sheet makes me to sit with a question longer, letting me discover more. Large sheets gives me the ability to draw and describe relationships between ideas. If I have many small chunks, I need to invest more time in summarizing and filing in order to make the most of them.

2015-01-05 Managing my idea pipeline -- index card
2015.01.05 Managing my idea pipeline – index card

Artists might make studies in preparation for a specific work, or they might make studies just because. If I have a specific question in mind, it’s easy to sketch my way around the topic and then organize those thoughts into a whole. I’m not as good at managing fragments over an extended period of time, although I’m getting better at linking to and building on previous blog posts.

What can I learn from the way artists keep working on something? Artists might work on a piece for weeks or more, keeping it visible on an easel, taking a step back from time to time, looking at it in different light. They might have several such pieces on the go. I still prefer publishing early instead of waiting until something is a masterpiece. Feedback is great, and even small chunks can be surprisingly useful.

If I improve the way I manage my studies, though, I might get better at refining ideas. I think it’s like the way an artists might clip photos or sketch things that have caught their eyes, and then return to that inspiration years later when they think of something that needs it.

Speaking of archives: I’ve written about index cards before as a way to develop thoughts (2014; much like this post), plan my life (2007), and prevent boredom by writing (2005!). I haven’t quite mastered this yet, but I’m getting somewhere. What can I add to this based on this reflection on artists?

I don’t do enough zoomed-in focus or variations on a theme yet, I think. Studies aren’t just about capturing the gist of a thing so that you can reproduce it later in your studio. They let you minutely observe a specific aspect, and they let you experiment with different ways to portray something.

What would that look like, if I could do it really well? For observation, I might have index cards that focus on sub-topics, like the way I’ve built up this post from the sub-questions in the illustrations. For variety, I might experiment with visual vocabulary and metaphors, improving my creative expression.

There’s also something to be said about sheer practice in exploring thoughts, like the way artists might sketch for sketching’s sake. James Altucher recommends coming up with ten ideas a day (also related: his post from 2012). I’ve been experimenting with setting myself a minimum of five index cards a day. I write the dates for all of them before I start on the first one so that the desire to fill in the blanks pushes me to complete all of them. This usually leads to even more cards as the first set of ideas sparks more questions.

Actually, the challenge isn’t generating ideas. Artists never run out of things to sketch – they can look around and find more! I have an archive of ideas I haven’t exhausted and a cornucopia that generates more every day.

2015-01-05 Thinking about my archive -- index card
2015.01.05 Thinking about my archive – index card

This leads me back to skills that I think might be good to borrow from the art world and adapt to what I want:

  • Observing what’s in front of me – really seeing it, capturing it better, evoking its essence
  • Looking at something from different angles, and developing opinions about the alternatives I can pick – like the way artists learn about composition and light
  • Retrieving subsets of my archive – like the way artists might pull out the relevant studies or reference photos when they’re working on a piece
  • Comprehending the whole – the way people can step back and talk about impressionism, Picasso’s Blue Period, and other things that require zooming out

What would masters of this be like, and how can I emulate them? I think of Leonardo da Vinci’s studies, asking and observing. I think of writers who name and describe things, and in so doing, they help me see better – the way the light behind an object separates it from the background. I may never draw or write a thousandth as well as they do, but I can grow through emulating the way they slow down and pay attention, the way they turn things over and over instead of rushing on.

2014 in review

First, a list of posts I particularly want to remember from this year. If any of them sound interesting, feel free to check them out – I’d love to hear what you think.

Second, a snapshot of everyday life, so that I can remember what it was like at this time. My routines haven’t changed much since last year, except perhaps that I spend more time writing, cooking, and snuggling with W- and the cats. I try to drop by my consulting client on Thursdays, having successfully off-loaded most of my responsibilities to the team members I’ve trained. I go to Hacklab most Tuesdays to help cook a free vegan dinner for the open house; it’s enjoyable cooking practice, and sometimes I get interesting conversations out of it. W- has taken on a bigger role at work, but that still gives us plenty of time for family projects (we’re working on the basement at the moment). J- often has friends over to study and hang out, so we keep the house stocked with a variety of snacks.

Some memories from this year:

  • We took our cat Leia for a lion cut to deal with some of the mats in her fur. It was very amusing.
  • I started keeping a more deliberate private journal using Org Mode and Evernote. It’s a good complement to blog posts.
  • Mixed results in the garden, but we were pleasantly surprised by getting one zucchini, two bitter melons, and two winter melons out of it. We’ll keep trying.
  • I became a Canadian citizen! I’ve been remiss about actually applying for the passport, though. I’ll get that sorted out soon.

2014-12-25 2014 Review

Third, overall themes:

In 2013, I resolved to spend more time focusing on my own things instead of giving in to the pull of consulting. So in 2014, I collected more resources into e-books (and even one print book). I experimented with writing a four-part course. I took a Coursera class on analyzing data with R. I played around with Emacs and wrote blog posts for hours.

And yet my data tells me I actually spent more time working on other people’s projects. It went from 9% of my time in 2013 to 12% of my time in 2014, which works out to about six additional hours extra per week. This is coincidentally the same number of hours I reduced my socializing by, although a chunk of that can be explained by shifting socializing to Hacklab (which I track under Business – Connect).

The special project I did in September really changed the balance (27.5% of my time in that month!), as did the fact that I didn’t take any month-long breaks. Even hermit-mode November involved working from home 6% of the time (~10 hours a week).

It’s funny how perception doesn’t match data. Despite the extra time spent consulting, I felt a lot more self-directed this year – maybe because I produced more tangible stuff, and my tasks were more aligned with each other. But I’m drifting off course from becoming my own main client, and I want to adjust that heading in 2015.

Category 2014 % ~h/wk 2013 % ~h/wk change in h/wk
Business – Earn 12.4 21 9.1 15 6
Personal care 14.6 25 12.7 21 4
Discretionary – Productive 7.8 13 6.7 11 2
Sleep (~ 8.9h per day) 36.4 61 36.7 62 -1
Business – Connect 4.2 7 4.4 7 0
Business – Build 7.0 12 7.5 13 -1
Unpaid work (chores, etc.) 7.0 12 7.8 13 -1
Discretionary – Play 5.0 8 5.2 9 -1
Discretionary – Family 4.0 7 5.5 9 -2
Discretionary – Social 1.2 2 4.9 8 -6

Data collected using Quantified Awesome – compare 2014 and 2013

In terms of technical skills, I picked up more experience in:

  • Tableau: I learned how to take advantage of custom SQL and filter actions, and I became more comfortable with calculated fields, parameters, and filters.
  • Javascript: I got better at writing short Javascript functions and testing them. The new API for the social platform I work with on my consulting gig allowed me to build all sorts of nifty new tools. I’ve also been helping another developer pick up skills.
  • NodeJS and AngularJS: I built a prototype survey tool that also automated other things we wanted to do during a special event.
  • Rails 4: I finally upgraded quantifiedawesome.com to Rails 4.

Also, Emacs Chats and Emacs Hangouts have been awesomely fun and inspiring. Can’t wait to set up more of them!

In terms of writing, I got better at working with outlines as a way to organize my thoughts within each blog post. I’m still working on getting the hang of outlines to help me organize my thoughts across multiple blog-post-sized chunks, but the basic Emacs Lisp course was a good start. I also started building up an Emacs Org to EPUB/MOBI/PDF workflow for quick publishing and updating, so that I can can get more e-books up on Gumroad. Because I offer these resources on a free/pay-what-you-want basis, every time someone does buy it, I’m delighted to have that opportunity to connect.

My 2013 review included a number of themes:

  • Smooth consulting transitions: We’re on the way there, I think. I’ve been training one of the team members to cover the work I used to do, which is great.
  • More initiative-taking: Yes, especially in terms of professional development and publishing. I’m getting better at figuring out what I would like to learn and how to try things out.
  • Cardio and strength exercise habits: W- shared the Couch-to-5K program he picked up at work. We’d gotten all the way through it together (even though I covered much less distance than he did), but then I had to drop the habit because of other considerations. I’d also started the Exercise Ladder, but it got hit by the same restrictions. We’ll see how next year turns out! It’s good to know that I can do it and enjoy it, and I’m looking forward to starting even if I have to start from scratch.
  • Intentional interaction: I love spending time with W-. I’ve also been spending more time connecting with people in person at Hacklab open houses (at which folks are welcome to visit me, too, so it’s a great way to have low-commitment conversations). I feel great about my online conversations, too; there’s resonance there.On the flipside, I spent less time setting up get-togethers in person or treating people to lunch. I didn’t bother with a birthday party for the second year in a row; I realized I enjoy the peace and quiet.

    I’ve been pulling myself in, focusing on a small core. Still, compared to last year, this year’s interactions feel more natural and more relaxed for me. Perhaps I’m more selfish and withdrawn than the ideal, but I’ll grow at my own pace. I’m probably going to stay similarly reserved in 2015 to give myself space to explore things, but I’ll reconsider this in 2016.

  • Simple living: Wow, Epictetus, dude. You do make it easier to separate what’s important and what’s just nice to have. Aristotle has a lot to say about the good life, and Seneca has something to say about the short life. Good stuff.This year, I let go of quite a few anxieties, attachments, previously-unexamined commitments, and desires. I am getting a little attached to flexibility, though, so that’s something I may want to experiment with.
  • More harvesting and sharing: That worked out well. I’m excited about writing bigger chunks with outlines and using my publishing workflow to package even more useful resources. This will be fun.

It’s been a good year for the stock market, although all of that is still paper gains for me since I haven’t sold any stocks and all my dividends are reinvested. We had some pretty large expenses (in line with our priorities, at least) that required me to dip into my savings. I issued my first dividends last year, so if things work out the way I expect them to at tax-time, planning should be smoother.

Here’s a more detailed time breakdown of some things I care about:

Activity 2014 % 2013 % Change in hours/year
Emacs 1.8 1.1 61
Drawing 2.6 2.2 35
Writing 3.2 3.0 18

Hmm. I didn’t spend that much more time, but it feels a little awesomer this year; the posts grew into more conversations with people, and I learned more from those. Maybe it’s that test-driven learning thing. What you learn becomes more real to you and more useful to others when you create something from it, so it can make sense to aim for creating something from the beginning.

I’m getting a little clearer about what I want to do with my writing, drawing, and Emacs-tweaking:

  • Learn more stuff myself: Because this is fun and it tickles my brain
  • Delight and inspire people with the cool stuff out there. (Selfish reason: I get to learn, too!)
  • Connect with people: something about resonance and swapping notes and casting a little light on different roads…

Experiment update: 2015 will be the fourth year of my five-year experiment. Boggle! When I thought about what five years looked like in 2012, it felt like such a big space – more than university, more than the time I spent at IBM.

  • The first year, I learned how to experiment with business models, hitting the ground running with consulting.
  • The second year, I focused on consulting and event sketchnoting.
  • The third year (2014), I scaled down consulting so that I could learn more about creating.

2014 was the year that people’s generosity showed me that I really like writing as a way of creating value. There were countless conversations and even the occasional purchase of free/pay-what-you-want (PWYW) resources. I liked waking up in the morning to a notification that someone had decided to express their appreciation and invest in me (and themselves!). I liked the responses to my thank-you notes, the questions and suggestions and ideas. It was more of a gentle thrum rather than the highs and lows of programming, but I liked it.

If my life can continue to fit within investments and savings and little streams of income, I’d like to keep doing this. It’s not going to be an extravagant life, but there’s room for what’s important. So the fourth year, 2015, will be a good opportunity to explore sharing further. Can I keep this going through the extra uncertainty we might be dealing with next year? Can I create and receive value with this commitment to openness instead of following the trend toward exclusive courses and premium content? Can I build resources that will save or improve 10-100 hours of people’s lives so that they’re willing to give me the equivalent of a few of their hours to make this even better?

In 2015, I’m looking forward to:

  • Improving my technical skills:
    • Getting even more deeply into Emacs and taking advantage of the many useful packages that are available
    • Writing shorter, better-tested code in Javascript and Rails
  • Writing with even more resonance and helpfulness: digging deeper into the things I’m learning and sharing them with other people in ways that help and engage
  • Successfully taking on more uncertainty with even better safety nets and equanimity

It’ll be fun. =) Thanks for great year!

Previous reviews:

Learning slack

Amy Hoy’s post “Don’t write 1000 words a day” goes:

What would bring a person to ask, “How do you motivate yourself?” … This question presumes that You are not a single entity, but a split one: a cart driver, and a donkey.

The cart driver is trying to flog the donkey and the donkey is digging in its heels. If only the cart driver can figure out how to overcome the stubborn donkey, Writing Will Ensue.

This reminded me of what I wrote about word counts and chunks, and thinking in terms of ideas instead of an arbitrary number of words. I want to learn at least one new thing or share at least one thought, whether that takes lots of words or just a few. My goal isn’t to write, and it definitely isn’t to Become a Writer. It’s to learn, and I learn so that I can have more fun and live an awesome life. (You can see how everything fits into my evil plans. ;) )

On a different note, what Amy said also reminded me of this post I wrote in January 2014 about a conversation about writing, and reflections on taskmasters. I had resolved to let myself explore, instead of setting myself firm deadlines and concrete goals like all the productivity and entrepreneurship books tell you to do. I coded whenever I felt like it and didn’t when I didn’t. I reduced my consulting hours and spent more time writing, reading, and drawing. I went to parks with friends and hung out in the afternoon sun.

This is the story so far of my 5-year experiment:

  • Hitting the ground running, working more than I did before, trying out lots of different business ideas
  • Settling into a good rhythm, gradually decreasing commitments
  • Now, prioritizing flexibility, enjoying the journey

danceSlack turns out to be a powerful thing. These past few weeks I’ve been very much under the weather, almost out-sleeping our cats. It was great to be able to ride it out without getting too annoyed or frustrated at the changes in my energy. I told my clients about my limited availability. I turned over all my commitments to other people. I gave myself even more permission to nap, to read, to relax. Occasionally, as life permitted, I worked on little things that could help people (but whose absence wouldn’t hurt them). The world went on, and it was wonderful.

I found out that when I gave myself permission to do anything I wanted, my decisions worked out mostly like this:

  • Am I tired? If so, sleep.
  • Am I fuzzy-brained? If so, consider taking a nap, or relax with some light reading.
  • Do I feel semi-okay, and am I tired of reading? If so, practise drawing by copying other people’s sketches.
  • Am I somewhat coherent? If so, write.
  • Do I feel alert and logical? If so, code.

And even spending almost half the time in bed, I still feel pretty good about the things I did manage to do:

  • pick up recursive SQL queries and use them to create even better Tableau reports for my consulting client
  • coach team members on development and analytics
  • write a lot, and get better at working with outlines
  • work on Quantified Awesome a little bit
  • play around with Emacs and swap tips with other people

Things are slowly returning to normal. I can feel my mind becoming more alert, although it’s still a little squirrelly from the protocol I need to follow. But it was great to be able to explore what trusting myself more with time looks like.

I’m so glad that I could do something like this instead of having to force myself through the usual routines, or pretend to energy I didn’t have, or meet commitments I couldn’t shake. It’s a privilege and other people get through a lot worse. But hey, I’m here, so I might as well learn from what I can learn and share what I can share.

I’m not quite a slacker, but the word intrigues me. It might be interesting to be a slack-er, a master of slack, someone who knows how to create just the right kind of balance between tension and space, someone who can pay attention to the shifts in energy. If there’s just enough play, you can feel where things want to take you. If you pull too hard, you lose that sense. If you hold too loosely, you don’t pick up that difference either. Oh! Perhaps like dance.

I like the tips in J. B. Rainsberger’s “Productivity for the Depressed” (handy even if you aren’t). In particular, I resonate with:

  • Either work and feel terrible or avoid work and feel good, but don’t let yourself avoid work while feeling terrible.
  • Go with your energy.
  • Avoid commitments. Refuse commitments when others try to force them on you. Look for self-contained opportunities to contribute where completing the work helps people but not completing the work does not hurt them.
  • Look for any opportunity to build more slack into your life: money slack, time slack or energy slack.

surfAnother metaphor here that makes sense to me: energy comes in waves, and you can ride them. For me, it’s not just a single channel, not just a single beach to surf to. I can go lots of different ways. I don’t have to work with just the big waves either. I can take the small ones for a little bit of adventure. (Oh, that reminds me of this March 2014 post about having a buffet of goals, and this Oct 2014 post about wandering through parks.)

Smartcuts: How Hackers, Innovators, and Icons Accelerate Success (Shane Snow, 2014; Amazon affiliate link) has a chapter on catching waves. The best surfers look at patterns and decide things like:

  • Where should you position yourself to catch a good wave?
  • Which wave will you catch? (It doesn’t have to be the next one that’s coming.)
  • How can you paddle in order to catch it?
  • What will you do with it?

You can’t force a wave. (Okay, maybe you can engineer one.) If you’re out there, you just have to learn how to read the energy. There are waves going in different directions, and sometimes they combine to make pretty good ones. Even if nothing’s coming for a bit, you can still enjoy the view.

I’m reminded of how my sister kept a close eye on weather forecasts back when she was into the scene. Storms can lead to good surf, and calms can have their own charm. In life, too.

I like those metaphors. Not taskmaster/slave, but dancer, surfer. Let’s see where this goes.

(In real life, I was terrible at surfing: never keen on water, and with too much of a healthy appreciation for possibly poisonous or otherwise dangerous things in the sea. But that’s why metaphors are metaphors.)

Planning for possibilities

I like making contingency plans. It’s like peeking up a manifold of possibilities, imagining a sure-footed Sacha capably dealing with whatever comes down the pipe.

In preparation for a recent event, I made a list of different things that could go wrong, highlighting specific scenarios I needed to worry about and listing a few catch-all scenarios as well. Amusingly enough, the actual challenges that came up (Windows updates, network/hardware latency, a network configuration reset, Powerpoint crashes, last-minute changes) weren’t on my list as specific scenarios, but they were addressed by our general back-up plans. I like the blend of specific and general. Specific scenarios help you flush out questions to ask and things to prepare, while general scenarios identify characteristics to prepare for and help you come up with flexible strategies. Both types help you minimize stress when things do happen. Knowing that you have a backup plan, what the trade-offs are, and a probable deadline for committing to that plan helps you worry less about catastrophic failure and lets you focus on coming up with a better ad-hoc option.

One of the things that I gained a better appreciation of was the trade-off between preparing in advance and waiting until you can test your hypotheses. For example, I wasn’t sure if the server would be able to accept incoming connections once at the venue. I could adapt the code to run on my public webserver, but that would take a little time. However, since we were likely to be able to get things to work on the event network, I could postpone worrying about it to Sunday, which meant that I could spend Saturday doing non-work things instead.

Outside work, I also have a lot of scenarios and contingency plans. It’s been interesting slowly moving through time, watching the different uncertainties resolve themselves. Doors close and new possibilities open up. Because I’ve scanned my personal notes and I’ve blogged about many of my projections, I can recall a little bit of what past-Sacha was thinking, standing on the threshold of the unknown. I tend to overestimate risks and costs, but I’m good at coming up with small tests and approaches. I’m good at tracking my progress and keeping an eye out for “trip lines,” little reminders to myself to re-evaluate the situation. I want to get better at generating more general scenarios and alternative approaches, and properly evaluating risk/reward (maybe calibrating these with other people’s experiences). It’s fun treating life as a Choose Your Own Adventure where you might be able to peek ahead a little! =)

Learning with the end in mind

I like thinking about what I want to learn and how well I want to learn it. This helps me accept my limits and prioritize my time. I’m not going to master everything. I want to learn just as much as I need. Maybe a little more, so I can do other interesting things. There’s this idea of a minimum effective dose (recently-ish popularized by Tim Ferriss). It makes sense to me because I like paying attention to diminishing returns, when more effort on something doesn’t pay off as well (and could probably be diverted to more effort on a different thing which would).

So, what are some of the things I’d like to learn more about? To what end do I want to learn them–what are my higher goals? Thinking about secondary goals helps me see if I’m wandering off-track or if there are more effective ways to reach those higher goals. To what extent do I want to learn? What’s too little, what’s too much, and what would be just right?

2014-08-29 Ends and extents - #my-learning

2014-08-29 Ends and extents – #my-learning

Design is one of the things on my to-learn list. I want to learn more about design because that will help me with development. Programming helps people save time, but you save the most time and create the most value when people keep using your tool because it’s useful and understandable. You can’t just pick up good design off a book or in a course, unfortunately. Well, you can get the basics of design, but I’m not sure if there’s any way around sheer exposure and experience. I don’t just want to know the theories and the rules – that would be too little. I don’t need to win any awards, though. I would like to be able to build decent-looking prototypes that are pleasant to use, and to be able to quickly shape the prototypes based on user feedback. That should help me get around the challenges of building for people who are not me, since I’m happy with admittedly arcane interfaces.

Development is another useful set of skills to focus on because it helps me make stuff. I can add more tools to my toolkit, and I can go deeper. I don’t want to learn tutorial-level skills for a dozen languages just to be able to say that I know them – that would be too little. But I don’t need to do deep wizardly things, either. If I can build little tools and prototypes, gradually applying more of the accepted practices like testing, I should be okay.

I lump writing and drawing together. For me, they’re about thinking through, capturing, and sharing ideas. I want to be able to think clearly and take good notes so that I can live better and make better decisions. Just knowing the mechanics of grammar or layout is too little. But I don’t need to write award-winning prose or draw realistic art, either. I want to be able to write notes that I can make sense of years later and that other people might find useful, and I want to be able to quickly draw recognizable things that unlock memories for me and make ideas approachable for other people.

What are the things you’re focusing on learning? To what ends, and to what extents?

Learning to design Help and Support communities: Adobe deep dive

Design seems like magic, but it’s probably a skill that I can develop. If I just focus on coding, the things I build can end up looking like an accumulation of little ideas designed by committee. If I learn more about design and develop my own opinions, I can make recommendations that simplify the experience and make it more coherent. For example, on one of my consulting engagements, I could probably take the initiative in redesigning the help and support community for a better user experience. I have to work with the technical limitations of the platform, but as a coder, I have a little more latitude than most people do. By looking at how other people have structured their support experiences, maybe I can pick up ideas that I can try.

It’s interesting to see how much variety there is even within one company. Adobe uses the Jive platform for its support communities, and the different products have slightly different configurations. Here’s the overall product page that leads to the community page:




Adobe starts with graphical icons for tutorials that have time estimates clearly indicated.

2014-07-02 13_37_08-Community_ Photoshop General Discussion _ Adobe Community


The “Ask the Community” page leads to a page with a lot of things going on, but there’s an “Ask a Question” widget in the top left with a quick way for people to ask questions. With the emphasis on points and the leaderboard of top participants, it seems that this community focuses on user-to-user support. That’s probably why the Unanswered Questions and Trending Questions widgets are so prominent. Still, the page feels a little cluttered to me. I’d probably prefer to set it up with fewer calls to action. Ask a Question would still be in the top left, but I would probably organize the resources by skill level. I like the way some of the frequently asked questions are highlighted, but they feel somewhat random and not well-formatted.

Different products have different community pages. The Illustrator one is slightly more neatly organized:

2014-07-02 13_43_51-Community_ Illustrator _ Adobe Community


I like the announcement box for Illustrator CC 2014 and the Getting Started box in a prominent place. This page feels more oriented towards new users. It still has trending and unanswered questions, but they’re below the fold.

2014-07-02 13_46_28-Community_ Premiere Pro _ Adobe Community


The Premier Pro community focuses on sub-forums. Based on the forum activity, it looks like the Forums widget does a decent job of directing people to the appropriate place to ask, although the main community still gets many questions. This community is less newbie-focused (no tutorial link). The Recent Discussions widget seems to be a better choice than having both Unanswered Questions and Trending Questions, since the other widgets are visually similar and often have duplicate content.

2014-07-02 13_50_10-Community_ After Effects _ Adobe Community


The After Effects community has a welcome message and a Getting Started box, which I think are good ideas. They’ve decided to highlight some discussions as Sticky Threads, too. Unlike the other communities, this community doesn’t include messages about translating pages or earning points. I wonder how de-emphasizing points affects user-to-user support…

2014-07-02 13_54_57-Community_ Lightroom for Beginners _ Adobe Community


The Lightroom for Beginners community uses graphics (that responsively resize, even!) to make frequently-asked questions more visually interesting.

2014-07-02 13_57_21-Community_ Acrobat _ Adobe Community


The Acrobat community directs people to the appropriate sub-forum.

2014-07-02 13_59_54-Welcome _ Adobe Community


The overall welcome page for the site is static and graphical.

I think the key points I’ll pick up from Adobe’s support communities are:

  • A Welcome box makes a support community less intimidating.
  • Although having separate widgets for unanswered questions or trending content makes it easier for community managers and volunteers to find questions to respond to, that can lead to visual clutter. Recent discussions or recent content will do the job well enough.
  • Consistent formatting helps resource lists look more professional. Some of the resource lists had different font sizes or bullet types within the same box.
  • Images go a long way towards making a site look more polished.

Know any well-designed community support sites that offer both tutorials and Q&A? I’d love to take a closer look at them! Up next: Probably Apple, who use Jive as well.




What am I learning about and what can I write about more?

I’ve been feeling a little distracted, a little stretched these past weeks. I tell people that if they have a hard time blogging, they can look at what they’re learning and write about that, since they’re probably learning at least one new thing every day. Time to take my own advice. =)

Clojure: I’ve been slowly working through the exercises at 4clojure.com, solving two or three a day (56 done now!). I’m slowly getting the hang of loop, for, partition-by, and all these functions that I’m not used to playing with in Emacs Lisp. My solutions are nowhere near elegant, but they get me to the point of being able to read other people’s solutions. That’s how I’ve been learning about interesting functions. I’m also reading through the Clojure core documentation. Hard to remember everything, but I’m getting better at thinking “Hmm, I remember coming across something that might be useful.”

I’m learning this out of curiosity at the moment, since I haven’t thought of any personal projects that are better suited to Clojure than, say, Rails or Emacs Lisp. Maybe I’ll finally get around to coding that script to check the library for the locations of newly-released DVDs, or building something to help me analyze my Quantified Self data. In order to get to that point, I’ll need to learn core Clojure functions, popular frameworks and libraries, and workflow/debugging tools. It seems a little daunting, but it’s a good kind of daunting. I’m chipping away at it steadily. This also helps me empathize with programming newbies, which is great because I’m working on that course to help people learn Emacs Lisp. =)

Gardening: The sorrel I bought from the farmer’s market turned out to have leaf miners. I’ve been removing the rows of eggs under the leaves by hand, and I cut off a few of the affected leaves and trashed them (far, far away from the garden). It’s a pity about the bugs, but at least I’m learning how to identify and control pests.

The blueberries we planted in 2010 have more flowers than I’d ever seen on them before, and some of those flowers are beginning to set fruit. I cut some twigs off the backyard trees to replace the bamboo hoops that were acting as tomato stakes, and I moved the hoops to the front so that I could drape the net over them. I’m beginning to get the hang of this – no more buying stakes for me!

Some of the bok choy plants are starting to bolt, and the Thai basil is flowering. I pinched the tips, hoping that will extend their growth a little further. I’ve been erring on the side of watering almost every day, since our soil is sandy. The soil often feels dry to a few inches’ depth, even if I’d watered just the day before. We’ve been mixing lots of compost into it and laying even more on top as mulch, but it still has a long way to go.

Emacs: This week I’ll polish the fourth segment in the beginner e-mail course for learning Emacs Lisp. It’s wonderful to have reached this point! I’m glad I started this experiment. Writing tutorials is much easier with other people’s feedback, and e-mail seems to be a less intimidating way for people to interact. I’ll probably roll it out as a blog series as well, so that people can find it while searching my blog. After I finish that, maybe I’ll take a short break before doing the intermediate course. That way, I have some time to experiment with the nifty things I’ve been coming across.

So yeah, I’m learning about stuff. Ah! Maybe it’s because I haven’t been writing in the process of doing so. For Clojure, I can write about my solutions to problems and wha I’m learning by looking at people’s solutions. For gardening, I can post pictures. For Emacs, well, I’m used to writing about that already! =) I think the bottleneck there is that I’ve been working on stuff that’s posted on Github and at http://emacslife.com , but I haven’t been posting those notes (or meta-notes about the process) on my personal blog. Since my personal blog is likely to outlive both of those other resources, I should copy things over anyway. Also, I can give myself permission to spend time exploring Emacs instead of answering mail or working on the course, since it’s fun to write about cool features I’m experimenting with.

If I think of writer’s block as learner’s block, it’s easy to chip away at it. Onward!

Getting R and ggplot2 to work in Emacs Org Mode Babel blocks; also, tracking the number of TODOs

I started tracking the number of tasks I had in Org Mode so that I could find out if my TODO list tended to shrink or grow. It was easy to write a function in Emacs Lisp to count the number of tasks in different states and summarize them in a table.

(defun sacha/org-count-tasks-by-status ()
  (let ((counts (make-hash-table :test 'equal))
        (today (format-time-string "%Y-%m-%d" (current-time)))
        values output)
     (lambda ()
       (let* ((status (elt (org-heading-components) 2)))
         (when status
           (puthash status (1+ (or (gethash status counts) 0)) counts))))
    (setq values (mapcar (lambda (x)
                           (or (gethash x counts) 0))
                         '("DONE" "STARTED" "TODO" "WAITING" "DELEGATED" "CANCELLED" "SOMEDAY")))
    (setq output
          (concat "| " today " | "
                  (mapconcat 'number-to-string values " | ")
                  " | "
                  (number-to-string (apply '+ values))
                  " | "
                   (round (/ (* 100.0 (car values)) (apply '+ values))))
                  "% |"))
    (if (called-interactively-p 'any)
        (insert output)

I ran this code over several days. Here are my results as of 2014-05-01:

Date DONE START. TODO WAIT. DELEG. CANC. SOMEDAY Total % done + done +canc. + total + t – d – c Note
2014-04-16 1104 1 403 3 1 104 35 1651 67%
2014-04-17 1257 0 114 4 1 171 107 1654 76% 153 67 3 -217 Lots of trimming
2014-04-18 1292 0 74 4 5 183 100 1658 78% 35 12 4 -43 A little bit more trimming
2014-04-20 1305 0 80 4 5 183 100 1677 78% 13 0 19 6
2014-04-21 1311 1 78 4 4 184 99 1681 78% 6 1 4 -3
2014-04-22 1313 2 75 4 4 184 99 1681 78% 2 0 0 -2
2014-04-23 1369 4 66 4 5 186 101 1735 79% 56 2 54 -4 Added sharing/index.org
2014-04-24 1371 3 69 4 5 186 101 1739 79% 2 0 4 2
2014-04-25 1379 3 60 3 5 189 103 1742 79% 8 3 3 -8
2014-04-26 1384 3 65 3 5 192 103 1755 79% 5 3 13 5
2014-04-27 1389 2 66 3 5 192 103 1760 79% 5 0 5 0
2014-04-28 1396 3 67 3 5 192 103 1769 79% 7 0 9 2
2014-04-29 1396 3 67 3 5 192 103 1769 79% 0 0 0 0
2014-04-30 1404 4 70 4 5 192 103 1782 79% 8 0 13 5
2014-05-01 1413 4 80 3 4 193 103 1800 79% 9 1 18 8

Here’s the source for that table:

#+NAME: burndown
|       Date | DONE | START. | TODO | WAIT. | DELEG. | CANC. | SOMEDAY | Total | % done | + done | +canc. | + total | + t - d - c | Note                       |
| 2014-04-16 | 1104 |      1 |  403 |     3 |      1 |   104 |      35 |  1651 |    67% |        |        |         |             |                            |
| 2014-04-17 | 1257 |      0 |  114 |     4 |      1 |   171 |     107 |  1654 |    76% |    153 |     67 |       3 |        -217 | Lots of trimming           |
| 2014-04-18 | 1292 |      0 |   74 |     4 |      5 |   183 |     100 |  1658 |    78% |     35 |     12 |       4 |         -43 | A little bit more trimming |
| 2014-04-20 | 1305 |      0 |   80 |     4 |      5 |   183 |     100 |  1677 |    78% |     13 |      0 |      19 |           6 |                            |
| 2014-04-21 | 1311 |      1 |   78 |     4 |      4 |   184 |      99 |  1681 |    78% |      6 |      1 |       4 |          -3 |                            |
| 2014-04-22 | 1313 |      2 |   75 |     4 |      4 |   184 |      99 |  1681 |    78% |      2 |      0 |       0 |          -2 |                            |
| 2014-04-23 | 1369 |      4 |   66 |     4 |      5 |   186 |     101 |  1735 |    79% |     56 |      2 |      54 |          -4 | Added sharing/index.org    |
| 2014-04-24 | 1371 |      3 |   69 |     4 |      5 |   186 |     101 |  1739 |    79% |      2 |      0 |       4 |           2 |                            |
| 2014-04-25 | 1379 |      3 |   60 |     3 |      5 |   189 |     103 |  1742 |    79% |      8 |      3 |       3 |          -8 |                            |
| 2014-04-26 | 1384 |      3 |   65 |     3 |      5 |   192 |     103 |  1755 |    79% |      5 |      3 |      13 |           5 |                            |
| 2014-04-27 | 1389 |      2 |   66 |     3 |      5 |   192 |     103 |  1760 |    79% |      5 |      0 |       5 |           0 |                            |
| 2014-04-28 | 1396 |      3 |   67 |     3 |      5 |   192 |     103 |  1769 |    79% |      7 |      0 |       9 |           2 |                            |
| 2014-04-29 | 1396 |      3 |   67 |     3 |      5 |   192 |     103 |  1769 |    79% |      0 |      0 |       0 |           0 |                            |
| 2014-04-30 | 1404 |      4 |   70 |     4 |      5 |   192 |     103 |  1782 |    79% |      8 |      0 |      13 |           5 |                            |
| 2014-05-01 | 1413 |      4 |   80 |     3 |      4 |   193 |     103 |  1800 |    79% |      9 |      1 |      18 |           8 |                            |
#+TBLFM: @[email protected]>[email protected]$2::@[email protected]>[email protected]$9::@[email protected]>$14=$13-$11-([email protected]$7)::@[email protected]>[email protected]$7

I wanted to graph this with Gnuplot, but it turns out that Gnuplot is difficult to integrate with Emacs on Microsoft Windows. I gave up after a half an hour of poking at it, since search results indicated there were long-standing problems with how Gnuplot got input from Emacs. Besides, I’d been meaning to learn more R anyway, and R is more powerful when it comes to statistics and data visualization.

Getting R to work with Org Mode babel blocks in Emacs on Windows was a challenge. Here are some of the things I ran into.

The first step was easy: Add R to the list of languages I could evaluate in a source block (I already had dot and ditaa from previous experiments).

 '((dot . t)
   (ditaa . t) 
   (R . t)))

But my code didn’t execute at all, even when I was trying something that printed out results instead of drawing images. I got a little lost trying to dig into org-babel-execute:R with edebug, eventually ending up in comint.el. The real solution was even easier. I had incorrectly set inferior-R-program-name to the path of R in my configuration, which made M-x R work but which meant that Emacs was looking in the wrong place for the options to pass to R (which Org Babel relied on). The correct way to do this is to leave inferior-R-program-name with the default value (Rterm) and make sure that my system path included both the bin directory and the bin\x64 directory.

Then I had to pick up the basics of R again. It took me a little time to figure out that I needed to parse the columns I pulled in from Org, using strptime to convert the date column and as.numeric to convert the numbers. Eventually, I got it to plot some results with the regular plot command.

dates <- strptime(as.character(data$Date), "%Y-%m-%d")
tasks_done <- as.numeric(data$DONE)
tasks_uncancelled <- as.numeric(data$Total) - as.numeric(data$CANC.)
df <- data.frame(dates, tasks_done, tasks_uncancelled)
plot(x=dates, y=tasks_uncancelled, ylim=c(0,max(tasks_uncancelled)))
lines(x=dates, y=tasks_uncancelled, col="blue", type="o")
lines(x=dates, y=tasks_done, col="green", type="o")


I wanted prettier graphs, though. I installed the ggplot2 package and started figuring it out. No matter what I did, though, I ended up with a blank white image instead of my graph. If I used M-x R instead of evaluating the src block, the code worked. Weird! Eventually I found out that adding print(...) around my ggplot made it display the image correctly. Yay! Now I had what I wanted.

dates <- strptime(as.character(data$Date), "%Y-%m-%d")
tasks_done <- as.numeric(data$DONE)
tasks_uncancelled <- as.numeric(data$Total) - as.numeric(data$CANC.)
df <- data.frame(dates, tasks_done, tasks_uncancelled)
plot = ggplot(data=df, aes(x=dates, y=tasks_done, ymin=0)) + geom_line(color="#009900") + geom_point() + geom_line(aes(y=tasks_uncancelled), color="blue") + geom_point(aes(y=tasks_uncancelled))


The blue line represents the total number of tasks (except for the cancelled ones), and the green line represents tasks that are done.

Here’s something that looks a little more like a burn down chart, since it shows just the number of things to be done:

dates <- strptime(as.character(data$Date), "%Y-%m-%d")
tasks_remaining <- as.numeric(data$Total) - as.numeric(data$CANC.) - as.numeric(data$DONE)
df <- data.frame(dates, tasks_remaining)
plot = ggplot(data=df, aes(x=dates, y=tasks_remaining, ymin=0)) + geom_line(color="#009900") + geom_point()


The drastic decline there is me realizing that I had lots of tasks that were no longer relevant, not me being super-productive. =)

As it turns out, I tend to add new tasks at about the rate that I finish them (or slightly more). I think this is okay. It means I’m working on things that have next steps, and next steps, and steps beyond that. If I add more tasks, that gives me more variety to choose from. Besides, I have a lot of repetitive tasks, so those never get marked as DONE over here.

Anyway, cool! Now that I’ve gotten R to work on my system, you’ll probably see it in even more of these blog posts. =D Hooray for Org Babel and R!

Update 2014-05-09: Stephen suggested http://blogs.neuwirth.priv.at/software/2012/03/28/r-and-emacs-with-org-mode/ for more tips on setting up Org Mode with R and Emacs Speaks Statistics (ESS).

Figuring out a fair price for outsourcing work

How can you figure out a fair budget for delegating work? If you set your budget too low, you might get frustrated by lack of response or by the kinds of results you get. If you set your budget too high, you might waste effort and talent. I can’t give you a price sheet. Besides, your needs will evolve over time. However, I can share some of the things I’ve been learning about budgeting for outsourcing or checking if people’s times are reasonable.

If you’re working with hourly assistance, you can ask people to track their times for specific tasks so that you can get a sense of how much something costs. You can also give a time limit and ask them to send you what they have at the end of that time. This will help you get a sense of their speed and the cost of the task. If you’re working with fixed-cost services, you can translate things back into hourly estimates and compare that with your own experience. Pick one system of measurement so that you can compare your chioces.

2014-03-24 Determining a fair price for outsourced work #delegation #outsourcing

2014-03-24 Determining a fair price for outsourced work #delegation #outsourcing

Instead of trying to nail down a single price, try to figure out a range that you’re comfortable with. You can start by looking for flat-rate fees from companies or people who post fixed prices online. For example, Transcript Diva lists transcript rates and timelines for some of their competitors as well. For general tasks, services like Fiverr and Fancy Hands help establish a range of $5-15 for common tasks.

Another way to establish a limit for what you’re willing to spend is to consider how long it takes you to do things yourself, and what else you would do with that time. Adjust based on people’s experience. Beginners will take longer to do things than you will, while experienced people may do this just as fast as you can. Specialists who have invested in tools or training may do things even faster. Sometimes it makes sense to delegate a task to someone who isn’t the optimal choice in terms of speed or cost, if they’re more integrated with the way you work or if you want to help them grow. (Sketch: delegation and task efficiency; blog post)

Then experiment. Try delegating a small task to a lower-cost service to see if that will meet your needs. Try delegating a similar task to a premium service to see if it’s worth the price. Try a mid-range service.

Think about the value you can get from the different types of results you have. If a service is expensive but it leads to a lot more income, it may be worth it.

Think of when you’d prefer to do things yourself, too. For example, even though it’s easy to find inexpensive data entry assistance, I prefer to automate straightforward tasks because I get to learn more about automation along the way.

As you delegate, think about what was worth it, and adjust accordingly. Make your experiments a little bit bigger as you get used to the idea. Find your sweet spot, and then keep experimenting. Good luck!

Building a habit of drawing with colours

If I don’t think about colour, I tend to not use it. I draw with whatever’s handy: blue pens, black pens, anything I’m carrying around. So one day I talked myself into being okay with this. (Click on images for larger versions.)

2013-11-21 I've decided to stop caring about pen colour

Figure 1: I’ve decided to stop caring about pen colour

I think this is just me compromising with myself, though. I think there’s more that I can do, more that I can learn.

On the computer, different colours are just a click away, so I use them. Here’s something I coloured in while waiting for the speaker to get through a very long line of people who wanted to talk to him. It’s nowhere near as colourful as the graphic recordings on OgilvyNotes.com or @agentfin’s sketchnotes, but I like it.

20130611 How to Live an Amazing Life - C.C. Chapman - Third Tuesday Toronto

Figure 2: How to Live an Amazing Life (C.C. Chapman, Third Tuesday Toronto)

Actually, colour is a lot of fun. It goes a long way towards making the sketches more approachable, less intimidating, easier to visually distinguish. That’s handy when I’m looking at my Flickr photostream or through my print-outs. Besides, the coloured sketches feel more polished. They make me feel better. (Then I worry that they become intimidating… So maybe the mix is all right – coloured sketches and plain ones, all jumbled up.)

How can I colour more? How can I make it part of my workflow? How can I practise and get good enough at it that it becomes a habit?

2014-01-02 What would it take to make colour part of my workflow

Figure 3: What would it take to make colour part of my workflow?

After drawing that, I started experimenting with switching pen colours. Red and black are classic combinations. This one was fun to do, and it didn’t take that much more thought compared to a plain black one. No post-processing, too.

2014-01-02 Google Helpouts - Imagining an ideal session

Figure 4: Google Helpouts: Imagining an ideal session

Drawing on the computer still produces more confident lines and colours, though. Maybe it’s the pen width, and the ease of switching between background highlights and pen colours?

2013-11-29 Helpers Helpout 02 - Communicating with Clients Before and After Helpouts

Figure 5: Helpers Helpout #2: Communicating with customers before and after Helpouts

So… Hmm. How can I make drawing with colour more habitual?

  • When I draw on paper, I will keep red and black pens handy. I think that will prompt me to use red for highlights, and red is more vivid than blue. If I’m working at a table, it’s easy to slow down and switch. I can use that as thinking time.
  • When I draw on paper, I’ll try staying with the density of figure 4 versus figure 1 – write fewer words and leave more space. I might also try out 0.5mm or 0.6mm pens (currently on 0.4mm) to see if that gives me a different feel.
  • When I process scanned sketches, I will colour at least one of them each day before moving them into my Flickr sync folder. That usually gets me to colour the rest.
  • At least once a week (probably every Thursday), I’ll draw on my computer instead of on paper. I’ve been minimizing the number of events and presentations I do and focusing instead on my own content, so I’ve been drawing on paper more than on my computer. Setting aside some time to work on my computer will encourage me to keep tweaking the workflow, and I like the feel of my computer-drawn images more.

Did you teach yourself to use colour? How was that process for you?

Update 2014-01-03: Here’s a related post about different colouring styles I’ve used

Setting up virtual machines with Vagrant

I spent a week focusing on system administration, and I feel more comfortable with my setup already. My web server hosts a number of blogs (like this one!) as well as my QuantifiedAwesome.com tracking dashboard. I want to make sure that things are backed up and that I can verify that my backups are running by creating a working website. It’s also useful to have a separate development environment where I can try out server configuration changes before applying them to production. Virtual machines to the rescue!

Vagrant is a tool that makes it easy to create and manage virtual machines with forwarded ports and shared folders. I use it for a couple of Ubuntu-based virtual machines on my laptop, and another backup-focused virtual machine on our Ubuntu desktop.

2013-10-28 Setting up virtual machines with Vagrant

You can make your Vagrant box more secure by changing the default passwords for root and vagrant, and setting up your own SSH key. Use vagrant package and vagrant box add to make this a new base box.

Related tools:

  • Give Veewee kernel and install info, and it will make base boxes for you. Good for testing different versions of distributions.
  • Vagrant works with Chef, Puppet, or shell scripts for provisioning. Need to reverse-engineer config from an existing server? Check out Devstructure Blueprint.
  • If you upgrade kernels or Virtualbox/VMWare, you might find vagrant-vbguest handy.
  • If your host system is pretty much the same as your deployment system architecture, check out Docker for a lighter-weight way to isolate your development environment.

These are some of my notes from when I was setting up my VMs. Different console backgrounds in Putty really help!

2013-10-28 Setting up my development environment VMs


2013-10-28 Deployment procedures

Weekly review: Week ending November 1, 2013

Great week for geeking out! Lots of system administration tasks checked off. =) Next week, time to focus on the “right side of the brain” – building visual vocabularies, animating sequences, and so on.

Blog posts

Other notes

  • vagrant-vbguest helps keep guest additions up to date
  • Looks promising: Devstructure Blueprint lets you reverse-engineer Puppet or Chef config from an existing system. https://github.com/devstructure/blueprint
  • Excel: Columns are number instead of letters? Tools – Options – General – Uncheck the R1C1 reference style

Link roundup


2013-11-01 Weekly review

Focus areas and time review

  • Business (50.9h – 30%)
    • Earn (22.1h – 43% of Business)
      • [X] Earn: Consulting – E1
      • [ ] Earn: Consulting – E1
      • [ ] E2: Draw sketch ideas for different “scenes”
      • [ ] E2: Record audio for trailer
      • [ ] E2: Sketch and animate trailer
    • Build (22.3h – 43% of Business)
      • Quantified Awesome (0.0h)
        • [X] Analyze yearly consumption
        • [X] Sort clothes by name by default
      • Drawing (6.2h)
        • [X] Draw something technical
        • [X] Package October sketches as a PDF – https://gumroad.com/l/eevz
        • [ ] Break another ten sketchnotes down into components and file them
      • Paperwork (2.2h)
        • [X] File HST return
        • [ ] File T2
      • System administration
        • [X] Set up WP caching
        • [X] Set up from-scratch Vagrant scripts
        • [X] Set up incremental backups
        • [X] Get vagrant working on desktop again
        • [X] Make sure correct image is committed to git
    • Connect (6.5h – 12% of Business)
      • [X] Host Visual Thinkers Toronto
      • [X] Try out Google Helpouts
      • [X] Submit more listings for Google Helpouts
      • [X] Chat with Magnar Sveen about Emacs
  • Relationships (9.9h – 5%)
    • [X] Set up project management for house stuff?
    • [X] Sort out drive with W-
    • [ ] Reply to the Hattoris
    • [ ] [#B] Comparison-shop for Luke’s possible dental work
  • Discretionary – Productive (10.9h – 6%)
    • [X] Look into johnw video problems
    • [X] Rescan black sketchbook
    • [ ] Process chat with Magnar – time bookmarks
    • [ ] [#A] Reflect on delta
    • Writing (5.4h)
  • Discretionary – Play (1.5h – 0%)
  • Personal routines (18.0h – 10%)
  • Unpaid work (14.7h – 8%)
  • Sleep (62.2h – 37% – average of 8.9 per day)

Blogging tip: Test your ideas and get more feedback in order to make your posts better

This entry is part 18 of 19 in the series A No-Excuses Guide to Blogging

It turns out that you don’t have to write alone, and that you don’t have to have all the answers (or all the ideas!) at the beginning.


I’ve been using Twitter to share ideas related to upcoming blog posts. For example, I asked people what kept them from taking notes, and I added their thoughts to a blog post that I was writing. I shared something I realized about dealing with uncertainty by making potential outcomes arbitrarily better, and that led to a back-and-forth conversations that helped me clarify what I meant.

Condensing an idea into 140 characters is a great exercise. Bonus points if there’s a question in there too.

Sometimes I share post ideas before I’ve drafted the posts so that I can see if an idea resonates enough to make me want to write it. Sometimes I share the idea after I’ve outlined or drafted the first version so I know what I think. I don’t ditch post ideas if they don’t get a response, but I mix in people’s feedback whenever I can.

I also use Twitter to share links to some blog posts after they go live, but the conversation seems more interesting if I don’t start it with a monologue. Besides, editing an upcoming post to incorporate people’s thoughts is much easier and more useful than updating something that people have already seen in their feed readers. The Share a Draft plugin is great for giving people links to unpublished posts. ScribeFire is great for editing existing posts.

Another benefit of writing posts in advance is that by the time you get around to folding people’s insights into your post, you probably have enough distance to edit your first version ruthlessly. If you do this at least a few days in advance, you can even go back to the people who shared their thoughts with you and see if you’ve quoted them properly.

imageIf you blog, try giving people a sneak peek at upcoming thoughts and asking them for feedback. You can do this through e-mail or through social networks. I like social networks like Twitter and Facebook more than e-mail because other people can see and build on responses, but feel free to use whatever works for you. Enjoy!

How to learn Emacs keyboard shortcuts (a visual tutorial for newbies)

This entry is part 2 of 4 in the series A Visual Guide to Emacs

Emacs keyboard shortcuts often mystify beginners because they’re not the same as the shortcuts for other applications (C-w instead of C-x for cutting text, etc.), and they’re long (what do you mean, C-x 5 f?!). I hope this guide will help break down the learning process for you so that you can pick up the keyboard shortcuts step by step. It’s under the Creative Commons Attribution License, so feel free to share!

Click on the image to view or save a larger version. It should print out fine on 8.5×11 paper in landscape mode, and you might even be able to go up to 11×17.

20130830 Emacs Newbie - How to Learn Emacs Keyboard Shortcuts

This is actually my second version of the guide. In the first one, I got a little sidetracked because I wanted to address common frustrations that get in people’s way. Here’s the Grumpy Guide to Learning Emacs Keyboard Shortcuts:

20130830 The Grumpy Guide - How to Learn Emacs Keyboard Shortcuts

The #emacs channel on Freenode was totally awesome in terms of feedback and encouragement. Special thanks go to agumonkey, aidalgol, Fuco, ijp, JordiGH, nicferrier, pkkm, rryoumaa, and webspid0r for suggestions. =)

If you like this, you might also like the similar hand-drawn one-page guide I made on How to Learn Emacs, or my other Emacs-related posts. Enjoy!

For your convenience, you can find this page at http://sach.ac/emacs-keys.

My evolution as an “artist”, or why there’s hope for you yet

Although my mom had enrolled me in a couple of art camps and classes when I was a kid, I was definitely not one of those instinctively drawn to it. I had classmates who spent all their free time (and much of class) doodling in sketchbooks. I immersed myself in text, reading books, writing notes, programming computers. Well, I’d been mindmapping since grade school, so visual thinking was already part of my life – but it didn’t captivate me as much as text did.

Here’s how I rediscovered drawing.

2007. J- had been looking forward to getting a Nintendo DS. Since there were some interesting games with cooperation modes and one of the stores had a decent sale on Nintendo DSes, I bought myself one as well. I immediately loaded it up with an application called Colors DS, which let me draw using the Nintendo’s stylus. It was a lot of fun.



This was fun, so I started drawing on paper too. It wasn’t nearly as awesome, but it was a good mental challenge.


I got into drawing my presentations on a whim. In 2008, I was a technology evangelist and web developer at IBM Canada. I was passionate about how social business systems like internal blogs and communities could transform the way organizations worked. An IBMer in New York told me that whenever she went on campus tours, the students she talked to simply couldn’t grasp the idea of why anyone would want a social network at work. To help her out, I put together a presentation.  I figured – why not make my rough storyboard the actual presentation? So I drew it on my DS and made this:

People liked it. A lot. And they wanted to know how I made it, so I made this:

And then I started sketching most of my presentations, because it turns out you can get away with stick figures instead of bullet points even at IBM:

I had some space in my opportunity fund. Since I was drawing a lot more than I used to, I decided it was time to invest in tools. I didn’t think I had the hand-eye coordination for working on a Wacom tablet attached to the monitor, so it was a toss-up between getting a tablet PC or a Cintiq tablet that lets you draw on a screen. I sprung for the Cintiq 12WX, reasoning that it would let me keep upgrading the computer it was attached to instead of locking me into something with limited upgrade capability. Using it with Inkscape was great, because I could tweak my drawings until they kinda looked like what I had in mind.


When Slideshare organized a Best Presentation Contest, I thought, why not? I didn’t think I stood a chance in the “serious” categories, so I went for the self-introduction one instead.

I won, which was a little mind-boggling. My prize was an iPod Touch, which I immediately used for more drawing.


In 2009, I made a couple of other presentations that got pretty popular: The Shy Connector:

and A Teacher’s Guide to Web 2.0 at School.

I helped organize lots of innovation workshops at IBM. I started drawing there too. It turned out this is called graphic facilitation. I took notes at other people’s presentations. This one is from Gary Vaynerchuk’s talk at DemoCamp in Toronto:


Getting a tablet PC made a huge difference in how I drew. The Lenovo X61 was my first tablet PC. I bought it second-hand in 2010 and started drawing right away. For the first time, I could draw digital notes at meetups.


In 2011,  I switched to using Autodesk Sketchbook Pro. I even started giving presentations using it.


I looked at other people’s work for inspiration, and I played around with my own. I really liked how Exploding Dog and Hyperbole and a Half managed to say so much with simple figures and vibrant colours, so I tried that out.


I still don’t feel particularly confident about colour, though. Seriously, I have the computer figure out complementary colours for accessorizing. So I draw mostly in black and white, like in this three-word life philosophy.

20121102 Three Word Life Philosophy - Sacha Chua

If you compare how I draw now (black and white stick figures, with some colour for accents/highlights) and how I drew in 2007 or 2008… there’s not that much difference. I still draw stick figures. I still don’t have a lot of depth or fancy layouts. I still don’t use pressure sensitivity. My lines are still a little wobbly. I use fewer colours, even. I like the colourful explosion of my Katamari drawing! I should make stuff like that again.

The main difference is that I know my tools more, I guess. I know how to set up a grid so that my text is mostly straight. I work with brushes so that my lines look clean and confident. I work with layers so that I can redraw or erase or move things around. I know that digital drawing works out much better for me than paper does. I know that I don’t have to be an “artist” and I don’t have to make art – I just have to make something that makes me smile.

From time to time, I’m a little bit envious of friends who doodled and drew their way through years and years of practice, and who can now make these beautiful drawings just from their imagination. It’s okay. I can draw well enough for my purposes, even if I probably draw worse than my 7-year-old self could. =)

So that’s my “evolution”. I haven’t actually made much progress in terms of drawing skills, because I haven’t needed to. Simple stick figures turn out to be enough. In fact, I probably won’t try to draw amazingly well, because I want to keep things approachable for people. I want people to look at this and say, “Hey, I can do that.” If anything, I’ve probably only grown in terms of vocabulary, confidence, and understanding. That’s just a matter of practice, and I’m looking forward to getting even better.

Monthly review: June 2013

Last month, I wrote:

June promises to involve a lot of consulting and professional sketchnoting, lots of gardening and biking, and some big personal decisions. Let’s see how it works out!

This summer has been surprisingly cool, which is not a bad thing when biking. I’ve been scaling back consulting and sketchnoting events in favour of coding and working on personal projects, and I like the results. =) This was also the month we worked on the backyard patio, shovelling gravel and laying patio stones – that’s why family time went up quite a bit. New experiences, yay!

I experimented a bit with virtual meetups, too. Seems to be fun! Looking forward to digging into that some more.

July will be about gearing up for more changes, getting better at writing blog posts and making videos, and working on more projects around the house. I like this. =)

Time use

  • Business: 191.6 hours (27%) (~ 44.5 hours per week, good)
    • Build: 83.7 hours – 44% of business
    • Connect: 31.6 hours – 16%
    • Earn: 76.2 hours – 40% (~ 18 hours per week, good)
  • Discretionary: 130.7 hours (18%)
    • Family: 49.6 hours – 38% of discretionary
    • Play: 24.1 hours – 18%
    • Productive: 41 hours – 31%
      • Writing: 23.5 hours
    • Social: 15 hours – 11%
  • Personal: 95.5 hours (13%)
    • Bike: 23.4 hours
  • Sleep: 257.7 hours (36%) – 8.6 hours on average
  • Unpaid work: 44.7 hours (6%)

Blog posts

Good influences in partnerships

I used to worry that relationships would distract me from what I want or need to do, but it turns out that marriage can be a wonderful influence. For example, my life is healthier than it probably would have been without W-. His experience as a bike courier and the trips we took together helped me gain the confidence to make biking my regular commuting method. (In city traffic, even!) I’ve graduated to thinking of rain as no barrier to biking, especially bundled up in my rain jacket, rain pants, and rain boots. (Not thunderstorms or snow yet; those are still scary.)

Yogurt was one of those things I never really liked eating before, although W- likes plain yogurt. Now we have a daily habit of eating yogurt. We started with packages of fruit-bottom yogurt, and now I’ve graduated to a bowl of plain yogurt swirled with home-made apricot syrup. Someday I might even grow to like unsweetened yogurt.

There are all sorts of skills I’d never try out on my own, too. We’ve built ourselves Adirondack chairs and a cage around our vegetables. I’ve helped patch and repaint things inside and outside the house. We recently poured a concrete post to support the deck (one of the posts was rotting). Now we’re learning how to properly lay patio stones on a bed of gravel.

W- is helping me build my exercise habits, too. The krav maga classes are a bit intimidating for me, so we’re working on building up my strength and confidence through workouts at home. I feel a little self-conscious about it being slow going, but he says it’s worth the time investment for him to help me turn it into a self-sustaining habit. 

As for me, I influence him to take notes, track his finances, and make frugal decisions. I’m good at wording things, too. He’s older than I am, so in the beginning I wasn’t sure if there was anything I could help him learn or improve, but it turns out that I have things to share too.

I don’t know if my friends could influence me in these ways. I don’t see people often enough, I think, and it would be weird for friends to nudge me into, say, eating yogurt more often. W- and I are in it for the long haul, so it makes sense to invest in skills and habits that make it better over time.  Why does it work?

Good habits rubbing off on each other: I can see W- regularly exercising and getting a kick out of it, and he can help me start getting the hang of it. I talk about decisions and my decision-making processes, and he asks me questions about investing.

Encouragement and positive reinforcement: I enjoy biking, but other forms of exercise are still in the “this is hard work, a little scary, and not at all fun!” phase. I am totally fine with hacking my motivation by turning it into a social thing, an “exercise date” at home.

Consistency: The other night, I was the one who reminded him that he skipped the previous night’s yogurt. We remember things for each other, and we can cheer each other on.

Maybe this is one of the things that partnerships are about. It’s pretty cool!

It might be interesting to get better at the meta-skill of getting better together. The better we get at being good influences for each other, the more we can improve our lives. This probably means being more conscious and deliberate about things we want to learn or habits we want to pick up, improving the way we communicate with and motivate each other, and maybe tracking the consistency and success of these changes so that we can celebrate or course-correct.

Onward and upward!

Keeping in touch

Come to think of it, I used to worry more about ways to keep in touch. I customized my address book so that it would keep track of the last time I e-mailed or met someone and so that I could see whom I hadn’t contacted in a while. Some people are easy to connect with because you interact with them frequently or bump into them a lot online, but there are lots of other interesting people who don’t – and so you’d need to reach out to them in order to find out what’s going on.

After I stopped being able to use Emacs for my mail, I tried out different personal contact relationship management systems like Contactually and Nimble to see if I could have that kind of contact tracking there. It was pretty interesting, and sometimes I used the prompts to focus on one or two people I hadn’t heard from in ages. I checked their Facebook page or Twitter to see what they’ve been up to and looked for excuses to help them or reach out to them. Sometimes that led to interesting conversations.

I often deleted the reminders, though, and I decided it wasn’t worth paying something like $20/month for that kind of a reminder service. I’m becoming more comfortable with the way people flow into and out of one’s life. There are some old friends I get to talk to once in a while, which is wonderful, but I’m in no rush to develop old acquaintances into friendships.

There are lots of awesome people out there, so I can go with the flow – to respond to people, and to reach out when something prompts me. I’ve gotten pretty good at being open and comfortable with people. I remember what it’s like to be around close friends, and I get as close as I can to that as I can even with new groups. I don’t have the same kind of everyday camaraderie I had in my old circles of friends, but that makes sense in this part of my life. (Although Hacklab feels like an instant barkada too, with the way they’re friends with each other. ^_^ Hmm…)

So instead of worrying about keeping in touch, I keep part of my budget for coffee, lunches, dinners, tea parties, and stamps, spend time with friends in leisurely conversation or shared activities, and read people’s blogs and Facebook updates. I’m a little sad that it means my circles tend to be tilted towards people who are active on the Internet or who are in the same city as I am, and I know there are wonderful people whom I’m missing. But life moves in mysterious ways, so let’s see!

Brainstorming ways to help build the Emacs community

John Wiegley and I had lots of fun brainstorming ways to help move Emacs forward, particularly as I’m carving out more of my time to focus on Emacs. Here’s what we talked about:

A rough outline of things to flesh out into articles/chapters:

  • productivity, org-mode
  • development
    • emacs lisp
    • haskel, rails, java, and other languages…
  • writing
  • e-mail
  • IRC/Twitter/FB
  • web
  • games and diversions
  • documentation
  • learning and discovery

Learning Emacs development:

  • tools
  • cons cells
  • macros, quoting
  • control structures
  • Emacs structures: windows, buffers, text properties, etc.
  • lambdas
  • libraries

Ideas for visualizations:

  • #emacs word cloud or URL frequency/analysis
  • IUseThis for Emacs, maybe with annotations


  • PLEAC for Emacs? Emacs Lisp cookbook?
  • Coding patterns

IDE challenges:

  • IntelliSense
  • Excellent project browsing
  • Refactoring
  • Integrated test harnesses
  • Asynchronous operation
  • Performance (especially of code analysis and navigation tools)

Target communities/audiences?

  • Emacs beginners: getting more into Emacs, learning more about packages, customizing Emacs; learning path through packages, maybe with time estimates?
  • Emacs intermediate: tweaking Emacs, getting into Emacs Lisp, contributing upstream; need to update Writing GNU Emacs Extensions
  • Keyboard enthusiasts: keyboard shortcuts, customizability
  • Non-developers (writers, scientists, mathematicians, etc.): Context-specific functionality, starter kits, easy installs, articles, screencasts – learn from Aquamacs, Ready Lisp. Pre-built Org starter kits? screencasts, interactive tutorials, games as introductions
  • Users of defunct editors: migrated features, migration guides
  • IDE users: integration with other parts of life
  • Vim users: configurability envy, migration/emulation

Emacs performance: elp, memory-use-counts, garbage collection, algorithms, cookbook, core work


  • packages: popularity, reverse dependency graph, URL log for #emacs, 24 packages for Christmas and other blog series, IUseThis, reminders to be lazier / stories for inspiration
  • EmacsWiki: guided tour, CSS design

Imagining awesomeness in 5 years: Responsive editor that’s easy to set up; SEO so that people can find useful resources; context/goal-specific documentation; regular virtual show&tell

Imagining nonawesomeness: Weak async; marginal/niche; people moving away to other editors because of growing gaps; performance issues; unmaintained code; developer burnout

EmacsConf: mailing list for next year, venue?


Here’s what I’m looking forward to devoting some of my time to:

Write and draw

  • EmacsWiki page updates
  • Guided tours
  • Emacs Lisp cookbook
  • Package reviews
  • Interviews with people so that they can share their tips (incl. screencast and transcript)


  • Package use
  • Performance
  • Logs


  • Performance optimization (Emacs Lisp and core)
  • Package descriptions and use


  • Issues
  • Feature requests
  • Integration
  • New code

Lots of possibilities!

Weekly review: Week ending March 1, 2013

Lots of cooking this week! I spent the weekend making nine different banchan recipes, and it really paid off in terms of yummy beef bulgogi lunches with varied appetizers. Yay!

I did a lot of writing, too. I like doing that. And drawing. =) And I got to talk to lots of interesting people! Life is good.

Blog posts

Accomplished this week

  • Business
    • Earn: Consulting – E1 – Tuesday
    • Earn: Consulting – E1 – Thursday
    • Drawing
      • Sketchnote a book
      • Map some artist styles
      • Add people to Visual Thinkers Toronto mailing list
      • Co-host Visual Thinkers Toronto meetup
      • Work on building my visual vocabulary
      • Follow up with U
      • Practise drawing faces
      • Clip more images
    • Emacs
      • Prepare for pair programming session – want to talk through Emacs configuration, tool setup
      • Research how people are using Emacs
      • Emacs talk
      • Write lots of blog posts
  • Relationships
    • Talk to Oliver Barthel about sketchnotes
    • Drop by HackLab.to on Friday
    • Talk to Avdi about his Emacs setup
    • Cook a lot of food
    • Set up tea for Saturday
  • Life

Plans for next week

  • Business
    • [ ] Earn: Consulting – E1 – Thursday
    • [ ] Earn: Consulting – E1 – Tuesday
    • [ ] Co-host Quantified Self Toronto meetup: 3/6 (Wed)
    • [ ] Prepare for graphic recording meeting with client M
    • [ ] Meet with client M about graphic recording
    • [ ] Listen to last course in scribing
    • [ ] Sketchnote a book
    • [ ] Emacs: Add more detail to present section of talk
  • Relationships
    • [ ] Drop by HackLab.to on Monday
    • [ ] Drop by HackLab.to on Wednesday
    • [ ] Drop by HackLab.to on Friday
    • [ ] Check out neuroscience lecture?
    • [ ] Visit Emma Logue
    • [ ] Visit Stephen Crawford
    • [ ] Work on project R
    • [ ] Watch Buffy the Vampire Slayer
    • [ ] Check out Final Fantasy XIII
  • Life
    • [ ] Set up dentist appointment
    • [ ] Write about anxiety and self-talk
    • [ ] Write blog post about chat with Avdi Grimm
    • [ ] Study for the Canadian citizenship test
    • [ ] Declutter

Time review

  • Business: 39.9 hours (E1: 13.8, Connect: 10.2, Drawing: 14.9)
  • Discretionary: 31.3 hours (Emacs: 13.6, Writing: 4.0)
  • Personal: 14.4 hours (Routines: 10.9)
  • Sleep: 60.1 hours – average of 8.6 hours per day
  • Unpaid work: 22.3 hours (Commuting: 3.9, Cook: 11.2)

Weekly review: Week ending February 1, 2013

A sprint of work! =) Got lots done, sketched a new idea, drew a two meetups… I think I’m on the trail of something interesting, and I’d like to dig into it more next week.

Blog posts

Accomplished this week

  • Business
    • Earn
      • E1: Reporting, homepage tweaks
      • Deposited MaRS cheque
    • Connect
      • E1: Went to Friday get-together
      • Went to visual thinking get-together
      • Sketchnoted Awesome Foundation Toronto event
      • Helped Chris with advice
      • Met Randy, discussed sketchnotes
      • Went to Union get-together
      • Uploaded Quantified Self Toronto video
    • Build
      • Prototyped sketchnote index (Ember.js, jquery.csv.js)
      • Entered data for sketchnotes
  • Relationships
    • Went to krav and yoga on Wednesday
    • Worked on project
    • Helped out at Hack Lab
  • Life
    • Make lasagna

Plans for next week

  • Business
    • Build admin interface for sketchnote index
    • Add other sketchnotes
    • Set up communication plan for Awesome Foundation Toronto
    • Drop by hacklab.to on Tuesday
    • Kick off visa process for London
  • Relationships
    • [X] Go to krav classes
    • Prepare another batch of food
  • Life
    • Write about fear and self-talk

Time review

  • Business: 50.0 hours (E1: 23.0, Connect: 14.2, Drawing: 0.3, Coding: 1.2)
  • Discretionary: 25.6 hours (Social: 6.6, Writing: 0.8)
  • Personal: 19.6 hours (Routines: 10.6)
  • Sleep: 61.4 hours – average of 8.8 hours per day
  • Unpaid work: 11.4 hours (Commuting: 7.1, Cook: 1.7)

Visual book review: Blue Ocean Strategy–W. Chan Kim, Renée Mauborgne

Most business books focus on beating the competition. Blue Ocean Strategy (Harvard Business School Press, 2005) focuses on breaking out of red oceans of competition, creating new markets instead. Here are some ways to find alternative markets: alternative industries, strategic groups, buyers, complementary product and service offerings, functional/emotional appeal, time.

Click on the image for a larger version of the sketchnote.

20121228 Book - Blue Ocean Strategy

Feel free to share this! You can credit it as (c) 2012 Sacha Chua under the Creative Commons Attribution 2.5 Canadalicence.

Blue Ocean Strategy is a good book for established companies that are finding it challenging to differentiate themselves, but it’s also a good read for companies that are starting out and who are looking for their unique selling propositions (USPs).

I’m going to go over different business ideas, sketch red ocean / blue ocean strategies for each, and see about talking to lots of people in order to help validate the sketches. Looking forward to it!

Check out my other sketchnotes and visual book notes. Want me to sketchnote your event? Know of any interesting tech / business talks coming up? I’d love to hear from you!

Weekly review: Week ending November 30, 2012

Lots of sketchnoting last week and this week! =D

From last week’s plans


  • [X] Earn: H: Revise presentation
  • [X] Earn: H: Send invoice
  • [X] Earn: H: Give presentation
  • [X] Earn: E1: Wrap up consulting before December break
  • [X] Build: Attend art class
  • [X] Build: Sketchnote content marketing webinar
  • [X] Build: Learn about launching online businesses
  • [X] Connect: Have lunch with Scott and Nolin, discuss sketchnotes
  • [X] Connect: Attend Awesome Foundation pitch night
  • [X] Connect: Sketchnote Entrepreneurship 101
  • Build: Improved scheduling process
  • Build: Learned more about using Trello to manage my tasks
  • Earn: Added more logos to Lean Startup Day template
  • Build: Flesh out sketchnoting business idea
  • Earn: E1: Signed contract extension and submitted it
  • Connect: Helped mom with copyediting “About Us”
  • Build: Cleaned up web host files
  • Earn: Deposited cheques, yay!
  • Connect: Discussed sketchnotes with Alex Chong
  • Build: Sorted out tax instalments


  • [X] Cook a lot!
  • [X] Spend time together relaxing
  • [X] Put package together for family – to mail on Tuesday


  • [X] Attend women’s self-defense course

Plans for next week


  • [ ] Earn: Sketchnote MaRS Lean Startup Day
  • [ ] Earn: E1: Check in on theme, prepare performance improvements (Tue)
  • [ ] Earn: Talk to N regarding sketchnotes (Wed)
  • [X] Connect: Sketchnote AngelHackTO
  • [ ] Connect: Attend Dan Roam’s lecture at Rotman (Tue)
  • [ ] Connect: Attend Toronto Holiday Tech Social (Tue)
  • [ ] Connect: Reconnect with Curtis Voisin (Wed)
  • [ ] Connect: Reconnect with Sharon Sehdev about connecting (Fri)
  • [ ] Connect: Talk to Gary Wolf about delegation
  • [ ] Build: Revisit scribing course
  • [ ] Build: Document sketchnote workflow some more
  • [ ] Build: Get ready for business brainstorming sessions


  • [ ] Go to krav fitness class on Thursday
  • [ ] Attend Eric Boyd’s birthday party
  • [X] Cook a ton of food and restock the freezer


  • [ ] Go for a nice long walk (1-2 hours)
  • [ ] Finally sit down and write those monthly reviews

Sketchnotes: Angel Hack Toronto pitches!

Sketchnotes from today’s pitch afternoon – 62 2-minute pitches from the different teams in Angel Hack Toronto. Lots of great stuff! Feel free to share these visual summaries under the Creative Commons Attribution License.

20121202 AngelHack 1 20121202 AngelHack 2 20121202 AngelHack 3 20121202 AngelHack 4

See the AngelHack Toronto presentation list for links to short descriptions.

Like this? Check out my other sketchnotes for business- and technology-related visual summaries. Want me to draw for you? Get in touch!

Business experience report: Filing taxes!

I filed my corporate taxes and HST today, well ahead of the deadlines. The money will earn negligible interest in my business bank account and I don’t need it for cashflow, so I’m better off paying the government early and not missing any deadlines. I’m still looking for an accountant to work with in the future, but fortunately, my first-year taxes (no home office deductions, etc.) are simple enough that TurboTax looked like it would do the job.

After reading and re-reading and re-reading the T2 corporate tax return it prepared, I took the plunge and e-filed it with the Canada Revenue Agency. For good measure, I also filed my HST taxes even though they’re not due until next month.

Paying that much in taxes triggers the monthly/quarterly installment requirement, which happens even though they don’t send you a notice. This has tripped up enough new business owners that people have written lots of forum posts about it. I’m glad I found out about that requirement—it pays to watch small business boards! (Actually, it would probably also pay to have a great accountant, but I’ll keep looking.)

There are several options for how much to pay in each installment, but according to the Internet and to the CRA agent that I called to confirm, the safest way is to pay a proportion of what you owed the government the previous year. That way, even if it’s less than your actual taxes owed, you won’t owe interest.

I think I’m eligible for quarterly installments of federal tax, but to be sure, I scheduled monthly payments for federal tax and scheduled quarterly payments for HST. I’ll pay a little extra in terms of bank fees, but it’s worth the peace of mind.

It is a large chunk of money to set aside for taxes. I don’t expect to make as much income this fiscal year because I’m forcing myself to experiment with more uncertainty, so it’s good that I’ve left practically all the money in the corporation.

So there’s another business milestone – surviving taxes! It’s better to plan for a future audit than to assume there won’t be one, so I’m happy to get my books in order. Next year, I’ll learn more about capital cost adjustments. It would be good to have an accountant who can explain these things and make sure I’m doing things right, but it’s good to know these things too!

Someday, when I need to get money out of the corporation, I’ll learn about payroll deductions and T


My first full day back at consulting after a month-long vacation, and it felt great. I started digging into the REST API for the system we were using, and I figured out how to build a simple command-line client to get data. I’d built a similar community analysis tool while at IBM, and that one saved lots of people hours and hours of work. Since we were starting to need similar reports, it made sense to build a tool instead of manually crunching the numbers. This time,

I decided to build the tool using Ruby instead of Java, packaging it into an .exe with Ocra. I found Ruby to be much easier to write in. The interactive mode made it easy to prototype my ideas. Gems meant that I didn’t have to hunt all over for packages and figure out how to make them work together. It was fun to come up with more ideas and add them to the tool.

I love making tools. I like digging into the wires behind web-based services and making up new ways to use stuff. The value isn’t as visible or as easy to appreciate as, say, web design work, but it’s much easier to build something quick and then tweak it to fit specific people. I like that part a lot – tailoring tools to specific ways of working.

I was thinking about the different things I might like to be really, really good at in twenty years’ time. My current shortlist: writing, drawing (mostly sketchnotes), and toolmaking. I think writing and drawing are like toolmaking for me too. They’re about making tools for the mind, helping people learn faster or more effectively or about more things. =) Maybe if I practise and learn more about writing and drawing — the way I’ve spent most of my life programming — I’ll be able to make wonderful little things too.

International cooking

I was thinking about going to the Canadian National Exhibition to watch the airshow with friends and check out the international showcase. Then again, aside from the indulgence of halo-halo from the food court and perhaps something from Bacon Nation… Was that enough for the admission fee and a long time in sun and crowd?

Afternoon at the fair, or a day of cooking? With a fridge full of fresh ingredients, new recipes to try, a stack of videos to watch during the marathon wonton-making session we had planned, and a husband who had already gotten a head start making a large pot of chicken stock – it was an easy decision.

I made cold spring rolls for the first time: shrimp, vermicelli, carrots, basil, cilantro, lettuce, and rice wrappers. I mixed up the peanut sauce using the last of our peanut butter and some other seasonings from the fridge. It was messy, but we’ll probably get better at the technique over time.

Then we made 236 wontons, whee! We had some of the wontons along with the leftover shrimp on top of the vermicelli, along with a reasonable attempt at a nuoc cham dipping sauce made without fish sauce (we’re all out).

I like days like this, getting the house ready for another good week. I’ll be away for two weeks, so I’ll miss these routines. =)


No longer worried about flat tires

My bicycle’s rear wheel has a fast leak. I pumped it up this morning, and by the time I returned to my bike after a good day at the office, it was as smooshy as a cat on a hot day. I refilled it with the pump I carry in my emergency kit – first time to use it! – and headed home, which is about an hour’s ride. (Mostly due to one steep hill near the end; it takes me about forty minutes the other way). Flat again when I got home.

W- will help me fix my bicycle this weekend. He used to be a bike courier, and he knows all sorts of things. =)

The neat thing is that this experience shows me that I don’t have to worry too much about a flat tire, especially on a decent day. Good to know!

Transcript: Emacs chat with John Wiegley

This post is long, so if you’re reading this on the main page, go to http://sachachua.com/blog/2012/07/transcript-emacs-chat-john-wiegley/ to view the full transcript!

Here’s the video.

You can also download the MP3.
[

Weekly review: Week ending June 1, 2012

Many small improvements this week! I installed a drip irrigation system in the garden to help with watering. I think I may need to replace some of the hoses or tweak the configuration a bit, but it’s a good start, and it’ll mean that the tomatoes, peas, and bitter melon plants will get watered reliably. The garden is starting to do interesting things. The bok choy plants we bought and planted are now enormous, the first strawberries are reddening, the tomato plants are flowering, the peas are climbing away, and the bitter melon is flourishing. We’ve been cheering on some birds-eye pepper seedlings, too – let’s see how far they get!

I upgraded my laptop to a solid-state drive (SSD) last night, and I’m looking forward to enjoying much snappier performance. It’s almost like having a new laptop.

It’s been wonderful having so many different types of desserts in the house. Brownies, lemon squares, polvoron… Hooray for freezable goodies that can be spread out over weeks.

Business-wise, this week was another sprint – 45.7 hours spent consulting. It’s been okay so far, although I was glad to take Friday to learn Quickbooks and upgrade my drive. I want to learn Quickbooks because even if I outsource bookkeeping and accounting, I want to know what’s going on, and I want to be able to have better conversations about it. It’s a bit expensive, but I’d rather do that kind of tracking throughout the year instead of waiting until tax-filing time or leaving it entirely in someone else’s hands. I might look for a bookkeeper on Odesk to help me review my setup and keep the files up to date.

I’ve got a lot of data to analyze. My virtual assistant has typed in all the details from our grocery receipts, so I can crunch the numbers in time for the Quantified Self Toronto meetup on Thursday. I’ve reviewed the three notebooks I scanned in, and am looking forward to scanning in more. I’m most of the way through my blog archive – now looking at 2009 and moving forward – and I’ve been rating posts from 1 to 5. I’ve hired a WordPress developer to make a plugin for filtering the rated posts so that it’s easy to see highlights. Tapping other people’s time and skills turns out to be lots of fun.

From last week’s plans

  • Business
    • [X] Earn: E1: Mon-Thu: More training, get ready for conference
    • [X] Earn: R1: I18n, invoice
    • [-] Connect: Practise pinging people
    • [X] Build: Set up my local development environment for Quantified Awesome
    • [-] Build: Coach my mom on delegating to virtual assistants
    • [X] Build: Learn more about Dragon NaturallySpeaking
    • [-] Build: Write about first-quarter experience
    • Build: Upgraded to SSD, yay!
    • Earn: R1: Production deployment slightly stressful, but should improve going forward
    • Earn: R1: Learned a little about Sencha Touch
  • Relationships
    • [-] Help with study group – no study group, PA day
    • [X] Clear my inbox
    • [-] Plant front garden
    • [X] Install irrigation system
    • Watched Going Postal, which was lots of fun; also, a few other movies
    • Made polvoron
  • Life
    • [X] Balance books and update accounts
    • [X] Review past notebooks
    • [-] Finish rating my past blog posts
    • [-] Relax

Plans for next week

  • Business
    • [ ] Earn: E1: Conference
    • [ ] Earn: E1: Community prototyping
    • [ ] Earn: R1: Support, i18n
    • [ ] Connect: Set up meetings with people
    • [ ] Build: Write some blog posts on Emacs
    • [ ] Build: Investigate pictures in org2blog
    • [ ] Build: Write about first-quarter experience
    • [ ] Build: Post a job on ODesk for a bookkeeper
    • [ ] Build: Braindump lots of blog posts
  • Relationships
    • [ ] Have M- and C- over for lunch
    • [ ] Plant front garden
    • [ ] Help with study group
  • Life
    • [ ] Finish rating my past blog posts

Time notes

  • Business: 62:31 (E1 30:52, R1 13:47, connect 1:05)
  • Discretionary: 18:35 (gardening 3:23, writing 1:02, social 0:47)
  • Personal: 28:20 (biking 7:03, routines 13:50)
  • Sleep: 50:58 (average 7.3 hours per day)
  • Unpaid work: 7:34

Visual metaphors: Argument


(Click on the image to view a larger version.)

Different ways to visualize argument:

  • War: conflict, opposition, fight, demolishing a flimsy argument, score, scoring points, targeting the weak link, poking holes
  • Logic: building an argument, issue-based information systems, sound/unsound logic, follows/does not follow
  • Cooperation: Co-adventurers searching for a creative solution, on the same side, trading, shared journey
  • See also: Balance

This is part of my Visual Metaphors series. Like it? Suggest other ways to visually describe “argument”, or tell me about other terms you’d like to see!

Visual book notes: 6 Secrets to Startup Success


(Click on the image to see a larger version, which could be good for reading my teeny-tiny handwriting. If you need a text version instead of an image, leave a comment or e-mail me at [email protected].)

You know how I was looking for books about people-centered entrepreneurship? Checking the Amazon list of books on new enterprises led me to 6 Secrets for Startup Success by John Bradberry. Its main point is that entrepreneurs tend to fall in love with their ideas and end up ignoring reality. Bradberry points out six common failures associated with being too attached to your idea, and suggests ways to avoid those pitfalls. One of those ways is to focus on people instead of on your product or service idea. This is more of an overview book than a step-by-step guide with concrete tactics, but it’s a good wake-up call if you’re starting to get lost in your own dreams.

In addition to the chapter about focusing on people, I particularly liked the chapter on figuring out your math story. Bradberry points out that companies go through different stages and that your core question is different in each stage. In the first stage, the question is: “Do we have a concept that anyone (other than us) cares about?” After you successfully answer that question through prototypes and experiments, you can move on to the question, “Can we actually make money at this? How?” Validating your business model lets you move on to the next question, “Is this business scalable? How can we create significant value over time?” Many businesses struggle because they get all wrapped up in the third question before they’ve answered the first. It’s a good idea to keep those considerations in mind, of course, but it’s important to pay attention to the steps that will get you to that point instead of jumping ahead and pretending you’re a huge company.

What I’m learning from this book: Yes, it seems to make sense to focus on people and let them teach you what they want. (The Lean Startup makes this point as well.) There’s room in the world for wildly visionary companies, but it’s perfectly okay (and much less risky) to start by creating something people already want.

Whom this book is great for: Worried that you’re getting too wrapped up in your entrepreneurial vision? This book might help as a reality check. If you like answering questionnaires as a way of learning more about yourself, you’ll also want to check out the appendix, which has a long self-assessment for founder readiness.

You may also be interested in The Lean Startup (Eric Ries, 2011; see my visual book notes), which has lots of good ideas for testing your business and iterating your way towards success. The Lean Startup book will help translate the chapters on the pull of the market and startup agility into concrete terms.

6 Secrets to Startup Success: How to Turn Your Entrepreneurial Passion into a Thriving Business
John Bradberry
2011, AMACOM
ISBN: 978-0814416068

Buy this book: Amazon.com (Hardcover, Kindle), Amazon.ca
If you buy stuff through the links above, I get a small commission, yay! Commission-free links: Google Books, Toronto Public Library

Thinking about how to experiment with business and what I might want to do

“So, what are you going to do?” That’s always what people ask after I tell them that I’m leaving IBM in order to experiment with entrepreneurship.

“I don’t know yet,” I say. I explain that I haven’t yet experimented with anything that could be seen as competing with IBM, following our Business Conduct Guidelines – and that covers so much ground. I’m leaving without a solid business plan or a proven opportunity, just itch and curiosity and the sneaky suspicion that there’s probably at least one business that I can build considering how others have succeeded.

The first thing I’m going to do after I leave is to create a structure for experimenting. Despite the associated costs and paperwork, incorporation makes sense to me. Limiting the downside – building that part of the safety net – makes it easier to experiment.

How can I go about testing possible business ideas? There are some conventional things I’d like to try.

Writing: I love reading and writing. If I can combine that with drawing and design, maybe I can create engaging e-books that will help people save time and be inspired. People have earned money from information products, so this has worked for other people before. Some have even succeeded without sleazy marketing tactics and without preying on people’s greed, which is encouraging! =)

I can test this by researching topics I’m interested in, writing blog posts and chapters, and eventually building up to e-books for things that people might buy. I’ll be writing notes anyway, so I may as well invest time into making them more usable for others.

Coaching: I’ve gotten so much value from writing, presenting, and experimenting with life. People find these things intimidating. Maybe I can help build scaffolds so that people can gradually try things out, succeed, and then gain enough confidence to do things on their own. (And I can write about what we learn along the way!)

Self-tracking: I like the results I’ve been getting from tracking my life, and I’m curious about building and tailoring tools for other people’s lives. Can I turn that into a recurring source of income? We’ll see.

Sales and customer relationship management for development: Quite a few developers have told me that they don’t particularly enjoy this part of freelancing, and it’s one of the parts I’m actually the most curious about. Maybe I can get started by helping my friends take better care of their clients and leads, and then see if the arrangement works out well.

Community analysis tools: Considering the success of the Lotus Connections toolkit within IBM, it might be interesting to make it more available to other companies. Right now, some of the functionality is available externally in a plugin for Lotus Notes, but things are still difficult to adopt. If I write a new implementation from scratch and I build the tool based only on externally-accessible information, that might be okay. It’s been quite a useful service within IBM, and it would be great to share it with more companies.

Testing ideas: How meta is that? If I’m going to be testing lots of business ideas and possibly working with other people to help them test their business ideas, then it would be great to gradually build processes and infrastructure for doing so.

Freelance consulting and development: I want to focus on the other initiatives first before I get into freelancing. I’m reasonably confident that I can figure out freelancing (especially with a little help from my friends). The kinds of work I’m considering (consulting, web development, technical writing, data migration) are similar to my work at IBM, so there’s less uncertainty to resolve. Custom work often means fewer opportunities to build compounding value, and I’d like to see if I can build a business that can scale up beyond my time.

I’m looking for things in the sweet spot: the intersection between what people need, what I’m good at, and what I love to do. If you’ve been reading my blog for a while, you’ve probably picked up a good sense of what I’m interested in and how I might help you (and lots of people like you!). Is this list missing something that would help you even rock more?

Quantified Awesome: Community-supported agriculture with Plan B Organic Farms, fall 2011


After a good summer season with Plan B Organic Farms, we decided to sign up for their fall season as well. This time, I made sure to weigh and track all the produce that came in. I also took notes on what we did with the produce to make it easier to think of ways to use them before they were wasted.

Here’s what I was curious about:

  • How much did we get?
  • What was the cost per kilo or pound?
  • How does it compare to organic produce prices at the supermarket?
  • What were the proportions like? Did they match up with our perceptions?
  • How do I feel about the different vegetables now?

How much did we get? Over the 11 distributions I tracked, we received a total of 71.6 kilograms of organic produce and a container of apple cider. This worked out to an average of 6.5kg per distribution, with a standard deviation of 1.08kg.

What was the cost per kilo or pound? Weekly half-shares cost $25, about $3.84/kg or $1.75/lb of organic produce (not including the cider).

How does it compare to organic produce prices at the supermarket? The No Frills supermarket we usually shop at doesn’t have a wide selection of organic produce, so I used prices from GroceryGateway instead. In a past analysis, I found them to be usually 10% more than No Frills prices, and there are minimum order limits and delivery fees as well. Using the prices for organic produce whenever available and guessing “bunch” weights from my data, I calculated that we received an average of $31 of produce each week (including the cider). This worked out to a savings of $6 per week, or 20% (not including taxes, delivery charges, or other purchases to meet the minimum).

Would we have bought all that produce if we weren’t part of the community-supported agriculture program? I’m not sure, but the commitment device of having a box of vegetables come into our house every week helped us improve our diet.

What were the proportions like? Did they match up with our perceptions?


I’m surprised by this, because it felt like we received a whole lot more squash and cabbage (which I’ve included in the Greens category). They were bulky and not in our usual cooking repertoire, so they were more of a challenge. We mostly managed to finishing the cabbage, but we had to cut up and throw some of the squash away. The apples and tomatoes were occasionally suspect, too.

Here’s the breakdown within each category:


On average, we received 11 different types in a distribution (standard deviation = 1.2), covering 32 different types in total. The fall box included imported items such as bananas and kiwi to fill out the selection, as well as produce grown in greenhouses.

How do I feel about the different vegetables now? After two seasons of community-supported agriculture, I’m more comfortable with dealing with the increased volume of vegetables passing through our kitchen. We’ve organized the pantries with bins so that we can store all the squash and onions neatly, and we manage to get through the produce in our fridge drawers in a reasonable period of time. We waste a small fraction of the produce through inattention (apples, mostly), but have managed to convert most of the produce into good food. I’d say we’re working at 90-95% efficiency or so.

Some experimental recipes have been more fun than others. Sweet potato fries have become a favourite in the house. Baked acorn squash with brown sugar and butter is a nice winter dessert. We discovered that adding sausages to butternut squash soup makes it much easier to finish. Turnips and beets still need a lot of tweaking.

We’ve signed up for a bi-weekly winter share from Cooper’s Farm CSA in order to take advantage of delivery. We happened to start with their program in time to make a side-by-side comparison with Plan B Organic Farms, and they turned out favourably (although their produce required more scrubbing). We’ll see how things work out over the next season.

Here’s my raw data.

How I tracked this: I built a small tool for tracking community-supported agriculture into my Quantified Awesome website. Every week, I weighed all the produce and typed in the their names and weights. At the end of the season, I copied the data and used pivot tables in Microsoft Excel to analyze the results by category and week. I manually checked the GroceryGateway website for prices, and I used VLOOKUP to cross-reference the data with the prices.

My input system didn’t do anything special that a spreadsheet couldn’t handle, although I liked how the weights became part of my dashboard. If you want to start tracking either community-supported agriculture or your regular groceries, you can start with a spreadsheet (Microsoft Excel or OpenOffice). Log the produce you receive or buy, and summarize them in ways that help you answer your questions. Have fun!

Upcoming decision: Considering different cellphone plans for J-

J- currently uses a prepaid cellphone with Virgin Mobile in order to coordinate with us, her mom, and her friends. She’s had it for a while and has been pretty good at using it, although we’re not happy with Virgin Mobile’s billing and credits system. We’re looking around for a better cellphone plan for her, ideally something that limits the risks of accidental charges while allowing important contacts any time.

Mobilicity’s current 50% promotion looks tempting. Their least expensive plan is $12.50/month for unlimited talk and text assuming 12 months’ preauthorized credit, although you’ll also need to add the cost of the phone (probably $99.99). That comes out to around $250 plus tax for the year.

A comparable plan would be WIND Mobile’s Smart plan ($25/month) with unlimited calls and text. The phone would be almost free (put on the Wind Tab and paid off through phone use), so we’d be looking at $300 plus tax for the year.

Like Mobilicity, WIND offers a small discount for multiple accounts. I’m occasionally tempted to check out Wind Mobile’s $29 unlimited talk/text/data plan, although (a) I’m almost always in WiFi zone, (b) the Kindle is handy for looking things up if I really, really need to, and (c) the Nexus One battery life is a bit short, so I won’t be doing a lot of mobile browsing on the rare occasions that I’m outside a wireless network. I may switch within the next year, but I don’t mind holding out until then, as the promotional rate is good for only one year.

Will network coverage be sufficient? Fortunately, we don’t have to rely on the glossy maps published by cellphone companies. Coverage Mapper shows user-generated data for Mobilicity and WIND Mobile. Our neighbourhood, J-‘s school, and her mom’s place look like they’ll mostly be okay.

Decisions, decisions…

Planning an Emacs-based personal wiki – Org? Muse? Hmm…

I miss my Planner wiki! I think it’s time to organize things into a personal wiki again. Blogs are great for chronological updates, but I need to be able to group ideas into more than just categories, and WordPress pages aren’t as convenient as a proper wiki. Org-mode outlines are also good, but they can get unwieldy when large. I have an 1.7MB outline right now, all plain text, and I can’t fit it into my head.

What kind of tool should I use? I thought about whether I wanted a web-based wiki editing environment. I realized that editing and publishing the wiki from Emacs is probably the way to go for me, because that gives me offline access, synchronization, and all sorts of other goodies.

Here’s what I want to do:

  1. Provide a knowledge map that links to blog posts and other resources
  2. Flesh out that knowledge map with summaries
  3. Build a coherent personal wiki

Here are other capabilities I care about:

  1. Link easily between concepts
  2. Keep tables and other forms of data
  3. Keep private and public notes, but publish only the public ones
  4. Publish parts of the tree
  5. Publish as separate files, for ease of browsing
  6. Use the same markup I use in Org Mode (or something that can be easily transformed), so that I don’t have to do anything fancy when copying entries over

I thought about using Muse because of its project-publishing support, and because of the good experience I had with Planner and Emacswiki (the predecessor to Muse). Muse supports Org-format tables, but it uses a different way to signify code blocks, examples, and other parts. For ease of implementation, then, I’ll probably see if I can get Org Mode to deal well with the case of either multiple small files, or narrowed portions of one large file. Anyway, the first step is to organize my resources, and that will be useful no matter which wiki system I end up using.

Do you have an Emacs-based personal wiki? What do you use, and what do you think about it?

Weekly review: Week ending September 30, 2011

Lots of scrambling, but we’re through!

From last week’s plans

  • Work
    • [X] Add summary to project T
    • [-] Migrate project T – postponed
    • [X] Follow up on SQL search for project I – found possible experts
    • [X] Gather requirements for project O
    • Added user management to project O
    • Set up Redmine issue tracking for project O
  • Relationships
    • [-] Pack for trip
    • [X] Help with build class
  • Life
    • [-] Draw
    • [X] Get through reading backlog
    • [X] Suspend library requests
    • Added clothing to home dashboard

Plans for next week

  • Work
    • [ ] Tidy up more project T issues
    • [ ] Import data for project O
  • Relationships
    • [ ] Celebrate anniversary – dinner at Pho Hung?
    • [ ] Spend time with family
  • Life
    • [ ] Delegate blog-checking to virtual assistant
    • [ ] Add library pickup check

Time analysis

Activity This week Last week Delta Notes
! Discretionary 44.5 45.4 -0.8
! Personal care 15.7 17.8 -2.2
! Unpaid work 9.0 9.2 -0.2
A – Sleep 52.5 54.6 -2.1
A – Work 46.2 41.0 5.2 Preparing for migration (postponed), getting things ready before we go
D – Break 0.1 6.8 -6.8
D – Drawing 0.7 -0.7
D – Personal 20.9 13.2 7.7 Working on home dashboard
D – Reading 7.0 1.1 5.9 Clearing my reading stash
D – Shopping 1.4 11.9 -10.5
D – Social 3.6 6.9 -3.2
D – Volunteering 3.4 3.7 -0.3
D – Writing 8.1 0.9 7.1 Queueing posts
P – Eating 4.3 2.3 2.0
P – Exercise 5.0 5.8 -0.8
P – Routines 6.4 9.7 -3.3
UW – Cooking 1.9 1.5 0.4
UW – Tidying 2.6 4.6 -2.0
UW – Travel 4.5 3.1 1.4 Commuting to work every day

Notes on transcription with and without a foot pedal

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

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

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

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

Type Typing without a foot pedal, 50% speed
Length 15 audio minutes
Duration 60 minutes of work
Factor audio minutes x 4
Characters 14137 (~ 2800 words @ 5 characters/word)
Typing WPM ~50wpm (90 wpm input, 56% efficiency)

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

Type Transcription company
Cost CAD 83 + tax = ~CAD 95 / audio hour

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

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

Type Typing with DIY foot pedal, 50% speed
Length 45 audio minutes
Duration 120 minutes of work
Factor audio minutes x 2.6
Characters 39400 (~ 7880 words)
Typing WPM ~65wpm (90 wpm input, 72% efficiency)

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

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

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

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

2011-08-31 Wed 21:45

Rhetoric and advocacy: the value of a different approach

UPDATE: Changed the title from “the value of the right approach” to “the value of a different approach” – thanks to Aaron for the nudge!

I was thinking about how to respond to this. I found myself wanting to share rhetoric tips, so I’m posting this as a blog entry instead of a comment. =)

On my post about the Manila Zoo, Anna commented: “Don’t you love animals? Then why are you eating them? What’s the difference between the animal that you ‘love’ and the animal that is on your plate? If you really love them, you’ll stop having them for dinner.”

One of the benefits of learning about rhetoric and argument is being able to recognize what’s going on. Here, Anna tries to set up a dichotomy: either you love animals and are vegan, or you eat animals and don’t love them. Relying on such a premise weakens Anna’s case. I don’t have to accept this premise, and I can see other choices.

This looks like an inarguable situation: she’s not going to convince me to adopt a vegan diet through these words, and I’m probably not going to convince her to be more precise and more compassionate in her rhetoric. But I’d like to explore this anyway, because there’s something interesting here about the difference between what she’s trying and how I’d do it. (When life gives you lemons, write a reflective blog post about them!) If I were in Anna’s shoes and I wanted to nudge someone to move towards a more plant-based diet, here’s what I would try.

You can very rarely make someone do something. If you want to influence someone’s behaviour, you have a much better chance if you can inspire them rather than if you criticize them or force them. Part of that is building a bridge between the two of you so that the other person can understand and listen to you, and part of that is helping the other person imagine how much better their life would be with your proposal.

I know that can sound frustrating and slow. There have been many times I wished I could just wave a magic wand (or write a program!) to get people to change their behaviour, understand a new concept, or stop e-mailing huge files around. But in all the books I’ve read and through all the coaching I’ve done, I keep coming back to these lessons again and again: you can’t change people’s minds for them, and influencing cooperation can be much easier than sparking conflict.

So I would start by building common ground, instead of approaching it antagonistically. This is a common mistake for radicals, influencers, and people carried away by their passions. Goodness knows I’ve got enough examples of doing this myself in the early years of my blog. When you get stuck in an “us versus them” mindset, it becomes difficult to connect with people in a compassionate, respectful manner. Instead of trying to imply that the person I’m talking to hates animals or is hypocritical, I’d probably start off by highlighting things we have in common. Something like this: “I’m happy to see you love animals a lot.” This validates what the other person has said, affirms them, and starts off on a positive note.

Then I would use personal experiences as a bridge, showing people I’ve been where they are and they can relate to me. If you want to make it easier for people to see what you see, you need to show them that you’ve stood where they stand, acknowledging challenges along the way. That way, you can connect with people and help them be inspired. In this hypothetical argument, it might be something like “I love animals too, which is why I’ve been shifting to an all-plant diet. It’s sometimes hard to stick with it, particularly when I’m hanging out with friends, but it’s easier when I remember the troubles animals go through and the kind of world I’d rather build for them.”

I’d soften the call to action. People don’t like being manipulated by false dichotomies or preachy advice. I would probably explore the waters with a question like, “Have you thought about shifting to a vegetarian or vegan diet, too?” By backing off a little, I acknowledge the other person’s choices and reasons instead of trying to make decisions for them.

Depending on whether I thought it was necessary, I might include some social proof or alternative reasons. For example, plant-based diets can be healthier and less expensive than diets with a lot of meat. They can have a smaller environmental footprint, too. It’s good to anticipate and acknowledge the difficulties. Growing plants isn’t automatically guilt-free: see the clearing of land to support commercial agriculture; the dangers of monoculture, fertilizers, and pesticides; the consequences of transportation.

I’d end by showing my respect for people’s choices and finishing on a positive note. This would be a good place to thank the person again and highlight common ground, remembering that the goal isn’t to score points, but to open up a possible conversation enriched by personal experience. 


So here’s what that might look like, if I wanted to influence someone to eat more vegetables and fewer animals.

Before: “Don’t you love animals? Then why are you eating them? What’s the difference between the animal that you ‘love’ and the animal that is on your plate? If you really love them, you’ll stop having them for dinner.”

After: “I’m happy to see you love animals a lot. I love animals too, which is why I’ve been shifting to an all-plant diet. It’s sometimes hard to stick with it, particularly when I’m hanging out with friends, but it’s easier when I remember the troubles animals go through and the kind of world I’d rather build for them. Have you thought about shifting to a mostly-vegetable, vegetarian, or vegan diet, too? I’ve found that it usually comes out cheaper than my old meals, and I feel healthier and more energetic too. Hope to hear from you soon!”

Your mileage may vary, of course. You might feel that this more compassionate I’m-on-your-side approach is too mild for you. I present it as an alternative, so it’s easier to see that not all advocacy has to be confrontational.

Having reframed the comment in a more positive tone, what would be my personal response to it? I’m aware of the arguments for and against vegetarianism and vegan diets. I do eat mostly vegetables, thanks in part to a community-supported agriculture program that keeps me busy figuring out what to do with zucchini, in part to concern over what goes into the food that goes into us, and in part to a stubborn frugality that dislikes paying the premium for steak. I don’t think I’ll ever follow a strict vegetarian or vegan diet, though, because I don’t like inconveniencing friends and family, or proselytizing at the kitchen table. I’ll follow my own decisions when it comes to food I can control, but I’ll try to go with the flow when it comes to what people share with me. (I still opt out of balut and other things that make my mind boggle, although many people consider such things delicacies.) So even this tweaked message isn’t going to make my decisions for me, but it will leave me with more respect than aversion to how people try to get their messages across.

Parting thoughts: If you come to a conversation prepared for a fight, that’s what you’ll get. If you come to a conversation with love and compassion, you’ll have more opportunities to learn and grow. It’s amazing how much of a difference your starting point can make. It takes practice to be able to consider different approaches and choose one that fits, and, if necessary, to translate what other people say into what they might have meant. Hope to help more people think about and consciously choose how to approach conversations!

Getting a grip on a large database migration

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?

It’s Bike Month in Toronto!

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

Thoughts from marriage: Learning together

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

Weekly review: Week ending April 1, 2011

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

Sick days

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.

Quantified Self Toronto: Second Meetup

I went to last night’s Quantified Self Toronto meetup, a get-together for people who are interested in tracking data about their lives. It was good to hear about people’s projects and questions. I shared what I’d been doing with my new Android phone, too. Here are my notes:

For me, the most interesting point was that of analyzing the data you already have in order to understand your patterns.

Correction: I haven’t just had my phone for three days, I’ve had it for a week. (Ah, time flies when you’re having fun.) I’ve only been tracking activities for three days, though, so I guess that’s why that number got stuck in my brain. =)

What do I track, why do I track it, and how do I track it?

I want to experiment with getting up earlier, and to see if I still get enough sleep. I knew that tracking would help me stick to my alarm clock, like the way that tracking time helps me stay focused. I’ve written about tracking my sleep, so you can check out the detailed screenshots there. So far, I’ve been waking up within a few minutes of 5 AM, getting an average of seven hours of sleep, and feeling reasonably awake and energetic.

I want to capture and share as much as possible. On my computer, Org-mode is working well for me – big text files that I dump notes into, with a bit of structure along the way. I’d like to have a structured way to capture notes on my Android, particularly if I can pull those notes into my Org-mode text files. I haven’t settled on any one application yet, although I’m working on tweaking MobileOrg to fit me better. I’m also playing around with mindmapping (Thinking Space supports Freemind maps), and I’m looking for a good way to keep outlined lists.

I want to track how much time I spend on different activities. This will be useful for calibrating my time estimates, comparing my time with my priorities, and identifying opportunities to improve. This definitely has to be a mobile app, as I do things away from the computer too. Time Recording has been working well for me so far.

I want to track my finances. I do this on my laptop so that I can take advantage of all the wonderful reporting tools that the ledger command-line tool gives me. I’ve figured out a virtual envelope-based system that works for me, and I enjoy balancing my books. I don’t particularly feel the need to use my Android to capture this data, as I try to keep my transactions electronic. The occasional note about cash expenses can be handy, though.

I eventually want to get better at tracking my contacts. I like the way Gist gives me a dashboard sorted by importance or filtered by tags. I want to get to the point of deliberately reaching out to people on a regular schedule.


Monthly review: October 2010

Book: Choose to be happily married: How everyday decisions can lead to lasting love

Bonnie Jacobson, PhD., with Alexia Paul
2010 Adams Media, Avon, Massachusetts
ISBN 13: 978-1-60550-625-8

The book consists of short chapters that explore common conflicts and positive approaches in committed relationships. Each chapter includes one or two case studies, ways to recognize the conflict, and tips for resolving the conflict. This book is a good read for couples who are beginning to find themselves ensnared in repeating conflict patterns because they can identify and get tips for their situation. Couples who are starting out may also find it useful as a way to recognize potential conflicts before they become established.

  • Flexibility

    Responsive Reactive
    Good judgment Critical judgment
    Expressing your true self Conforming to a role
    Autonomy Isolation
    Surrender Submission
    Establishing space Neglect
    Patience Passivity
    Benign boundaries Emotional tyranny
    Awareness of limits Emotional recklessness
    Embracing change Preserving the status quo
  • Communication

    Taking responsibility Blame
    Needs Wants
    Detach Withdraw
    Speaking up Silence
    Giving the benefit of the doubt Making assumptions
    Intimate listening Hearing
    Influence Control
    Constructive criticism Destructive criticism
  • Personal power

    Deciding Craving
    Fighting fair Fighting unfair
    Support Protection
    Forgiving Forgetting
    Good selfish Bad selfish
    Family loyalty Self-interest
    Joy Happiness

Book: Leading Outside the Lines

zebraI want to get really good at being a fast zebra. The metaphor comes from Leading Outside the Lines, Jon R. Katzenbach and Zia Khan’s book on working with the informal organizational structure. According to Mark Wallace (former US ambassador to the United Nations), fast zebras are people who can absorb information and adapt to challenges quickly. The authors explain, “On the African savannah, it is the fast zebra that survives a visit to the watering hole, drinking quickly and moving on, while the slower herd members fall prey to predators lurking in the shadows. The fast zebra is, in essence, a person who knows how to draw on both the formal and informal organizations with equal facility.”

It seems like a business cliche – who wouldn’t want to absorb information and adapt to challenges quickly? – but Katzenbach and Khan go into more detail. “They help the formal organization get unstuck when surprises come its way, or when it’s time to head in a new direction. They have the ability to understand how the organization works, and the street smarts to figure out how to get around stubborn obstacles. They draw on values and personal relationships to help people make choices that align with overall strategy and get around misguided policy. They draw on networks to form teams that collaborate on problems not owned by any formal structure. They tap into different sources of pride to motivate the behaviors ignored by formal reward systems.”

Like the loneliness facing early adopters, fast zebras can feel isolated. Identifying and connecting fast zebras can help them move faster and make more of a difference.

I can think of many fast zebras in IBM. People like Robi Brunner, John Handy Bosma, and Jean-Francois Chenier work across organizational lines to make things happen. Lotus Connections and other collaboration tools make a big difference in our ability to connect and self-organize around things that need to be done. They also provide informal channels for motivation, which is important because this kind of boundary-spanning work often doesn’t result in formal recognition (at least in the beginning).

The book describes characteristics of organizations that successfully integrate formal and informal structures, and it has practical advice for people at all levels. It also has plenty of stories from organizational role models. My takeaway? Harnessing the informal organization and helping people discover intrinsic motivation for their work can make significant differences in an organization’s ability to react, so it’s worth learning more about that. Recommended reading.

Leading Outside the Lines
Jon R. Katzenbach and Zia Khan
Published by John Wiley and Sons, 2010

Weekly review: Week ending August 1, 2010


  • [X] Support upcoming workshops
  • [X] Re-use Idea Lab results
  • [X] Launch expertise pilot with SMEs
  • [X] Explore possible expertise specialist position
  • [X] Add features to community toolkit plugin
  • Helped community owners learn more about vitality and metrics
  • Added statistics to Lotus Notes community tools plugin
  • Learned how to modify Lotus Notes plugins and use Expeditor!


  • [X] Experiment with more recipes (instead of hiring cooking teacher? More sustainable, and we’ve got the basics sorted out already)
  • [-] Reflect on happiness with a friend, co-writing a blog entry – postponed to next week
  • [-] Follow up with people from tweetup, learning about them and their interests
  • [X] Coordinate with family on new date
  • Helped a friend learn more about cooking
  • Tidied up my computer
  • Had great conversations about connecting, introductions, etc.


  • [-] Organize everything into neat zippered pouches, etc.
  • [-] Declutter: Eliminate one thing a day
  • [C] Sign up for singing lessons – focusing on other things right now
  • [-] Take advantage of free studio time at the Sewing Studio (Sunday, 2pm to 6pm – get all of my cutting and serging and sewing done, and get some exercise on the way there and back too)
  • Also: Cleared and replanted parts of the garden
  • Learned more about woodworking
  • Drew, yay!
  • Explored Craigslist a little more


Long-weekend focus: declutter space, organize information


  • [  ] Organize upcoming Idea Labs
  • [  ] Answer more requests for community toolkit
  • [  ] Package Lotus Notes plugin


  • [  ] Declutter living room
  • [  ] Follow up with people, learning about them and their interests
  • [  ] Catch up with mylifeandart


  • [  ] Draw more! =)
  • [  ] Create an index for images, book notes, blog posts, etc.
  • [  ] Plan next tea party
  • [  ] Price-match blender if possible

Thinking about dinner parties

The Toronto Public Library had “Julie & Julia”, so we watched it. (A movie about cooking! Of course.) I smiled at the bouef bourgignon, which W- had made for me once, and the aspics, which I’d encountered in the Joy of Cooking but have not dared to try. It was a good movie, and we both enjoyed it a lot.

Reflecting on it, I realized that I want to get back into hosting parties. However, Saturday afternoons are a good time to do woodworking, and circular saws do not go well with conversation. We probably shouldn’t spend every weekend woodworking, anyway. So I will just have to ignore that niggling itch of there-are-only-so-many-weekends-in-summer-and-only-so-many-daylight-hours desperation, work out some kind of schedule that accommodates the items W- and I want to build, and overlook the stacks of tools and lumber that make our living room unsuitable for company. After all, people have always just hung out in the kitchen.

I remember what it was like to learn how to cook on my own, dealing with too many leftovers (ah, supermarket sizes) and not enough tools. With an eat-in kitchen, well-stocked cabinets, and a wonderful garden with plenty of fresh herbs and vegetables, it would be great to help friends learn how to cook, particularly if I can pick up new recipes along the way. And now that the cats are no longer furiously shedding their spring coats, friends may breathe a little easier…

Maybe some kind of a supper club, for every other Saturday, or once a month at the latest? Friends can either bring whatever recipe they want to try, or come over early and prepare things in the kitchen. It shall have to be a homey atmosphere so that I don’t feel self-conscious about, say, having to clear papers off the table. Saturdays mean we can raid the farmer’s market or head to the supermarket if the pickings aren’t good, and people have the afternoon to come and cook if they want to.

I shifted to tea parties for a number of reasons. Hosting an open house meant that people could drop by whenever they were available, instead of being there at a certain time in order to sit down for dinner. Small treats meant that it was easy to accommodate different dietary restrictions. Maybe I can alternate tea parties and dinner parties, or work out a rhythm with other friends who like hosting. =) Or I can get back into dinner parties when I’ve gotten the hang of preparing make-ahead casseroles and other good dishes for entertaining…

I have a tea party on July 10, so I think I’ll keep it as an afternoon tea party, and maybe look into preparing some of those interesting salads in one of Jamie Oliver’s cookbooks. Hmm…

Monthly review: May 2010

May was quite a learning experience. From an oh-no moment when I accidentally mail-flooded around 70 people to a new hobby (woodworking!) that led to lots of shared time with W-, to more hacking in Lotus Notes… It was a very fun month.

I have a new manager at IBM. I’ve talked to him a lot before, and I’m looking forward to working with my new team, which is really mostly my old team plus some people I’d worked with before, so it’s more like a logical reorganization of people I enjoy working with anyway. =) This probably means there’ll be plenty of coding in my future. I know this high-flying strategy/consulting/marketing stuff is more prestigious, but I do like code. Maybe it’s time to flip back.

One of my goals for May was to declutter, get better at keeping things tidy, and remember things. I’m happy to report that my dresser top has been clutter-free, my bedside table has remained simplified, and I haven’t forgotten my keys once. I still have a lot of work to do on the decluttering front, but I’m slowly getting there.

The garden is growing merrily now. The chicken-wire-and-wood cage we built is doing a great job at protecting our garden from the predations of squirrels. Lettuce and radish harvests regularly fill our salad bowls. The first green tomatoes dangle from stems. The pea shoots have stretched almost all the way to the top of the twine supports. There are even some bittermelon plans bravely giving Canadian summers a go.

Woodworking turns out to be an awesome hobby. It’s fun making things with your hands. I’ve built three boxes so far (including a bread box that’s now keeping our bread safe from Neko!), and I’m looking forward to building my fourth. The next box I build will have a floating bottom and a sliding top, I think. I’m not sure if my 1/4” stock is too thin to cut a groove into, so I might go up to 1/2” sides.

Woodworking + deck repair + shedding cats + warm weather = no baking and no tea parties. However, people have been hosting barbecues and things like that, so I’m happy to catch up with people at other people’s events instead of mine. =) Perhaps I might still have a fresh fruit party. How would we do it? We’d move the kitchen table outside and clear out the living room, I think. More decluttering…

I also realized that I’d like to get to know a whole bunch of people more. Taking a look at my interests (which were practically all home-based), I realized I needed something that involved some kind of regular social interaction, too. I wondered how people manage to make friends outside school, and how I might work that back into my schedule. Going to people’s get-togethers, though, I realized that I managed to make good friends somehow or another, and I’m looking forward to getting to know them and other people. Fortunately, the tech scene is absurdly well-connected through social networks and things like that, and good weather + daylight savings time gives people an itch to get out and meet up.

So, what does June look like? More adjustments at work, a flurry of wedding preparations for August, lots of woodworking while it’s fun to work outdoors, lots of writing, a bit of gardening and sewing, and some more conscious attention to people’s lives. It’ll be awesome.

Posts this month:
Travel kaizen and the meaning of life
Exercising the senses
Getting the hang of big companies
Exponential awesomeness
Getting the hang of gardening
Braindump: On face-to-face and online social networking (xpost)
The garden in May
Presented Remote Presentations That Rock v2 for the Best of TLE 2009 series
Thinking about the path ahead
I want to learn how to make drawings/videos like this
Custom fields in Lotus Notes / Domino? You may need to set the SUMMARY field flag
Picking hobbies that fit together
Even more awesome LotusScript mail merge for Lotus Notes + Microsoft Excel
Quick notes from a conversation about speaking and facilitation
Dear future Sacha,
Holy cow, that was a lot of mail – so sorry
Quick guide to domain names
Remote Presentations That Rock (revised)
May 2010: Remember and declutter
A letter to my 8-year-old self
Holy cow, that was a lot of mail. So sorry!
Squirrels, shop class and drafting: making my peace with high school
Bread of salt and taste of home
Braindump: What I learned from our virtual leadership conversation
Thinking about what people remember

Weekly reviews:
Week ending May 30, 2010
Week ending May 24, 2010 (Victoria Day long weekend)
Week ending May 16, 2010
Week ending May 9, 2010
Week ending May 2, 2010

Last month: April 2010

Braindump: What I learned from our virtual leadership conversation

Around 20 people joined us for a conversation about Smarter Leaders, which was organized by Jack Mason in the IBM Virtual Analytics Center. Rawn Shah and I gave introductory remarks, and then we facilitated small-group discussions. I focused on the need for smarter leaders at every level and what we could do to help people develop as leaders.

What did I learn?

We know what can help: identifying characteristics of effective leaders, focusing on leadership instead of technology, collecting and sharing success stories, compiling a cookbook that focuses on needs instead of tools… That part is just a matter of doing it, and there are lots of programs already underway.

Is it going to be enough, or are there other things we can do to break through? If it took e-mail ten or so years to become part of the corporate culture and enable all sorts of opportunities, can we wait that long for connected leadership to become part of the way we work?

We tend to have a culture of waiting for permission instead of experimenting (and asking for forgiveness if needed). This means that lots of people are waiting for their managers and executives to participate in this.

Me, I’m all for people taking responsibility for leadership at any level. We might not make big decisions, but we can still make a difference.

What am I going to do based on what I learned?

I’m going to take a look at the characteristics that describe IBMers at their best. I’m going to figure out how to develop those characteristics myself, and how other people can develop them.

I’m passionate about helping individual contributors build and demonstrate leadership. I’m neither a manager nor an executive, and I don’t want to wait for everyone at the top to “get it” before the benefits can trickle down to everyone else. So I’m going to keep poking this idea of leadership until more people can identify with it and ask themselves, “How can I be a smarter leader?”.

What are you going to do to spread be the word about smarter leaders? =)

What worked well? What could we improve further?

  • I really liked being able to help bring together all these interesting people. It was like going to a real-life conference.
  • I finished my part in time (short talk!). =) I forgot some of the points I wanted to make, but it was okay because I’d already shared them in my blog post.
  • I did a good job of picking on people to get the ball rolling, and the conversation can get even better if I can figure out how to bring more people into the conversation.

  • Small-group virtual facilitation needs to be tweaked further. I felt conscious about people being outside my vision, so I turned my avatar around, but it still felt strange to have my back to a speaker. We didn’t organize ourselves into a circle because it would’ve taken time to position people, and the spatial audio might’ve been weak. I like the way that our Second Life meeting environments sometimes have auto-expanding chairs.
  • My audio was clipping because the sound was set too loud. I should definitely do more audio tests before the sessions.
  • My sketches turned out pretty well on the screen of the Virtual Analytics Center. =) Simple and easy to see from any part of the auditorium.
  • The auditorium turned out to be too small to accommodate breakout groups. One of the breakout rooms had audio running, and we couldn’t figure out how to turn it off. The big gathering area was a good place to have a discussion, though. Teleporting buttons would be a great way to get people from one place to the other without wasting time navigating. (Ooh, teleporting buttons with visual feedback for intuitive load-balancing…)
  • The indicators for who was currently speaking made large conversations so much easier. I want that on all of my teleconferences. =)
  • Text chat still beats speaking in turn when it comes to getting lots of stuff out. It’s odd to mix it in, though. It feels a little weirder than having an active backchannel during a phone conference. I think it’s because you can see people, so you feel more of an urge to talk to them instead of typing.
  • The web.alive folks definitely need to add a way to save the text chat!
  • The virtual environment can capture all sorts of interesting data. I wonder what kind of research can come out of this…

Lots of good stuff!

IgniteToronto video: The Shy Presenter

I’m giving up on getting the organizers to update the incorrect abstract and bio on the page, but anyway, here’s the 5-minute video from my “Shy Presenter” talk at IgniteToronto:

Ignite Toronto 3: Sacha Chua – The Shy Presenter: An Introvert’s Guide to Speaking in Public from Ignite Toronto on Vimeo.

Minor miscalculation: shy or introverted presenters-to-be are not actually likely to come out to a bar with 200 people to watch an Ignite talk. Ah well. ;) Here’s to fellow introverts who would rather catch the replay!

The Shy Presenter If you’ve ever struggled with small talk, felt overwhelmed in crowds, or wondered how to speak up at work, this talk’s for you. In five minutes, you’ll pick up quick tips about discovering what you have to say, how to say it, and why it’s worth braving the spotlight.

Bio: Sacha Chua spent grade school to grad school hiding in computer labs and libraries. She prefers bookstores over bars, close friends instead of crowds, and silence over small talk. Blogging and public speaking turned out to be excellent ways to learn, though. Today, tens of thousands of people have viewed Sacha Chua’s presentations, attended her keynotes, and read her blog (LivingAnAwesomeLife.com).

On role models

Mel Chua’s comment about relationships and role models made me think. She’s right, you know. It was something that had felt very alien before, and I’m gradually coming to terms with it.

Growing up, I remember feeling anxious about relationships.  I knew my mom and dad had managed to raise us and do well in entrepreneurship at the same time. I was surrounded by godparents whose loving relationships also served as good examples. But as a bookworm, I’d also read lots of scary statistics.

All of the happily-married couples I knew were of previous generations, of course. Towards the end of my university degree, as I heard of high school batchmates starting to marry and have kids, these early matches were spoken of in hushed, gossipy tones.

The thought of relationships really only started becoming more “normal” for me over the past couple of years. In graduate school, I met people who pursued their degrees while raising kids. Thanks to W-, I got a sneak preview of parenting (turns out to be pretty good), and I saw that separation and divorce could stabilize into amicability. At work, I saw people with different kinds of family situations do well. I looked for stories of executives who valued work-life balance and other people who’d left and rejoined the corporate world. I listened as people told stories about their families. I listened as people who chose not to have families talked about their relationship and their other priorities. I learned that people have figured this out before, and things will be okay.

It’s pretty interesting to think about this in terms of the diffusion of ideas, too. In this, it turns out that I’m a mainstream adopter, opening up to a idea once I see that lots of people around me are exploring it with good results. W- makes it easier, too. We’ve probably got the best starting point for this kind of an adventure.

So, yes, role models. Very important. More common than people would think, and more mutual than people might expect. A great benefit of having a diverse workforce, too. I’m looking forward to exploring, to sharing what I’m learning with others, and to learning from others along the way.

Thoughts on preparing an Ignite-style presentation

Creativity loves constraints, and the Ignite style of presentations has lots of constraints. Your speech has to fit into five minutes. You have room to make one point and perhaps tell one story. You have twenty slides that automatically advance every 15 seconds, although you can slow down by duplicating slides or speed up by using timed animation. You’re giving your presentation to a live audience, so you need to be part actor and part stand-up comedian. Oh, and you’re just one in a long line-up of five-minute speeches, so you need to stand out if you want people to remember your point.

My first Ignite-style presentation will be The Shy Presenter, which I’ll share at IgniteTO this Wednesday. It’ll be a fun experiment that builds on a lot of things I already do for my regular talks.

Full notes

So let me take apart my process to see how I can improve it, or if I’ve picked up any tips that other people might find useful.

I write about a topic before preparing a talk for it so that I can find out what I know, whether it’s useful, and whether I care enough to invest a few hours into preparing a presentation. (Yes, it’s that old skills-needs-passion sweet spot. Handy!)

Ideally, I’ll have blogged about a topic often enough to figure out the key points I want to communicate, and then it’s just a matter of reviewing the previous posts, summarizing them, and editing the points. Not having lots of blog posts about a topic is often a danger sign, as I learned two years ago:


But sometimes an interesting presentation opportunity comes up, and I’ll flesh out new material after people have okayed my title/abstract.

I’ll mindmap what people come in with, what I want them to leave with, and what I can put together to help them along the way.  I also find it useful to braindump a quick list of points I might want to make.

I like making my talks short. I usually try to fit my talks into 7-15 minutes, which is good practice in finding the core of a message and putting together a few supporting points. A good way to estimate this is to take your target words per minute and multiply it by your time, adjusting for pauses. I usually aim for 150wpm (in the middle of the 140-160wpm often suggested by books on public speaking), although I often end up speaking at 180-200wpm. Then I read things through and tweak the text until it fits.

Keeping it short and simple also makes it easy for me to remember. The shorter it is, the more I can improvise to fit the needs of time.

I post my speaker notes online. It lessens the surprise, but it makes the notes easy to share, search, and get feedback on.

Then I split my notes/script into segments. For Ignite, that’s about 37 words per segment. Editing smoothens things out.

At this point, I can usually think of a few simple ways to illustrate each segment. Sometimes I write out the visual sequence and then storyboard it. Other times, I go straight to the storyboard. Sometimes images or segments pop into my imagination, and I rework my writing to include it.

Then I draw the pictures and make slides. I usually use Inkscape because that makes it easy to edit my drawings to reasonably resemble my imagination. I’ve been experimenting with MyPaint lately, though. It takes more work, but it’s interesting.

I post the slides on Slideshare and add it to my blog post, again trading surprise for sharing, search, and feedback.

Once I’ve boiled the idea down to slides, I can work on remembering the key points for each slide. If the key points flow together and people get interested in a topic, they can always look up the full notes on my blog. That means I don’t have to worry about following the script word for word. So if it turns out I have less time than expected, or more time than expected, or I forget something or people want to learn more about something, I can adapt.

And then there’s the blog post on the day of the presentation, and the blog post following up on what I learned from the presentation, and the blog post following up on people’s questions, and the blog post about any revisions, and the blog post about process or content tips (like this one!), and the tweets and Slideshare embeds and all of those other things that mean that the four hours or so invested into preparing a presentation pay off several times over…

Here’s a totally numbers-from-a-hat estimate:

So that’s how I generally prepare my talks. =)

Learning more about interviewing

David Ing let me tag along on a client interview for a Smarter Cities engagement. He and Donald Seymour interviewed the CIO and other staff of a region in Ontario. In the afternoon, David gave us a crash course on Media and Entertainment to help Donald and another consultant take over that area of responsibility. It was fascinating to watch their easy rapport and interviewing style. Here are some of the things I learned:

  • Working in pairs makes interviews much easier. When David interviews, he usually asks someone else to lead the conversation. He asks the occasional question and focuses on recording notes, staying as close to the actual words as possible. This frees him from having to think about processing the words. He does this instead of recording the interview because listening to the recording would require lots of additional time.
  • Keep the conversation-setting presentation as short as possible, so you can focus on the conversation.
  • Don’t plan too much up front. Let the conversation take you to where it needs to go.
  • One-slide summaries with the question structures nudge the conversations in the right direction and help you ensure you cover everything of interest.
  • Capture notes on your computer to make it easier to share those notes with others.
  • Working with one client can be seen as self-serving. Working with several client organizations and bringing them together to learn from each other—that has a lot of value.
  • Hollywood is a strange and interesting place.

David, thanks for sharing!

Book: Rules for Revolutionaries

Rules For Revolutionaries: The Capitalist Manifesto for Creating and Marketing New Products and Services
Guy Kawasaki, 2000

The most relevant chapter for me was that about eating like a bird and pooping like an elephant. Consume lots of information from diverse sources, and share it liberally. Here’s what Guy has to say about sharing:

Here are the four things you need to do to spread (and receive) information in the most efficient ways:

  • Get over the paranoia. First things first: stop worrying about the negative effects of spreading information to other parts of your company as well as colleagues and competitors. Sure, be judicious about what you share, but err on the side of sharing too much.
  • Make it simple, correct, and frequent. Spent efficiency by making the information in preparing simple and correct; and do the spreading often. The better and more frequent the information you provide, the better and more frequent information you get back.
  • Use the Web! B. I. (Before Internet), spreading information had large costs: printing, travel, entertaining, and long-distance telephone charges. Circa 1998, the Web has reduced those costs and made information available around the world.
  • Get all levels involved. Information spreading, like pressing flesh, needs to be democratized and institutionalized. Enable all parts of the company to share in their special knowledge whether the function is research or copyright law.

p131, Guy Kawasaki, Rules for Revolutionaries

Worth a read, maybe in the library.

Learning about my grandmother

When I told my mom about the hooded fleece bathrobe I’d made for W-, she laughed and told me a story about how her mother used to make her dresses. My mom would beg my grandmother to make some time to work on the dress, which was low priority compared to running a business and keeping everything sorted. Sometimes that meant finishing the dress the day of the party, I guess!

My mom also told me a story about how my grandmother bought my mom a new dress. When the top part was too worn to wear, my grandmother replaced the top, keeping the skirt. When the skirt part ended up being too worn, my grandmother replaced the bottom. My mom asked if that meant she had a new dress.

I’d never met my maternal grandmother, but it was great hearing stories about her, and seeing my mom smile as she told stories. =) Just as I like coming across things or stories that remind me of my parents, my mom probably enjoys hearing about my newly-discovered hobbies and thinking about her own parents. =)

I’ve gotten to the point where I enjoy sewing. I like making things I can wear, and W- and J- humor me occasionally by asking me to make things for them and enjoying things I’ve been experimented with. ;)

I wonder what other common hobbies I’ll discover along the way…

Book: Closing the Innovation Gap


The best talent embodies the five core values and has the right combination of aptitude, skill, judgment, passion, and drive. Such people’s curiosity and openness to new experience are as important as their pedigree. They require deep understanding to garner respect, a sense of infectious excitement to rally the organization around them, and an almost compulsive drive to tinker. “What we always looked for were people who were born with soldering irons in their hands,” says Jon Rubinstein. “People with a passion for products, for the creation process, and for technology itself.” (p30-31)

Closing the Innovation Gap: Reigniting the Spark of Creativity in a Global Economy
Judy Estrin, 2009

Among other reasons, I read business books in order to collect role models, finding descriptions that resonate with the kind of person I want to grow into.

Other quotes from the book are relevant to my work:

People who naturally play the role of knowledge connectors are critical when building relationships across communities, disciplines, or divisions, facilitating communication between disparate groups. The best connectors can quickly synthesize information across a broad range of topics, communicate well, and bring the right people together, while having no overriding agenda of their own. (p134)

We’re building a training program for connectors, and I’m learning a lot in the process.

For companies with advanced technology groups, it’s best to create networks of complete teams, as opposed to just offshoring a piece of the development. Companies that farm out all of their entry-level jobs or the production tasks that were traditionally allotted to junior employees may eventually discover that they have offshored their next generation of leaders. (p138)

I think it would be fantastic to have more global leaders, making sure we also don’t sacrifice the capabilities and leadership pipelines of the developed countries.

The book itself draws on an intimate knowledge of Silicon Valley, and provides a useful historical perspective on the changes.

The fullness of days

“How are you?” asked a client after the Canada Day holiday.

“Fantastic!” I replied.

She was surprised by that. Perhaps she expected me to say that the holiday was too short, or to wish that the weekend were here. So I told her about how I filled my holiday to the brim with wonderful hobbies, and how I was also happy to have another day to spend on work.

A day is a day.
To spend the day wishing it was something else is to waste the potential of each moment.

When it’s a holiday, I take time to explore other things and to reflect. When it’s a work day, I work. I enjoy exploring my interests. I enjoy figuring things out for clients, the company, and myself.

Every day can be a terrific day when you aren’t wishing it’s something else.

Almost anything can be terrific when you aren’t wishing it’s something else.

I learned that the hard way by being homesick and confused. To be homesick is to be mis-placed – to be in the wrong place, to feel confused about where you want to be. I missed the Philippines when I was in Canada. I missed Canada when I was in the Philippines. When I stopped wishing I was someplace else and started really living wherever I was, it was easier to find the good things.

Same goes for days. If you’re always wishing for the weekend, or for the end of the day, or for the start of the week so that you can tackle your pile of work, you’ll find that time works against you. Time slows down when you’re looking forward to something. Time speeds up when you’re there–it’s over too quickly.

Be in the moment.


Weekly review: Week ending May 31, 2009

From last week’s plans:

  • More Transition2 work – finish event-related bugs Another day, another build… Things are progressing nicely!
  • More LinkedIn and Facebook coaching – prepare guide Well on the way towards a LinkedIn 101 guide for investment advisors and insurance agents
  • More presentations – finish slides and notes! Delivered a presentation, submitted another one
  • More gardening! Started seeds, yay!


  • Watched Up – awesome!
  • Checked out 22 books on gardening from the library, mwahahaha
  • Cut out gingham check pieces for Vogue blouse.

Next week (well, this week, really):

  • Relationships: Play with photography
  • Wealth/career: Revise guide, prepare Transition2 build, give Early Career Conference presentation, prepare other presentations
  • Skills/personal growth: Make dream book, play with photography, learn Send in the Clowns and more of Fur Elise, get more fabric =), sew blouse
  • Health/fitness: Explore High Park on my bike

Remote presentations that rock: Challenges and opportunities of remote presentations

How are remote presentations different from in-person ones, and how can you make the most of those differences?

Plan for different channels and attention levels

Unlike at in-person conferences, you don’t have a lot of control over how people experience your presentation. Some people will be connected to the phone conference, but won’t be able to view your slides. Some people will be part of the phone conference, but not the Web conference, so they’ll need to change slides themselves. Some people will read your slides in order to catch up on parts they missed. Some people will listen to the recording after your session. Some people will just read your slides.

As much as possible, plan your talk so that you can make the most of the different ways people will receive your message.

To accommodate people on the phone, do not rely too much on visual aids, and explain important points out loud. Indicate when you’re moving to the next slide. Include the slide number on all pages of your presentation.

To accommodate people who may drift in and out of your presentation, verbally and visually emphasize important points, repeating as necessary.

To accommodate people who are reviewing the slides or recording, write an article or blog post with a more coherent version of your presentation.

Build interactivity into your presentation

At first glance, remote presentations may seem less interactive than real-life ones. You can’t see body language, and it’s difficult for people to interrupt during a conference call. However, you can still build interactivity into your session, and you should. Here are some reasons why and some tips for doing so.

  • Both real-life and virtual presentations benefit from the increased engagement and energy of interactivity. Your session is competing for attention against e-mail, instant messages, and other distractions, and interactivity gives your session an extra punch.
  • You don’t have body language cues to tell when people are interested or bored, and it’s not as easy for people to interrupt with a question. Interactivity gives you a way to check the pulse. Ask questions, conduct polls, and get people to share their stories.
  • Different opportunities for interaction open up with a remote presentation. You can ask people to share their thoughts and questions during the presentation instead of waiting for the end, and they can answer each other’s questions or discuss topics themselves, too. On some web-conferencing systems like Centra, you can even ask people to annotate the slides, or to break out into groups and discuss things there.

Don’t be afraid of a little silence on the line. What seems like an uncomfortablely long silence to you gives people time to think about what they want to say, and eventually pushes other people to say something.

When asking people to interact, I find that it’s often helpful to encourage people to use the text chat. That way, more people can share their thoughts without trying to figure out whose turn it is to speak, and this also brings in shyer people. If your phone or web conference allows people to raise their hands, you can use that to queue people for speaking as well.

As you become more comfortable with building interactivity into your remote presentations, you’ll find that you’ll learn as much from the participants as you share with them.

Talk one-on-one

In a session called “Presentation Secrets of Comedians and Stage Performers to Keep Audience Attention” at last year’s IBM Technical Leadership Exchange, Barclay Brown shared a story about watching a presenter make the mistake of wrapping with “Thanks, you’ve
been a great audience.” He explained that although speakers might see themselves speaking to an audience, listeners think of themselves as individuals, not a group. Good speakers make that one-on-one connection even with hundreds or thousands of people in the room.

In a virtual presentation, the perception of being an individual is even stronger. Your audience members don’t see the other participants. Pay attention to the words you use so that you can make the most of that one-on-one connection. Use sentences like “Have you ever experienced this?” instead of “Has anyone here experienced this?” You can still summarize group results, but keep that one-on-one mindset as you go through the rest of your talk.

Provide next actions

Think of things people may want to learn more about or do after your presentation, and take advantage of the fact that most of your participants will already be on a computer. Give them a URL where they can find out more, take the first step, or even fill out a survey about the session.

Hope that helps! Feel free to ask me questions – I’ll come up with more tips that way. =)

Lessons learned from this phase of our Drupal project

Not only has my sleep cycle been thrown out of whack, but I’ve also broken out in pimples.

Clearly, we can get better at managing the crunch time around deployment.

The last time we deployed, there were a few tense moments, but our rigorous test-everything-from-a-production-install process helped us do it smoothly. This time, not so much. Here are a few reasons why, and here’s what I can do to make things better.

  • I had set $access_check to FALSE because I wasn’t sure if we could get in to update the system. The IT architect logged in as a super administrator and ran upgrade.php. However, since $access_check was FALSE, it apparently didn’t check at all if the user was logged in as a super administrator, and so we ran into bugs that assumed account 1 was running the update (related to node saving). Symptom: The updates ran, but some updates didn’t get fully applied. We only detected this the day after (the perils of doing an evening deployment when you’re tired). I thought that just reloading the database backup and reapplying the changes (properly, this time!) would’ve been a cleaner way to do it, but my other team members voted for manually fixing things. So that was stressful.

    The problem occurred a couple of times during QA testing, which is how I realized that update.php was misbehaving. I wrote about it, but I didn’t review the other developers’ code for potential issues, and I didn’t emphasize the potential pitfalls during our meeting.

    To do this better next time, we can come up with a more formal and regular code review process, and I can communicate more explicitly. We could try to always run update.php with $access_check = TRUE, but it may need to be false in some case in the future, and it’s better to be aware of potential problems.

  • After we deployed, we found out that a subdomain we were using hadn’t been set up in DNS. We were no longer in control of the domain record because we had turned that over to the nonprofit partner who was supposed to be managing the site.

    To do this better next time, we should make sure our QA and production setups are as close as possible (we had been using wildcards for QA), and we should test new domains.

  • I had been in crunch mode for 10 days (since the weekend before). It’s difficult to maintain sprint-like energy and focus for that long, and I was feeling physically fatigued after I stayed up relatively late to finish the deployment.

    To do this better next time, I need to insist on taking breaks, even if it doesn’t seem to be being much like a team player. Also, I need to reset my sleep cycle as quickly as possible.

During deployment, I also learned to:

  • Give people feedback and send them patches instead of just fixing the code for them. I don’t get fazed when code changes underneath me. I’ve worked with too much open source, I guess. I just try to figure out what changed, why, and how to work with the new structure. Other people can feel alienated from their code, though, and they lose that feeling of ownership. Better to hand things over to other people, perhaps with a few tips, even if it means it won’t be finished as quickly.
  • Communicate changes more often and more explicitly. I liked having a Sametime group chat running. I don’t like sending lots of e-mail, and having the chat made it easier for me to keep others in the loop.
  • Make sure tests are up to date, and run them regularly. There were a few bugs I missed because I hadn’t run the test suite, and I hadn’t run it because it takes a lot of time on my system. I should make the time to do that (using it as break time if necessary), and I can also set up a testing environment so that other people can run the tests easily. Speaking of that – I spent nearly a day tracking down failures due to other people’s changes because they didn’t verify their work against our test suite. I need to figure out how to build more common ownership of our test suite, and how to get them to run the tests themselves. The SimpleTest web interface is okay, but it’s still not as convenient as Drush. Maybe a line item in our administration interface… Hmm… Next time, I could also set up regular tests that e-mail us the results.
  • Build little tools to help. Instead of analyzing the source code by hand in order to come up with the number of lines we changed (needed this for IBM Legal), I wrote a tool that analyzed our source code based on the Subversion history. It was pretty cool. It took me about 30 minutes to write, and we ended up running it twice. I expect it would’ve taken us three hours to do that all by hand. Yay! =)

So my key things for next time are:

  • Make sure developers know about the gotchas we encountered.
  • Set up an automated test environment and make sure other developers take ownership of the results.
  • Keep a group chat running. I participate in that quite a lot. E-mail, not so much.
  • Take more breaks.

Becoming a better developer, one step at a time…

Want to grow as a speaker? Look for inspiration!

In a previous reflection on presentation and public speaking, I mentioned how I’m looking for inspiring role models who can deliver effective presentations in person and remotely.

Role models are hugely important. Think about all the people you’ve heard speak, and then think of the ones you admired and who made an impact on you. Perhaps you had a particularly charismatic teacher. Maybe you’ve gone out of your way to find sources of inspiration, you’ll probably find it difficult to name more than a few. Religious evangelists and personal development speakers may have well-developed speaking skills, but it’s hard to think of how to translate those skills to the business or technical presentations you need to make.

If you don’t know what a great speech sounds like and feels like, you’ll find it difficult to improve your skills and to help others improve theirs.

If you don’t know what a great speech is like, you may be able to polish the mechanics of your delivery, but you’ll miss out on deeper opportunities to improve your public speaking. You can give a good speech without ums and ahs, with vocal variety and body language, and with good eye contact. A great speech, however, shows you how all those things fit together with great content, great organization, and all the other factors that make a speech extraordinary.

If you don’t know what a great speech is like, you’ll be able to offer only surface suggestions to other people interested in improving their public speaking skills. You can help them eliminate the ums and ahs, encourage them to speak more slowly or quickly, and help them explore vocal variety. But you’ll find it difficult to recognize their key strengths and help them imagine how they could do it even better, and you’ll find it difficult to make specific suggestions that can help them transform the way they communicate.

Why limit yourself to that, when you can find tons of inspiring speeches on the Net?

The key resource I recommend to people who are interested in improving their speaking skills is the Technology, Entertainment and Design conference, which shares speeches from some of the most accomplished people in the world.

You can also check YouTube and other sources for comedians, poets, politicians, and other people who make a living–and make a difference–with the spoken word.

Go find yourself a few role models, and see what a difference it can make. =)

LifeCampTO social graph

After LifeCampTO, I asked people to give me the list of people they wanted to talk to (or, well, those people’s primary keys ;) ). I’m still figuring out how to do a great little mail merge that reminds people of the keywords, but along the way, I thought I might I’d learn more about network visualization.

Here’s the resulting graph: (click on it for a larger version)

LifeCampTO social graph

So, what does this graph say?

You can see that most people have quite a lot of follow-up conversations ahead. It wasn’t the kind of event where most people walked away with only two or three conversations, although they might have smaller follow-up conversations with different groups of people. It might be interesting to do some cluster analysis around topics, and maybe someday I’ll figure out how to encode the data in order to make that analysis easier. ;) Based on this, our on-the-fly decision to have three big conversations turned out to have made sense, although it would also be interesting to try having small conversations about both popular and niche topics, and then having people come together at the end (or on a wiki).

Getting to this graph (and to the individualized graphs I’ve just figured out how to produce – it highlights each person’s connections) involved a lot of bubblegum and string.

  1. I typed in the data people had written down, using OpenOffice.org to form the upper triangle of an adjacency matrix. Two people’s sheets were missing, and one person didn’t have any connections incoming or outgoing. =( Thank you, programming competitions, for all those lovely data structures.
  2. I copied the adjacency matrix and pasted it onto itself using OOo’s Paste Special – Transpose, Skip Empty Cells. This gave me a full adjacency matrix.
  3. I used a really long and hairy OOo formula to concatenate the cells into Emacs Lisp code as an associative list, with extra information and an edge list.
  4. I copied that into Emacs and processed the associative list’s edges. I needed to do that anyway in order to be able to e-mail people personalized e-mail with all of their introductions, instead of sending one e-mail per edge. Along the way, I got the idea of visualizing the network diagram, so I spun off some code to output a full edge list in DOT format for visualization with circo.
  5. I used a command like
    circo -Gsplines=true < lifecampto.dot -Tpng > lifecampto.png

    to generate the graph shown.

  6. Then I thought it would be cool to personalize the graphs, too, so I wrote some more Emacs Lisp to generate personalized DOT files that highlighted the recipient in green and the recipient’s requested links/nodes in green, too. I used a Bash for loop to turn all those personalized DOT files into PNG files.

Example of a personalized image:

Tomorrow, I’ll work on the mail merge. =)

A little computer science is a dangerous, dangerous thing.


One of the interesting things that came up during the dinner party conversation with Pete Forde’s friends was the lack of craftsmanship and art in our everyday lives. We’re surrounded by generic mass-produced disposables.

But it doesn’t have to stop there. W-, J- and I often watch Discovery Channel’s How It’s Made series, and learning about the manufacture of even something as everyday as china gives me a greater appreciation for the things we use. I carry little things that have stories or tht make me smile – a fountain pen, a notebook, a walking stick. And I’m learning to create things myself, too – developing applications and presentations for work, drawing and writing for fun.

Other people know this secret, too. Jeff Muzzerall showed me his mechanical watch, telling me how he enjoys watching the interlocking gears through the clear back face. It told a story about his love of well-crafted objects. If you carry something exceptional, it reminds you of beauty.

What keeps you in touch with craftsmanship?

“What are you planning to do in 2009?”, or thoughts about #lifecamptoronto

I’d been meaning to hold a lifehacking-oriented BarCamp since early last year. Timing is particularly good over the next two months: January is when most people make their resolutions and goals for the year, and February is when most people abandon them. By sharing best practices and support, we might be able to inject that extra little bit of energy people need to get over that hump… and by sharing our goals with each other, we can deepen our connectivity as a community.

Here’s a snippet that shows you just how powerful this is:

What are you planning to do – no matter how large or how small – to make the world better in 2009?

One of our Ferrazzi Greenlight thought leaders, Mark Goulston, M.D, recently asked this at a networking meeting of high level lawyers, financial advisors, CPAs, and consultants. Mark noticed something interesting happening: People could recall, almost to a man, what others said their 2009 mission would be. Meanwhile, after having been together five years in this group, they still had trouble remembering who was in what profession! Elevating the conversation to something that truly inspired them connected them in a way that professional small talk never could.

Keith Ferrazzi, author of Never Eat Alone

(Check out their discussions, too!)

One of the best things I did during the holiday season (and quite possibly one of the best networking things I’ve done in the past year) was to send out my updates and ask for people’s goals. It sparked wonderful conversations with many of the 200 people in my initial list. If people e-mailed me their plans, I added notes to their address book records so that I could remember their goals. Knowing that about people made me feel much closer to them, and I’m actively looking for or keeping an eye out for things that can help. Based on that great response, I’m now slowly expanding it to my LinkedIn and Facebook contacts as well.

I’d like to do this, but on a bigger scale. I want to start experimenting with facilitating networking events – not the schmoozy, sleazy type of networking events, but something positive, filled with energy, and packed with hacks for making your life better. I want people to come together, learn a whole bunch of useful tips, share what they’re passionate about and what they want to make happen, and meet people who can help them make those things a reality. I want to create an environment for maximum serendipity.

So here’s what I envision:

  • People will submit their goals and tips before the event, on a website that helps people identify people they might want to meet up with.
  • It’ll be a brunch event, because morning’s a great creative time and we need excuses to drag ourselves out of bed (relatively) early on a Saturday or Sunday morning
  • There’ll be coffee, tea, and morning snacks, sponsored by smart companies interested in people interested in developing themselves, personal development coaches, gyms…
  • Everyone’s nametags will have a number and their first and last names on them. The number will be cross-referenced with the website list, to make it easier for people to get back in touch with each other afterwards. Maybe like the way speed dating is set up…
  • The event will have an open mike where people can share their goals and their tips. If people find the tip helpful, they can write the person’s number down to thank them later. If people can help with the person’s goal, they’ll raise their hands and shout out their number. The person at the mike can write down that number and try to bump into those people during the rest of the event.
  • The rest of event will be for networking.
  • After the event, people can use the website to look up people’s web addresses or e-mail addresses. Alternatively, people can drop their contact slips into a box. I can encode and send out lots of connecting e-mails in case of a match or partial match.

I’d like to make this happen in January or February. I need:

  • co-conspirators who can help me plan the event, since I’m new to event-planning
  • a target date
  • a website – we can start with something like eventbrite or a wiki page
  • lists of people possibly interested in attending
  • lists of people attending
  • a bright and sunny place where we can have a brunch event with a sound system, depends on number of people
  • sponsors, or someone who can help me learn to approach sponsors (after we figure out how big the event will be)

You know it’ll be interesting. Let’s make it happen. =) Or borrow the idea and make it happen in your own city – that would be awesome too!

One of Canada’s Most Influential Women in Social Media?

I’ve been nominated as one of Canada’s Most Influential Women in Social Media in a poll run by Dave Forde, whom I know from the Toronto technology scene. It’s a little odd thinking about that, because I’m nowhere near the likes of Amber MacArthur (popular geek television / videocasting personality), Leesa Barnes (who made it onto a worldwide list of female social media luminaries), and Sandy Kemsley (prolific Enterprise 2.0 blogger well-known for her comprehensive live-blogged conference notes). Me? I’m a recent hire figuring things out and posting notes along the way. =)

I’ve stumbled across influence by being in the right place at the right time, maybe. My story is now woven into IBM’s story about social media, and we’re helping other large companies figure things out as well. I’ve given numerous presentations helping people figure out what Web 2.0 means for them and for their company, facilitated workshops for generating, developing and prioritizing initiatives, and done a fair bit of hand-holding to get people over their concerns. All of that is pretty cool, come to think of it, but what I’d like to do is make it possible for other people to do even cooler things.

Thinking about this poll on Canada’s most influential women in social media, I realized that I didn’t consider myself any way equal to all these role models I have here and around the world. =) I also realized that I had a pretty good idea of a future me that would feel perhaps at home in that list. So here’s what I think “influential” looks like for me:

  • I would organize regular events that brought together interesting people and helped people connect. These events would include workshops on social networking, storytelling and presentations, quarter-life crises, lifehacking and productivity, happiness, geek growth, personal finance, and other topics I’m interested in or passionate about.
  • I would also build a bit of infrastructure that would help transform the networking aspects of these events: sign-up pages with more details, aggregators to bring together people’s blog posts, business card prints and other in-person networking aids, active matchmaking both online and offline, and so on.
  • I would be one of those people that people mention their projects and ideas to in the off chance that I could recommend people to talk to, books to read, and sites to check out–because I would. =) In order to do this, I’d find ways to more effectively capture information to support a somewhat fuzzy associative memory. (It’s _so_ frustrating to know that you’ve seen something before that people will like, but not be able to find it again!)
  • I would help lots of people to figure out what their passion is, deepen their skills, and share the results with lots of people through presentations, new and existing businesses, and other good things. I’d do that by asking people, helping them connect and make things happen, and helping them find a forum or opportunity where they can talk to other people.
  • I would have a big archive of things I’ve thought about and shared with others so that I can pull useful resources out and give them to people.
  • I would build systems to make it possible for other people to do this kind of awesomeness as well. =)

So that’s what “influential” looks like to me. I’m not there yet, but I think I can get there. =) I can learn how to hold external events, and gradually get into the swing of it. I can keep blogging and summarizing interesting resources, gradually refining my collection of resources. I can keep tweaking my addressbook, and someday I’ll build systems to help other people try this out. =)

Stay tuned.

Notes from conversations: Ushnish Sengupta, consulting

Ushnish Sengupta was interested in exploring social media consulting. He picked my brains over hot chocolate at the Bluestar Cafe. Here are some rough notes from that conversation:

  • The first tip I gave him was to blog. I think it’s a good idea for consultants to keep a blog because it’s an easy and nearly-free way to help establish credibility and build connections. The blog can contain success stories, articles, lessons learned, announcements of upcoming events, tips, tidbits, and other pieces of information that can help both potential and existing clients. Besides, it’s awfully hard to do social media consulting if you’re not immersed in the space and you don’t have a presence.
  • Business cards: I told him about putting pictures and interesting conversation hooks on business cards, showing him mine as an example.
  • Ushnish was interested in potentially getting a PhD looking at consulting services and similar areas. I recommended that he check out services science. A recent conference we both attended (CASCON) had a number of sessions about the topic, so I suggested reviewing the proceedings to find people and topics of potential interest. I also recommended that he get in touch with people like Kelly Lyons – she’s currently doing research in this field.
  • Twitter backchannel: He asked me how the City of Toronto’s Web 2.0 Summit went. I told him about the interesting conversations that happened in real life and on the Twitter backchannel, and suggested that the next time he’s at an event, he should find the tag that people are using and tune in to search.twitter.com for some lively conversation.
  • Professional networking: He asked me which professional social networks I’m on. I told him that I’m active on LinkedIn and I use it to connect with people so that I can find out about changes in e-mail addresses and positions. He asked me if I was on Plaxo. I told him that I never got into Plaxo because it started off with a bad value-proposition for people who entered their data and that it had been fairly spammy. I haven’t looked into Plaxo Pulse in detail, but LinkedIn and my personal addressbook handles most of my needs.
  • Multiple networks: He asked me about being on multiple networks and how networks become popular and then fade away. The key things I shared with him were that ideas and skills tend to be transferrable between networks, and that an external profile such as a personal site or blog is important because it ties all the networks together. I also told him about something I picked up from Rahaf Harfoush’s talk on the Obama campaign: produce a piece of content and then distribute it through different channels.
  • Partnership: Ushnish asked me if I preferred to work with people I know well or if I preferred to work alone. I told him that I definitely prefer to work with other people because I learn much more in the process. I also told him that I actually enjoy working with people I don’t know that well yet, because it gives me an opportunity to develop a new relationship and spread the skills. If I’m asked to give a presentation, I often look for ways to enable other people to give the presentation, perhaps with a little coaching from me. I want other people to develop wonderful skills, too.
  • Teaching as I learn: The point on partnership segued into a discussion of how useful, fulfilling, and effective it is to try to teach everything I know how to do. I recapped some of the points from “If you can, teach; If you can’t teach, do“.
  • Event management: I told him that I’m interested in learning more about hosting external events in 2009. Alex Sirota does a lot of events for the New Path Network (which Ushnish belongs to), so I might see if I can use some of those events as models.
  • Address book: Ushnish was curious about how I manage my network. I told him about my wonderful addressbook setup (automatically tracks who I send mail to, automatically inserts notes into my mail), and the visualization improvements I’d like to make. I also told him of my plans to try porting some of these ideas to Drupal so that other people can experiment with them.
  • Social media and change management: I told him about the spectrum of social media consulting, and that organizational change plays a large part in it.
  • Rough notes: We ended the conversation with a homework assignment: he’s supposed to blog the lecture he was also going to that day, and perhaps the notes from the conversation as well. I reassured him that rough notes are fine, and that he’ll make things clearer and clearer as he writes about them again and again.

What did I learn?

  • I seem to have learned something about social media consulting after all. =) Hooray! I need to package that into some kind of internal blog post and presentation so that my coworkers can make the most of it.
  • I should find a way to package up these social networking tips into a blog post, a presentation, and maybe an event.
  • In an alternate future, I could probably keep myself very busy building and selling tools for making all of these things easier…

Learning languages

My recent trip to Tel Aviv was a good reason to learn a little Hebrew. I listened to the Hebrew I course from the Pimsleur language series (available in the Toronto Public Library!) while I was sewing clothes or doing dishes, and I printed out a few phrase lists I found on the Internet. I didn’t get to the point of being able to have a good conversation in Hebrew, but it was nice not feeling totally lost, and occasionally even recognizing some of the things that people around me were saying.

I like learning different languages. It’s like building with blocks: you collect different kinds of pieces, and the more pieces you collect, the more ways you can combine them and make sense.

W- and I have been watching Heroes. Yes, we’re very much behind the times. ;) My favorite segments are when Masi Oka shows up as Hiro and speaks in Japanese. I miss the rush of semi-understood syllables, the alien familiarity of a learned skill.

Maybe I should take that up again. I probably won’t be able to make much time for conversation practice, but it would be interesting to be able to read foreign blog posts and make occasional comments.

So I’ve bought Japanese Flip for the new iPod Touch (thank you, Slideshare) and I’ll be playing with it on the subway ride. =) I’ll also see about getting back to learning French…

Weekly review: Week ending Nov 2, 2008

This week was half travel, half catching up. I flew to Tel Aviv for a customer workshop at which I facilitated a session about mobile social networking. When I got back, I worked on my Drupal-based project, ironing out a few bugs and playing defect tennis. I processed lots of requests quickly.

I was going to do the paperwork for the Schengen visa so that I could help with another customer workshop in Brussels. I was nervous about the time and I didn’t want to cancel my participation at the last minute, as I know from first-hand experience that it can be pretty difficult for people taking up the sudden slack. So I recommended a number of people in Europe to the workshop organizers, and I hope they find a good fit.

During this mad two-week stint of travel, I realized a couple of things:

  • Consulting is a scary thing. ;) You’re always wondering if the client will feel that you’ve provided enough value. Programming or making things seems a little more clear-cut in that respect.
  • I love connecting the dots, and I seem to have passed some threshold that makes the network effects scale well. Because people know I like connecting the dots, they tell me about what they can offer and what they’re looking for.
  • A few days of working at home helps me settle down and relax after unusual stints of overtime. Otherwise, things feel pretty raw.

I finished the red jacket I was working on, and I’ve also completed a purple skirt. I’m very happy with the way the red jacket turned out, and the notions I picked up during Fabricland’s sale have helped me me save time and make my purple skirt neater. My next project (already halfway done) is a black skirt following the same pattern as the purple skirt. After that, I’ll probably make two reversible four-color shells to make business-trip packing even easier.

I’d been thinking about the personality differences between people who start things and people who finish things. I’m very much a starter. I can see the possibilities of starting things, I’m good at figuring out who I need to talk to in order to make something happen, and I can be excited and get other people excited too. On the other hand, after a while, I can lose interest and move on to other things, which is probably why my Emacs book is languishing in the doldrums.

That’s one of the reasons why sewing interests me. Small, quick projects that give me tangible results when I finish them… Maybe this a good way to develop more persistence and attention to detail. =)

Next week, I’ll be focusing on the Drupal-based project. We’re coming up on our second release date, and I think we’re in pretty good shape despite all my travel. I also need to get the details ironed out for my talk in Concordia University: the student’s guide to Web 2.0 at work, and for an upcoming panel on government, Web 2.0 and youth. On Thursday, SelectMinds has a virtual corporate social networking conference. I’m looking forward to attending the session on onboarding with social networking tools (1:45 ET – 2:45 ET). We’ll be recording videos of our other presentations on Thursday, so I might not be able to make it to the rest of the interesting sessions. It’ll be a very busy week, but I hope to make time to get my permanent residency application together and to follow up on the interesting conversations I had over the past two weeks.

Gen Y Perspective: Why Gen Y Won’t Stay at Jobs that Suck

In yesterday’s talk by Bea Fields on managing Gen Y, one of the listeners asked how much of a fun circus work would need to become in order to attract and retain younger workers. The well-known and much-criticized Gen Y tendency to job hop makes Gen Y retention a key issue for companies around the world. Here’s my Gen Y perspective on this issue: when work-life balance is important and career plans are chaotic, it just doesn’t pay to work at jobs that suck.

Why do people work at jobs that don’t make them happy? There seem to be three main reasons:

  • They need the money or the health insurance.
  • They don’t care about the sacrifices they have to make.
  • They see it as a stepping-stone towards a bigger opportunity.

Let’s look at those three reasons from a Gen Y perspective.

Do they need the money or the health insurance?

Many Gen Yers still live at home, so they have less financial pressure. Others live on their own or with friends, but aren’t carrying mortgages or supporting families. True, many Gen Yers experience financial pressure from student loans, credit card debt and other obligations, but most can get by.

What about health care? We’re in the prime of our lives, and most don’t need to worry about losing insurance coverage. Life insurance and family insurance needs are low, because we typically don’t have any dependents. That means we can shift jobs without worrying about not being covered in the meantime.

Why else would people take jobs they weren’t happy in? They might not care about the other sacrifices they need to make, such as working long hours and living under high stress.

I know many Gen Yers who work overtime and weekends, but I also know many Gen Yers who prioritize work-life balance and who make time in their lives for other things. If their jobs don’t allow them to have the kind of life they want, they’ll look for other opportunities. They know that for every company that talks about company loyalty and retention but then turns around and expects an unsustainable pace of work, there are also companies that walk the walk and are really interested in improving workplace flexibility–not just for senior employees, but for everyone.

Why would people work so hard, anyway? The answer is related to the third reason why people stay in jobs that don’t make them happy. They see those jobs as stepping-stones to greater opportunities.

It used to be that you would “pay your dues” in a boring, thankless job, eventually rising in the ranks and gaining a cushy position. Not any more. After rampant downsizing (I mean, “right-sizing”, or “resource actions”, as IBM likes to call it), the failure of even supposedly rock-solid institutions (hello, Fannie Mae!), and the un-cushy-izing of formerly cushy positions such as partners in law firms (who are now subject to the threat of de-equitization) is it any wonder why many people–Gen Y, especially, as we’re making these entry-level decisions–no longer believe in long-term career planning and in paying your dues in a thankless position?

Lesson One in Daniel Pink‘s unconventional career guide The Adventures of Johnny Bunko is: “There is no plan.”

There is no plan. If there can be no neat plan from getting from point A to point B, if being the office gopher won’t get you to the corner office, if you can burn yourself out because of overtime and high stress but still be laid off because of unpredictable market conditions, then it makes sense to take a step back, invest in yourself, and do work that creates value and make you happy.

Gen Y knows this: your employer pays you, but you ultimately work for yourself. You are ultimately responsible for developing your own skills, finding your own opportunities, and making the life that you want.

Gen Y challenges for recruiting and retention, such puzzling issues for HR departments all over the world, are really just logical reactions to the realities of the marketplace. It makes sense to pick jobs and organizations where you can create value, learn, and enjoy working. It makes sense to contribute and learn as much as you can, then move before you get moved–whether it’s to another job in the organization, or to another organization entirely. It makes sense to make sure that there’s something in it for you.

Does that mean that Gen Yers are mercenary? No. In fact, money isn’t the biggest reason why Gen Yers leave organizations. Gen Yers are looking for opportunities to make a difference, to grow, to connect, and to work with people they admire. Dot-com-like perks like foosball tables are fun, but they don’t make up for opportunities to make a difference.

The organization that can quickly tap new Gen Yers’ passions and skills, move them into a position where they can contribute in a meaningful way, and help them build the social networks that will make them even more productive–that’s the kind of organization that will be able to easily recruit and retain Gen Y, because that’s the kind of organization that understands what matters.

Squee! Won Slideshare’s Best Presentation Contest!


My introduction-in-verse won the Slideshare Best Presentation Contest Category for “About Me”! Which probably means that at some point, I brought a smile to the illustrious panel of judges: Guy Kawasaki, Nancy Duarte, Garr Reynolds, and Bert Decker.

Hello, I'm Sacha Chua!

View SlideShare presentation or Upload your own. (tags: sketches self)

I’m sure I’ll put the iPod Touch to all sorts of good use!

I had a lot of fun making the presentation on my Nintendo DS. I’ve since then given to my mom so that she can do yoga, but I upgraded to the Cintiq 12WX and it’s really fun to sketch on. Still, I feel very much like a fledgling artist:


As promised, I’ll be sending some of my favorite presentation books to one of the lucky people who voted for me. Hello, Randell! I’m looking forward to sharing Presentation Zen and Back of the Napkin with you. =D


Weekly review – week ending Aug 1-ish

This week was about mornings. I successfully switched over to an early-morning schedule, waking up at around 6 in order to write. I found that writing was much easier and more enjoyable in the morning, with lots of energy and a fresh mind, and I also appreciated the incidental benefits of being able to have a leisurely breakfast and a non-stressed start to my day. (W-‘s gratitude for early-morning coffee was a nice bonus!)

This early-morning schedule meant that I found myself getting sleepy at 9, though, and I was often in bed by 10. W- expressed some concern that we might end up leading separate lives, so we’ll figure out how to balance that. We could either figure out how to make the most of a late schedule, shift to an early schedule, or make sure we have enough quality time together. If you’re in a wonderful relationship with someone with a different circadian rhythm, how do you make the most of it?

(I’d definitely like to keep my early-morning writing, though. I liked the feeling of that more than I like afternoon or evening writing…)

Result: Lots of Emacs blog posts this week, as I set up my Emacs development environment for PHP!

In other news, the Drupal project I’ve been working on is now live on the production server. Hooray! The project manager asked us last week to estimate how much time it would take to move the system from the quality assurance server to the production server. I plucked a number out of the air based on how long it took to move to the QA server: one hour? My teammate adjusted my estimate to account for finicky things: three hours? The project manager laughed and told us that we had a week to do it. I took care of it yesterday, and it took me almost exactly an hour (including DNS changes). I’ll check later if any bugs have come up.

I was also happy with some of the infrastructure I built and the tests I added at work. Kaizen! Experience++!

Other parts of my life:

  • I’ve achieved the savings target for my gadget fund, which means I _could_ go out and get a Lenovo Thinkpad X61 tablet PC if I _really_ wanted to. I don’t have a compelling need for it, though. I’d like to use it to draw and mindmap, but there are plenty of things to keep me busy in the meantime, so I won’t touch the gadget fund until I know that it’ll give me a lot of extra value.
  • I’m saving up some of my play money so that I can experiment with delegating chores and swapping money for time. I don’t have a good sense yet of whether that’s an efficient long-term tradeoff, but it’s worth exploring. Personal assistant agencies in Toronto tend to charge about $25 / hour.
  • Yoga classes have been cancelled for August, so it’s just going to be krav maga. I’ll continue to do yoga at home.

I’m planning to install Ubuntu today. I need to borrow W-‘s CD drive, as mine seems to be somewhat broken. I’d like to get everything set up over the long weekend.

My goals for next week are:

  • Work out a better schedule with W- so that we have time to keep developing in-jokes and enjoying each other’s company
  • Keep the production server running; begin development on phase 2?
  • Cook beef stroganoff for the first time
  • Get ready for our trip to the Philippines – yay!

Awesome, I’ve been quoted in Portuguese!

Todas as faces da colaboração?

O poder do indivíduo já era. Experiências com colaboração e ferramentas sociais em grandes companhias, como a IBM, dão conta de mostrar o valor do trabalho desenvolvido em rede e global

Que tal conseguir o emprego dos sonhos compartilhando suas idéias em um blog? Foi assim que Sacha Chua, atual evangelizadora de Empresa 2.0 da IBM, conquistou o posto que ocupa hoje dentro da companhia, em Toronto, Canadá. Aos 23 anos, tão logo a jovem estudante passou a circular pela empresa por conta do projeto de conclusão de sua tese de mestrado em computacão social, em 2006, não hesitou em disparar posts sobre a própria pesquisa pela ferramenta interna de blogs que a IBM disponibilizava aos funcionários.

“Percebi que se não fizesse isso, no final de mestrado poucas pessoas leriam minha tese. Escrever sobre a pesquisa enquanto ela era feita permitiu que eu compartilhasse meu conhecimento com outras pessoas e aprendesse com as sugestôes e conselhos que me davam”, conta.

Foi como se a partir daquele momento tivesse calçado os sapatinhos de cristal de uma Cinderela moderna que ascendia para o universo corporativo. Do dia para a noite, o blog da então ilustre desconhecida caiu no gosto dos funcionários e se tournou o mais popular da empresa não só no Canadá–com média de 300 a 600 acessos diários–tudo sem sair da esfera interna da IBM. “Queria fazer mais do que escrever software, queria ajudar as pessoas a se conectarem por blogs, wikis e outras ferramentas web 2.0 e a IBM era a empresa perfeita para aplicar tudo que aprendi a respeito no mundo real. Quando chegou a hora de pedir o emprego, o processo foi fácil porque os futuros colegas de equipe já me conheciam e sabiam o suficiente para convencer a gerência a criar um cargo só para mim”, lembra.

A história de Sacha poderia ser uma exceção, mas não é. Essa é apenas uma das faces das oportunidades que as ferramentas sociais e de colaboração apresentam dentro de companhias. Por isso, a IBM vem apostando na criação de ambientes férteis para a inovação.

Except for my age, most of it’s right. Nifty! There’s more, but it would take me a while to type it all in from the scan. I wonder if I can get a copy of the magazine for my mom… =)

Pereira, Paula. June 2008. “Todas as faces da colaboração?”, B2B Magazine

Drupal: Adding lines to settings.php in an installation profile

Installation profiles can make it easier for you to test and reproduce your configuration. But what if you need to do more than what Install Profile Wizard detects? For example, parts of the Domain Access module ask you to add lines to your sites/default/settings.php. Fortunately, PHP allows you to set up your install profile to write to files during installation.

Here’s the code I added to the end of the profilename_profile_final() function:

    // Add the following to the end of settings.php
    $file = fopen("sites/default/settings.php", "a");
    if ($file) {
      fputs($file, "\$cookie_domain = '.transitions2.org';\n");
      fputs($file, "require_once './sites/all/modules/domain/domain_conf/settings_domain_conf.inc';\n");
      fputs($file, "require_once './sites/all/modules/domain/domain_prefix/settings_domain_prefix.inc';\n");
    } else {
      drupal_set_message("Can't add domain-related lines to sites/default/settings.php");

Hope it helps!

Weekly review – week ending March 2, 2008

I feel a little flushed today, and I’ve been sniffling all weekend. After I finish this blog post, I’m going to go to bed.

  • Monday: DemoCamp 17 was terrific. I liked Tom Purves’ presentation on the state of wireless in Canada because the 5-minute Ignite talk was both visually appealing and energetically delivered. The Mozilla phenomenologist’s presentation was also well-designed. Good stuff. Networking was lots of fun, too, although I have to confess that I still haven’t followed up. Tomorrow, I promise.
  • Tuesday: Mostly spent preparing for my talk on Networking 2.0: Blogging Your Way out of a Job and into a Career.
  • Wednesday: Delivered the Networking 2.0 talk at the Concordia University Alumni Association event. Well-received. People loved the energy.
  • Thursday: GBS Foundations dinner. Thoughts on this sometime.
  • Friday: Continued working on social media guide. Volunteered to help with internal blogging strategy for my team.

Next week is going to be crazy. We’re flying to the Philippines on Saturday, so I have a bunch of things to take care of before then. To wit:

  • Wrap up my projects
  • Plan for the four conferences I’m going to in April – doublecheck accommodations, travel plans, speaker review, etc. (presenting at Best Practices Conference, Blue Horizon, and Technical Leadership Exchange.. augh!)
  • Turn over metaverse event planning to someone
  • Figure out how to turn on vacation mail
  • Pick up currency
  • Put mail on hold
  • Get my laptop sorted out
  • Inch along on my book


Internet experiment #2: Ordering clothes – success!

There are some things that most people would never think of buying from the Internet because they require such a personal fit: eyeglasses, clothes, and shoes. Having successfully ordered two pairs of eyeglasses from Zenni Optical with substantial savings, I decided to explore the second frontier: buying clothes off the Internet.

After four months of working in the corporate world, I found myself gravitating to a few favorite outfits: a gray pinstripe suit that I bought off the rack (about $40 because it was on sale) and invested about $70 in having it tailored to me, and a few combinations of a long-sleeved blouse, a V-neck sweater, pants matching the sweater, and a scarf matching the blouse. (See, Kathy, I’m getting the hang of this coordination thing…) I’m still not as sharply dressed as consultants in other practices, though, and there are some gaps in my wardrobe that I’m gradually filling in–such as a coordinated black suit.

I find it difficult to shop for clothes in brick-and-mortar stores. There just aren’t that many clothes for short, slim people with small torsos and somewhat wider hips. It’s frustrating to go through the entire Eaton Centre and find only a few outfits that merit a trip to the dressing room. I rarely find anything that fits off the rack, and the noisy crowd can feel overwhelming after a few hours.

It doesn’t help that I shop with a very specific idea of what I want: a pair of oval red frames, a black pant suit in size 4 petite, a pair of beige pumps with a slightly rounded toe and a 1″ to 1.5″ square heel. I wish I could press a button to have the store reorganized by color and style instead of just by brand. In short, I want an Internet-like shopping interface. Bring on some faceted navigation.

So when I was shopping for gifts on eBay.ca, I took the opportunity to also search for petite size 4 pantsuits, and I was happy to find some that I wouldn’t mind trying out. eBay is not known for good return policies, so I submitted bids that were low enough for me to charge to experience if things didn’t work. As in my experiment with ordering eyeglasses of the Internet, I reasoned that if it didn’t work, I wasted a little of money, but if it did, I could save a lot more time and money in the future. It was worth a try.

The first of my suits arrived the other day. I had to trek up to the post office to pay customs, but even with shipping and tax, the suit cost just about as much as the gray suit I picked up during one of the sales. I had ordered a double-breasted black suit, and it arrived in the condition described: new and all ready to go. In terms of fit, it was no worse than suits in stores. In terms of cost, it was decent. In terms of convenience, it was much better.

So there: shopping for clothes on the Internet is worth a try. =)

Testing from Emacs

I’m using weblogger.el and xml-rpc.el to post directly to my WordPress.

I wonder how well it works…

Sorry about the RSS thrashing! <sheepish grin> It took a while for the idea of a test blog to occur to me. So sorry. =)

In conclusion: Emacs posting to external weblogs – not quite there yet. Weblogger.el is somewhat okay, g-client and atom-api didn’t work at all on my system. Waah. Quite frustrating.

More progress

Yay, I finished my writing goal for the day!

Tomorrow’s a busy day. I have two conference calls, a client meeting, an eye exam (need new glasses), and if I can squeeze it in, a dentist appointment as well. I’ve finished a lot of work for the client, and I’m looking forward to sharing the first drafts with them. I’m really turning into an intranet social media consultant! =) This is good.

Tomorrow is also an editing day, so I’ll take whatever I have so far and start putting it all together. And then the chapter’s just going to magically fall into place, like it did last time.

The days are just packed. =D

Projects in Emacs Org


Organizing your tasks into projects can help you plan ahead, track
your progress, and stay motivated. Working from a project list allows
you to plan your day or week instead of just reacting to other
people’s requests. Keeping your projects and tasks in Org makes it
easier for you to review your completed tasks and plan the next step.
If you include some text describing why you want to do the project and
what your intended outcome is, this can help you stay motivated
throughout a long project.

Projects can take a single day or several years. They can be large
projects involving lots of other people and resources, or small
projects that you do on your own. Projects may involve a handful of
separate steps or a hundred things you need to do in order to achieve
your goal. The important thing is that there is more than one step.
If you organize your task list so that related tasks are together,
then you’ll find it easier to get a sense of where you are, where
you’re going, and what you need to do next.

In this section, you will learn how to:

  • Create projects,
  • Organize your tasks into projects,
  • Review your ongoing projects, and
  • Mark projects as finished.

I’ll assume that you’re using Emacs 22, and that you’ve set up Org
using an ~/organizer.org agenda file and the basic configuration
suggested in either “Org and GTD” or “Org as a Day Planner.” I’ll also
assume that you’re familiar with switching between the Org agenda view
and the Org organizer file, and that you’re comfortable navigating
around Emacs.

The examples I’ll use focus on yearly goals. You might also have
short-term projects or long-term plans. Feel free to adapt the
examples as needed.

Open your ~/organizer.org file. If you’ve collected your tasks as
suggested in the previous sections on Using Org as a Day Planner or
Using Org for GTD, your ~/organizer.org file might look something like

 * Inbox
 ** TODO Read Emacs Lisp intro
 ** TODO Write yearly review
 ** TODO Exercise
 ** TODO Browse the Emacs Wiki

Create new top-level headings for this year’s goals or the projects
that you’re working on. You can create a top-level heading by
typing * and the heading, like this:

 * Learn more about Emacs
 * Go on vacation
 * Inbox
 ** TODO Read Emacs manual

It’s a good idea to add the projects to the beginning of the file
(before your Inbox) because M-x remember adds new tasks or notes to
the end of the file. If the last major heading as * Inbox, then the
tasks and notes are automatically added to it. If the last major
heading is a project, the tasks and notes may get misfiled.

What are your projects?
Yearly goals? I’ve got twenty-year plans!

If you’re a top-down planner, you’ll find it easy to list your
projects. In fact, you might have a ten- or even twenty-year plan
already written down. You’ll find this section straightforward,
because you’re already used to planning in terms of projects.
Go ahead and adapt the examples to your long-term plans.

Yearly goals? I live day by day!

If you’re a bottom-up planner, you might be giving me a weird look
right now. “Yearly goals? I’m lucky if I can figure out how to get
through the next day!” This section will also show you how to find the
recurring themes in your task list and organize them into projects.
Give project-based planning a try for a month. If this way of thinking
doesn’t work for you, Org will work just fine without projects.

You probably have projects, even if you can’t think of any right
now. Review your ~/organizer.org file. If you haven’t written down
everything you needed to do yet, go through the section on basic
configuration for your planning style (GTD or day planning). Once you
have a list of things to do, you can then review it for big tasks,
related tasks, and other project clues.

Read your tasks and ask yourself the following questions:

  • *Can I do this in one sitting?* Big tasks such as “Write a book” are often projects in disguise. Use projects so that you can break them down into smaller, doable tasks.
  • *Is this related to other tasks?* Related tasks such as “Book a flight” and “Plan my itinerary” are often clues to a project like “Go on vacation”. Use projects so that you can review related tasks together.
  • *Why am I doing this?* When you think about the reason why you’re doing something, you’ll often find a bigger project. For example, if one of your tasks is “Set up an automatic retirement savings plan”, then the question “Why am I doing this?” may lead you to the project “Plan for retirement”. Use projects to help you think of other ways to move towards that goal.

Big tasks need to be broken down into smaller tasks anyway, and
organizing them into projects will help you make them more
manageable. You may not want to organize all of your other tasks into
projects. If you can pick some major themes to focus on, though, then
you’ll be able to see how the different things you do are related to
each other, and you’ll be able to think of other ways to work on those
projects. If you’re starting out with project-based thinking, maybe
you can pick three to five projects and try to do a little work on
each of them every day.

If you still don’t identify any projects, that’s okay. You can use Org
as a straightforward task list. Jump ahead to the section on “Tags”,
as you’ll probably find that useful.

On the other hand, if this step turns up plenty of projects, resist
the temptation to over-correct and end up with hundreds of projects. I
find that more than 7 active projects gets hard to manage. Pick a few
main themes that you’d like to work on, and make everthing else
something you plan to do someday.

Project tasks

Creating tasks

Now that you have project headings, think of the next thing you need
to do in order to move those projects forward. If you’ve already
written down those tasks, move them under the appropriate project
heading. If not, type them in.

In order for a task to belong to a project, it needs to be under the
heading and at a lower level. For example, if your project heading has
one star, like this:

 * Learn Emacs

then your TODO headings should have two stars, like this:

 * Learn Emacs
 ** TODO Read the Emacs manual
 ** TODO Read the Emacs Lisp Intro manual (eintr)
 ** TODO Install the Emacs source code

If your tasks are not at the right level, you can add the star
manually by editing the heading. You can also use M-right and M-left
(org-metaright and org-metaleft) while on a heading in order to
promote or demote it, and you can use M-S-right and M-S-left
(org-shift-metaright and org-shift-metaleft) to promote or demote
entire subtrees.

To move tasks up and down within the project, you can copy and paste
the text. You can use M-Up and M-Down (org-metaup and org-metadown) to
move subtrees.

Think of tasks you can do within the next week in order to move each
of your projects forward. Add next actions to all of your active
projects. Creating next actions for each of your projects makes it
easier to remember to keep moving forward.

Organizing tasks

If you have many tasks in a project, you may want to organize them
into sub-projects. For example, you might divide a software project
into components. If you’re starting from scratch, you can create the
project structure by typing in more stars for sub-project
headings. For example:

 * Learn Emacs
 ** Read mail
 *** TODO Choose a mail client
 *** TODO Install and configure the mail client
 *** TODO Send a message
 ** Browse the Web
 *** Read through the w3m documentation

You can also demote an existing project into a subproject.
Use M-S-right (org-shift-metaright) on the
current project headline in order to demote it to a sub-project. This
will also demote the tasks within the project. For example, demoting

 * Learn Emacs
 ** TODO Choose a mail client
 ** TODO Install and configure the mail client
 ** TODO Send a message

will result in this:

 ** Learn Emacs
 *** TODO Choose a mail client
 *** TODO Install and configure the mail client
 *** TODO Send a message

Then you can change the heading and add another heading above it, like this:

 * Learn Emacs
 ** Read mail
 *** TODO Choose a mail client
 *** TODO Install and configure the mail client
 *** TODO Send a message

This kind of organization is optional, but it can help you get an idea
of the overall structure of your project. Using different levels
allows you to hide and show groups of headings by pressing TAB on the

Now that you’ve created your project tasks and organized them the way
you want, it’s time to actually do the work.

Working on tasks

If you use Org as a day planner, you may also want to schedule the
tasks onto specific days with C-c C-s (org-schedule). You can review
your daily or weekly agenda with C-c a a (org-agenda,
org-agenda-list), switching between daily and weekly views with d and
w (org-agenda-day-view and org-agenda-week-view).

You can work with the next actions in the same way you work with other
tasks, rescheduling them or marking them as STARTED, WAITING or DONE
with the keyboar shortcuts introduced in the previous section on Org
and GTD or Org as a Day Planner.

When you finish a project task, think of the next action you can do in
order to move that project forward. If you use Org as a day planner,
schedule the next action onto your calendar as well.

Reviewing projects

You can review your projects by opening your ~/organizer.org and
browsing through the headings. S-tab (org-shifttab) changes the
visibility of headings, so you can see just the top-level headings or
all the details. You can use TAB (org-cycle) on a headline to show or
hide subtrees.

Reviewing a list of projects

If you have many projects, you’ll want a shorter view of just your
active projects. To make it easier to review projects, add a PROJECT
tag to all your active project headlines. You can add a tag by
editing your ~/organizer.org and moving your cursor to the headline
and typing C-c C-c (org-ctrl-c-ctrl-c), followed by the name of the
tag (PROJECT). You can also manually type :TAGNAME: at the end of the
headings, like this:

 * Learn more about Emacs        :PROJECT:
 ** TODO Read the Emacs manual
 ** TODO Read the Emacs Lisp Intro manual (eintr)
 * Go on vacation                :PROJECT:
 * Inbox

You might classify some of your projects as someday/maybe – things
that are nice to think about, but which you aren’t acting on right
now. Tag your inactive or someday/maybe projects with PROJECT and
MAYBE. If you’re editing the ~/organizer.org file, just
add :PROJECT:MAYBE: to the heading. If you’re tagging it with C-c C-c
(org-ctrl-c-ctrl-c), specify PROJECT:MAYBE as the tag.

 * Learn more about Emacs        :PROJECT:
 * Go on vacation                :PROJECT:MAYBE:
 * Inbox
 ** TODO Read Emacs manual

Now that you’ve tagged your projects, you can view just your project
headlines with a custom agenda command. Custom agenda views are a
terrific feature in Org, and you can do a lot with them if you know a
little Emacs Lisp. Here’s what you need to add to your ~/.emacs in
order to get a list of your active projects and your someday/maybe

(setq org-agenda-custom-commands
      '(("p" tags "PROJECT-MAYBE-DONE" nil)  ;; (1)
        ("m" tags "PROJECT&MAYBE" nil)       ;; (2)
        ;; ... put your other custom commands here
  • (1) This makes C-c a p (org-agenda, p) show your active projects.
  • (2) This makes C-c a m (org-agenda, m) show your “maybe” projects.

With these two commands, you can quickly review your active and
inactive projects. To jump to a project from the agenda view, move
your cursor to the heading and press RET (org-agenda-switch-to). If
you want to scan through the projects quickly, use f
(org-agenda-follow-mode) in the agenda view to turn on follow mode,
then move to different headlines. Another window will show the
headline at point.

If you review your projects at least once a week, you’ll find it
easier to make regular progress. If you want to combine your
weekly/daily review with your project list, you can do that with
org-agenda-custom-commands as well. Here’s what you’d put in your

(setq org-agenda-custom-commands
      '(("p" tags "PROJECT-MAYBE-DONE" nil)
        ("m" tags "PROJECT&MAYBE" nil)
        ("a" "My agenda"                            ;; (1)
         ((org-agenda-list)                         ;; (2)
          (tags "PROJECT-MAYBE-DONE")))             ;; (3)
        ;; ... put your other custom commands here
  • (1) The first argument is the shortcut key, the second is a name for the agenda view
  • (2) Your daily or weekly agenda. The d and w (org-agenda-day-view and org-agenda-week-view) shortcuts work if the point is within this section
  • (3) A list of your active projects

This configures C-c a a (org-agenda, “My agenda”) to display your
agenda and a list of your project headings. Again, you can press RET
(org-agenda-switch-to) to jump to a project from its heading in the
agenda view.

Reviewing your stuck projects

You might have forgotten to create next actions for some of your
active projects. Org can help you find projects which don’t have next actions.
You can then decide if the project is complete or if it needs further action.

To list stuck projects, you first need to tell Org what a stuck
project is. The following code defines a stuck project as an active
project (not tagged “maybe” or “done”) that doesn’t have a TODO or
STARTED action, if the body of the project doesn’t contain “*lt;IGNORE>”. Add this to your ~/.emacs and evaluate it:

(setq org-stuck-projects
      '("+PROJECT/-MAYBE-DONE" ("TODO" "STARTED") nil "\\<IGNORE\\>"))

Then you can use M-x org-agenda-list-stuck-projects or C-a a #
(org-agenda, org-agenda-list-stuck-projects) to show only the stuck
projects. Review this list and jump to the headlines.

Want to add that to your custom agenda view? Modify the org-agenda-custom-commands value in your ~/.emacs to be like this:

(setq org-agenda-custom-commands
      '(("p" tags "PROJECT-MAYBE-DONE" nil)
        ("m" tags "PROJECT&MAYBE" nil)
        ("a" "My agenda"
          (org-agenda-list-stuck-projects)          ;; (1)
          (tags "PROJECT-MAYBE-DONE")))
        ;; ... put your other custom commands here
  • (1) It’s a good idea to put it before your regular project list so that you can see what needs your attention.

What about finished projects? You might want to keep them in your Org
file, but they shouldn’t show up in your active and inactive project
lists. Org can keep track of those projects too.

Marking projects as done

If you look at the custom commands above, you’ll notice the “-DONE”
specifier. “DONE” is the tag we’ll use to indicate done projects. To
tag a project as done, move the point to the project heading and type
C-c C-c (org-ctrl-c-ctrl-c). The tag prompt will default to the
current tags. Just add “DONE” and press Enter. With the custom
commands we’ve set up, projects tagged DONE will not show in your
active, inactive, or stuck project lists.

You can also add the tag manually. For example, if the project heading is

 * Learn Emacs    :PROJECT:

and you’re happy with your level of Emacs proficiency, then you can
mark it as done by changing it to

 * Learn Emacs    :PROJECT:DONE:

If you have plenty of completed projects, your Org file might be quite
large. You can mark a subtree for archiving by typing C-c C-x C-a
(org-toggle-archive-tag). This hides it from most Org commands. You
can also archive a tree into a different file with C-c C-x C-s

Wrapping up

Now you can create projects, manage your project tasks, and review
your active, inactive, and stuck projects in Org. You know how to mark
projects as completed and how to archive them. You’ve also started
using tags to dynamically generate reports from your Org file.

Tags can do a lot more. To find out what else you can do with tags,
read the next section on “Tagging in Org”.

On Technorati: , ,

Weekly review

What I know is nothing compared to what I will learn, and what I will
learn is nothing compared to what is knowable.
That was the key thought for this week as I went into my second client
engagement, this time with a financial services firm. There’s just so
much to learn. It’s a little bit intimidating,
but even though I’m new, I can bring useful things to the table: my
questions and my notes. If I take in as much as I can from lots of
different people and serve as a conduit between them, then that’ll be
a good way to get started.

The second key thing about this week was reconnection. I pinged Michael Nielsen and Jennifer Dodd after I finished “Made to Stick”, which they had highly recommended to me. I also Cc’d Driss Benzakour, who shares my interest in business books. I had fun chatting with him when he called me to catch up. Gabriel Mansour also e-mailed to say that he missed my tea parties, so we’re going to have another one on Dec 9 (Sunday). I also had webcam conversations with Clair Ching, Kendra Castillo, and my mom. I briefly got to talk to my dad, too. Oh, and I got plenty of cheers and feedback on the first chapter of my book. Yay! =)

The third key thing about this week (ah, gotta love the structure of threes) was that I learned more about the power of stories. Thanks to

  • a previous conversation with my mentor about passion for the business
  • a corporate learning program on foundational competencies that mentioned that passion for the business does not have a formal curriculum or training materials
  • a comment I posted on an internal article about social computing, sharing how people’s blog stories helped me fall in love with the company, and
  • two books, “Made to Stick” and “Elements of Persuasion”,

I saw how the stories people told through their blogs helped me discover deep and wonderful things about the company I’ve joined, and how my blog can help me practice storytelling. I’ll try to tell more stories, and I hope to practice some of the things I’ve learned from the books I read. =)

My goals for next week are:

  • Talk to other people about the experience of being new to a business, and write up the advice they give
  • Set up the team space for my second client engagement
  • Write Facebook tips for middle-school girls and help with other initiatives around the company, and
  • Cook a nice, hearty soup. =)

On Technorati:

Random Emacs symbol: bbdb/gnus-split-nomatch-function – Variable: *This function will be called after searching the BBDB if no place to

Keeping in touch

Today was a day for catching up with old friends. I spent an hour
catching up with Clair Ching over the webcam
this morning, and another hour with
Kendra Castillo in the
evening. It was good to talk to them again. Many of the things we’ve
gone through or are going through are surprisingly similar. =)

Random Emacs symbol: gnus-group-make-help-group – Command: Create the Gnus documentation group.

okay, so what’s involved in this trapeze thing?

i like watching the other students. i would like to be able to do the
kinds of stuff they do, someday. or at least simple things that look
elegant. and i want to develop upper-body and core strength,
coordination, and a terrific story. ;)

so, what do i need?

gah. all of the above.

maybe i’ll go to trapeze once a week and spend two to three times a
week working on core and strength. the jungle gym near the house will
help me develop calluses, at least until it freezes over. i need to do
more crunches and pushups, too, until i can eventually graduate to

we have a plan.

Random Emacs symbol: custom-initialize-safe-set – Function: Like `custom-initialize-set’, but catches errors.

Can’t type

my palms are wide awake and revolting. just came back from trapeze
lessons. lots of fun. have a long way to go. good teacher—very
supportive. odd that i like this more than krav. good practice in
facing terror and working through it. looking forward to developing
calluses. skin shiny.

kudos to w- for coming with me to help me feel safe, and to j- for
giving it a shot.

next week, work on calluses.

Random Emacs symbol: compilation-setup – Function: Prepare the buffer for the compilation parsing commands to work.

Switched to PCFinancial for savings

I sent a void check to PCFinancial to set up a link between
PCFinancial and TD. I followed up on the phone today, and the link was
created. Now I can transfer funds between my PCFinancial accounts and
my TD checking account.

This means I can move all the money I formerly had in my TD savings
account into my PCFinancial savings account without dealing with
checks. I don’t mind a hold on funds if they’re going straight into my
savings account. I can also transfer funds from PCFinancial to TD in
order to pay off my credit card without having to go to the bank and
deposit a check myself.

I need to follow up with PC in six months to get shorter holds on my
deposits, which I could have set up last year if I thought about it.

Slowly figuring this out. It doesn’t hurt that PC upped its savings
rate to 4.25%. =)

Random Emacs symbol: gnus-summary-low-ticked – Face: Face used for low interest ticked articles.

Emacs and Google Calendar; writing for a moving target

While searching for Emacs calendar sync, I came across Bill Clementson’s post on Emacs and Google Calendars. He showed how to use the Emacs Client for Google Services to add items to the Google calendar and to the local diary file at the same time. I might look into that.

The WickedCoolEmacs book may take a little more work than expected. I
want to include not only what’s already out there, but what logically
makes sense to include—and that might take some hacking on my part as
well. With a little over a year to go before my deadline, I’m sure
that Emacs will also move quite a bit. I think the best thing to do is
to divide my outline into:

  • Built-in packages that I have personal experience with
  • External packages I have personal experience with
  • Built-in packages I need to learn about
  • External packages I need to learn about
  • Built-in packages I need to tinker with
  • External packages I need to tinker with
  • Stuff I have to write from scratch

If I can get all the low-hanging fruit during my first pass, then I
can go back and re-edit the chapters to include more.

Random Emacs symbol: ebnf-print-directory – Command: Generate and print a PostScript syntactic chart image of DIRECTORY.


Now that I’ve taken a closer look at it, I can see that planner-appt’s
much cooler than the little hacks I’d been using to keep track of my
schedule. I’m still not sure if I need a separate schedule section,
because I’ve gotten used to managing my appointments in my task list.
It’s nice to know that the option is there, though, and I like how
color-coding makes it easy to see which appointments are past and
which ones are coming up.

Here’s my config for planner-appt.el:

;;;_+ Appointments
(require 'planner-appt)
(setq planner-appt-update-appts-on-save-flag t)
(setq planner-appt-sort-schedule-on-update-flag t)
(setq planner-appt-schedule-cyclic-behavior 'future)
(setq planner-appt-task-use-appointments-section-flag t)

I wonder how I can go about exporting my appointments… <muse>

Random Emacs symbol: x-uses-old-gtk-dialog – Function: Return t if the old Gtk+ file selection dialog is used.

Can’t help but teach

Learning about learning was how I found out that attitude can make
such a difference. In particular, the research on women and
math/science education showed me how much influence attitude and
self-esteem had on girls’ decisions whether they would take university
courses involving math and science. Attitude and self-esteem, on the
other hand, could be greatly influenced by teaching practices and

I saw this clearly when I was teaching computer science to first-year
university students. Some students faced each challenge with
excitement. Others were frustrated. The more frustrated they were, the
further they fell behind. I could hear some of them slipping away.
Yes, I tried my best to reach them. I’d walk around and come up with
in-between exercises to help students gain confidence by mastering
small parts of lessons. I looked for creative ways to make concepts
concrete. My very first lesson wasn’t about writing code – it was
about cooking spaghetti! (We got a lot out of that!) I kept looking
for opportunities for positive reinforcement and I helped people keep
moving forward by focusing on what they can learn in order to do

It didn’t always work, and when it didn’t work, the self-doubt in
their voices and on their faces almost physically hurt. It wasn’t
because I was disappointed that not all of them fell in love with
computers. Even if some of them were probably better-suited to another
field, I wanted to leave them with a good feeling about their
problem-solving skills—and halfway-decent problem-solving skills as
well, of course.

But yes, attitude. That feeling of “Yes, I can do this.” Or even just,
“Yes, I’ll be able to figure it out.” Or at the very least, “This
might not be my thing, but I’m okay.”

I guess that’s why, when I hear frustration possibly turning into
self-doubt, I feel an irresistable urge to teach, to try different
approaches. A little frustration isn’t a bad thing. I’ve learned a lot
by wrestling with problems. But when it threatens to go from “I’m
having a hard time solving this,” to “I can’t get the hang of this,”
to “I suck,” I find myself up and out of my chair before I know it.

Is this a good thing? I don’t know. This compulsion of mine regularly
drove me to doubt my own skills when I was teaching. After class, I
could often be found huddled under my desk munching on an emergency
stash of chocolate. But I’m glad I cared, and I’m glad that I still
do. I’m glad that this caring forces me to be creative, to get out
there and learn how to do things well, to think on my feet.

And here, now, even if I’m “teaching” a class of one, even if I don’t
really have to teach… I can’t help it. I’m addicted to that aha!.
All teachers know what I’m talking about—that moment that makes
everything worth it, that reason why you keep pushing yourself
forward. =)

Random Emacs symbol: bbdb-pop-up-display-layout – Variable: *The default display layout pop-up BBDB buffers, i.e. mail, news.

Plywood boxes

By default, objects created in Second Life are plywood boxes. I’m not
really interested in learning how to making these cubes look like
anything in particular. I’m just interested in making them do cool
things. Someone else can put time and effort into making a replica of
a real-world object or a fantastic new device… I’m just here to play
around with programs. =)

Stephen Perelgut wanted a structured interviewer that collected data
in-world instead of requiring people to fill out a notecard or leave
Second Life and fill out a web-based form. So today, I built an
interview-bot which asks a series of questions and stores the answers.
Avatars can click on the bot to start, and can resume this
“conversation” at any time. Chatting on a separate channel means that
answers are reasonably private. The data is stored in the object and
can only be retrieved by the object’s owner.

In order to build this, I learned a little bit about how to work
around Second Life’s data limitations. You see, the Linden Scripting
Language doesn’t have multidimensional arrays. Fortunately,
LSLwiki.net has a library for accessing multidimensional arrays by
packing and unpacking lists of lists, encoded as strings. The library
is kludgey, but as long as my code looks relatively neat, everything’s

Future versions of this interview-bot will allow avatars to review,
change, and submit their answers through the Web or through e-mail. I
also hope to make it easy for owners to customize the list of
questions. A notecard would do nicely for setup. I can also make it
easy for owners to get a notecard of results.

It was fun programming the scripted object, and even more fun chatting
with the other IBMers. I met a number of interesting people today
thanks to awesome connectors like Andy Piper and Stephen Perelgut.
I can’t wait to build other interesting things in Second Life!

On Technorati: ,

Random Emacs symbol: planner-read-non-date-page – Function: Prompt for a page name that does not match `planner-date-regexp’.

Flew a kite today

We enjoyed a long weekend because of Canada Day, so we had enough
leisure time to make a kite out of bamboo sticks and plastic. We had a
hard time flying it in the chaotic breeze, but it was good fun anyway.
I also practiced on the devilsticks. I’ll get the hang of it yet.

Random Emacs symbol: muse-xml-charset-default – Variable: The default Xml XML charset to use if no translation is

Why do people cry at airports?

Why do people cry at airports? I don’t know, but I know that something
tore up inside me as I pushed Quinn towards Security, half-jokingly
telling her to go before I started crying. I hadn’t meant to cry. I
was trying very hard not to. But as I saw her walk past the clouded
security wall, I missed suddenly, fiercely, the friend I had gotten to
know this past year – and the me I had gotten to know this past year.

Silly me, I told myself as I wiped my tears. It’s not as if she’s
dying. She’s going back home to Vancouver. It’s only the other side of
the country. We’ll keep in touch through hand-written letters and
Facebook pings. It’s not as if she’s gone. And we’d had weeks and then
days and then hours to get accustomed to the idea of goodbye. Silly
me, I told myself, as I kept trying to blink away the blurriness.

When she reads this, I’m sure that she’ll tell me to allow myself to
be sad. It was never something we shied from. Sadness was always
something to reflect on that would tell us more about ourselves and
the world around us. She was someone with whom to turn issues over as
if examining rough stones to see the light and shadow, someone with
whom to gradually polish these experiences into rounded fragments of
insight, someone with whom I could more fully understand that the
inevitable goodbyes make the time we have all the more precious.

And our adventures! All those unwritten and indescribable moments! I
remember a greeting card that read, “We’ll be friends forever. You
know too much.” Yep, that would be us.

Thinking of those moments, I cried on my way back to Kipling Station.
I let myself grieve for the loss of immediacy. It will be a long time
before we can call each other up for a quick dinner or catch an show.
It will be a long time before I can try to massage the knots out of
her tense shoulders after one of those days at work. It will be a long
time indeed.

As I write, I feel myself tearing up again—for this sudden distance
between now and when she reads this.

But just as earlier I found myself smiling through the cooling tears,
I find myself smiling now. How lucky I am to have met such a wonderful
friend through such a chance meeting. Of all the people in the
city—of all the days we could have volunteered—and of all the little
quirks in our past—how amazing that we met. How wonderful it was to
share this time with her.

She should be landing in Vancouver soon, and she’ll pick up the life
she suspended there. New challenges wait for both of us, and we have
friends and work enough to keep both of us busy. But I’ll miss her
anyway, and I’m glad I met her that Friday not so long ago.

(And what retrospective would be complete without blog references?)

So long, and thanks for all the fish!

Random Emacs symbol: calendar-forward-week – Command: Move the cursor forward ARG weeks.

Books, books, books

I checked out an armload of books from the Toronto Public Library
today, indulging in a little fiction (ah, Regency romances with their
ever-so-proper heroines!), growing my mind with business books,
enriching my soul with reflections on life.

Hmm. I’m starting to strongly feel the need for a bookshelf. Actually,
le’s start with a shelf that can double as a work surface or food
serving surface, at most 162 cm long, 59 cm wide, and 90 cm tall.
Preferably a bit lower, because I find that lower counters are easier
for me to cut on. Also, I would like an adjustable shelf so that I can
use it to store books, games, and serving stuff.

Books would be nice to keep around. Then I can add a new note to my
tea parties. People who feel the need to drop out of the conversation
temporarily in order to recharge can read books without any social
stigma… ;) Because my place is so small, they can’t actually get
isolated from the conversation. They’ll still hear everything that’s
going on, and they can jump in any time they want to rejoin the

But yes, books and a book case for this book-nutcase… =)

At the Hong Kong International Airport

I’m at the HKIA. I’ve snagged a sleep pillow from one of the airport
shops. I couldn’t find a buckwheat lavender-scented sleeping pillow,
but I guess that was pushing my luck. ;) I ended up choosing between a
Samsonite dual-cushion pillow and a standard-looking Korjo one. The
Korjo pillow won because I had *just* enough Hong Kong dollars to buy
it and I didn’t feel like converting money. This should make the
return trip easier.

So, what’s the plan?

I’m not going to get really good sleep. So much for my pimples. I’ve
broken out into pimples because I’ve been drinking too little water
over the past few days, but I plan to schedule an appointment with the
dermatologist as soon as I can. I tend to break out badly during
periods of high stress, low water, and little sleep… which is just
about every long trip! Ah well. =)

There are a few movies I wouldn’t mind catching. Marcelle will be
happy to know that The Prestige is available, and I’m definitely going
to catch that. I need to plan so that I don’t have jetlag, though, as
I have quite a full weekend ahead.

I’m going to land in Toronto at 8:50 PM, so I should be awake for
maybe 12 hours during the flight. So four hours of sleep at the
beginning, maybe a little more because of all the interruptions, and
then I’ll spend the rest of the time watching movies and writing.
And drinking plenty of water and walking around, too.

Ah, timezones…

Random Emacs symbol: gnus-article-strip-all-blank-lines – Command: Strip all blank lines.

All my bags are packed

Props to my mom for mad repacking skills which allowed us to cram even
more dried mangoes into my luggage.

Random Emacs symbol: muse-current-file – Function: Return the name of the currently visited or published file.

Ay, my dad… Fireworks!

My dad sounded *so* disappointed earlier! He trudged up the stairs and
said, “Sacha, I’m so sad…”

I looked up from my computer and asked him what was going on.

The second World PyroOlympics is coming up soon, and he had really
wanted to go and shoot it. He was so excited! He had shot it last year
(a story in its own right), and he wanted to talk his way into press
access for the event. But my dad didn’t want just any kind of press
access. He wanted to find out if he could get away with, say,
representing a horse breeders’ magazine… ;) Why? Just for the sheer
heck of it!

So he… obtained… a press pass (don’t ask how) and was about to hit
them up for access when one of the organizers recognized him, shouted
his name and called him over. It turned out that the organizers had
lost my dad’s business card, so they couldn’t get in touch with him,
but they wanted to invite him to the VIP area for the fireworks
festival. With dinner and everything!

He went home with an envelope containing an invitation for “John Chua
and Family”. Just for showing up. He didn’t even need to talk about a
fictional horse-breeder magazine. But he was *so* disappointed!
Imagine that! Preparing an outrageous setup, getting all excited about
seeing just how far he could push the universe, and the universe just
handed him the prize on a silver (or at least nice porcelain) plate!

Ay, my dad… You think I’m crazy? ;) You should meet *him!*

On Technorati:

Random Emacs symbol: minibuffer-local-map – Variable: Default keymap to use when reading from the minibuffer.

Checking my financial course

I must be doing something right if my mom’s financial advisor is
impressed by my planning. ;)

We visited Tina at the bank today. After my mom finished a little
business, I took advantage of the free financial advice. I told Tina
about the money I’d earmarked for various expenses, the emergency fund
I’d set up, and the savings I set aside. She was glad to hear that I’m
already thinking about all of these things at 23 years of age.

Tina recommended a split between a diversified balance fund and a
high-risk, high-growth equity fund. Asian equities are doing pretty
well, although the foreign currency hit and the fees for transferring
money probably mean that I should keep Canadian money in Canada for

It’s good to know that I’m on course, and to get an idea of what’s
coming up ahead. I’ll keep money in a liquid high-interest savings
account first because I don’t know how much I’ll need when I
transition into the working world. I will probably want to furnish a
place, update my wardrobe, get used to a new lifestyle, etc. I know
I’ll feel satisfied if I can cover all of my startup costs and restore
my emergency fund without taking stuff out of my investment fund.

When the dust settles, I’ll look into the investment options. My next
milestone would be three to five years out, when I decide whether to
stay in Toronto or move on. I like what my mom did with our place on
Bautista: rent the house until she decided to buy it. It seems like a
good way to get a feel for a place. We’ll see. But I should be able to
diversify into really-long-term (retirement or 10+ years), medium (3-5
years), and liquid assets.

I pay attention to stuff like this because I would hate to waste these
great opportunities through mismanagement. Besides, sorting this out
early takes less effort than dealing with the consequences of bad
planning. =) And it’s fun! I like seeing my books balance. I like
knowing that the basics are taken care of and that there’s some room
to take crazy chances and follow my intuition. I like abundance and

Random Emacs symbol: pop-tag-mark – Command: Pop back to where M-. was last invoked.

You only live once!

… and each night is as important as every other night, and each day
is as important as every other day.

I’m going to be audacious and ask IBM for what I need to do even
better on my thesis. I don’t know if it’s going to blow up. It’s hard
to finetune subtle things over e-mail. But whatever happens, I’m
better off trying the outrageous than letting things slide. If it
turns out to be a mistake – well, I’ll learn, and there are other
opportunities I can pick up. But I need this, and I deserve to do work
I can be proud of!

Random Emacs symbol: buffer-file-type – Variable: Non-nil if the visited file is a binary file.

The secret to waking up early

Woke up at 6 today. It’s getting easier and easier.

I discovered the secret to waking up early!

Sleep in the same room with someone who snores. ;) This guarantees
that you’ll be early to bed, early to rise…

Random Emacs symbol: days-between – Function: Return the number of days between DATE1 and DATE2.


Oh no! I tried using the ACM Digital Library through my
library access
earlier, and I couldn’t get full-text access. I’ve sent my research
supervisor a panicky e-mail. While he’s solving that problem, I’ll
focus on designing my research study.

Random Emacs symbol: bbdb/gnus-split-crosspost-default – Variable: *If this variable is not nil, then if the BBDB could not identify a

Learning a foreign language

Another idea for the activity matrix: learning a
foreign language. Japanese? Spanish? Maybe Spanish – I know a few
people who can practice with me.

Or maybe I should get more deeply into Ruby…

Random Emacs symbol: mouse-autoselect-window – Variable: *Non-nil means autoselect window with mouse pointer.

Tweaked blog design

I tweaked my blog design slightly, using a real-life photo instead of
my icon and taking a few things off my sidebar. I might even add
accesskeys one of these days. Who knows…

Random Emacs symbol: mail-extr-disable-voodoo – Variable: *If it is a regexp, names matching it will never be modified.

In other news…

I’m back on the wagon of tracking every expense. There’s a certain
satisfaction in knowing that every cent is accounted for. This time,
I’m using John Wiegley‘s excellent
Ledger command-line accounting
tool. It works with plain text, of course.

I’ve just figured out how to do my fancy earmarked accounting thing.
I’ve partially sorted out my cashflow, but I’m not sure how much I’m
supposed to receive over the next few months or what’ll happen when I
start working. For peace of mind, I’ve earmarked enough money to cover
tuition, rent, and food.

I want the earmarked money to be tracked separately from my real
savings so that I know how much money I can actually touch, but I want
to leave it in my regular high-interest savings account so that I can
earn interest on the whole amount. So I need two reports: one showing
what I can consider free and clear, and another that reconciles with
the account summary from the bank (includes earmarked accounts).

Here’s the transaction setting up earmarked rent:

10.28 Earmarked for rent
   [Savings:Earmarked:Rent]      $4365

and every so often, I’ll post transactions that look like this:

11.02 * PCFinancial ; Transfer for rent payment
   Assets:Savings:PCFinancial     $-485
   Assets:Checking:PCFinancial    $485
   [Assets:Savings:PCFinancial]   $485
   [Assets:Checking:PCFinancial]  $-485
   ; Automatically transfer rent money from Savings to Checking ($485)
   ; This is still part of my earmarked savings until it goes out of Checking
   ; So ledger -s -c bal shouldn't show it as part of my real checking account
   ; or my savings account, but as part of Savings:Earmarked
   ; but ledger -R -s -c bal should show an increase in checking and a decrease in savings
11.05 ! University of Toronto
   Assets:Checking:PCFinancial    $-485
   Expenses:Rent                  $485
   [Savings:Earmarked:Rent]      $-485
   [Assets:Checking:PCFinancial]  $485
   ; Now decrement my earmarked savings
   ; And make sure that Checking reflects actual balance
   ; And that savings is unchanged from before with virtual transactions

The ! signifies a pending transaction that has not yet been cleared,
while * signifies a cleared transaction. ledger can do
partially-cleared transactions too. This is pretty nifty.

Makes me want to have more to track…

On Technorati: ,

Random Emacs symbol: shell-script-mode – Command: Major mode for editing shell scripts.

Hack Night

A few days ago, I posted a matrix of
great ways to spend time.
Simon liked the idea, so last night, we held a Hack Night – a concentrated pair-programming sprint to make something cool.

We both wanted to play around with the Google Maps API. What better
way to learn how to use it than to prototype a new interface for his
voice messaging system that would allow users to select phone numbers
by drawing polygons?

I’d told him about the point-in-polygon algorithm some time ago.
(Hooray, formal computer science education!) He found a Perl program
that implemented the algorithm, and had also put up a simple
experiment using Google Maps and draggable markers.

While he wrapped up some other stuff, I brought myself up to speed by
quickly flipping through tutorials and mailing list archives. I
must’ve browsed through fifty or a hundred pages – not reading for
full comprehension, just indexing it so that I’d know what was out
there and where to find things.

Along the way, I found several resources that were just what we
needed. Several mailing list posts spoke highly of PostgreSQL’s
geometric operations, which meant that we could replace the Perl
script with a very efficient SQL operation. I also found a user
interface that was exactly like the design Simon wanted to make.

Assembling the pieces was really easy. We ripped out the code we
didn’t need and tweaked the script to do what we wanted. It was a lot
of fun pair-programming with him. I still haven’t gotten the hang of
his keyboard layout, so he did most of the typing. (The keyboard was
straightforward QWERTY, but the Powerbook layout means I hit the
function keys by mistake all the time.) I kept an eye out for little
errors and thought about what to do next. Sometimes I kicked him off
the computer in order to try something out. (When I had to hit
Ctrl-Option-Shift-S to save the file over FTP, I grinned and suggested
that Emacs would be far less RSI-inducing.)

Great results for a two-hour Hack Night. We wrapped up at midnight
because I had breakfast plans, so I couldn’t stay up too late. We
couldn’t help talking about ways to optimize it, though – using a
synthetic integer primary key to speed up joins, denormalizing the
database, etc. It was a lot of fun working on that with him, and I
look forward to other Hack Nights.

So yeah, I’m a geek’s dream. <laugh> And this Hack Night thing?
Well worth repeating. Maybe we can hack on my research prototype next…

On Technorati:

Random Emacs symbol: nobreak-space – Face: Face for displaying nobreak space.

Contact report

I started tracking e-mail sent on 2006.09.01 with a
nifty piece of Emacs Lisp code I wrote just for the
purpose. Now I have two months of interesting data which include not
only e-mail but also the occasional in-person contact or phone call
that I remember to note. It’s not complete – e-mail’s the only thing
that gets automatically tracked – but it does give me interesting
information. Here’s the contact report for your amusement:

Contact report

It’s sorted by overall frequency and then by regular frequency.
Warning! Parentheses follow.

(defun sacha/count-matches (regexp string)
  (let ((count 0)
        (start 0))
    (while (string-match regexp string start)
      (setq start (match-end 0)
            count (1+ count)))

(defun sacha/bbdb-contact-report-as-alist (&rest regexps)
  "Creates a list of (name count-regexp1 count-regexp2 count-regexp3)..."
  (setq regexps (reverse regexps))
  (delq nil
         (lambda (rec)
           (when (bbdb-record-name (car rec))
             (let ((reg regexps)
                   (notes (bbdb-record-notes (car rec)))
               (while reg
                 (setq list (cons (sacha/count-matches (car reg) notes)
                 (setq reg (cdr reg)))
               (cons (sacha/planner-bbdb-annotation-from-bbdb rec)

(defun sacha/bbdb-alist-sort-by-total (alist)
  "Sort ALIST by total contact."
  (sort alist 'sacha/bbdb-contact-sort-predicate))

(defun sacha/bbdb-contact-sort-predicate (a b)
  (and a b
       (let ((count-a (apply '+ (cdr a)))
             (count-b (apply '+ (cdr b))))
          (> count-a count-b)
          (and (= count-a count-b)
               ;; If equal, look at the subtotal of the rest
               (sacha/bbdb-contact-sort-predicate (cdr a) (cdr b)))))))

(defun sacha/bbdb-kill-contact-barchart (alist)
  "Kill a barchart with the contact report for ALIST."
    (lambda (entry)
       (car entry)
       " | "
       (mapconcat (lambda (count)
                    (if (= count 0)
                        " "
                      (make-string count ?-)))
                  (cdr entry)
                  " | ")))

;; Usage: (sacha/bbdb-kill-contact-barchart
;;         (sacha/bbdb-alist-sort-by-total
;;          (sacha/bbdb-contact-report-as-alist "2006.09" "2006.10")))
;; Then yank (paste) this into another buffer

On Technorati: , , , ,

Random Emacs symbol: standard-display-cyrillic-translit – Command: Display a cyrillic buffer using a transliteration.

Microsoft evangelism – tempting!

I had hot chocolate and a terrific conversation with
John Oxley, director of community evangelism at
Microsoft Canada. He told me about Microsoft evangelists. It seems
like such a terrific fit! And the phrases he used – finding heroes,
telling stories – resonate with what I want to do. I’m looking forward
to exploring that opportunity. Perhaps we can co-adapt. I’d love to
work on skills that they’d find useful, and they can adapt the job
description to take advantage of my background and interests.

I was glad to hear that they’re coming around to seeing people as
people instead of just as consumers. ;) I love how companies are
gaining faces. They may have lost Robert Scoble, but they’ve learned
the importance of having human connections! John said that they’re
moving more towards thinking of relationships, which is one of the
things I’ve gotten really interested in.

In the course of the chat, John asked me what languages I program in.
I rattled off a few – Emacs Lisp leading the list, of course. He had
seen my resume online, so he knew that practically all of my
experience was with free and open source software. I told him that was
because open source was how I could work on things that mattered, even
as an undergraduate in a Third World country. I loved learning from
other people’s code, and I still do. Microsoft won’t—can’t!—make me
spread fear, uncertainty and doubt about open source. =)

What about IBM? If I can do Enterprise 2.0 evangelism, then it would
be tremendously exciting to get in on the ground floor and help shape
the technology. I’ve gotten to meet so many amazing IBMers through
blogging and social bookmarking, and that kind of a connection isn’t
just something to walk away from! I also really, really enjoy mashing
together all the Enterprise 2.0 services. =) If IBM can help me make
*just* the right career for myself, then they’ve got dibs on my brain
for taking that chance on me and giving me all these wonderful things
to play with.

IBM doesn’t quite have an evangelist track, though. I’ve been advised
to look into technical pre-sales or business analysis. If Microsoft
comes up with something that’s an even better fit for my interests and
goals, I’ll consider them. After all, they have “evangelist” as a
proper career path! =) I really want to be around lots of other people
who do what I do or want to do, and I’d love to go to conferences and
summits to meet other developers and evangelists.

John asked me what I wanted in a position. I want products and
services that I’m passionate about and people I love working with. I
want to get out there, meet people, and help them succeed by
connecting them with other people I’ve met, showing them tools they’ll
find useful, and supporting them as they figure things out. I want to
always be learning something new, always be playing around with
something cool. The more I learn, the more I can give to more people.
I want to be part of the community, and I want to help start
communities elsewhere. I want to bridge worlds. I want to tell stories
about the cool stuff other people are doing, and what people can do.

I like the picture John painted of evangelism. I’m going to do
something like that. What company I do it with depends on a number of
factors: the specifics of the career, how I feel about the company’s
solutions, the connections I have, the testimonials of other people
within the organization… I’m looking forward to sorting that out
next year! If I go with Microsoft or another company, that’s okay – I
think I’m creating enough value for IBM to make my fellowship more
than worth it, and I’m going to keep ties with them. =)

Here’s a sample job ad for the “enthusiast evangelist” position John
mentioned. This isn’t for Microsoft Canada, but it gives a good idea
of the kind of work involved.

Come join the team that is changing the way Microsoft is connecting
with influential end users as an Enthusiast Evangelist for the EMEA
(Europe, Middle East and Africa) Headquarters. Our connection with
“influential end users” lies at the center of Microsoft’s continued
long term success as a platform company.

Candidates will be young graduates coming from a technical, marketing,
media or other appropriate background and can prove to have a deep
passion for technology. Participants must have excellent English and
interpersonal communication skills.

Candidates are strategic thinkers, able to balance individual
creativity with working as a team and will have a high degree of
customer and partner focus.

We have created for you a program called MACH (Microsoft Academy for
University Hires). Of this program, the candidate will participate in
the Marketing programme which is a two-year international graduate
course that will make the graduate familiar with the marketing culture
at Microsoft.

The first year is structured academy training, and the second focuses
on career development. The programme is for participants with less
than 18 months of work experience. Though challenging, they equip the
participants with the skills and know-how required for a rewarding

Required Profile

  • Passionate about digital lifestyle and rich consumer experiences across different mediums and technologies.
  • Individuals may come from either a technical, marketing, media or other appropriate background.
  • A deep strong understanding of this end user community proven by participation in online communities and/or user groups.
  • Flexibility in regards to work schedule and travel.
  • Solid understanding of the competitive products (hardware and software) and how to differentiate Microsoft from its competitors.
  • Strong communication and negotiation skills.

Candidates are born communicators with a passion for, and solid
knowledge of the influential end users, the blogosphere and online
media and most things that are part of the Digital Lifestyle.

The candidate will need to show the potential to develop strong
leadership and program management skills as well as cross group
collaborations skill and knowledge of the field.

To be successful, this candidate will need to show pragmatism and
willingness to roll up the sleeves and get the job done!

I’d love to talk more with people in both companies doing the kind of
stuff I want to do so that I can get a better idea of what it’s like.
But yeah, exciting times…

On Technorati: ,

Random Emacs symbol: gnus-summary-catchup-and-goto-next-group – Command: Mark all articles in this group as read and select the next group.

So many resources!

Every so often, I just stop and wonder what I’ve been doing with my
time. This usually happens when I go on an academic reading spree and
I rediscover just how amazing it is that the University of Toronto has
full-text access to almost everything.

I’m *so* tempted to scale back everything as much as possible and just
pack lots and lots of information into my head. ;) I want to take
advantage of all the magazine subscriptions and the huge library just
two blocks from my residence.

I love reading!

Random Emacs symbol: gnus-summary-article-header – Macro: Return the header of article NUMBER.

43folders blogger and GTD guru Merlin Mann in Toronto tomorrow

Merlin Mann of 43Folders and uber-cool GTD/productivity lifehacking
will be in town for a podcast tomorrow (Tuesday).

I will probably not be able to go, or if I do, I’ll be cramming for
school in the background. But go and have fun!

Random Emacs symbol: auto-coding-alist-lookup – Function: Return the coding system specified by `auto-coding-alist’ for FILENAME.

Must be a better way to reserve books at the library

I’m going on another reading spree, this time on relationship

At some point in time, I will be annoyed enough to write a non-(mouse
and pageload)-intensive way to say “Request all selected books and
have them delivered to my nearest branch.”

Argh. Little inefficiencies like that annoy me. That is so getting
hacked. Probably during CASCON, even.

Random Emacs symbol: Info-edit – Command: Edit the contents of this
Info node.

Crazy Emacs: Personalized signatures with random taglines

Of course, that naturally leads to the crazy idea: “What if I can
personalize my signatures?” Knowing that Paul Lussier is an Emacs geek, I can reward him for reading all the way
to the bottom of my message… ;)

(defun sacha/gnus-personalize-signature ()
  "Personalizes signature based on BBDB signature field.
BBDB signature field should be a lambda expression.
First person with a custom signature field gets used."
  (let* ((bbdb-get-addresses-headers
          (list (assoc 'recipients bbdb-get-addresses-headers)))
         (records (bbdb-update-records
                    gnus-ignored-from-addresses 'gnus-fetch-field)
    (while (and records (not signature))
      (when (bbdb-record-getprop (car records) 'signature)
        (setq signature
              (eval (read (bbdb-record-getprop (car records)
      (setq records (cdr records)))
    (or signature t)))
(setq-default message-signature 'sacha/gnus-personalize-signature)

So then all I have to do is add the following field to his record:

      signature: (concat "Sacha Chua - Emacs geek
                 What crazy idea can I help you hack next?
                 Random Emacs symbol: "

Emacs. One crazy idea at a time. Now I can use this to select random
information, like my favorite networking books or a list of my
upcoming events…

On Technorati: , , ,

Random Emacs symbol: sort-coding-systems-predicate – Variable: If non-nil, a predicate function to sort coding systems.

Crazy idea for Emacs: Random Emacs taglines

Would anyone happen to know of a way to select a random symbol with a

Actually. Hmm.

  (apropos ".")
  (write-file "~/.taglines.random-emacs-symbols")
  (delete-matching-lines "Plist")
  (delete-matching-lines "not documented")
  (replace-regexp "\n  " " - " nil)
  (delete-non-matching-lines " - "))

Et voila! Random Emacs taglines together with the code:

(defun sacha/random-tagline (&optional file)
  "Return a random tagline and put it in the kill ring."
  (with-current-buffer (find-file-noselect (or file "~/.taglines"))
    (goto-char (random (point-max)))
    (let ((string
           (buffer-substring (line-beginning-position)
      (kill-new string)

(defadvice remember (after sacha-tagline activate)
  "Add random tagline."
  (goto-char (point-max))
  (insert "\n\nRandom Emacs symbol: "
          (sacha/random-tagline "~/.taglines.random-emacs-symbols")

On Technorati: , ,

Random Emacs symbol: eshell-remove-entries – Function: From PATH, remove all of the given FILES, perhaps interactively.

Sweet! The Peer Review: Graduate Studies and Academic Life

I opened my mailbox to find a small publication called “The Peer Review: Graduate Studies and Academic Life.” The cover advertised an article on “The Ultimate Guide to Scholarly Publishing: Editors of leading journals tell you how to make sure your research gets published *before* you hit the job market”. It continued: “Also inside: How to memorize all of your students’ names in just one class: + why some students hate new ideas (and what to do about it).” The trailer: “Grad research: The nurture of your true nature… do fish have feelings?”

I should just take a picture of it, really. ;)

I’m sold. I don’t remember signing up for this, but the first thing I thought was, “This is a terrific idea.” The second thing I thought was, “How can I help with this?” The third thing I thought was: “How can I send them warm and fuzzy thoughts for a job well done?”

So I’ve left voicemail (although the office will be closed for a few weeks), blogged this entry, and sent enthusiastic kudos to the Peer Review folks. I would totally subscribe to this in order to keep more of this content flowing, and I would love to write for it as well.

Check it out. A casual flip-through reveals both good U-of-T-specific
content as well as lots of other helpful things.

The Peer Review

Now I’m thinking: how can we syndicate this idea to lots of other
universities? I’m sure other universities have some kind of serious
grad-student-oriented bulletin…

Places to eat in New York City

Things to remember next time I’m in New York: Jim Suto highly
recommends Little Lad’s Restaurant and Cafe, which has a USD 2.99
vegan buffet special (eat-in) of homemade soups, salads, entrees, and
breads. 120 Broadway downstairs. Totally vegan – no animal products.
Way cool!

On Technorati:


Since childhood, I have had a gift for working with computers. For a
while, this seemed like the perfect fit for my life. My grade school
teachers were not surprised to find me interested in computers in high
school. My high school teachers were not surprised that I took
computer science in university. One of my university teachers told me
I’d do well in “hard” computer science and encouraged me to go for a
master’s degree, maybe even a PhD.

But I am also awakening to a gift I have with people. I want to reach
millions and millions of people over generations and generations. I
want to lift them up, inspire them, share my experiences with them.
I want to tell their stories and help make their dreams come true.
This is what I want to do with my life.

I don’t want to wait until I’ve made my money before I do good. I want
to get out there and live and love and do and write and speak and
share. I will keep my needs simple, my schedule flexible, and my
overhead low so that I can spend as much time as possible developing
myself and other people.

I belong to the world not just as a mind, but also as a heart, and I
will make a life that allows me to express both.

So, concretely, how can we make this happen?

  • I want to repay the trust the university has shown in me by finishing my master’s degree and doing well.
  • I want to set up a newsletter and topic-focused blog that inspires people and shares tips with them.
  • I want to write best-selling books. The second book will be easier than the first, so I should really just sit down, pull out material from my blog, do more research, and make this happen. Hey, maybe even before I’m 25. ;)
  • I want to be a totally awesome professional speaker. That way, I can reach *lots* of people with not only my message but with my communication style. It’s also a good reason to meet people around the world.
  • I want to set up an organization for generous connecting.
  • Lots more!

How can I make this self-supporting? I want to get as quickly as
possible to the point where I don’t have to worry about my expenses so
that I can follow these crazy ideas for free. Then I can build up my
crazy idea capital, and then we’re off!

The best way for me to do that is not to plan for retirement at 60
with a slow-and-steady savings plan, but to take advantage of my crazy
ideas, train my intuition, and get better at going from crazy idea to

If I open my mind and look for ways I can create value for other
people (like my networking business cards that list my favorite
networking books!), then I’ll probably be able to create enough value
to make the kind of life I want.

(Crazy idea! Trust in coincidence by having business cards with random
stuff on the back. Moo cards does this with Flickr photos. Why not do
that with whatever you currently want/have? I think business cards
should be short-run and current. That way, they’re more than just a
static piece of contact information, and you’ll have reasons to keep
giving people your cards and for people to keep reading yours! Maybe I
should start date-stamping my business cards… Ah, now there’s a
great idea…)

Right. That’s the ticket. I should keep a notebook of all these crazy
ideas. Probably a blog page *and* a paper notebook. Probably part of
my Moleskine. And I should go and make those crazy ideas happen, like
advertising on my laptop or tweaking my business card, etc.

I don’t mind giving the ideas away. I get terrific feedback. In fact,
if other people pick up the idea and run with it, that means I get to
train my crazy-idea sense for free!

Remember the movie Phenomenon? I want to be that guy, overflowing with
lots of ideas and improvements! I want to be someone you tell about
the cool stuff you’re working on because I’ll be enthusiastic about it
too, and I *might* just go “Hey, what do you think about trying out

Simon’s fantastic at designing systems from scratch. I’m good at
thinking about how to improve something that’s already there, finding
things to smoothen, noticing things that are missing… Come to think
of it, even my computing background points to this. Why do I love open
source development? Because I can build on what’s there! Why am I
totally addicted to Emacs? Because it indulges my crazy-idea thing!

So I want the ability to explore all these crazy ideas even when I’m
working. I have lots of options in terms of the type of job, too.

  • A high-margin job that will train me up and take advantage of what I can do well and the crazy ideas I can come up with – marketing and sales, maybe?
  • A job that develops my skills even though it requires more work and concentration, such as writing. But not for long.
  • Something that pays for my expenses without demanding any mindshare, such as waiting tables ;) (Can’t do that on my work permit, though!)

Right. Getting a better sense of what I want in life. There we go. Does that sound like a plan? Let’s make it happen. =)

On Technorati: , ,


I am also very, very lucky to have people who remind me that this
experience of great love is not yet universal. Some provide me with an
opportunity to be compassionate. Others remind me that I have been
extraordinarily lucky and loved, and that not everyone has the same
experience or awareness. Thank you for helping me grow as a person.

Reaching out and being human

Most of the time, I’m on the top of the world. People wonder where I
get the energy to be so enthusiastic and positive almost all the time.

Here’s the secret: I get that energy from other people. Being around
loving people fills me with great love, which spills over into
everything else I do and everyone else I meet. People don’t have to be
perkily happy. They just need to be real, and I’m lucky to be
surrounded by very real friends.

I get that energy from all the wonderful things around me, too. A
singing streetcar conductor. Sunlight glinting off a sign. Sentimental
letters. Crazy coincidences. My parents observed that it was very rare
for me to be disappointed or sad for more than twenty minutes or so.
What can I do? The world kicks in. =)

For longer-running, deeper-seated issues, though, sometimes I end up
returning to what threw me out of whack in the first place. Sometimes
the issue’s too big for me to deal with. When I’m running on empty,
that’s when the most amazing and wonderful thing happens: people and
the universe just infuse me with love (and, occasionally, vast
quantities of hot chocolate).

It never fails to amaze me how my moments of weakness are those which
draw me closer to other people. This is why I do not fight being sad,
do not deny it, do not hush it away or starve it of sunlight. The
other day, as Dan Howard comforted me, he said that he was glad that I
shared this with him. Before that day, I had seemed to be some
unapproachably, inhumanly happy person. Now our bond is stronger for
those tears: he knows more of me, and I know that he can know that me
and still be there.

The outpouring of warm and fuzzy thoughts from people I’d never even
met fills me with great gratitude and the determination to give even
more back to the world. My life has been too short and my work too
small for me to deserve the smallest fraction of the love I have
received, and so I am driven to be more and love more in order to
repay this tremendous debt—one of gratitude to the world. Not that I
ever can. The interest on this debt grows and grows. The principal of
it grows and grows. But it is a debt I am happy to labor under!

I am human, and these are the moments that make me love being so. I am
flawed, and as Quinn pointed out, that’s a wonderful opportunity for
others to show compassion—and for me to learn by their example.

Tim Sanders told me the story of how a reporter
once asked Albert Einstein what question he would ask if he knew he
would get an answer. Immediately—as if he had been thinking about it
for a long time—Einstein said, “Is the universe friendly?” To him I
would say: the world is not only friendly, but loving. To the world: I
love you too. I love you too. I love you too.

Waking up with wonder

I’ve figured out a great way to start my day. I love waking up to the
alarm on my cellphone, hitting the snooze button, and spending the
next five minutes slowly waking up and thinking of all the things that
make me happy and grateful to be alive. I also mentally sort through
my day and think of what I want from it.

Sometimes it takes more than one snooze button and sometimes I fall
asleep again. When I notice that I’m getting sleepier instead of more
awake, I focus on just doing the very next step: sitting up, for
example. I will graduate to doing this kind of five-minute meditation
sitting up, or maybe even over breakfast. I think it’ll be easier to
stay awake that way.

Speaking of breakfast, I need to clear out my part of the fridge and
go for more groceries…

Little joys

On the way back from Simon’s place last night, I took a streetcar with
a wonderful surprise. The streetcar driver sang out the stops in this
beautiful, beautiful voice! I was so tempted to take the car all the
way to Humber just to keep listening to him. On the way out, I told
him that I really wished I could tip on the TTC and that it was the
awesomest streetcar ride ever. I wish the other riders on the
streetcar were as appreciative. He deserved a lot of warm and fuzzy

I love it when people go above and beyond, turning even ordinary jobs
into something that brings joy to other people. I remember the
announcer for Delta Airlines at the Washington airport whose sense of
humor over the public announcement system made the four-hour delay so

Wanted: real-time calendaring for get-togethers

My social calendar tends to stay relatively full. I have to
consciously schedule breaks into it because otherwise I just pack it
with stuff. Google Calendar’s monthly view is great for keeping things
sorta organized. I’m really, really tempted to write a social app that
makes it easier to manage these get-togethers – what Filipinos call

Such an app would have a floating list of non-time-specific
activities, with people indicating interest or even availability.
People should be able to take events from that list and schedule it
onto a group calendar.

There should be *some* way I can easily manage having multiple
overlapping circles of friends. See, there’s a reason why I’d rather
blend groups!

And all of this, of course, should be available from a mobile
interface so that I can go from one event to another.

But that’s too much interface complexity, so it has to stay inside my
head. ARGH!

On Technorati: ,

A passion for social systems – clues to my next short-term step?

Each day brings an opportunity for me to reaffirm my decision that
connecting with people is important to me and that I want to learn how
to be really good at building and maintaining relationships. I’ve been
spending a fair bit of time thinking about the tools for doing so,
from my extensive customizations of the Emacs Big Brother Database
to why I like OpenBC.

Every time I use Emacs+Gnus+Planner+BBDB, LinkedIn, OpenBC or even my
little black Moleskine notebook and fountain pen, I always find little
things to improve. I’m in that zone again, and I’m having *so* much
fun. Emacs and my Moleskine are nearly infinitely hackable within the
constraints of computer and paper, respectively. As for LinkedIn and OpenBC—that *itch* is making me want to write code for someone else.

The last time I felt like this was when I was in the thick of Planner
development, working with a fantastic community of enthusiastic users
around the world. It was *amazing* being able to make all these little
differences in people’s lives. I stayed with the project until I found
myself too content, and then I turned it over to someone else because
it was something that deserved passion.

Maybe I’ve found my coding passion again, something wider in scope
than the little ways I customize my blog or my e-mail client or my
contact database.

The more I think about it, the more attractive it is. How strange that
low-key services like LinkedIn and OpenBC appeal to me more
than the big names in the industry! I have the feeling that I’ll be
able to make more of a difference there (at least for now) than in
companies like IBM, Google, or Yahoo – although those three are
certainly exciting in terms of the other cool geeks I’d get to work

… but oooh, imagine the opportunity to work directly with really
cool users? I could so totally rock. I’d *love* to be able to bring my
technical *and* social passions to the table. That feels like a good
short-term next step.

Figuring out my options…

On Technorati: , , ,

Free Software and Open Source Symposium, Toronto, Oct 26-27

Via Kelly Drahzal: there’ll be a Free Software and Open Source Symposium in Toronto from Oct 26 to 27. Admission for full-time students to the symposium is just CAD 10.00! I will so be there, if only to hang out.

The workshops look like mainly intro courses, which isn’t bad. I’d
like to see more people get into development. I wanted to get into the
workshop for educators because I want to convince everyone that open
source development really should be part of all computing students’
experience. I can get quite passionate about that! The workshop seems
to be full, though, so I may need to talk my way in.

Coming? =)

On Technorati: , , ,

Networking tips: Bring your own nametag

I bought myself a pack of inkjet/laser self-adhesive name tags, which
turned out to be a remarkably good idea. Before heading to Dave
Forde’s networking get-together last Friday, I printed out a nametag
that not only gave my name but also included an experimental tagline:
“Tech evangelist, storyteller, conversationalist, geekette”.

Dave Forde’s networking get-together was a very informal one, just a
bunch of people standing around in a pub sipping beverages while
chatting. I was the only one with a nametag – a printed nametag, at
that! – and that garnered me quite a number of compliments for my
foresight. Despite the lack of nametags, I was generally good at
keeping everyone’s names sorted in my head. Having a printed nametag
on made it easier for people to remember my name in conversation,
though. Having felt the embarrassment of forgetting someone’s name
right after an introduction too many times, I’m glad I could make
things smoother for other people by wearing a nametag.

The nametag was also handy at the second networking event I went to on
the invitation of someone I’d just met at Dave Forde’s get-together.
At that event, people wore nametags of masking tape. Again, my large
printed nametag stood out, and the keywords on it prompted

I think that bringing a prepared nametag to events is a terrific idea.
Even at events with proper nametags, preparing a nametag allows you to
pay more attention to design and to stand out from the crowd.

Clip-on nametags may be even more effective because then I don’t have
to worry about what material I’m wearing. They also allow other tricks.
I remember Richard Boardman’s nifty lifehack for
nametags. The CHI 2006 nametag holders were top-loading plastic, so he
put business cards behind his nametag. He also put business cards he
received into the nametag case. Very accessible location – no
shuffling around for a business card case.

Note to self: I should always carry masking tape and a marker to these
events. To help even more, perhaps I should always carry self-adhesive
nametags. Hmm…

Preparing a nametag was definitely a good idea. You should try it at
your next networking event!

On Technorati: ,

More Emacs goodness: Refresh your memory when you e-mail using notes from BBDB

Inspired by an e-mail-based customer relationship management system briefly described by Daniel Charles of digital ketchup at Shoeless Joe’s last Friday, I decided to hack together a system that would allow me to see the notes from my contact database (aptly named the Big Brother Database, or BBDB) when I write e-mail using the Gnus mail client in Emacs.

The first thing I needed to build, of course, was something that
removed my notes from outgoing messages. People really don’t need to
see the kinds of notes I keep on them. ;) Well, they’re fairly
innocuous notes: how we met and what they’re interested in, usually,
although sometimes I’ll have notes on people’s food preferences or
shoe sizes. I’ve recently started keeping track of the subjects of
e-mail I send them, too.

(defun sacha/gnus-remove-notes ()
  "Remove everything from --- NOTES --- to the signature."
  (goto-char (point-min))
  (when (re-search-forward "^--- NOTES ---" nil t)
    (let ((start (match-beginning 0))
          (end (and (re-search-forward "^--- END NOTES ---") (match-end 0))))
      (delete-region start end))))
(add-hook 'message-send-hook 'sacha/gnus-remove-notes)

Then it was easy to write another function that composed individual
messages to all the people currently displayed in the BBDB buffer,
adding notes to each message.

(defun sacha/gnus-send-message-to-all (subject)
  "Compose message to everyone, with notes."
  (interactive "MSubject: ")
  (let ((records bbdb-records))
    (while records
      (when (bbdb-record-net (caar records))
        (bbdb-send-mail (caar records) subject)
        (when (bbdb-record-notes (caar records))
            (insert "\n--- NOTES ---\n"
                    (bbdb-record-notes (caar records))
                    "\n--- END NOTES ---\n"))))
      (setq records (cdr records)))))

I use BBDB to display only the people I want to e-mail, then I call
M-x sacha/gnus-send-message-to-all and specify a message subject. This
creates a gazillion message buffers which I can then edit. If I feel
particularly paranoid, I can remove the notes section myself with C-c
C-z (message-kill-to-signature), but sacha/gnus-remove-notes does it
as long as it’s in message-send-hook.

This code works particularly well with these other customizations:

It supersedes More Emacs fun: Composing mail to everyone with notes.

On Technorati: , , , , ,


I heart the Toronto Public Library

I can’t believe it took me a year to get around to making the most of
the Toronto Public Library. I grew up in a country without a good
public library system and thus had no idea just how cool one could be.
Fortunately, two of my friends are avid fans of the TPL. (Hi
Dan Howard! Hi Quinn Fung!)
Quinn’s always telling me about some book or other that’s available for pick-up, and Dan told me about the trick of reserving one gazillion books.

Today I gave the web-based library catalogue a spin, and promptly requested dozens and dozens of books. I knew they’d take some time to be delivered to the branch nearest me, but I headed to the College and Spadina branch anyway as it was just a few blocks away from my residence and I wanted to raid the stacks for interesting Wednesday night reading.

It was a good thing I took my wheeled grocery bag, as I ended up
checking out far too many books. I winnowed the list down from the
stack of books I’d pulled off the shelves for browsing, but was still
sorely tempted to push the library limit of 50 (50!) books checked out
at any given time.

I’ve already finished one: Beauty Fades, Dumb is Forever, by Judy Sheindlin (of Judge Judy fame). The main thing I took away from that book is that guys aren’t built to be nurturing, and there’s nothing wrong with nurturing myself. I knew that. =) Also, the book had interesting anecdotes from the life of a no-nonsense judge. Not a bad read.

I heart the Toronto Public Library. It’s pretty up to date – lots of 2006 titles, yay! – and the web-based reservation system totally rocks. Sweet!

UPDATE: See also Bookmarklet for the Toronto Public Library

On Technorati: ,

Pampering myself

Wednesdays are for catching my breath. I spent the evening pampering

I lathered my face and wiped the suds off with a soft washcloth,
poured boiling water into a large bowl and steamed my face for ten
minutes, and then used some tissue to extract some of the oil from my
skin. (Must get ingredients for clay or strawberry mask.)

I scrubbed my feet with pumice, soaked them in a warm bath (the
cleaning bucket is *just* wide enough to accommodate my feet
crosswise!), and scrubbed them again.

For good measure, I decided to have a proper bath, too. Self-massage,
mmm. I read a book until the water cooled a bit, then I ran cold water
in to energize me.


Next week, maybe I can try adding a few cups of milk or some drops of
essential oils. A little bit of indulgence…

Meeting about courses

I met with Mark Chignell about the courses I should register for this term. He suggested signing up for all of them, attending the first few lectures, and choosing the one I like the most. I’ll have to rely on my intuition for this because the course descriptions all sound good. If I get along with the professors, I might even be able to explain my personal background and goals and get their help in figuring out which course would be best.

We’ll meet again tomorrow to flesh out my research plan.

Next action: Brainstorm a few things I can prototype. Also, take care of some paperwork.

On Technorati:


I’d love to take a business-related course to round out my education and widen my network. If I can convince the Rotman School of Management to let me take an MBA elective, that would totally rock. Alternatively, I could cross over into CS. Here’s what I’m looking at:

MGT 2019: Commercializing Technological Innovations
How *does* one value innovation, anyway?
MGT 2050: Skoll Project: The Technology/Management Interface
Directly related to my research into adoption of technological innovations. I might be able to talk my way into this. Geared towards large companies.
MGT 2017: Strategic Networks
Directly related to my interest in supporting social networking. I might be able to talk my way into this based on my research.
Marketing High Technology Products
CSC2527H The Business of Software
Sounds like a terrific course.


MGT 2019: Commercializing Technological Innovations

This course is intended to improve your ability to determine whether,
when and how to commercialize technological innovations. It will also
enhance your ability to manage your firm’s technology strategy
post-commercialization. As such, this course will be of particular
interest to students interested in technology-driven businesses and
new ventures, as well as financial analysts interested in how to
assess and value a firm’s technology-related activities and even
policymakers interested in formulating supportive technology policy.
This course is highly complementary with several other strategy
electives including Cooperative Strategy, Corporate Strategy, Game
Theory and Competitive Dynamics, Strategy in the Creative Industries,
and Technology Strategy.

Commercialization of technological innovation entails facing a host of
challenging questions including: What is the value of an innovation?
What is the right way to commercialize it – when is licensing
preferred to joint ventures or diversification? How can I understand
and anticipate technological change, and pursue strategies to take
advantage of my insight? Can technology strategy be a source of
competitive advantage?

This course will introduce you to the issues and analytical arguments
behind these questions and others, drawing on recent advances in the
literatures on competitive strategy, organization economics,
industrial organization and technology management. The theoretical
arguments developed in the course will consistently be applied through
case analysis and the course project. In addition, the course will
provide insight into current “hot” technologies, including
nanotechnology and information technology.

The overall objectives of this course are to provide you with
analytical frameworks and tools that will sharpen your ability to:

  • Recognize and evaluate commercialization opportunities;
  • Anticipate problems faced by technology-driven ventures;
  • Understand the relationship between market and organizational characteristics and the success or failure of an innovation;
  • Develop and assess an overall technology strategy.
MGT 2050: Skoll Project: The Technology/Management Interface

Technology and innovation must be actively managed. This course
focuses on the concepts, techniques and processes used to facilitate
successful technological innovations in firms. The objectives of the
class are to (1) introduce students to the multiple factors involved
in successful technological innovation in firms and (2) provide
students with opportunities to integrate and synthesize the multiple
demands and requirements faced by managers in innovative firms. This
course is a requirement for all students in the Skoll BASc/MBA
program. Other MBA students interested in technology are encouraged to
take this course.

MGT 2017: Strategic Networks

The purpose of this course is to learn how social networks affect the
organization and coordination of work, and create economic value. In
particular, we will focus on network entrepreneurs – individuals or
organizations that use social networks to discover and exploit
economic opportunities. We will begin with some recent examples of
network entrepreneurs, and then introduce the underlying network
principles, followed by a discussion of network forms of organizing.
The course will focus on the relevance of social networks for both the
formulation of strategy for new (i.e., entrepreneurial) ventures and
the implementation of strategy in existing organizations. Social
networks will be examined at the individual level (e.g., the pattern
of friendship relationships among individuals in a firm) and at the
organizational level (e.g., the pattern of strategic alliances among
firms in an industry).

Marketing High Technology Products

The rapid evolution of high-tech products and their technology offer
many new challenges to the marketer. Marketing start-ups as well as
established products, managing the introduction of upgraded or
innovative products, distribution channel selection, branding,
advertising, the use of media such as the Internet, and developing
strategies to profit from the convergence of previously diverse
technologies, are some of the topics covered.

The Computer Science department is also offering an interesting course this fall:

CSC2527H The Business of Software

The course identifies the principles for starting and operating
successful and growing software venture. Students are expected to
understand the “why” of these principles by the end of the course.
Student work is centred on building a real business plan for a
software venture with a group of other students. The intended audience
for these business plans are potential investors, including angel
investors and venture capital funds. Guest entrepreneurs and other
industry participants provide ‘real world’ perspective.


The main objectives of this course include development of:

  • An understanding of the high-technology business environment in
    general and of the computer and software industries in particular.
  • An understanding of the basic principles involved in crafting a
    small healthy growing business within the software industry
  • The ability to write, present, and critique business plans and to
    formulate basic computer-based financial forecasting models.
  • A capacity to analyze the first-person perspective of entrepreneurs
    and other industry participants.


Topics will include the definition and scope of the computer and
software industries; an analysis of the sources of innovative
opportunity; a discussion of strategy and, key trends such as open
source, outsourcing and ‘software as a service’; software market
planning and product planning; the management of R&D and software
development; software product marketing; software sales and sales
management; software support; the financing and financial management
of high technology ventures; legal protections for software as
intellectual property; and leadership, management, and human resources
for high technology industries.

The class will be enriched by the participation of guest entrepreneurs
– skilled practitioners active in the industry.

On Technorati:

On programming as a career

Raj Shekhar reminded me that software development is a career too, and that there are software companies that use exciting things like LISP.

My background is in computer science, and I spent almost all my
summers in high school training for programming competitions. I was a
geek’s geek, with algorithms and code coming out of my ears. I still
enjoy writing code to make things work. =) I’m much more comfortable
reading other people’s code and making sense of it than other people I
know – apparently, a rare thing. ;) I also enjoy writing
documentation. These two factors cause most people to doubt my
existence. What, a programmer who likes reading other people’s code
_and_ writing documentation?! Right up there with unicorns and
dragons, mate. ;)

But that’s not all of who I am, and I get the sense that’s not what
I’m best suited for.

In yesterday’s conversation about the meaning of life and other
things, Simon Rowland pointed out
that I’m more relationship-driven than technology-driven. When I
argued that I’m still a technologist at heart, he laughed and pointed
out that even my Emacs Lisp coding is motivated by contact with
people. The reason why I enjoyed working on Planner so much was
because I could make people really happy by writing code to fit their
editor and personal information manager to their particular needs. And
it wasn’t people in abstract, people in general, but rather one person
at a time, with completely idiosyncratic code that I might never

I like working with technology on a human scale. I love personalizing
things. I love working one-on-one with people. I don’t like being
abstracted away from users. I want them to be able to yell at me when
something goes wrong, and I want them to be able to express their
appreciation when things go right. I don’t want to deal with market
studies and hypothetical users. I want names and faces and stories.

I guess that’s why software development or system administration don’t
really appeal to me as careers. I know a lot of developers and sysads
who enjoy their work and are doing cool things, but their work doesn’t
strike a chord in me. I love developing skills that aren’t part of the
traditional developer profile. I love writing and public speaking, and
I want to do that as part of my day job instead of just something I do
on the side.

Some people have advised me to take a code monkey job, just for the
heck of it. Just to gain experience and give myself more time here in
North America, you know. As tempting as it is, though, my instinct?
feeling? sense? tells me that there might be a better path. If it’s at
all possible for me to follow my passion at each step, I’d rather do
that and be exceptional rather than be a mediocre programmer.

When I ask myself what I’d do if I could work without thinking about
money, what I’d do even if no one paid me to, the answer that
consistently comes up is: spend the entire day reading, learning,
teaching, writing, speaking, meeting people. I don’t see myself
building robust, featureful systems or crafting beautiful code. I see
myself drawing attention to other people’s stories, connecting
different ideas, introducing people to people and things that could
change their lives. At the end of my life, I don’t want people to
remember me for some program I wrote, but rather for the changes that
I helped them make in their lives, what I inspired them to do, who I
inspired them to be.

So yes: although I can code, a job that involves only that aspect of
me will not be able to make the most of me.

This probably disappoints some of my college teachers who’d rather I
were in “hard” computer science – cryptography, graph theory, whatever
– but that’s the way it is, and I want to explore that aspect of

How does that translate into a career? It’s not exactly the kind of
thing you’ll find advertised on Monster.com. I’ll probably spend the
rest of my master’s thinking about enterprise social computing and how
people can make the most of blogs, wikis, social bookmarking,
podcasting, and related technologies. I would like to stay in North
America for at least a few more years because I’m learning so much
from the tech culture here, so I’ll need to offer enough value to a
company to sponsor my work permit. I’d like to think that I can create
enough value to justify the paperwork. ;)

In particular, I’d probably fit in well as someone who can support
consultants and other people whose job it is to know about technology
but who are too busy to learn about all these different things. I’m
good at reading about lots of different things and looking at the
connections. I’m also good at searching for supporting information and
recommending things that might be useful. I’ve been complimented on my
ability to get people enthused about something, and that extra boost
might help people close sales. If you know any company that would be a
good fit for me and that I would be a good fit for, I’d love to hear
about it!

I’m also interested in writing, but that might be more of a
medium-term thing. =)

If I can find a best-fit opportunity, all the better. If I’m not quite
qualified to do that yet and I can’t find a company that will take a
chance on me and train me up, I’ll consider other opportunities – but
I definitely want something that engages not only my technological
skills but also my social ones. =)

(Thanks for the comment, Raj! I love being prompted to reflect more
because that makes me clarify my thoughts.)

On Technorati: , ,

Random Japanese sentence: 私は犬の方が猫より好きです。何故なら前者の方が後者より忠実ですから。 I like dogs better than cats, because the former are more faithful than the latter.


Going from pre-paid to post-paid

I want to keep in touch with enough people now that the limits on my
phone are Rather Annoying. I would like free incoming calls so that I
stop worrying about minutes and so that people feel free to call me
any time of day instead of saving it for evenings and weekends. I want
to be able to hear people’s stories and insights as they happen. I’d
also like unlimited text messaging, or at any rate more text messages
than most people here probably send all their lives. ;) I don’t really
need a lot of daytime or evening minutes.

Martin Cleaver suggested that I go for a 3-year plan without
hesitation. He said that I’d probably easily find a company here
that’s willing to sponsor me for a work permit. If I decide to work
elsewhere, the company that hires me might be persuaded to buy me out
of my plan. Even if I do end up going home after my master’s, I just
need to put aside enough money to cover the cancellation charge just
in case I don’t manage to sell my contract to someone else. It’s a
relatively small expense compared to the freedom of being able to

I don’t have a credit history, though, so that might take some more
persuading. I need to first establish a North American credit card.
I’ll try persuading President’s Choice Financial to grant me a credit
card, considering my bank account with them. If not, I’ll switch to
TD’s secured credit card, and I’ll probably switch my savings and
current account to them as well in order to facilitate payment.

Bell.ca is the only provider with an unlimited text messaging plan, I
think. It offers unlimited text messaging for $10 per month. That plus
the $25 unlimited incoming plan works out quite well. Additional
minutes are 30c (ouch!), but I have unlimited nights (9 PM onwards,
what the heck?!) and weekend minutes. Additional fees include the 6.95
system access fee and a 75c 911 fee. Unfortunately, it doesn’t seem to
offer the Treo as an option, and Bell phones tend to be, well,
Bell-specific… WAAH!

Rogers seems to be the only one offering Treo, but their plans suck.

Ooh, Fido. I can do Fido. $25 for unlimited incoming (sign up before
Aug 8), and then $5 for 100 messages or $10 for 1000 messages. 1000 is
close enough to unlimited, I think. <laugh>

Fido is GSM, so if I can find a second-hand Treo that I’d be happy
with, that would work too. I want a Treo or some other Palm-based
device because I want to be able to sync my data over from Emacs and
BBDB. The Treo’s picture-taking capabilities also sound really
tempting. It’s a rather expensive device, but if I can make it worth
it by writing – must look for more things to write for! – that would
be totally awesome. I’d love to be able to use it the way Martin

The Hiptop looks tempting, but I’ll get it only if I know it works
with Linux. I want to be able to refer to all of my notes. Otherwise,
my current phone works fine. Rumor has it that I can run Linux on the
hiptop, but I’ll only do that if I keep access to all the interesting
functionality. I want to be able to take pictures.

… Maybe I should just look for a Linux-based smartphone.

Okay. Breathe. Priorities. First things first.

The very next thing I need to do in order to make this happen is to
get myself a Canada-based credit card so that I can sign up for plans
without getting it charged back to the Philippines.

The next thing I need to do is sign up for unlimited incoming and text
messaging plans. Wireless providers usually give a substantial
discount if you choose a phone together with a plan, and there’s a
$300 discount (reducing the cost to $200) if I get the Hiptop together
with a contract. However, I might be able to get a monthly plan
without a contract, then sign a contract if I’m firmly convinced that
it’s a good phone and that I can make it work.

But the very first thing I need to do is establish credit. I can do
that on Thursday.

Random Japanese sentence: 妖精は王子を猫に変えた。 The fairy changed the prince into a cat.


I want to be able to spend my days reading, learning, and trying
things out. I want to be able to share what I’ve learned with other
people through writing and speaking. I want to be a generalist,
learning about lots of different ideas and connecting them together. I
want to be able to introduce people to each other when I find synergy,
and I want to be able to pass ideas on to people who can make the most
of them.

The careers that resonate with me the most are technology journalist,
author, and speaker.

The best things I can do today in order to advance those goals are:

Physical Swap bicycles or get a skateboard
Social Keep in touch with family and friends
Mental Read a good book
Spiritual Share the results of my reflection on happiness

Random Japanese sentence: 強盗は屋根からあの邸宅に入ったに違いない。 The cat burglar must have entered the mansion from the roof.

Life on the A-list

Somewhere along the way, I managed to end up as the hottest blogger
within IBM, with over a thousand hits. I usually hover around third or
fourth on the list of the daily top blogs. This is the first time I’ve
ended up first, and that by a margin of around three hundred hits.

Some people at IBM have been gently teasing me about my A-list status.
Stephen’s one to talk: his blog post is currently the most-commented
entry. Pranam made sure I blogged about his cool visualization and
joked about how that resulted in such a jump in his hits. Mark isn’t
quite sure if my being a top blogger internally is a good thing or a
bad thing, considering how little I’ve written for research. (Meep.)

I procrastinate by learning and writing. Now if only we could figure
out how to translate that into research or business… ;)

Life on the A-list is cool, though. Because I read pretty much
everything on the internal blogosphere anyway, I like being able to
highlight cool entries and encourage people to leave comments. I
wanted to help IBMers discover related blogs, so I added an ultracool
Flash tag discovery thingy from another IBMer who actually spent some
time fixing a few problems that came up when I tried it on my blog.
And of course I love getting to meet people through my blog and
getting feedback on my thoughts…

When I post about social computing on my internal blog, though, I’m
basically preaching to the choir. No, not even that. I end up
preaching to other evangelists. ;) I need to figure out how to extend
beyond that. I owe my sponsors tangible results. That might be a good
place to start.

What can I do to give back to IBM and do some research? Must think…

On Technorati:

Random Japanese sentence: 私は彼女におもちゃの猫を買ってあげましたが、彼女はそれに満足しませんでした。 I bought her a toy cat, but she wasn’t happy with it. Watashi wa kanojo ni omocha no neko o katte agemashita ga, kanojo wa sore ni manzoku shimasen deshita.

On the way home after a late night

I’m starving and my hands are a little bit weak. I’ve had nothing but
hot chocolate since lunch, too pressed for time to even raid the
vending machines near the cafeteria. The data I needed for my paper
only came in today, and with deadlines for both the CASCON paper and
my article on social bookmarking for the lab newspaper, today was…
well… challenging. =)

It didn’t help that I spent most of the morning puttering about the
blogosphere, welcoming people in and updating my blog. I knew I was
supposed to work on the social bookmarking article and I had bits and
pieces of what I wanted to say, but I couldn’t quite sit down and do
it. On Monday, I think I’ll get that out of the way before I even
start catching up with the blogosphere.

Yes, yes, way too much hacking. Along the way, I’d installed a few
more extensions for my browser, including one that made it easier for
me to paste some boilerplate into textareas (good for blog newbie
tutorials). I wanted to chat with other IBM student bloggers at lunch,
so I wrote a quick and dirty Ruby script that generated an OPML file
given a set of e-mail addresses so that I could import that OPML file
into my blog reader. I turned up only three bloggers, though: me,
Pranam, and Kevin. Oh well. We’ll get there eventually…

Even the fresh data I received distracted me. I couldn’t wait to slice
and dice it in interesting ways! It was a good thing that Mark
scheduled a 3:00 phone call in order to check up on me. (Yay fantastic
research supervisor!) He reminded me about the CASCON deadline, but
also reassured me that it was doable and that he was around to help. =)

David also called me up to talk about some complications in the data
set. We figured out how to deal with some missing data, and I think
the workaround we came up with was okay. Then I went back to 1panicking.
Fortunately my editor moved the deadline for my social bookmarking
article to Monday so I could concentrate on my research.

So all I had to do was code the visualizations. I felt myself
performing a bit more sluggishly than I’m comfortable with – too
little sleep, not enough food – but I slogged through it anyway.
Fortunately I knew enough Ruby to squish the data into a form I could
easily work with, and I had learned enough about the Prefuse
visualization library to add filters to the dataset, allowing me to
get snapshots of the data. Yay.

So that worked out. My timing was perfect, too. I dumped screeshots
into (gasp) a Microsoft Word document, blogged a couple of interesting
things on my internal blog, and ran to catch the bus. I waited around
five minutes for the bus – ompletely anxious, of course, as those
buses run only once an hour!

So now I’m on a bus – the second on this trip – a little bit weak – I
really should always bring emergency food in my backpack – but I’ll be

The coding was almost fun, even, playing around with Ruby for text
processing and Java for visualization…

On Technorati: ,

Random Japanese sentence: この種の猫にはしっぽがない。 The tail is absent in this type of cat.


I discovered to my chagrin this morning that the Compaq iPaq no longer
retains a charge, perhaps because its internal battery has gone kaput.
That’s what I get for leaving it dormant for almost a year. Like this
stubborn girl who occasionally just Wants to Stay in Bed, Darn It!,
the iPaq will grudgingly work if you keep it supplied with power, and
it’ll go back to sleep immediately after.

In retrospect, I should’ve paid more attention to the flashing orange
LED as I copied my (very few) phone contacts into the PDA using
Bluetooth. =) I had too much fun categorizing contacts and thinking
how cool it would be to be able to broadcast a text message to, say,
all of the Graduate House people for an impromptu barbecue, or give
you a filtered list of all the people I know who are into both AJAX
and Ruby, etc. I rather enjoyed filling in my calendar for the next
few weeks. I even played around with transferring some of the images
from my phone to the PDA, where I could view them with Internet

Oh well. =)

The good thing about that, though, is that it’s made me realize that
the commute is not really hopeless, and that my Fujitsu Lifebook P1110
laptop is more portable than I give it credit for. I can usually snag
a seat on the train, even during rush hour, and my laptop’s small
enough that it can fit on my lap without requiring any elbow space.
Glare is not a big problem. Even if it were, I could just switch to
speech synthesis and use headphones. (See, I _knew_ there was a reason
why I was into wearable computing in college!)

I don’t mind batching my mail and my blog entries. I’ve gotten quite
used to it, and it gives me time to think (and cancel stuff!). I also
don’t really mind looking phone numbers up on my laptop and keying
them into my phone to dial. I don’t do that too often, anyway. Most of
the time, I get in touch with people through e-mail.

One of the coolest things about my computer, though, is that it can
start conversations. I don’t think the Fujitsu Lifebook P1110 is sold
here, which is probably why it always draws comments. It’s cute! It’s
small! It’s different! (Take _that_, all you “Think Different” Mac
geeks! ;) ) Sure, it’s scuffed and held together with masking tape
(had some complications during open-heart disk-replacement surgery),
but that just gives the computer more character.

Besides, people smile when they see the sticker reading, “The geek
shall inherit the earth.” I think I need aother sticker reading
“emacs” just to drive home the point. I hope that means vi geeks will
still talk to me, though. ;) What I need, really, is something that’ll
allow me to indicate my changing interests. A tagcloud. An updateable
tagcloud, preferably. Not that I have much back-of-laptop real estate
left. There, I’ve made Stowe’s sticker
vertical instead of horizontal, which will give me more sticker space
to play with. Maybe I should add sticker paper so that peeling off and
resticking stickers is easier, or maybe I should just let stickers
accrete in layers to give people a better reflection of reality…

Oooh! Magnetic poetry for laptops using stickers and sticker paper!
That might be fun to try out. Or maybe I could add a little plastic
sleeve and have a “Thought for the Day” index card / Post-it. It would
be nice to have an index card holder for this, anyway. That sound like
a job for duct tape…

Battery life’s holding up, too. The commute is an hour and a half
long, which fits quite well. I might want to get a new extended
battery so that I can go back to advertised battery life (my current
one drains in 2 hours or so instead of the 8-10 promised, waah!), but that’s
not a particularly high priority right now because the cafe I most
like to work in is clueful enough to not only allow geeks to plug in,
but also to provide power bars so that we don’t have to fight over
outlets. ;)

A better battery would be handy for conferences, though, as I take
_way_ too many notes. It’s fun!

You know what would be really, really cool? A wireless chording
one-handed keyboard – like the Twiddler, but Bluetooth, but not one of
those homebrew Bluetooth hacks that might fall apart in my backpack.
Or a wireless mouse/remote so that I could control ebooks while my
laptop is in my backpack. I had this totally sweet deal going with my
Twiddler before, because I could just leave my laptop in my backpack
and control the speech synthesis output from outside.

I should try out the Vaio again to see if that’ll be a bit more
portable. That one was designed to be used while walking around, so it
might be an interesting experience.

Okay, I should stop writing about gadgets… <laugh> I don’t
have a pressing need for anything extra at the moment, and I’m still
learning to make the most of what I have. =)

On Technorati: ,

Random Japanese sentence: テーブルに猫の足跡が付いている。 There are footprints of a cat on the table.

Social Tech Brewing

Last night’s Social Tech Brewing social was lots of fun.
(Notice how lazy I getabout linking? ;) )

  • Phillip Smith arrived shortly after I did. He told me about CopyCamp, a copyright and art get-together on September 28, 29, 30. All sorts of luminaries! Lawrence Lessig, Cory Doctorow, Michael Geist… Awesome lineup. I totally have to be there and blog it.
  • Jason Doucette came next. Phillip asked him if he was into podcasting, and it turned out that Jason podcasts for the Toronto Vegetarian Association, which is at 17 Baldwin St. I should take a look at that. Phillip is vegetarian, and I’m a semi-vegetarian-wannabe. (I want to learn how to cook vegetarian food!) TVA’s attendance has been dropping off, but their podcasts attract attention from people from other cities. Their podcasts are generally 20 minutes long.
  • Phillip Smith knows about a progressive podcast host / aggregator which might be interested in the vegetarian podcasts. Other interesting links: http://veganlunchbox.blogspot.com , http://www.veganporn.com ,
  • Liam O’Doherty of avoid.net came too. He mentioned the Personal Propaganda Kit (T-shirts, stickers, etc) tie-in with avoid.net. He’s partnering up with OCAD people to produce that, I think.
  • Phillip recommended a few books: Ingenuity Gap, The Upside of Down.
  • We also chatted about ideas for a Toronto wiki, something to collect information about Toronto. Interestingly, Rob Hyndman owns the domain. Good model – Davis wiki. (Hey, Himy would be a great fit for a project like that. He’d fill it with so many interesting stories!)
  • Colin McGregor mentioned a group called Serial Diners. They’re making their way through a phonebook of restaurants, and currently at K.
  • Judy Chicago is with Women’s Space.
  • Gabe Sawhney’s into the memory project and T.Ode.
  • Jonathan found Social Tech Brewing through upcoming.org, as did Jason and Gabriel. So did I, for that matter.
  • Introductions: Tempted to have “Hello, my URL is…” nametags. Reprogrammable nametags also sound interesting, as suggested by Colin.
  • Jonathan’s involved with Habitat for Humanity, which is somewhat interested in moving to open source.
  • Introductions protocol idea: three words / tagline, name. Putting the description before the name makes it easier for people to hear interesting things and pay extra attention.
  • Social Tech Brewing modeled on501c tech clubs, nonprofits.
  • New network: Mobile Mondays.
  • Jane attended DrupalCamp and is with DigitalEve, which is based in Lawrence West
  • Chatted about Linux Caffe and social spaces. Seattle has free wireless in cafes, even to the point of having tables for two with outlets. People addicted. Some cafes turn off internet during weekends…
  • Net neutrality
  • Gabe mentioned that Dory of Wireless Toronto and a few other people are working on “Turn off the internet day”.
  • Jonathan’s into $100 laptop, too. Pays attention to news.
  • Chatted about gender segregation in bars, funny anecdote from Judy: “Don’t be scared.”
  • Phillip described freegeek, an open non-profit computer part reclamation thing that’s now self-funding. Break computers apart into components for melting into gold, assemble computers from working parts, keep one.
  • Toronto Hydro goings-on


On Technorati:

Random Japanese sentence: 私は犬の方が猫より好きです。なぜなら、前者の方が後者より忠実ですから。 I like dogs better than cats, because the former are more faithful than the latter.

It’s alive! Reviving my iPaq

I’ve decided to experiment with carrying an electronic device around
again. Several people have reported seeing Moleskines coexist with
PDAs, so I want to see if the two will play nicely together for me. ;)
This is a Compaq-era iPaq (but not the research lab iPaq they sent me
before; I miss that). Nostalgia alert!

I am once again impressed by Microsoft Transcriber, which understands
my script/chickenscratches. Totally awesome.

I might use this to keep track of my calendar. If I can figure out how
to get data out of it easily with my Linux laptop, then I might be
able to use it to compose blog entries. At the very least, I can use
it to read ebooks. Oh, and maybe I should grab a CF, reflash the Ipaq
with Linux, and put Ruby and Python on the thing… And… >laugh>

(Hey, you know, this would be perfect as a ping-tracker!)

On Technorati: , ,

Random Japanese sentence: その猫は私のそばで寝るのが好きだ。 The cat likes to sleep beside me.

Tagging blog posts

At some point I really should write my own tag indexing thing. =) That
way, it’ll be easy to find out, say, all of the stuff tagged

Random Japanese sentence: かれの時ならぬ発言は秘密をもらしたばかりでなく、平和運動の計画をも、くつがえしてしまった。 His untimely statement has not only let the cat out of the bag but also upset the apple cart for the peace move.

Blackberry goodness

Sandy read my post on networking and saw my note about Blackberry, that addictive little e-mail-anywhere device. I keep itching to connect with people or otherwise _do_ something during the downtime when I walk from place to place or while I’m waiting in line. Sales people swear by their Blackberries because they’re hardly ever
at a desk. (Ooh, let me go ping one of the people I know in sales to
ask if he’s on a Blackberry…)

When I think of it, though, I don’t actually spend that much time away
from the internet, just the time in transit. I sometimes bring my
laptop out and type e-mail anyway, although it’s not quite as
convenient. I guess that’s one of the reasons why I occasionally
daydream about having a Blackberry or a similar portable device.

Is that really the right step for me, though?

Maybe I should be spending that time soaking up the scenery and
working on becoming comfortable enough to strike up conversations with
random strangers. Mike Fletcher told me about one of his friends who
carries around a bag of gifts and just gives stuff to random
strangers, meeting tons of awesome people along the way.

Maybe I should look up and connect with people. It’s going to be
tough, but Toronto’s a pretty safe place to do this. I won’t have to
worry too much about giving people the wrong impression, I hope.

I’ll just have to be better at managing my time and pinging people
more often so that I can keep in touch. =)

I’ll put aside time this weekend to ping maybe one of the evangelists
you wonderful, wonderful readers (friends!) have suggested and ask how
he or she keeps in touch with people. If I talk to lots of evangelists
and they love the Blackberry, then I’ll either make room for it in my
budget or figure out how I can earn extra to make it cost-effective…

On Technorati: ,

Random Japanese sentence: 悲しいことに私の猫はどこかへいってしまった。 To my sorrow, my cat has gone somewhere.

Ubuntu: kid-tested, mother-approved

Dominique had a very interesting conversation with his mom. Turns out she prefers Ubuntu over Slax. =)

Parents are cool. =)

Random Japanese sentence: じらさないで、そのニュースを私に聞かせてくださいよ。 Stop playing cat and mouse with me and tell me the news.


Anthony and I went to a Korean restaurant. We had slices of beef
cooked at the table. It was a great dinner. We had a lot of fun
chatting about Japan and other places. I’m really glad that my parents
took us on trips and that I had all these opportunities to travel.
Those stories make it much easier for me to connect with people. =)

I can explain my research to other academics easily. All I have to do
is talk about collaborative bibliographies and they immediately
understand why social computing is just _so_ cool. Talking about my
research made me understand it a bit more, too.

At coffee time, I ended up talking about Toastmasters with Brian, the
pilot taking up biblical archaeology. Yeow Tong, Brian and I chatted
about teaching, presentations, and other things about academic life.

I’ve figured something out. If I’m going to eat out, I might as well
eat out somewhere nice, having something I can’t easily prepare
myself. It doesn’t have to be extravagant, but a little bit of
atmosphere and style would be good. Dinner today was much more of an
experience than grabbing pizza somewhere. =)

That said, I’m still looking forward to learning how to prepare
fancier meals…

On Technorati: ,

Random Japanese sentence: テーブルに猫の足跡が付いている。 There are footprints of a cat on the table.

In the thick of things

Come to think of it, my social life really is very different from,
say, what I’d gotten used to in high school. I used to be part of one
or two clearly identifiable groups, but now I’m a part of all these
different groups and dyads. I’m a lot better at introducing myself
based on something completely random, too.

And yes, I’ve actually said that talking to people is fun. I love
establishing some kind of common ground with people, appreciating
their differences and the insight I gain from their perspective. I
look forward to cooking for friends, meeting people for lunch or
dinner, running into random strangers in the piano room, and chatting
with people over billiards or table tennis. I also love keeping in
touch with my friends and family back home. I miss them, too! =)

As long as I don’t forget to pay attention to my own life, it should
be fine. <laugh>

On Technorati:

Random Japanese sentence: この種の猫にはしっぽがない。 The tail is absent in this type of cat. Kono shu no neko wa ni wa shippo ga nai.

Brian’s birthday party

That was tons of fun, and very much worth it. =) I blocked off all
evening starting from 4:30 for Brian’s birthday party, and I really
enjoyed hanging out with him and his other friends.

We ate at a fancy steakhouse. I didn’t go for a full steak, opting
instead for a delicious chicken dish that made a light dinner. (Wise
choice, as I’d been eating all afternoon!) After dinner, we had
another party in Brian’s suite. We played Apples to Apples, a
hilarious party game of strange comparisons. I got to meet a few new
people, too. I took plenty of pictures which I promise I’ll edit and
upload by Wednesday, after my next major requirement is done.

Spending $20 on a single dinner is quite odd for me because I
sometimes think in terms of my starving-grad-student budget, but I
felt it was very much worth it. They’re a great bunch of people. If
it’s all right with my parents, I try to think of it as making the
most of the opportunities I have here to get to know people well. I
feel somewhat guilty about the fact that I’m not scrimping and trying
to stick to a strict budget. I hope it’s like taking the first circus.
I won’t be extravagant – eating out all the time or buying expensive
things – but I _do_ like the company of friends, and I’ll spend for
that and for experiences. =)

A lot of fun was had by all, and a lot of good conversation too.

On Technorati:

Random Japanese sentence: 私はこの猫の世話をしなければならない。 I have to look after this cat. Watashi wa kono neko no sewa o shinakereba naranai.

Backlog – 2006.04.01: Breakfast: Bacon and eggs

Steve deserved a break from all the hospital food, so I decided to
cook him breakfast. It always takes him a while to get up, so I walked
to Dominion and bought bacon and eggs. Trent let me into their suite
and showed me where to get all the things I needed. I discovered the
joys of having a proper crepe pan. =)

I fried bacon, prepared eggs, and toasted bread. Steve was touched
that I had prepared both sunny-side-up and scrambled eggs for him, and
kept praising my cooking. We had chai latte (well, just milk for me)
with Trent and Keri. Apparently, Trent’s quite the chai latte master.

It was fun chatting with Trent and Keri as well, although some aspects
of that were just a little bit odd, like that singing in the shower
thing… <laugh> It was good having breakfast with friends,
though – it gave me something for which I should wake up early. Might
do it again sometime. Heck, might even do it tomorrow…

On Technorati: , ,

Random Japanese sentence: テーブルに猫の足跡が付いている。 There are footprints of a cat on the table. Teiboru ni neko no sokuseki tsuite iru.

Income tax info

From the Graduate Students Union digest:

Your T2202A (the tuition fee receipt from U of T) is not
mailed out – you must download the receipt from ROSI. If you deferred
your Sept.- Dec. 2005 tuition, it will not appear on your T2202A but
you can still claim it on your 2005 tax return. You can get a revised
T2202A once you pay your tuition – call Student Accounts, 416-978-2142
for info about how to get a revised T2202A if needed. International
students: check the International Student Centre’s website for
specific income tax information –
http://www.isc.utoronto.ca/iscservices/taxsession.htm. You can file
your income tax, on-line, for free – this is a service of the Canadian
Federation of Students. For information: http://ufile.ca/home/cfs.asp

E-Mail from Cezary Niewiadomski

Working with LEGO

Thanks to Calum Tsang, I’ve been able to play around with the LEGO
Mindstorms robotics kit without actually having to mess around with
anything that requires spatial visualization. I’ve never really gotten
the hang of getting gears and whatnot to work together. Fortunately,
Calum is absolutely brilliant when it comes to that sort of stuff, so
all I really need to worry about is just making sure that I produce
the right output given the input.

LEGO presents quite a challenge. We use Not Quite C (nqc) to program
the robot, and it _really_ is not quite C. I’ve run into the parser’s
limitations a gazillion times, from wondering why on earth some of the
binary operators don’t accept variables to wishing I could define a
function that returns a value instead of having to pass everything
around in global variables. It’s fun working within those constraints,

Debugging is a mission, too. No println debugging here! Numbers and
beeps are all I have, and the compile-download-run cycle can be a bit
slow. We’re still having problems with the infrared communication
between two of the control modules, but Calum thinks it’s because I’m
flooding the communication buffer. We’ll try twiddling that on Friday
to see if we can get it to work before the competition on Saturday.

Maybe he can teach me how to put together some of the really simple
assemblies – the bumper, perhaps? I’m completely pfft when it comes to
spatial things, but that could be a way for me to ease into it. Just
as Kathy’s circus stuff helped me learn coordination and rhythm, maybe
LEGO can help me learn how to hold spatial structures in my head. In
the meantime, I actually enjoy working within the constraints of the

It’s also a refreshing break from the kind of programming work I
normally like doing. As Calum pointed out earlier, I’m one of the
near-mythical programmers who actually prefers maintaining other
people’s code and (gasp) writing a little documentation here and
there. For these little LEGO contests, all I need to do is hack
together some code that will be thrown away afterwards. It feels more
like a logic puzzle than a proper program. I don’t have the feeling of
working on something that makes someone’s life easier and better, but
I do feel that it exercises my brain and keeps me limber.

So, yeah. LEGO is fun. =)

On Technorati: