2009

January 2009

Happiness and cats

January 1, 2009 - Categories: cat

Tania Samsonova sent me a link to this geeky-and-oh-so-true comic: Schrödinger’s (emotional) Miscalculation – Part 3.

Tania, you rock! =D

Homebody

January 1, 2009 - Categories: sketches

Homebody

Fun with friends is fine and dandy; chefs and waiters, pretty handy;
But it’s clear in every case that home remains the bestest place.

Sleeping Cats

January 2, 2009 - Categories: cat

sleepingcat

Being a geek means you can let sleeping cats lie.

Thanks to W- for being so awesome!

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

January 2, 2009 - Categories: barcamp, connecting

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:

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

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!

Craftsmanship

January 2, 2009 - Categories: learning, life

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?

Ideas for becoming a better networker

January 3, 2009 - Categories: connecting

Ideas for improving my website

January 3, 2009 - Categories: idea
  1. Add a section about my speaking topics and events
  2. Switch to Drupal and customize it
  3. Restore the Feedburner widget that shows how many people read this blog
  4. Make it easy to view my blog through different lenses (geek, life, both)
  5. Have a landing page that explains the site for first-time visitors
  6. Allow people to choose their default landing page when they come to sachachua.com
  7. Add more photos
  8. Make my sketches easier to view
  9. Allow people to toggle full entry, summary, or list view
  10. Put my self-introduction on the front page
  11. Highlight certain blog posts
  12. Extract names, e-mail addresses, and websites of people who have commented, and thank them
  13. Remember to respond to comments by e-mail as well as online
  14. Find a way of sharing the books I’m currently reading and what I’m learning from them
  15. Add a page with my blogroll
  16. Link to my other presences on the Web
  17. Make it easier to remember visitors’ details
  18. Visualize my posts and my posting frequency
  19. Format into a nice PDF
  20. Pull in relevant Twitter entries
  21. Make it easier for people to subscribe
  22. Use category templates and icons
  23. Share my task list again?
  24. Share my currently-checked-out list again
  25. Share my book summaries
  26. Share my to-read list
  27. Share my reading history

Annual letter: the numbers

January 3, 2009 - Categories: connecting

I sent out 205 hand-personalized yearly updates in my initial set of holiday greetings. I’ve received 60 replies so far, for a response rate of almost 30% – much better than surveys and e-mail marketing campaigns. Most included people’s highlights of 2008 and goals for 2009, which I’ve added to my address book. I’ve cleared my inbox (hooray!) and now I’m thinking of e-mailing everyone on LinkedIn.

I’ve updated my address book from my LinkedIn contacts, which has somehow grown to 643 people. Of these 643 people, 135 were already in the first list of people I’d e-mailed. I’m slowly working my way through the 508 people remaining. I had so much fun reading and responding to people’s updates, and I’m looking forward to getting to know people in my extended network a little bit more! I’m still going to hand-personalize things as much as possible, because it’s fun looking up people’s updates and pleasantly surprising (most of) them with that human touch.

Thanks to everyone who wrote in with encouragement, reviews, and goals. Definitely worth doing again!

There are no words to describe the geeky awesomeness of this

January 3, 2009 - Categories: geek

Update: Turns out the guy was lipsynching Moosebutter, but it’s still awesome!

(found it on Jeff Waugh‘s blog while reading his updates in the process of composing mail. Awesome ROI)

Ideas for making my work more effective and efficient, creating value, and rocking my work

January 4, 2009 - Categories: ibm, idea, work
  1. Change to Ubuntu
  2. Set up virtual machine for my Windows partition
  3. Use Emacs to handle my mail? Hard to do calendar acceptance
  4. Set up regular backups
  5. Resize Windows partition
  6. Clean up my Firefox extensions
  7. Clean my keyboard
  8. Set up personal or team bugtracker – not needed, projects have ClearQuest
  9. Set up website with talks
  10. Improve visual communication skills by practicing illustrating Enterprise 2.0 concepts
  11. Improve random information management tools – book quotes, stories, etc.
  12. Add automated testing framework to projects
  13. Uninstall unneeded programs
  14. Set up IE5 on Linux
  15. Move orangechair blog to Slicehost
  16. Convert orangechar blog to Drupal
  17. Set my desktop background to my work goals sketch
  18. Set up an easy way to crosspost Enterprise 2.0 sites
  19. Figure out team’s strengths, weaknesses, opportunities, threats (SWOT)
  20. Write an article on Enterprise 2.0 for managers
  21. Guestblog.
  22. Organize a teleconference with an external speaker.
  23. Build a conference tool
  24. Write a well-researched blog post for orangechair
  25. Post a book review – Generation Blend?
  26. Help write a book
  27. Help plan our menu of services
  28. Help IBM partners and account teams learn more about Drupal
  29. Organize other IBM Drupal developers into a community
  30. Do SWOT analysis for IBM and Drupal development
  31. Develop more IBM Drupal extensions
  32. Record a vidcast or slidecast about Enterprise 2.0
  33. Summarize resources
  34. Segregate my blog topics a bit more, making it easier for people to read Enterprise 2.0-related news
  35. Organize IBM Web 2.0 for Business resources
  36. Publish newsletter
  37. Build aggregator for community
  38. Build IBM voices aggregator
  39. Help draw vision for smarter planet
  40. Ask my network for help in identifying potential clients.
  41. Create blog alerts for Enterprise 2.0 topics
  42. .. and more!

Hooray! Tax-free savings account!

January 4, 2009 - Categories: finance

To encourage people to save, the Canadian government created a tax-free savings account. You put after-tax dollars into it, and the interest is tax-free. The contribution limit for this year is $5,000.

PCFinancial and ING Direct are two Canadian banks with great interest rates. Currently, ING Direct (0.27%) is better than PCFinancial’s Interest Plus (1% on 0-$1000, 2.75% on $1000 and up) for amounts less than $53,000, and you probably wouldn’t want to keep that much money in a savings account anyway. PCFinancial does have an anniversary bonus and it’s easier to transfer money back and forth between accounts, and sometimes PCFinancial’s rate is a little bit higher than ING. ING Direct’s GICs seem to be a better deal, though, and they come with more options.

If you do set up an ING Direct account (and deposit at least $100 into it), you can use my referral code (Orange Key: 29083948S1) for a $13 bonus. I’ll get a $13 bonus, too, so everyone’s happy. =)

I’m setting up some transfers. Looking forward to taking advantage of that tax-free deal! Maybe another set of laddered GICs…

GreaterIBM: Turbocharging real-life social networking events

January 5, 2009 - Categories: connecting, ibm, web2.0

When Todd Waymon connected to me on the Greater IBM Connection, I remembered a story that he and his wife (Lynne Waymon, author of Make Your Contacts Count) would probably find interesting. I was looking for my blog post about it, but I must’ve forgotten to tell that story then. Well, here it is!

It was September 2006. I was a graduate student researching Enterprise 2.0, and my blog was one of the most popular ones in IBM. I heard about the Greater IBM Initiative’s planned launch party in New York, and I really wanted to go. When the organizers read on my blog that I was trying to figure out how to get there, they invited me to become one of their Core Connectors. Kevin Aires called me all the way from the UK to invite me personally. I was thrilled! What a great opportunity to see corporate social networking in action, and to learn more about social networking in the process of supporting real-life connections.

I asked my research supervisor if I could have travel funding. He said no; our budget had already been earmarked for the research conferences. I asked the IBM Center for Advanced Studies for travel funding, seeing as the trip was mainly for the benefit of IBM. They said no, because they didn’t want to set a precedent. I didn’t want to pass up the opportunity, though, so I searched and searched until I found a bus ride to New York for the round trip price of USD 100. My mom connected me with a family friend who let me stay on her couch. I was going to make it happen.

With the logistics out of the way, I focused on making the Greater IBM launch party the best possible event. I remembered how good introductions helped me bring together my mostly-introverted friends from different circles, and I wanted to create that same kind of friendly atmosphere at the event. We had been using Xing as our social networking platform, and all the attendees had profiles there. I browsed each profile, copying their details and their pictures into a document – a social networking dossier. Their profiles included their current positions, their former IBM positions, their interests, and what they were looking for. I sent this dossier to the organizers, who printed it out and inserted it into each attendee’s event bag.

To make the most of the 8-hour trip, I printed out a copy of my social networking dossier for myself. I also created flashcards, putting names on one side of the card and interesting details on the other site. I noted common interests, too. I couldn’t print pictures, but I had those in my main dossier. As we rattled along the highways in a small van, I thumbed through my flashcards, committing as much as I could to memory.

That totally rocked.

As guests filtered into the swanky NY venue, I greeted them and often helped them find interesting conversations. Some had written only their first name on their nametags, but after I asked them their last name, I could remember everything I’d learned about them. I really enjoyed being able to delight people by introducing them with a few choice details – their current positions, their previous positions, the interests they shared. For example, in one conversation, I revealed that both of the other participants liked skiing enough to put it on their profiles. I think everyone walked away feeling like a VIP!

There are so many interesting things we can do when we combine online and offline social networking. I can’t wait to see how we can make the experience even better. I’m looking forward to experimenting with this by organizing or helping host events!

Weekly review: Week ending January 4, 2009

January 5, 2009 - Categories: weekly

Hello, 2009! So far, it’s been awesome. (I say that word a lot, but that’s because it’s true.)

Last week:

Next week:

#lifecampto up – January 31 (Sat), 10:30 AM brunch

January 5, 2009 - Categories: meetup

Mark Kuznicki reminded me to get #lifecampto out the door. =)

Details and sign-ups at lifecampto.eventbrite.cominitial blog post

Scenes from a geek life: Wireless mice

January 5, 2009 - Categories: geek, sketches

(click to view full-size)

Hmm. I’m using the wrong mouse again.

*clomp* *clomp*

“Yes, honey?”

“You’d be surprised by the range of these wireless mice.”


Look! I’m learning how to draw! It’s _all_ about vector drawing…

AutoHotkey scripts for switching to windows

January 6, 2009 - Categories: geek, kaizen, productivity

Muscle memory helps you be more efficient. Here’s some AutoHotkey code I use to toggle Chrome (F10), Windows Live Writer (F11), or my Freemind mindmap for Life (F12). Make your own! =)

F10::
WinGetActiveTitle, Title
If Instr(Title, "Google Chrome") > 0
{
   WinMinimize, A
}
Else If WinExist("ahk_class Chrome_WindowImpl_0")
{
   WinActivate
   WinMaximize
}
Else 
{
   Run, "C:\Documents and Settings\Administrator\Local Settings\Application 

Data\Google\Chrome\Application\chrome.exe"
}
return
F11::
WinGetActiveTitle, Title
If Instr(Title, "Windows Live Writer") > 0
{
   WinMinimize, A
}
Else If WinExist("ahk_class WindowsForms10.Window.8.app.0.33c0d9d")
{
   WinActivate
   WinMaximize
}
Else 
{
   Run, "C:\Program Files\Windows Live\Writer\WindowsLiveWriter.exe"
}
return
F12::
WinGetActiveTitle, Title
If InStr(Title, "Life.mm") > 0
{
   WinMinimize, A
}
Else IfWinExist Life.mm
{
   WinActivate
   WinMaximize
}
Else 
{
   Run, c:\sacha\Life.mm"
}
return

Emacs, file-cache, and ido

January 6, 2009 - Categories: emacs
(require 'filecache)
(require 'ido)
(defun file-cache-ido-find-file (file)
  "Using ido, interactively open file from file cache'.
First select a file, matched using ido-switch-buffer against the contents
in `file-cache-alist'. If the file exist in more than one
directory, select directory. Lastly the file is opened."
  (interactive (list (file-cache-ido-read "File: "
                                          (mapcar
                                           (lambda (x)
                                             (car x))
                                           file-cache-alist))))
  (let* ((record (assoc file file-cache-alist)))
    (find-file
     (expand-file-name
      file
      (if (= (length record) 2)
          (car (cdr record))
        (file-cache-ido-read
         (format "Find %s in dir: " file) (cdr record)))))))

(defun file-cache-ido-read (prompt choices)
  (let ((ido-make-buffer-list-hook
	 (lambda ()
	   (setq ido-temp-list choices))))
    (ido-read-buffer prompt)))
(add-to-list 'file-cache-filter-regexps "docs/html")
(add-to-list 'file-cache-filter-regexps "\\.svn-base$")
(add-to-list 'file-cache-filter-regexps "\\.dump$")
(defmacro sacha/file-cache-setup-tree (prefix shortcut directories)
  "Set up the file-cache tree for PREFIX using the keyboard SHORTCUT.
DIRECTORIES should be a list of directory names."
  `(let ((file-cache-alist nil)
	 (directories ,directories))
     (file-cache-clear-cache)
     (while directories
       (file-cache-add-directory-using-find (car directories))
       (setq directories (cdr directories)))
     (setq ,(intern (concat "sacha/file-cache-" prefix "-alist")) file-cache-alist)
     (defun ,(intern (concat "sacha/file-cache-ido-find-" prefix)) ()
       (interactive)
       (let ((file-cache-alist ,(intern (concat "sacha/file-cache-" prefix "-alist"))))
	 (call-interactively 'file-cache-ido-find-file)))
     (global-set-key (kbd ,shortcut)
		     (quote ,(intern (concat "sacha/file-cache-ido-find-" prefix))))))

I like Lotus Notes 8.5 =)

January 7, 2009 - Categories: ibm, lotus

Yes, I know, liking Lotus Notes is weird. It’s a little like liking Emacs, but even more inexplicable.

But Lotus Notes 8.5 lets me easily add my Google Calendar to my work calendar!

This rocks. =D

Oh, and I can work with Activities offline, too… I’m in love!

Weekly review: Week ending January 9, 2009

January 9, 2009 - Categories: weekly

This week:

From last week’s plans:

Other stuff:

Next week:

Thinking about the Canadian Tax-free Savings Account

January 9, 2009 - Categories: finance

W- and I picked up a 2008-2009 tax planning guide from the Toronto Public Library, and I was pleasantly surprised to find that the tax-free savings accounts (TFSA) recently introduced by the Canadian government can be used to hold equities which will not incur capital gains tax when sold. Now I’m trying to figure out how I should best manage the $5000 TFSA limit I have this year.

Because I’m young and I have some funds I’m not planning to use for a while, I’m leaning towards considering this as part of my retirement portfolio. It won’t be locked in like my registered retirement savings plan is (RRSP), and it won’t be taxed on withdrawal. Withdrawals from the RRSP are added on top of your income, and capital gains taxes are applied. According to this article on TFSAs and RRSPs, it may make sense to hold income-generating investments in the RRSP (where they won’t get taxed as they grow) and things like equities in the TFSA (where you won’t get capital gains tax on large growth).

Of course, that all depends on whether or not you think equities will stop going down and instead regain some value. Prolonged recessions have happened before. Glass-half-full folks could also see this as a great time to pick up mutual funds or individual stocks at a discount, though. =)

Another alternative is to use it as a high-interest savings account for my emergency fund and short-term goals. $5000 There’s currently no other tax-efficient way to store funds I may need/want to access in a bit.

Or perhaps a mix of both!

Decisions… decisions… Anyway, if you’re going for the high-interest savings account, try PCFinancial For guaranteed investment certificates (GICs), try ING Direct (they’re easy to manage and they have decent rates). If you’re going for a mutual fund, try TD Canada Trust – their index e-series funds have the lowest management expense ratio I’ve come across so far, and they’re fairly easy to manage online. =)

Take this blog post with a grain of salt. I’m not a certified financial planner, just a 25-year-old who likes figuring things out.

UPDATE: PCFinancial offers the Tax Free Savings Account with an interest rate of 3.05% on the entire balance of your account (instead of the tiered system of ING), so it beats ING a little bit when it comes to savings accounts. Although at this point, you’re quibbling over 0.35%, which (given the $5000 contribution room) comes out to less than $20. May not be worth opening another account for over one year, and interest rates tend to fluctuate anyway.

Dealing with weaknesses: calendars

January 9, 2009 - Categories: kaizen, life

Okay, I’m starting to get really annoyed at the weakness of my calendar system. The Google Calendar integration into Notes would have worked… if I hadn’t confused myself badly. Fortunately, I can redeem myself, but I need to either get better at handling appointments or find ways of minimizing them entirely.

I had a tentative entry for a chat with Sambhavi Chandrashekar. We chatted over the phone and pushed that out a bit, because she’ll be busy for a few weeks. Having briefly scanned my calendar, I assumed that the somewhat-vaguely-named “Lunch with Sacha Chua” entry was related to that chat. No, it wasn’t. It was with someone else.

I got the Google reminder on my phone and (eventually) in my Lotus Notes calendar, so it’s not about setting up a better reminder system.

And to think I suggested the date and place, too! Embarrassing.

So, how can I avoid making mistakes like this in the future?

The key problem was that the meeting notice I added to my calendar had insufficient details. I had received an event invitation through e-mail and I couldn’t figure out how to add it to my Lotus Notes calendar, so I tried accepting it through Gmail. However, I must’ve accepted it incorrectly, because it didn’t contain any reference to the original sender. Next time, I should double-check that calendar entries have all the relevant details, and that these details are included in the subject line whenever possible.

If that’s in place, then the second thing I need to do is slow down and be more mindful during my morning reviews. It’s very hard to catch yourself assuming something, particularly when you’re distracted. Maybe I should make this a morning ritual: savor a cup of tea and go over all the important details of the day. It’ll be worth avoiding these spikes of stress.

I can also minimize the risk of this happening by moving more social appointments to flexible times whenever possible. Instead of meeting people over lunch, I can invite them to tea at my place. This has the added benefit of being able to bring interesting people together. I can’t do this for all appointments, though, so I really do need to improve my process here.

… and no, even handy services like I Want Sandy won’t help, because the problem was that I glossed over the reminder because I assumed it was related to a different event that had been cancelled.

The key thing, then, is to slow down when my calendar is involved, because that’s one of my weak points. The times that my calendar system tends to fail are when my Lotus Notes application is closed because I’m having software problems and when my calendar is too crowded or I know parts of it are out of date. I’m dealing with the first case by copying all my appointments into my Emacs Org planner during my morning review, which _should_ have caught today’s error if I had put enough information in the subject line. So I should slow down and click on all the details to make sure I know the full details of each appointment, especially if it was one I’d made several weeks ago.

Okay, how can I practice this? I’ve forwarded the details of another interesting event to the person I failed to meet today, and we might meet then. I can practice by inviting other friends out to lunch or dinner. I can give myself a minimum amount of time for my morning planning (that’s a strange idea, but it just might work). I can practice making scheduled commitments. I can practice by working on tasks that require several days’ or hours’ lead time, too.

I can hack this. Grr.

Being less stupid is harder than being smarter

January 9, 2009 - Categories: kaizen, life, productivity, reflection

With all due respect to @adamclyde, who tweeted being smarter is a lot harder than just being a little less stupid… and to Dennis Howlett, who blogged about how to be less stupid in 2009, I suspect that being less stupid is a lot harder than being smarter.

Software developers will recognize the truth in that assertion. It is a lot easier to tack on new features than it is to chase down all those defects. It is also true as the number of new features increases, the number of potential defects increases at a much faster rate. This is because each new piece you add can interact with existing pieces in any number of ways.

Sigh.

And so it is in life. It’s easier to make a resolution or try something out than it is to get rid of a habit or figure out how to deal with one of your weaknesses. Being smarter is fun. It’s motivating. It’s great. Sure, it takes imagination to see how you can be smarter in the first place, but if you keep your eyes open and learn from people around you, you’ll find all sorts of ways to improve.

On the other hand, being less stupid requires that you not only recognize and deal with the fact that you can be stupid, but push yourself out of that rut of stupidity and into a slightly-less-worn rut of slightly-less-stupidity. And then you do it again, and again, until you can get used to being a little less stupid. Then you do it again, and again. This is difficult, demoralizing, and not at all fun. Oh, and you’ll start off doing badly, too, because if it were easy to get rid of your bad habits or your weaknesses, you probably wouldn’t have picked them up in the first place.

This is not to say that focusing on being less stupid is the way to go. That well-intentioned path leads to being well-rounded but not exceptional. (See books like First, Break All the Rules for more thoughts on that.) If you want to be exceptional, focus on becoming smarter and smarter, and neutralize or work around the weaknesses you do have.

There are easy ways to become a little less stupid. There are easy ways to become a little smarter. To become a lot less stupid or to become a lot smarter requires deliberate practice. Our brains are wired to enjoy doing things well – to be in the flow – so the deliberate practice needed to become smarter is easier to do, and the feeling of achievement is sweeter. Our brains are wired to notice presence more than absence, so even if you’ve managed to work around your weaknesses for five straight days, the one you remember is the time that you tripped up badly. (This is also why you may think the phone only rings when you’re in the shower; you don’t notice when it doesn’t.) We also tend to pay attention when we’re trying something new or learning something interesting. On the other hand, it’s hard to catch yourself being distracted (almost by definition)…

So you tend to get good feelings about working on becoming smarter, and bad feelings about working on becoming less stupid. It tends to be easier to pay attention to becoming smarter, and it’s harder to drag your attention back when you’re being stupid. Which one will take more energy and will to do?


There are a lot of things I want to get smarter about: organizing and hosting events, illustrating abstract concepts, helping people connect and collaborate. I want to be a little less stupid about calendars. Maybe if I phrase that as a glass-half-full kind of thing, everything will flip around. Maybe if I focus on being smarter about calendars, take my current status as okay (so I stop making myself feel worse about it ;) ), and work on making things a little bit better each time (look! I actually did the morning reviews all this week!)… Hmm. I’ll keep you posted. Anyway, I just wanted to tell you – being less stupid is _hard!_ =)

Finally figured out how to set up a shared Git repository

January 11, 2009 - Categories: geek

After a few hours of struggling with it, I gave up on trying to get Git working over WebDAV. I looked for other ways to do it, and I came across Gitosis. It only took me five pieces of chocolate and an hour and a half to install it, troubleshoot, and then figure out that I’d forgotten to make the post_update hook executable. Now it works! Hooray!

Blogging helps

January 12, 2009 - Categories: blogging

People often tell me that they’ve thought about blogging, but they don’t know if anyone would be interested in what they have to say. Sometimes I wonder why people are interested in what I write, too. =) But the strange and wonderful thing is that my [mis]adventures through life end up helping people along the way. That’s pretty darn cool, and that’s why I don’t mind ‘fessing up even to embarrassing mistakes (like my recent calendar mishaps).

Somehow, from the jumble of technical and life-related posts, this is what Maira got:

Ways in which your blog has already helped me:

  • Made me realise that I wasn’t the only introvert geek growing up; and that it’s ok – and even fun – to be like that.
  • [your Japan trip] Reminded me of how much I love to learn new languages and new cultures, made me want to go back to learning German (I started studying it on my own earlier this year, in my free time, just for fun).
  • Reminded me that I also like making life easier with technology. I caught myself thinking the other day “if only I could set up a keyboard shortcut, so that I could press only ONE key, instead of Ctrl+ ->” (I don’t know why but I don’t feel ergonomically comfortable doing this combination), and then I was like “huh, this is such a Sacha mindeset.”
  • Reminded me that I like Science (I gradauted in CS too) and that I like studying, but that spirit got lost somewhere along the way during University years.
  • Made me realise that I should use the net more efficiently (blogs, social networks) instead of being a “prisoner” of them (ie, never having time to keep up with people’s posts and updates), RSS could be a good start.
  • Made me want to write my own blog. I do have a personal one, but I don’t have much time to write in it (ie, I don’t FIND much time to write in it). Your geeky blog made me realise that maybe writing about geeky trivial stuff can be interesting to other people. Although, in terms of time-optimization, I still think (for me), writing about feelings is more important. Oh, well just some ideas.
  • I related a lot to one of your reflections on your trip to Japan: that when you are traveling you don’t have time to waste being introverted in an Internet room, you want to enjoy each moment “out there in the world” as much as you can. I felt like that in my 2006 trip to Canada (more on that later).

Maira Bay de Souza, Brazil

… and if someone like her can learn that from the blog of someone like me, imagine what someone else out there can learn from someone like you. =)

Stick figures on campus; IBM at the University of Toronto

January 12, 2009 - Categories: ibm, presentation, sketches

As a favor to Stephen Perelgut (one of my mentors) and because I happen to really like working with IBM, I participated in today’s campus event at the University of Toronto. We were supposed to set up tables at the atrium of the Bahen Centre, but the power outlets didn’t work, so we moved to another room. The room was a little out of the way, but Cathy Sardellitti and Sarah Weiss did a great job at diverting some of the traffic to our room.

Representatives from most of IBM’s software brands set up their laptops with demos to show. I was the only person representing IBM Global Business Services. I had originally been a bit worried about whether I could make it through the four hours, much less muster the courage to strike up conversations with everyone (or deal with the rejection of seeing everyone walk by!). I knew it would be good practice, though, so I said yes. When the students came in, I was too busy trying to draw people into conversation to worry about whether people would talk to me! <laugh>

I set up this presentation to loop on my computer:

… and I invited people to ask me about IBM’s services and about what IBM is like for new graduates. I must’ve talked to about 25 people, mostly students who were interested in either internship opportunities or in full-time employment after graduation. It was great to reassure them that yes, IBM was still hiring. In the process of describing what life is like as a new grad, I realized that I really appreciate the flexibility that working in consulting gives me. I can help clients solve problems using both IBM and non-IBM technologies. I’m always learning new things. I can explore my interest in both about business and software development. And I’m doing all of this within a support structure that means I’ve got plenty of people and resources to learn from.

I also learned a lot by talking to the other representatives. They told me what they loved about their work, and they shared ideas for making the campus event even better. I really enjoyed chatting with other IBMers who were also passionate about what they do. =)

I think it was a good event. We helped some people who hadn’t originally considered working for such a large company see the benefits of doing so, and we answered lots of people’s questions. I’d do it again. It was a good experience, and next time, I’d probably find it easier to start the conversations!

Why my cat loves sleeping on my Esc key

January 13, 2009 - Categories: cat, sketches

Why my cat loves sleeping on my Esc key

Attempts to provide Luke with other heated surfaces (heated cat bed, a radiator, my lap, etc.) have proved ineffective.

Finally decided what to do with the tax-free savings account

January 14, 2009 - Categories: finance

I finally decided what to do with the tax-free savings account (TFSA) recently introduced by the Canadian government. Because I’ve got $5,000 of contribution room to play around with this year, I’ll move my emergency fund into it in a combination of a regular money-market fund and some GICs. Once I move most of my short- and medium-term savings into the TFSA, I can then start looking at it as a way to save for the long term (say, by holding stocks). In the meanwhile, it makes more sense to save the fairly hefty tax levied on my interest income than it does to hold equities in the TFSA in order to avoid capital gains tax a long way down the road.

PCFinancial offers a slightly higher interest rate for their TFSA high-interest savings account (3% to ING Direct’s 2.7%), but they ding you with a $50 transfer fee if you want to move your TFSA money to a different institution (say, if you want to invest in TD e-series mutual funds). You could withdraw for free and deposit it normally, but that still uses up your TFSA contribution room and you won’t be able to contribute as much until the next year. ING Direct doesn’t ding you with the fee and they have better GIC rates, so I’ll probably go for them.

Unfinished Business: Design and New Media in the Obama campaign

January 14, 2009 - Categories: social, web2.0

Last night’s Unfinished Business lecture was about design and new media in the Obama campaign, with insights from Scott Thomas (a designer) and Rahaf Harfoush (a social media strategist). The event was held in the auditorium of the Ontario College of Art and Design, and roughly 300 people attended.

My key take-away from the talk was that a strong and persistent design team, backed by analytics to support decision-making, can make such a difference in the overall experience.

Scott showed us what the campaign webpage looked like before he came on board. It was not a horribly designed webpage (no blinking text, no marquees), but there were numerous typefaces and colors, and every department in the campaign office seemed to want a presence on the first screen of the page.

With some strong-arming, they settled on one palette and focused on the user experience, streamlining it to make it easier for people to get to where they want to go. That meant moving links down or into the site. It wasn’t easy for people to accept the necessary changes. Many groups were worried that if their advertisement or link wasn’t “above the fold”–visible in the first screen without scrolling–then their content might not get viewed. By testing different versions of the site with randomly-selected users (A/B testing), the design team got the hard numbers they needed to make these changes.

The different themes they used in their campaign were also interesting. Scott showed examples of the campaign theme, the “instant vintage” theme, the timeless theme, and the supporters, and each set had a visually distinguishable character. The campaign theme used a blue gradients extensively, and Scott explained the reasoning behind some of the design choices. The “instant vintage” theme drew inspiration from classic photos and posters in order to give people the feeling of being part of something historical, larger than life. The timeless theme drew from classic typesetting and ornamentation (very elegant!), but was dropped because of the backlash about the official-looking campaign seal. The supporters were very creative in coming up with all sorts of designs for campaign posters, too, giving the campaign a vibrant community feel.

Some of the details Scott shared with us were about specific design decisions made during the campaign. For example, the campaign placards used to read “HOPE”. Scott showed this great photo of a bunch of campaign signs that read “HOPE” with a real rainbow in the background. He told us that hope is an emotive word that you can communicate through images, while change is more abstract and more difficult to show visually. That’s one of the reasons why they changed the campaign signs to read “CHANGE” instead.

I was also fascinated by the evolution of the campaign logo through different typefaces, from mixed-case to small-caps, and from a linear layout to a triangular one. Seeing the different logos together, I found it easier to understand the different reactions I had to each of them, and from there, learn a little bit more about design.

Rahaf Harfoush’s talk was on social media. It was similar to the last talk I’d heard her give. I think she felt nervous about fitting it into a shorter timeslot, and it felt a lot more rushed than last time. She did tell a couple of new stories, though.

One story was about a man who had expressed incredible anger on the forums–because the presidential candidate had been televised walking down stairs with his hands in his pockets, and this man was not about to invest all of those hours in calling people and knocking on doors and attending or organizing events just so that his candidate could fall and hurt himself. What a great example of getting people personally invested.

Another story was about a campaign supporter who wanted to show his support through action instead of words. He and a group of other supporters dressed up in lots of Obama gear and went out to quietly perform civic actions, like helping elderly people cross the street. They didn’t talk about politics; they just acted according to what they believed in. I thought that was pretty cool.

The questions from the audience were also insightful and thought-provoking.

One person asked about whether the speakers could see this kind of energy and change happen in Canadian politics. Rahaf answered that one of the energizing things about the Obama campaign was that the candidate was not someone you’d typically see running for office. She found it difficult to imagine any of the prominent Canadian politicians engaging and exciting people like that, but she was open to the possibility of someone new coming along and surprising people.

Another person asked how the speakers convinced the campaign that they were the right people for the job. Scott shared that he’s never really been good at marketing himself, but that his passion for his work helps people decide whether or not he’s the right fit for the job. He said that people can tell by how wide his eyes get when he talks about his work that he’s really passionate about it. He got applause for that one.

Many people were concerned about the potential nefarious use of what we’ve learned about social media. Scott was of the opinion that the genuine enthusiasm expressed by the campaign supporters couldn’t be manipulated or created. Stephen Perelgut (one of my mentors) told me that he still remained skeptical, though, as many horrible things have been perpetrated by equally enthusiastic people. (Nazi Germany comes to mind.)

I learned a lot during the lecture and in the question-and-answer portion. The next Unfinished Business lecture is on February 11 (same day as Techsoup). From their e-mail notice:

… on 11 Feb we will host Larry Keeley, President of Doblin in Chicago, who will talk about open innovation, platform innovation and what it means to work from a disciplined approach to innovation.

Unfinished Business, Torch Partnership

Good stuff. It’ll probably sell out as quickly as this one did. Thanks to Jeff Muzzerall and Stephen Perelgut for making sure I heard about this!

Making people’s eyes shine with wonder

January 14, 2009 - Categories: family, life

My dad is a darn good advertising photographer, but you know what I think his key expertise is? It’s not lighting cars to show off their curves or shooting food to make it pop off the page…

… it’s making people’s eyes light up with wonder.

He’s really good at finding ways to make people’s eyes *shine*. He’s been doing it for as long as I can remember. Everything he enjoys leads back to this.

For example, helping autistic children discover the joys of photography, while at the same time helping photographers discover the joy of photographing something great.

(You can find him easily. He’s the guy taking care of the elephant, leading the crowd, moving the world… =) )

When he makes people’s eyes shine with wonder, that’s when he himself lights up. That’s when he’s most alive.

Someday, when I grow up, I want to be like him.

Travel tips

January 15, 2009 - Categories: life

Here’s a braindump of tips for making frequent travel more fun:

More? =)

Diminishing returns on cat affection

January 15, 2009 - Categories: cat, sketches

Cat influence on happiness as a function of proximity, with maximum value at 'on lap' configuration

Click on the image to view a larger version.

Relationship between affection expressed by cat and person

January 16, 2009 - Categories: cat

It occurred to me that this may be a more accurate representation of the relationship between the levels of affection expressed by cats and humans:

cross-over point at kitty on lap

Weekly review: Week ending January 16, 2009

January 16, 2009 - Categories: weekly

Despite feeling under the weather with the beginnings of a nasty sore throat, I had a pretty good week that taught me about some of my other interests and strengths.

I took advantage of my time in between projects to think about what I could do in order to help connect our team with clients who can use our Enterprise 2.0 consulting and application development services. Putting my internal-marketing hat on, I wrote descriptions of our services and posted the drafts on the team’s internal wiki so that our managers could take a look at them. I’m still waiting for permission to distribute that more widely, and I suspect that things would be better if we moved to a “fail-fast-and-early” model instead of a permission model. That’s probably worth another blog post after I talk to the people involved. Analyzing the competitive landscape and our differentiating strengths was fun. Writing the copy was okay, and it could’ve been better if I could’ve just released it and gotten more people involved. I think I can make this better, so stay tuned.

I posted my notes about the design and social media in the Obama campaign the day after the Unfinished Business lecture. That turned out to be almost immediately helpful because a number of people I knew hadn’t been able to get into the sold-out event, so I forwarded them my notes. It also came up during my conversation with Amy Shuen as I went over the teleconference preparations for her upcoming IBM talk on ROI of Web 2.0 at Work, and I was happy to send her those notes and my older notes on Rahaf Harfoush’s talk. My notes have also helped other people who hadn’t heard about the initial event, so it was well worth the extra half-hour I spent writing up my take-aways. I often find myself referring to things I’ve posted, and that gives me good leverage on time and lessons learned.

I mentioned this to Amy, and she was really interested in estimating ROI given the tracking tools we have in IBM and my habit of posting my presentations online. After some totally back-of-the-envelope calculations that took into account the cost of my preparation and delivery time and the value created for in-person and online audiences, I came up with the ballpark estimate of creating $140,000 of value from about $2,900 of cost. Here’s an excerpt from my internal blog post about that:

Based on the numbers, I think you should definitely spend a couple of extra minutes to put your presentation material online.. My estimated ROI for in-person talks is 1000%. Estimated online viewing ROI? 26000%. which includes both the in-person presentations I shared online plus the extra stuff I created and posted. Estimated total ROI 4900%. Very little extra effort, lots of continuing passive value creation.

The calculations have more assumptions than you can shake a stick at, but it was an interesting exercise. I don’t think there’s any IBM-sensitive information in it and the spreadsheet might give you ideas for estimating your own ROI if you give presentations or write blog posts, so feel free to download my ROI for talks spreadsheet and tinker around with it. You’ll need OpenOffice.org or Lotus Symphony to open the file.

I also analyzed the composition of the audience for Amy’s upcoming talk, using some painfully-scraped-together Lotus Script (I wish it was as fun to work with as Emacs Lisp!) to extract the mail addresses from all the messages in my signup confirmation folder. That was fun and easy, thanks to a few existing tools in IBM. I wish I had half as much information for the talks I give! <laugh> Maybe I should volunteer to help different communities organize their teleconferences, and eventually grow a system around it.

So there’s another clue: I enjoy number-crunching, particularly when it’s related to better presentations and communication. =)

The third set of activities that filled my week were the presentations I prepared. Monday’s recruiting event, Wednesday’s interns-and-Web 2.0 talk, and the New Employees and a Smarter Planet thing gave me more practice in looking for the core of a message and trying to communicate it. I’ve still got a long way to go, but it’s fun! I also had fun putting together some graphs about cat behavior (affection, proximity, nap location), and maybe I’ll someday get to Indexed-level insights. =)

So, lots of good stuff this week in addition to the goals I’d listed in last week’s plans:

Next week:

That was a great week, and I’m looking forward to another terrific one! =)

Ways to make winter better

January 17, 2009 - Categories: life

I get hit pretty hard by the winter blues. The desaturated bleakness of the snow-laden landscape triggers an almost-physical reaction in me. While I may not be able to get rid of winter entirely (or escape to the Philippines as soon as the first snow falls), there are probably lots of little ways I can make winter a bit more bearable or even fun.

Here’s what makes winter better for me so far:

What could make this even better? Let me see if I can come up with any ideas…

While chatting with W- over the freshly-baked muffins he made, I realized that there isn’t really a lot I can buy in order to make winter life more awesome. Instead of buying another hat or another coat when I’ve got perfectly serviceable ones, I’d rather spend on extra ingredients and experiment with baking.

And who knows, I may even end up dusting off that book and working on it again… =)

lifecampto

January 18, 2009 - Categories: event, sketches

lifecampto.eventbrite.com
(click for larger version)

Event details at lifecampto.eventbrite.com

Emacs basics: Changing the background color

January 18, 2009 - Categories: emacs, wickedcoolemacs

One of the first things you’ll probably want to change about Emacs is the default face. This controls the foreground color, the background color, the font, and other attributes. For example, many graphical environments give Emacs a background of white. If you prefer a black background (which can be less tiring during long periods of use), you can change the background to black my customizing the default face.

To change the background color and other attributes, use the command M-x customize-face, and specify default as the face to customize. Change the attributes and the sample text will reflect your settings. When you are satisfied, select Save for future sessions. Your changes will be saved to ~/.emacs and reloaded the next time you start the editor.


This is a draft for Wicked Cool Emacs, a book that will be published by No Starch Press. (if we manage to get it all together! =)

ROI for public speaking and Web 2.0; graph and case study

January 19, 2009 - Categories: enterprise2.0, presentation, sketches, speaking, web2.0

Amy Shuen inspired me to prepare a spreadsheet for estimating the value created by my talks. (You can open the spreadsheet in OpenOffice.org or Lotus Symphony, both free office suites.) She’ll be including some of the numbers in tomorrow’s IBM Web 2.0 for Business community call on ROI of Web 2.0 at Work. I thought I’d make the numbers a little easier to grasp, so I spent an hour and a half making this:

Full-size images at public-speaking-1.png and public-speaking-2.png.

Lessons learned from hosting today’s IBM Web 2.0 for Business community call with Amy Shuen

January 20, 2009 - Categories: event, ibm, reflection, web2.0

Hosting today’s Web 2.0 for Business community call was nerve-racking, but I’d love to do it again. At the peak of the call, we had 98 people connected to the Web conference, with maybe three-quarters listening to the webcast. Our speaker was Amy Shuen, author of the Web 2.0 Strategy Guide, and she gave a highly interactive IBM-focused session on ROI of Web 2.0.

Big thanks to Amy Shuen for speaking, Aaron Kim for the contact, and Ian Mcnairn for the teleconference line! =D

What worked well?

Great insights! We should bring in more external speakers. We learn something, they learn something, everyone benefits.

Doing a dry run of the content on the day before helped us identify parts that the community would most likely be interested in. The additional detail made the presentation richer and more interesting. Also, we could tell people that answers to their questions were coming up soon. ;)

People made good use of the Chat feature in Sametime Unyte to ask questions and share their thoughts while Amy was speaking. Amy seamlessly wove those questions and observations into her talk, making the session engaging and interactive.

There was a good mix of graphs and numbers, too. Cool stuff!

People found the Calendar button to be really helpful, and I used it to e-mail people updates. The LotusScript agent I wrote will make it easier to e-mail everyone.

The audiocast worked surprisingly well. =)

Between the presidential inaugurations, Lotusphere, and my panicky broadcast about being oversubscribed, we managed to work around conference call capacity limits Whew. Lucky. But there was a lot of interest in the talk. The webcast was of acceptable quality, and it also gets around the international tollfree problem, which means we can experimentally scale up. Also, we should get some EMEA and AP talks going.

How can we make it even better next time?

Sort out audio recording

The key thing that would make this better is reliable audio recording. The audio recording didn’t come out correctly because my Camtasia Studio was set to record microphone input, not speaker output. I had tested this before the session, but had only tested it with my voice, so I thought it was working. It had been working (although a bit faintly) when I left the speakers on, but it stopped working when I plugged the earphones in so that I could avoid echo on the line.

I should have tested it during the dry run, but Camtasia Studio is only available on Microsoft Windows, and I had been in my Linux partition during the dry run. Using Camtasia to record the session had actually been Plan C. Plan A had been to use Skype and a call recording tool, but I kept encountering errors trying to dial toll-free number using Skype. Plan B had been to use vsound or a similar virtual audio loopback device on my Linux partition in order to record the speaker output, but since I had booted into Microsoft Windows to record the talk in Camtasia, I had to try to get it working on the desktop. I couldn’t install it because I didn’t have all the dependencies, and I decided to switch to Plan C (Camtasia audio) because that looked like it would take less time.

And the annoying thing is (of course, I only found out about this now, and I had to go and look it up myself ;) )… the conference lines have a great built-in way to do this. *2 (at least on IBM Canada conferencing systems) toggles call recording. After your call, you will get an e-mail with instructions for getting your file.

So next time, I’ll just use the built-in recording feature, and I’ll test that during the dry run.

Get rid of entry/exit announcements

You know those coming-in-and-going-out beeps that make the start and end of a call so hard to get through? You can get rid of them by calling your conference help line. Have your conference ID ready. Ask the system administrators to disable the entry/exit announcements for your conference. No more beeps.

Give people next actions or take-aways

Next time, maybe I can ask people to spend 5 – 15 minutes writing about their key take-aways from the session and what they’d like to hear about next. I could also have set up the survey to gather that kind of information right away. Good time to explore BlueSurvey. Lesson: Set up follow-up actions.

Take back presenter control

When the presenter quits, the Unyte session closes, even if the moderator is still around. This meant that I didn’t get to save the chat transcript. Fortunately, Camtasia recorded the whole thing (except with keyboard clacking noises instead of wonderful speaker insights). Based on the recording, I typed in the interesting bits from the conversation. Lesson: I should take presenter control back after the presentation.

Spread the cost of making notes

I was thinking of making up for the lack of audio recording by writing up detailed notes, but really, people should read Amy Shuen’s book. ;) It’s packed with all sorts of yummy goodness. But maybe people can help me put together a summary if I create it as a wiki page…

And more pie-in the sky improvements: wouldn’t it be cool if I could do hypersegmentation on webcast attendees, like the way the Human Capital Institute webcast e-mails distinguish between people who attended and people who didn’t? Some people put their e-mail addresses into Unyte, but it’s an optional field that many skip. I can’t put a unique token into Unyte, but I could possibly put a unique token into a redirecting script, or figure out how to fill out that part of the Unyte login form…

Anyway, that was an interesting experience, and I think I’d like to keep practicing this hosting-community-conference-calls bit until we’ve got it down to a science. That means we should start a Web 2.0 for Business Community Call calendar of ideas and potential speakers. I can also help other communities I’m part of. Hmm… This will be fun!

Here’s the recommendation I’ve just written for Amy’s LinkedIn profile:

Amy Shuen gave an insightful, thought-provoking, and highly engaging one-hour talk on the ROI of Web 2.0 for IBM’s Web 2.0 for Business community. She helped us gain a greater understanding not only of high-level ROI descriptions but also the details of calculating ROI using several timely case studies. We look forward to continuing the discussion started with her presentation. I helped organize the call, and I was impressed by her professionalism and obvious passion for her work. I highly recommend reading her book and/or engaging her as a speaker!

Sacha Chua (usual disclaimer: speaking for myself, not IBM)

UPDATE: Removed smiley image references. That’s what I get for copy-pasting from my internal blog… =)

A tale of a smarter planet

January 20, 2009 - Categories: ibm

I read in Marketing for Rainmakers (Phil Fragasso, 2008) that part of marketing’s job is to “continually remind the employee why he chose to join XYZ Company in the first place.” page 16 of the introduction:

It’s the marketer’s job to paint a picture of what lies ahead and create a compelling storyline that the employee will want to experience and help write.

Videos like this and initiatives like the smarter planet make me want to help write IBM’s story and the world’s. =)

You are in a maze of twisty passages, all different; a life of many interests

January 20, 2009 - Categories: geek, life

Someday, I’m going to look back and all the different threads of my life will make sense. =) It’s all in preparation for something very interesting, I’m sure.

Each twist adds another dimension to what I’ve already been able to do. Geeking out (grade school) turned into programming competitions (high school) turned into open source development (university) turned into blogging (also university) turned into research (master’s) turned into consulting and application development (now), which draws on blogging and open source development.

It seems this year I’m adding two ingredients to the mix: illustration and event organization. Today, I reached another personal milestone for event organization (hosted my first large teleconference with an external speaker; plenty of lessons learned!), and I reached another personal milestone for illustration and visual thinking (started making glyphs for fonts!). We’ll see how that goes. =)

I still enjoy getting into the flow with lots of code and bugfixes in the morning, and I’m slowly making progress on the Emacs book. (Thanks, Ian, for keeping me honest.) But learning new stuff is tones of fun, -and it’s interesting bringing everything together.

On a technical note:

I checked out the latest version of Inkscape from the Subversion source tree and I compiled it for our desktop, as that’s what the tablet is plugged into. I had come across Inkscape 0.47’s feature list while looking for the best way to get font glyphs into FontForge, and the new features are pretty cool.

I can’t wait to play around with this! =)

Upcoming talk: Totally Rocking Your Drupal Development Environment

January 21, 2009 - Categories: drupal, emacs, talk

On February 12, at 12 EST, I’ll be giving a teleconference presentation to the IBM Drupal Users Group. =) It’s internal-only, but I wanted to post it here because I often need to look up my abstracts and bios. The abstract is the same as the talk I submitted to DrupalCon09 (Totally Rocking Your Development Environment), but I’ll add some more IBM-specific tips.

Abstract:

Are you a lazy developer? If you aren’t, you should be! Find out about editor tricks that can save you hours and hours of effort and frustration. Learn about browser tips that make it easy to test your sites with different users, track down elusive bugs, and test. Develop the virtue of laziness by automating as much as you can with makefiles, the Drupal Shell, regression tests, and other goodies. Share your best tips during this interactive session. Use your new free time to rock even more!

Bio

Sacha Chua has an unshakable belief that life is too short to waste doing repetitive tasks that can be automated, an irrational love for tweaking her development environment, and an irresistible urge to share whatever she’s learned along the way. To learn more about her and Web 2.0, Drupal, Emacs, and other things she’s interested, visit [INTERNAL IBM URL] or http://LivingAnAwesomeLife.com (personal blog).

Inside IBM and want to get a copy of the calendar invite? Contact William Shaouy.

When I grow up, I will have friends and strangers over for dinner

January 22, 2009 - Categories: connecting, event, social

Every week for the past 30 years, I’ve hosted a Sunday dinner in my home in Paris. People, including total strangers, call or e-mail to book a spot. I hold the salon in my atelier, which used to be a sculpture studio. The first 50 or 60 people who call may come, and twice that many when the weather is nice and we can overflow into the garden.

People from all corners of the world come to break bread together, to meet, to talk, connect and often become friends. All ages, nationalities, races, professions gather here, and since there is no organized seating, the opportunity for mingling couldn’t be better. I love the randomness.

Jim Haynes, NPR

Someday, when I am my bestest self, I will host regular lunches or dinners, and I will bring interesting people together for conversation. In preparation for this, I’m learning how to organize events around themes, and I occasionally practice with dinner parties. I’d like to learn how to scale beyond the eight people who can comfortably fit around the dinner table. I’d also like to learn how to host these events without disrupting home too much, respecting the need for privacy and time. I’m still not comfortable holding regular restaurant-based events because restaurants are too noisy and not set up for good conversation, but I haven’t been to enough of these events to figure out how to set up a home for conversation salons. (We don’t have cocktail tables or endless stacks of saucers. ;) )

Someday…

Has anyone figured this out? Can anyone help me learn?

Hat tip to Keith Ferrazzi for the link.

The unexpected lightness of learning

January 22, 2009 - Categories: learning

I had been invited to participate in the usability studies for Pass It Along, an IBM peer-to-peer learning system. The project team was planning a revamp of the site, and Amanda had prepared a visual design for our feedback.

The logo she used was simple: passitalong, lowercase, with “it” shaded in a different color. I couldn’t help but comment on how wonderfully symmetric it was, with the two descenders (the bottom parts of p and g) at both ends of the word. No, really, look at it.

passitalong

It’s prettier than “Pass It Along.” I’d never noticed things like that before I started to learn about type, and now exposure and awareness lets me appreciate new things.

When I commented on the pleasing symmetry of the descenders, Amanda stopped and laughed. She said, “You know about descenders?! You always surprise me!”

So I told her about @fivetwelve‘s braindump of cool font resources (The Elements of Typographic Style (Bringhurst), ilovetypography.org) after he saw (on Twitter) how I enjoyed the Helvetica documentary.

Jargon is the secret handshake of different professions, a shibboleth that distinguishes between people inside and outside. It’s fun crossing boundaries and learning about people’s fields, and it’s fun being able to see things in a new light. =)

Reblogged: Web 2.0, Sharing, and Uncertain Times

January 22, 2009 - Categories: Uncategorized

Just posted some reflections on today’s mentoring conversation. Check it out on our team blog: Conversations with a Mentor: Web 2.0, Sharing, and Uncertain Times

Weekly review: Week ending January 25, 2009

January 27, 2009 - Categories: weekly

The sore throat from last week transformed into a nasty cold. Fortunately, working from home meant I was just as productive as I would’ve been otherwise (or even more so, considering that I didn’t need to go for a commute). Here’s the update based on last week’s plans:

w00t! Got everything checked off that list. In addition, I also:

And all that while dealing with a cold! =)

Next week (well, this week, really):

Braindump of conference networking tips

January 27, 2009 - Categories: conference, connecting, kaizen

I enjoyed reading Jeff Widman’s interview about networking tips. It reminded me of my rants about the “you’re just a student” brushoff and how typical schmoozefests are neither fun nor useful.

Unlike Jeff, though, I find conferences to be an awesome way to connect with people, and I do manage to scale up. I’ll scale up even more once I figure out a couple of things. ;)

So I thought I’d braindump what I’ve learned about making the most of conferences. Someday, this will grow up to be a proper blog post. In the meantime, enjoy, and add your own tips!

If you want to scale up, speak, organize, or volunteer

Speaking is _the_ best way to meet lots of people. It’s fantastic if you’re shy like me, because you can skip all the small talk. Heck, people will come up and start the conversation. People will recognize your name from the program. People will e-mail you afterwards asking for copies of the slides or asking questions that didn’t occur to them during the session. You’ll also usually get into conferences for free, hang out with really interesting people during speakers’ dinners, meet great organizers, and have a much better conference experience than practically anyone else.

If you’re interested in a conference, submit a session for it. What you’re interested in will probably be something other people are interested in. Submit a proposal with a catchy title. Show the organizer you know how to communicate – link to your blog, mention your previous speaking experience, maybe even link to a video of you on YouTube. If you’re entertaining and at least a little informative, you’ve got good chances of being selected. If you don’t get accepted, well, no problem! If you do get accepted, you’ll rock the conference so much more.

If public speaking scares you and you don’t want to work on that yet, see if you can help organize the conference. You’ll need to do a lot more running around, but you’ll connect with a lot of people before and after the conference. Every aspect of organizing conferences has lots of rich networking opportunities. Not only that, you’ll also get to hang out with lots of really interesting people during the speakers/organizers’ dinner.

If you can’t commit to organizing the conference, see if you can volunteer to help out during the event. The registration booth is a terrific place to meet everyone and start matching names, faces, and organizational affiliations. If you’re helping with speakers, that’s a great way to chat with them, too.

One time, I wanted to get into mesh conference, but all their student tickets were sold out. I volunteered for the first day. When they asked if anyone wanted to help at the registration desk, my hand was probably the first one in the air. I checked tons of people in, greeting each of them a cheerful good morning, trying to remember as many names and faces as I could. It was _so_ much fun for me to greet people and make sure their conference got off to a great start! After the morning rush, traffic dwindled to a point where I could catch the last part of the keynote. All throughout the afterparty in the evening, people kept coming up to me and complimenting me on what a great job I did at registration. I was surprised to find out that people noticed and valued something like that! (I also got quite a few job offers and half-joking VC offers at the event… ;) )

So try to speak, organize, or volunteer. Your conference experience will be _so_ much better.

Pre-conference homework

Blog about the fact that you’re going. Check out other people’s blogs. Find out the Twitter tag for the conference. Tell your coworkers you’re going, and ask if there are any sessions they’re particularly interested in. Read the program and plan your attendance, making sure you have plenty of time for hallway conversations. Blog about the sessions you’re planning to attend. Look up the speakers. Look up other participants. Look up friends in the same city. There’s plenty you can do before a conference to make the most of your travel and event time.

During the conference

Even if you’re just a regular participant, you can do a lot to make yourself memorable and make it easy for people to connect with you.

Guide the conversation

Don’t let people inflict the “What do you do?” conversation-killer on themselves or other people. Use more engaging questions that take advantage of your shared context, like:

Or ask people about what they’re passionate about, not just what they do. Ask them to tell you a story about a recent accomplishment or challenge. Ask them what one thing would help them be even more successful. Ask them about why they got into their line of work. Keep an ear out for things you can help with or people you can introduce.

If you find yourself in a group conversation in the starting stages, you can really improve the conversation experience by shaping the conversation with questions. Get people talking.

Nametags

If your nametag is on a lanyard, it’ll almost certainly be too low for people to politely read it during the handshake. Shorten the lanyard or pin it close to your right shoulder. If you have a stick-on or pin-on name badge, it goes on your right shoulder, not your left, following the path people’s eyes follow when they shake your hand.

I typically carry my own nametag, which I might wear in addition to the conference-supplied nametag. My nametag makes sure both my first and last name are readable, and includes a tagline. I’ve used variations of “Tech evangelist, storyteller, geek”, or “speaker, writer, storyteller, geek” (for non-technical audiences), and I usually get interesting conversations started around those keywords.

Business cards and homework

Carry business cards, a notebook, and a pen. Women’s blazers often don’t have pockets (grr), but I’ve seen both men and women use the back of their conference badge to hold business cards for quick access. If possible, put your picture on your business card, or have personal cards that include your picture, tagline, and a few suggested things to talk to you about. Putting a list of talking points or topics on the front or back of your business card is a great conversation help, because it makes it easier for your conversation partner to learn more about potentially common interests. As for the picture – we’ve all had those moments of going through stacks of business cards and not remembering who they came from. Make it easy for people to remember you.

Have a blog, and put its address on your card. That makes it easy for people to look you up afterwards, get to know you, and feel that you’re worth talking to.

Create value with your card. I sometimes make custom business cards for an event. For example, at a networking event, I might put a list of my top five networking books on the back of my business card. It’s a nice little thing, and it sometimes gets people talking about you.

Many people won’t have their own business cards, which is why you should have a notebook and a pen. The Moleskine notebooks are great because they have pockets in the back for business cards. Notebooks are also very important because they give you a way to write down stuff about people you talk to, which makes it easy for you to remember why you have someone’s business card. See networking with moleskines for why you should keep your ears open for the opportunity to give yourself homework. THIS IS KEY. If you find out that someone has a problem you can address or needs to meet someone you can introduce them to, you have a good reason to follow up with them. Don’t just collect business cards – that’s like collecting friends on Facebook. ;)

Food and drink

Carry your drink in your left hand, so that your right hand doesn’t get cold and clammy. This is important for handshakes.

Eat very lightly, if at all. It’s hard to talk with your mouth full, and it’s hard to circulate with a plate full of stuff. Sometimes I snack on a granola bar before going to an event. Hanging out near the food or the drinks is still a good idea, though, as most people will go by you at some point. Having some of the food also makes it easier for you to make conversation about it.

Words

“Nice to meet you” is a dangerous phrase, especially if you’re like me and you often forget names or faces. “Nice to see you” is safer because you can use it for people you’ve just met and for people you’ve already met and should remember.

Don’t be afraid to confess that you’ve forgotten people’s names. Ask them again, and make a point of using that name.

If you’re on the receiving end of this–someone has forgotten your name, or they say “Nice to meet you” when you’ve met before–don’t embarrass the other person by pointing out the error or putting them on the spot. If there’s the least bit of hesitation about your name, introduce yourself again, and give a few keywords that may help jog people’s memories. Good manners is about making other people feel at ease.

If you have a networking buddy, conferences are much nicer. They can step in and introduce themselves in order to elicit a name from someone you don’t want to admit you’ve forgotten. If you’re looking out for potential introductions for each other–interesting people your networking buddy might want to meet–you’ll cover more of the conference and have more interesting conversations.

After the conference

Blog about what you learned from the conference. If you can do this during the conference, great! You can tell other people about your blog. People often want to be in more than one session at a time, and your notes can be quite valuable. Blog a post-conference summary, too.

Follow up with people through e-mail or phone calls. It helps to have a good e-mail system that makes it easy to dash a quick note off to everyone saying it was nice to see them, sharing a link to your conference notes, and adding any notes on what you promised to follow up on.

A conference is a fairly big chunk of time, but it’s a great way to catch up with old friends and make new connections. Make the most of it.

Further reading

Here are a few of my favorite networking books with conference-related tips:

Relentless improvement

This is how I think I might scale up even more:

Someday, I’ll get to the point where I’m organizing conferences and other events, bringing lots of interesting speakers and attendees together for great conversations, and introducing people all over the show. =)
I’ll also have built a system for making it easier for other people to do pre- and post-conference networking. It’ll be lots of fun. Someday… =)

Making things up

January 28, 2009 - Categories: learning, life

So today, I contributed in some small way to the development of an Enterprise 2.0 capability maturity model. We’ll put it on the Web as soon as Aaron and Bernie have figured out how to phrase things.

This is interesting for me because it’s not the kind of thing I would’ve thought I had anything to contribute to. Who, me? I’m new to consulting. I haven’t seen enough companies to be able to talk about maturity models for organizations.

Looking up Maturity? In fact, I usually talk about the ground-level view: how can a Gen Y (and probably entry-level) employee make the most of Web 2.0 at work, how can new employees contribute to big strategic visions like a smarter planet, how can _you_ get professional benefit from blogging. I primarily influence people on an individual level. Here’s how you can network more effectively. Here’s how you can get immediate personal benefit from wikis, even when no one else wants to add stuff. Here’s how you can connect with others. Sometimes I talk to teams and communities, and sometimes I talk about meta stuff – patterns I see across teams and communities.

But I don’t have that 50,000-feet view. I don’t have the deep and broad experience that lets me really get in there and be a thought-leader.

I’m an experience-leader. I do weird stuff like sharing as much of what I’m learning as I can. Then I find out afterwards that _that’s_ weird. Then we have a great discussion about what’s different about it, and whether that’s the direction we want to go in the future, and what can we do to help other people explore it. That’s why I’m more of an experience-leader rather than a thought-leader. This isn’t bad. It’s like Julius Caesar leading from the front. But I don’t yet have the perspective and vocabulary needed to recognize and articulate patterns.

Bernie and Aaron do, which is why it’s great that my team isn’t made up of just Generation Y. I’m really glad I work with savvy, experienced consultants, and that I’ve got this big network of people to ping whenever something like this comes my way.

But no one I asked had a client-ready Enterprise 2.0 maturity model slide deck, and lots of people were interested in it. So I decided to put something together because a first draft is a first draft. Once the draft is out there, it’ll be like a piece of sand in an oyster. Someone else is going to come along and make something better from it, and eventually we’ll get to pearls of wisdom that may or may not resemble my first shaky draft.

So watching Bernie and Aaron take my rough hand-waving characterization (based on the groups I’ve been watching or helping) and do good things with it was a great learning experience. Bernie three-quarters-jokingly ribbed me about delegating to him. I winced, because one shouldn’t get into the habit of delegating work to mentors. It’s good to have mentors who can joke with you about that, and then turn around and teach you about the things you didn’t know you could learn.

Someday, I’m going to learn how to see all these common patterns and talk about them in ways that make other people go Aha!. I’m not there yet. I’m good at talking about the small stuff, the concrete stuff that people can work on, the little next actions they can do, the immediate personal benefit that they can get. Someday, I’ll also be good at showing people the big picture. The cool thing I found out today is that I can learn how to do this by making something up and asking other people to help me validate it – figure out where things don’t make sense and figure out where things do.

If, like me, you’re also intimidated by the idea of understanding strategy but you want to learn, give it a try. Make something up and ask a mentor (or two). You’ll probably learn tons in the process. =)

Also: a whole slew of talks and events!

January 28, 2009 - Categories: conference, drupal, event

My session on Totally Rocking Your Development Environment has been accepted for DrupalCon 2009, hooray! Thanks!

This is great! And handy, because I’ve already promised to give an IBM-flavored version of the talk at the first community call for the newly-formed (or -revived, not sure) IBM Drupal community, which means I will have to have it all ready to go by two weeks from now instead of two months.

Two weeks from now is also when I’ll be giving a lecture on Enterprise 2.0 and knowledge management to Dorit Nevo’s MBA class at Schulich.

And I’ve volunteered to help organize or otherwise make these upcoming conferences awesomer: IBM Web 2.0 Summit, DrupalCampTO, Mesh.

And there’s LifeCampTO.

Busy, busy, busy.

Fortunately, talks are so much more fun to prepare when you think of them as learning opportunities. And I’ve volunteered to help conferences out with either things I know how to do well (say hi to people at registration desks, etc.) or that I’m interested in transforming/scaling (abstract submission, voting, schedules) or that I’m interested in learning (selling sponsorship, buying merchandise). And the conferences are a bit further out.

But “slew” is such a good word, because if I’m not careful and if I don’t intentionally slow down as I get into the busy-busy-busy times, then another sense (slew: past tense of slay) may figuratively kick in. That wouldn’t be fun at all.

It’ll all be great fun, though, and I’m sure I’ll learn tons! You’ll hear about all of it here, of course.

So if I’m slow at e-mail, you know why. =)

Scarcity versus abundance in knowledge management

January 29, 2009 - Categories: connecting, web2.0

If the thought of people stealing your ideas is what’s stopping you from thinking out loud on a blog, you’re not alone. It’s a valid fear. If you’re afraid of your ideas being stolen, your mindset is probably that of knowledge scarcity – that you should hoard knowledge because that’s what gives you power. That makes sense to a lot of people.

Another mindset is that of knowledge abundance. There are plenty of ideas to go around, and sharing knowledge gives you power. That makes sense to a lot of people, too. Here’s a quote from someone who got it a long time ago:

Don’t worry about people stealing your ideas. If your ideas are any good, you’ll have to ram them down people’s throats.

Howard Aiken, computer scientist, 1900-1973

I like talking about my ideas and work-in-progress, and I do it as much as the confidentiality rules and IP guidelines of my employer allows me to do. I think there are tremendous advantages in following a knowledge abundance mindset. I may have wailed about not having a thesis topic (because other people were doing much cooler stuff) or not being able to write a book (because wonderful open source maintainers were merging my suggested features into their code), but I consider that a net win. And then I move on to coming up with the next idea, and the next, and the next.

If you talk about your ideas, you get practice in talking about your ideas: communicating the key points, the benefits, the risks, the challenges and opportunities. You get questions that can help you refine your ideas. You get all these opportunities to make your ideas better. You get to meet a wide range of people who might be able to help you make your idea happen. You grow your network. You build your reputation. And, of course, you might make things work.

I love it when people steal my ideas. Sometimes one of my ideas is picked up by someone else and they do cool stuff with it. Sometimes someone else comes up with the same idea and makes it happen. FANTASTIC! =) I get the validation that the idea is great AND the benefit of being able to use the new product or service without doing any of the hard work. =D I love it when this happens. I hope people steal more of my ideas.

Yes, there are unscrupulous people out there who may steal your idea and then go after you for having it. But there are far more awesome people out there who will take your idea and help you build on it. So it’s really up to you… You can go the lonely inventor route, working on something that hardly anyone will see until it’s ready, and worried about people stealing it anyway because a company with deeper legal pockets can still come along and harass you. Or you can open it up, get a lot more leverage on your time and talent, and create a lot more value for more people in the process.

Try a small experiment and see if you like it. Share a little. Chances are, the sky’s not going to fall on you, and who knows? You might even make a serendipitous connection, learn something new, make something happen. =)

Weekly review: Week ending January 30, 2009

January 30, 2009 - Categories: weekly

From last week’s plans:

In addition:

Next week:

Yay!

Monthly review: January 2009

January 30, 2009 - Categories: monthly

What an wonderful start to 2009!

Despite the economic challenges, there have been many small things to be happy about. I started the year with two things I wanted to learn more about: organizing events and thinking visually.

Well, you get what you ask for! <laugh>

Event organizing:

I hosted the first Web 2.0 for Business community call with Amy Shuen as our external speaker. She spoke about the ROI for Web 2.0 at work, and people really enjoyed the interactive discussion. I wish I’d figured out how to record it on the teleconference before the call, instead of after! Next time, I’ll get that all sorted out.

I’ve also volunteered to help out with some real-life events. I’m organizing LifeCampTO tomorrow. It’s an interesting experiment because people shared what they’re looking for and what they can help with beforehand, and this allows everyone to do that kind of face-to-face facilitation I did at the Greater IBM Connection party. It’ll also be an interesting experiment in using the sound and video system at a venue. Fortunately, the Linux Caffe folks are nice people, and the people who’ve signed up for the event can help me figure all of this out too. =)

And then there’s DrupalCampTO, too. That’s going to teach me about asking people for money. =) And figuring out swag that makes people smile and helps people connect while not being a waste of the planet’s resources. =)

As for visual thinking:

I started playing with numbers in calculating my personal ROI on shared talks, and then I played with drawing it. I also played with jazzing up an otherwise bullet-y presentation. That was fun.

Other highlights:

Next month:

February 2009

Lessons from LifeCamp

February 1, 2009 - Categories: braindump, connecting, event

I had a great time organizing and learning from LifeCampTO at Linux Caffe on January 31, 2009. We started at 10:30 AM, and the conversations continued until around 2 PM. Sixteen people attended, and we had tremendous fun.

I brought along some markers and a pad of paper. Each participant had a piece of paper with a number on it, and they wrote down their e-mail address, what they wanted help with, and what they could offer help with. People then stood up and introduced themselves. As each person talked about what he or she wanted help with, people who could help them raised their pieces of paper up, and the person introducing himself or herself wrote those numbers down. As each person talked about what they could help with, other people who wanted help raised their pieces of paper, and then wrote the corresponding number down. I collected all (well, almost all – one participant is missing!) the papers afterwards, and I promised to e-mail everyone the appropriate introductions.

During the introductions, a few general-interest topics emerged: productivity, entrepreneurship, and networking. We decided to have a few big 20-minute conversations around each of those topics instead of breaking up into lots of little conversations. Here are my notes from those conversations:

Productivity

Self-employment, entrepreneurship

Networking

My next step is to make a spreadsheet, cross-reference the connection requests, and e-mail each person individual notes for follow-up. =)

If you were there: please keep me up to date on what you’re doing and the follow-up connections you make, and link back to this post so that other people can learn more from the conversations we had. =) If you tag your posts with lifecampto and add a comment here with the link, they’ll be easy to find, too!

Blog posts:

It was great fun. Thanks to everyone for helping make it happen. =) I’m looking forward to following up!

Kitty TV

February 1, 2009 - Categories: cat, photography

Peanuts sprinkled outside glass door + squirrels + cats = fun for everyone

LifeCampTO social graph

February 2, 2009 - Categories: connecting, social

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.

Kaizen: unsqueaking

February 3, 2009 - Categories: kaizen, life, reflection

It’s really kinda strange. Seven hundred people? Not a problem. I can deliver a presentation. Two people? I get a lot more fidgety.

When I’m talking about something I’m passionate about, I find myself speeding up, flicking through things, jumping on tangents, even shaking ever so slightly. This is good for infecting people with enthusiasm, but a little more challenging for comprehension. ;)

It would be good to be able to control this so that I can match other people’s paces, and so that I remember to breathe. ;)

There are several aspects I can work on, and several ways I can work on them:

Someday, I’ll get to the point where I can talk to people at any level without anyone feeling nervous or overwhelmed. =)

Conversations about networking; scale, structure, and skills

February 4, 2009 - Categories: connecting

I had tea/hot chocolate with Ida Shessel at Linuxcaffe last Monday. She had come across me through a Google alert when I first blogged about Anne Baber and Lynne Waymon’s book, “Make Your Contacts Count”. When Lynne featured my recent story about using online social networks to turbocharge offline events in her newsletter, Ida reached out with some questions around networking.

One of the key ideas that came up in our conversation is how many authors and coaches who focus on social networking haven’t quite made the jump to making full use of online social networking. I’ve come across this multiple times. Each time I meet someone who has mastered traditional forms of social networking but is curious about the things I take for granted, I love sharing what I’ve learned. I learn so much in the process.

Last night, at a small get-together I quickly organized for a colleague from the US, I briefly chatted with Will Pate about social networking. He’s another Gen Yer who’s given networking a lot of thought and who makes full use of social media. He’s starting to do a lot of work related to venture capital, and he told me of a study that showed that in that area, the size of your social network correlates with success. I told him of my interest in scaling up networking, creating structures to facilitate connection, and experimenting with things like LifeCampTO. Plenty of follow-up conversations to come, I’m sure!

This weekend, I’ll be talking to Jeff Widman about similar things. He’s also Gen Y and well-connected. (Come to think of it, I need to introduce Will to Jeff. I think they’ll get along really well.)

So, what’s different?

I’m starting to pick up a pattern. I often find myself talking about scale and structure. I also bring a different collection of skills than those I see in primarily business-oriented networking books.

Let’s talk about scale. I enjoy finding opportunities to help or create value for as many people as I can. I rely heavily on associative memory, my notes, the Internet, and group get-togethers in order to do so. Whenever I meet a new person, hear about an idea or a need, read a book, or experience something new, I can get economies of scale because I can connect that person, idea, need, book, or experience to people I’ve met, resources I’ve come across, and things I’ve learned. The more input comes in, the more combinations I can make – so I get network effects as well. It’s a huge game of connect the dots, and I love it whenever I can bring people, ideas, and resources together.

The Internet lets me scale that initial value-creation much better than I can in face-to-face events. I might create less value and I may not be able to make as deep a connection, but I can reach more people and open up the possibility for some people to come forward and continue that conversation with me.

So then networking isn’t a way to gain power or get favors, but almost a game of finding out what could help a person rock, and how to help make that happen. This is related to Granovetter‘s theory about weak ties. If I can build a large network of weak ties, then I can help span boundaries, spread good ideas, bridge gaps. I don’t need to be best-friends-forever with everyone, but I can create a lot of value if people feel comfortable telling me what could help them make things happen and if I’m good at finding people for whom that’ll be a win-win proposition. As for ideas and resources – I can share those practically for free!

That’s why I’m interested in scale. The more people I know, the more ideas I come across, the more resources I find, the more connections I can make between them. As I learn more about this, I’ll be able to reach out to more people, and I’ll be able to connect more dots.

Scale requires structure. While I’ve read about networkers with prodigious memories who could remember every little thing about people even after decades of not seeing them, I’m not one of those yet. I suspect most of them had some kind of cheatsheet anyway. ;)

What I am, however, is someone who enjoys exploring or building the tools needed to try scaling up. I know the ins and outs of my contact management system, and have heavily customized it. I tinker with mail merges that cross-reference all sorts of data. And I’m really curious about the next level: building structures to help other people connect (hence my interest in events). That’ll help me scale even further. I don’t have to know everyone directly. If I can help people effectively connect to a connector–one of those people who just loves playing this game of connect-the-dots–and I can help the connectors connect to each other so that they can refer requests, that would be awesome.

In order to build that kind of structure, I’ll need to develop my skills. The quirky thing I bring to networking is my computer science geek background. I happily build tools, analyze networks, take measurements, draw graphs. As we figure more things out, I may be able to build more of that into systems for more people to use. I’m a big fan of relentless improvement, and I’m always looking for little ways to make things better, little ways I can experiment. I enjoy sharing as much as I can, which is why I think out loud on this blog. I’m not the only one with this combination of quirks, but it’s certainly not something you’ll find in a typical business networking book. ;)

I’ll still need to develop all the other skills. I’m still unpolished when it comes to conversation. I squeak when I’m excited. ;) My communication style isn’t very flexible yet. I can learn how to adapt better. I could probably use a gradual wardrobe update, and over time, I’ll develop my personal style. I can get better at nurturing strong ties, too. And it’ll be fun building on my quirks and seeing where they take us!

There are interesting opportunities opened up by my quirks and interests that traditional networking may not have explored yet. I’d love to help figure things out and make lots of things happen for lots of people along the way.

Thanks for letting me think out loud! =) What do you think about networking, and how would you like to grow?

A thousand ways that didn’t work

February 5, 2009 - Categories: geek

I spent the entire afternoon trying to figure out how I can do a live teleconference with screensharing so that I can show people actual Drupal tips and tricks instead of handwaving through a bunch of slides. Rube Goldberg would probably have approved of all the different things I tried. Unfortunately, none of them worked. <sigh>

The web conference application-sharing feature is only available on Internet Explorer. My development environment is definitely Linux-based. Here are all the things I tried:

It was an exercise in frustration, but I needed to probe this to see if it was doable. I guess it’ll be back to slides for the teleconference, with more details in blog posts or recordings. For my talk at DrupalCon, I can do it live from Linux (assuming I get the projector stuff sorted out).

Ah… It’s a really good thing that W- and J- are so good at cheering me up! =)

Weekly report – Week ending February 8, 2009

February 8, 2009 - Categories: weekly

From last week’s plans:

In addition:

Next week:

Finally got my new landing page off the ground! =)

February 8, 2009 - Categories: drupal, geek

I’m starting to get the hang of using Web analytics to look at how people are moving through the site. I’ll go through the numbers in detail, but if you’re in a rush and you just want to check the potential landing page out, I’d love your feedback.

The numbers: Both sachachua.com and livinganawesomelife.com redirect to the front page of this blog, which contains links to all the other pieces. Last month, 1015 people visited this page. About 50% of those people were new to my site. This represents about 7% of the total new visits to the site (I get lots of people coming in through search engines), but that’s still 500 or so people who might be confused by the range of things I write about. Of all the visitors to the front page (including people who’ve been here before), about 166 people followed the “About” link from the home page. Others clicked through the categories I feature along the top.

I’d like to get your feedback on the new site landing page first, before I make it the default. I’m also curious about A/B testing, so if I can figure out how to do that consistently (so that once you’re either A or B you don’t switch unless you want to), that’ll be something cool to learn. =)

Anyway, here’s the potential landing page. It’s Drupal-based, mostly done with unmodified  third-party modules. ;) I’d love your feedback. You’ll also notice that it’s starting to accumulate my reading history. I wrote a Perl script to grab the data from the Toronto Public Library, and it still needs some tweaking to make it more useful. I’ve already started using it to keep track of my notes, but those are private for now. =)

Whee!

DrupalCampToronto organizing notes

February 9, 2009 - Categories: Uncategorized

We had the second organizers’ meeting for DrupalCampToronto 2009 today. I started a number of Google Documents for keeping track of minutes and tasks, and I also shared the sponsorship letter I’d revised extensively. One of the organizers mentioned that he had already found the letter useful. Hooray!

What worked well:

What can work even better next time:

Learning more about organizing events… Cool!

Planning meetings, get-togethers, and interviews with AgreeADate

February 9, 2009 - Categories: connecting, emacs, geek, life, productivity

One of the reasons why I love thinking of ways to help people rock even more is that I often end up learning a lot in the process.

For example, last week, I needed to coordinate schedules with Katie Bartlett, Jeff Widman’s assistant, for a chat with Jeff about networking. I thought about how much e-mail was sent back-and-forth figuring out times and timezones, and I multiplied that by the number of appointments Katie probably needed to arrange. That sounded like a lot of work. If I could find a tool to make that easier for our appointment, and she used that tool to organize lots of other appointments, then that would be great!

I checked out a couple of tools such as TimeToMeet, ScheduleOnce, and AgreeADate. Of the tools I tried, I liked AgreeADate the most because it made it easy to create different kinds of schedules and it supported timezones. I sent Katie a few potential timeslots for my chat with Jeff. After she replied, I confirmed the time that was mutually convenient. That wasn’t hard at all.

Then I explored the other features. I found out that I could create a schedule where people could pick a slot. AgreeADate allowed me to specify how many people each timeslot was limited to, and how many slots people could choose. This opened up all sorts of possibilities, and has become my favorite feature!

Things that I’d formerly had been worried about scheduling became so much easier to schedule because I could create all the slots in parallel and then let people choose the slots that hadn’t been taken yet. For example, I’d been meaning to try outsourcing some technical and personal tasks, but scheduling interview times sounded like a hassle. With this system, I just had to set all the slots up and invite people to choose the timeslot most convenient for them. Yay!

AgreeADate isn’t perfect, but it makes scheduling things so much easier for me, and it lowers the barrier enough for me to go and make things happen. In the past week that I’ve been trying it out, I’ve:

You know, stuff that would’ve taken way too much e-mail if I had to do it by hand. =)

I’d like to see it integrated with my Google Calendar, and one of the AgreeADate folks told me that that’s the next thing on their roadmap. I found myself wondering which slots I’d tentatively offered for other events, and being able to see all the tentative slots overlaid on my calendar would be fantastic.

In the meantime, I read the confirmation e-mails in Emacs Gnus, use Remember and Org to create an appointment hyperlinked to that mail, and then use my own code, the twit.el library, and the Twittercal service to create an appointment on my Google Calendar (on google.com), which is then shared with my Google Calendar on sachachua.com thanks to the joys of Google Apps. It’s quite Rube Goldberg-esque (as many of my bubblegum-and-string tricks are), but so far, it works. Maybe this’ll be something I’ll outsource (except perhaps without the Gnus + Remember + Org part) once I’ve gotten that virtual assistance thing sorted out. =)

For the geeks, some Emacs Lisp to mash together with Org, TwitterCal, Google Calendar, and twit.el (some wizardry required):

(defun sacha/org-as-gcal-quick-add ()
  "Convert the current SCHEDULED: timestamp and header into a GCal quick add item."
  (save-excursion
    (org-back-to-heading t)
    (setq end (save-excursion (outline-next-heading) (point)))
    (when (re-search-forward org-scheduled-time-regexp
			     end t)
      (let (ts default-time stamp plain s0 srp s1 s2)
	(setq ts (match-string 1)
	      default-time (apply 'encode-time (org-parse-time-string ts)))
	(when (or (setq stamp (string-match org-stamp-time-of-day-regexp ts))
		  (setq plain (string-match org-plain-time-of-day-regexp ts)))
	  (setq s0 (match-string 0 ts)
		srp (and stamp (match-end 3))
		s1 (match-string (if plain 1 2) ts)
		s2 (match-string (if plain 8 (if srp 4 6)) ts)))
	(cond
	 (s2
	  (concat (org-no-properties (org-get-heading t)) " on "
		  (format-time-string "%x" default-time) " from "
		  (org-get-time-of-day s1 'string t) " to "
		  (org-get-time-of-day s2 'string t)
		  ))
	 (s1

	  (concat (org-no-properties (org-get-heading t)) " on "
		  (format-time-string "%x" default-time) " from "
		  (org-get-time-of-day s1 'string t)
		  ))
	 (t
	  (concat (org-no-properties (org-get-heading t)) " on "
		  (format-time-string "%x" default-time)
		  )
	  ))))))

(defun sacha/org-to-twittercal (string)
  "Post STRING to TwitterCal. See http://www.twittercal.com for details."
  (interactive (list (read-string "Event: " (sacha/org-as-gcal-quick-add))))
  (twit-post-function twit-update-url (concat "d gcal " string)))

I’ll keep you posted on my experiments! =)

Talking about Enterprise 2.0 and knowledge management

February 10, 2009 - Categories: enterprise2.0, talk, web2.0

UPDATE: Fixed Wikipatterns URL

UPDATE:

I’m giving a lecture on Enterprise 2.0 and knowledge management at the Schulich School of Business (York University). There’s so much to talk about, but I’d like students to walk away with:

What I’ll discuss

Enterprise 2.0 encompasses many things. For this talk, I’ll focus on how emerging tools help us organize and share ideas, information, and experiences. I won’t dwell on emerging tools for communication, collaboration, or other aspects of Enterprise 2.0, although as you’ll see in a bit, those capabilities are difficult to separate from knowledge-work. I’m looking forward to finding out what tools class members are familiar with, and which they participate in: blogs, wikis, social networks, asset repositories, and things like that.

Relevance

Let’s start with why it matters. Why should these MBA students care about Enterprise 2.0 and what I have to say about it, and why do I care that they care?

The first and most immediate reason is that their professor has assigned them (or will be assigning them) a paper on knowledge management and Enterprise 2.0, and my lecture can help them find out about resources and understand some of the key concepts.

The second and much more valuable reason is that if they start applying these concepts now, they can deepen their knowledge, broaden their network, and strengthen their reputation – helping them differentiate themselves from other applicants when they look for a job, or helping them differentiate themselves from other companies when they start their own. These ideas can also help them share even if they’re not experts, make a difference even as newcomers, and create value on a scale that was difficult to do before.

The third and most far-reaching reason is that if these MBA students graduate and go into companies with a deeper understanding of what Enterprise 2.0 is like, then eventually, these seeds can grow into the bottom-up and top-down support that can really change the way we work. In Enterprise 2.0, many companies look to new recruits and fresh graduates for a deeper, almost instinctive understanding of new tools and concepts. If these students understand the ideas and tools behind Enterprise 2.0, then they can help their companies move forward.

That’s why I care, and I hope to help them learn more about why they should care too.

Cultural and technological changes

On the surface, it’s easy to talk about tools. E-mail, blogs, wikis, asset repositories, shared drives, group websites… All those tools have different capabilities, and each has advantages and disadvantages. If you search the Net, it’s easy to find examples of companies using any of these tools for knowledge management.

What I’m really interested in, however, is culture. Mindset. Attitude. And I’m interested in that at the individual, team, community, network, organization, and ecosystem level.

So I came up with a list of interesting contrasts. The core idea is still the same (“Knowledge is power”), but there are all sorts of aspects around it.

Document, person, or interaction? What is “managed” under knowledge management? What does knowledge management really mean? Is knowledge all about documents that need to be organized, categorized, and stored? Does it live it people’s heads, so the “killer app” is an expertise locator? Does it come out in the interactions between people and other people, resources, and situations? I want to call their attention to different ways of thinking about knowledge, so that they can be aware of their perspective and they can recognize the perspectives taken by the different papers and resources they’ll come across.
Hoard or share? Is knowledge something to be hoarded and kept secret so that you can gain power by controlling access, or is it something that you share widely so that you can gain power that way? The difference between these two mindsets is one of the key challenges of adoption.
Formal/structured or informal/unstructured? (or the spectrum) Is your end-goal a neat repository of cleaned-up documents, or a platform for ongoing work? In the past, most knowledge management initiatives focused on formalized assets. With Web 2.0 and Enterprise 2.0, we’re finding that making it easy to share ongoing work can create a lot of value and get better participation. That brings in its own challenges, too, like finding things. Taxonomies vs folksonomies also come into play.
Experts or novices? Do you want contributions only from experts, or can you get value from the work of novices and amateurs? This has implications for learning and search.
One place or many? Are you looking for just one tool for storing, organizing, and searching all the knowledge, or are you looking at ways to integrate many tools with each other? It’s a mess either way. The mix of mindsets adds conflict and tension to adoption, so watch out for that.
Knowledge management or knowledge creation? Do you see KM as the end-point of a process, or as something done throughout a process? This affects adoption, culture, and lots of other things.
Inside or outside? Is the knowledge and experience you’re looking for entirely within your organizational unit, or can you find a way of engaging and learning from people outside?

Hmm, I think Wikipedia would be a good example to use, because they’re probably familiar with it, and I can also talk about corporate use. I’d like to talk about blogs as well, because that’s something they can take away.

Resources

Next actions

If people want to try these ideas out, they don’t have to wait until they graduate and join a company with Enterprise 2.0 tools.

Here’s how to get started:

I don’t feel anywhere near ready, but I do feel as if I have something to share, so that’s good. =)

Book workflow

February 11, 2009 - Categories: kaizen

David Seah asked people how they process books. Here’s what I commented:

I read a _lot_ of books, and I frequently refer other people to books that match their interests. When I do so, I love being able to point people to the exact page or quote they should check out, or to send them a summary of the key points in each book. I also enjoy giving books away.

Detailed book notes and a good workflow make this easy and convenient.

ACQUISITION: I often go on reading sprints, checking out lots of books on one topic from the library. Reading many books on one area allows me to read them faster, because many books contain fluff and things I’ve already read in other books. All I’m doing when I’m scanning a non-fiction book is looking for the nuggets of information or insight that are unique to that book.

READING: I keep track of pages with interesting passages on them. Sometimes, if I’m diligent, I use slips of paper as bookmarks. Most of the times, I dogear the lower corner of the page, folding the small dogear towards the side of the page I want to remember, or double-folding the corner if I like both sides of the page. Again, I’m just scanning for “the good stuff.”

CAPTURE: After I finish a stack of books, I scan relevant passages into my computer. I usually do this on Sundays or on days before my books are due. I review each page to see whether I still want to capture the information on it, and then I place the book face-down on a flatbed scanner and scan passages with the 600 dpi line-art setting required by OCR. All of the images get saved into a directory. Sometimes I’ll dictate passages to my computer instead, using Dragon NaturallySpeaking to transcribe.

TRANSCRIPTION: I use the free and open source Tesseract optical character recognition program. It’s pretty darn good. I’ve written a batch file that processes all of my pending images, filing finished images in one directory and text in the other.

ORGANIZATION: When I find free time, I review the transcribed text, narrowing it down to just the passages I wanted, and organizing items into more of an outline. I make any TODO items for follow-up actions, too. I also take that time to think of who else might be interested in a book or excerpts from it, and I recommend the book to those people. (I picked up this tip from Love is the Killer App – handy!) All of these notes go into a somewhat structured text file on my hard disk, where quotes are indexed by books and page numbers, and tagged by topic. When I remember, I write down the ISBN and other edition information as well.

REVIEW: Every so often, I flip through random book notes. Handy way to refresh my memory and think of other connections the books remind me to make.


I’ve started copying my book notes into a custom book-notes management system I’m building. That book-notes management system also automatically builds my reading history based on the books I’ve checked out (handy because I’m too lazy to update sites like LibraryThing ;) ), and eventually it’ll help me see which books are in which stage of processing.

One thing that would make this even better would be for me to figure out what to do during book-scanning so that I don’t get distracted but I still use that time productively. ;) My hands are occupied because I’m scanning books, and I find that if I’m reading something else (either online or offline), I get distracted and I forget to finish scanning my books. Maybe listening to great music or to a podcast will do the trick. =)

Another thing that would make this process even better would be to hook it into a web-based book review system, which I may build into that system I’m putting together. That way, I can easily share my book recommendations.

The book “How to Read a Book” has many tips on choosing the appropriate approach for books and processing them effectively.

OCR works really well for me. Try it out!

Notes from Enterprise 2.0 and knowledge management talk at Schulich

February 11, 2009 - Categories: enterprise2.0, talk

Thanks to Michael Woloszynowicz for typing up these notes from my talk last night!

Recording of Enterprise 2.0 and Knowledge Management lecture

February 11, 2009 - Categories: enterprise2.0, kaizen, presentation, talk

So here’s my first experiment with publishing a picture-in-picture recording of one of presentations – specifically, the presentation I did last night.

[kml_flashembed movie=”http://sachachua.com/notebook/2009/talks/200802-enterprise2.0-and-knowledge-management-3/200802-enterprise2.0-and-knowledge-management-3_controller.swf?csConfigFile=http://sachachua.com/notebook/2009/talks/200802-enterprise2.0-and-knowledge-management-3/200802-enterprise2.0-and-knowledge-management-3_config.xml” height=”355″ width=”560″ /]

Slides and class notes
Planning the talk

Lessons learned:

To make this even better next time, I can:

Kaizen – relentless improvement! =)

Weekly review: Week ending February 14, 2009

February 14, 2009 - Categories: weekly

From last week’s plans:

In addition, I:

Happiness. =) (And Inbox Zero, for the most part!)

Over this weekend and next week, I plan to:

Luke looking up

February 15, 2009 - Categories: cat, photography

Luke looking up

Reflections on presentation; looking for a coach

February 19, 2009 - Categories: kaizen, speaking

Photo (c)
helios89, Creative Commons Attribution Share-Alike license

“So, who’s your mentor? Who’s on the hook for you?” asked my manager during our one-on-one session. He had been reading my posts about presentations and meetings, and he wanted to know what–or who–could help me take it to the next level. I was very good at sharing my enthusiasm and technical knowledge with others. If I could figure out how to communicate with managers and executives, I can do even more.

I told him that I still get nervous in small meetings and I still let my enthusiasm run away with me, and that I’d like to learn how to talk to different perspectives, personalities, and learning styles. I also shared how I’d been thinking about getting a presentation or speaking coach. I enjoy giving presentations and it seems I can create a lot of value with them, so it makes sense to learn how to do them really, really well. I’m particularly interested in learning how to do remote presentations and small in-person meetings well. Remote presentations and video will give me much more reach, and small in-person meetings are similar to the kind of work we do in consulting.

After our meeting, I thought about what could help me get even better at communicating in both large presentations and small meetings.

I’d been to Toastmasters in the past, and I had completed the ten-speech introductory program that earned me the Competent Communicator designation. I appreciated the structure of each meeting and the clear objectives for each speech, and the contests and international conventions were great places to see good speakers. In my weekly Toastmasters meeting with a downtown club, though, I found myself wanting more. I needed:

Presentation skills: content, organization, and delivery

Many public speaking courses focus on the mechanics of delivery. There’s certainly a lot of value in polishing technique: eliminating “ums” and “ahs”; learning how to use pauses, body language, and props; using rhetorical structures and dynamic voice. If you want to improve your delivery and gain confidence, Toastmasters is a good way to do it.

I’m pretty happy with the way I deliver presentations. I can improve my delivery in small-group meetings, but that’s probably a matter of practice. I’m a good presenter, regularly receiving high ratings. Although my current toolkit of delivery techniques don’t cover all situations, I do pretty well.

What would make a real difference, however, is getting _really_ good at content and organization. Based on my Toastmasters experience, I think it and other public speaking resources are great at teaching delivery, but don’t go into as much depth when it comes to content and organization.

There’s no shortcut to developing good content. I need experience, and I need to learn as much as I can from other people. I’m doing several things to increase my chances of stumbling across good content:

Good content is good, but good content combined with good organization is memorable and effective. This is where illustrations, mnemonics, alliteration, storytelling, and other structures come in handy. If I can learn how to get really good at organizing ideas, I’ll be able to apply that skill to writing, speaking, and other things I do. Here’s what I’m doing to learn more about organizing content:

Stay tuned for more posts about role models, long or remote talks, and coaching!

Creative encouragement and following passion

February 19, 2009 - Categories: life, passion

Over lunch at the Craft Burger at Yonge and Bloor, Stephen Brickell and David Ing gave me advice about life, careers, and all sorts of other great things. (I’m such a lucky newbie!) Here’s a story from that conversation that I knew I just had to share with others.

Photo (c) 2007 grendelkhan (Creative Commons Attribution Share-Alike 2.0 License)

Stephen told me about the advice he had recently given Philip, his 18-year-old son. Philip had initially thought of taking engineering in university, probably because that was what he felt his parents wanted him to do. Stephen and his wife reminded their son that while they were happy to give advice, it was ultimately Philip’s decision, and he should take full responsibility for it. Stephen also shared how people who find and follow their passion end up doing much better than people who just focus on the money.

After a lot of consideration, Philip realized that he was really interested in horticulture. He worried that he’d regret taking horticulture instead of a more promising (and lucrative) career. What if he made a mistake and it wasn’t his passion after all? He didn’t feel that it wasn’t a university-type course, and he knew that his parents strongly wanted him to go to university.

Stephen told him that with global warming and other changes, food is going to become even more important – and an expertise in horticulture could very well be a way to make money. He also encouraged Philip to keep an eye out for opportunities to connect studies, entrepreneurship, and other things. For example, Philip enjoyed the culinary arts course he took in high school, and he could combine that with horticulture and entrepreneurship by growing restaurant-quality herbs in a greenhouse.

What I liked was the creative encouragement that Stephen gave. We’ve all heard advice to “do what you love and the money will follow,” but Stephen went one step further and helped Philip imagine concrete ways to make money doing what he loves.

What if Philip made a mistake and horticulture wasn’t what he really loved to do? Stephen reassured him that even if it was a perfect fit for him now, there’s still a chance that he’ll change his mind, grow out of it, or discover something new–and that’s okay. When that happens, Philip can just figure things out again. (And he might be surprised at how much of his skills he can transfer over to whatever new field he becomes interested in!)

I liked the way that Stephen made it clear that it’s okay not to figure everything out the first time around, and that life is about continuous learning.

What about university? Stephen said that he wanted his son to attend university because it would expand his mind. That said, Philip could go to university later, or take a business degree, or learn about all of these things later. Horticulture seemed to be a better fit at the moment, and the credits that Philip could earn there would be recognized by partner schools.

I liked the way that they had clearly thought out reasons for university, but they weren’t tied to the convention of university immediately after high school.

I’m glad Stephen shared that story with me. I asked him right away if I could share it with others, and he was happy to agree. There are a lot of interesting things in that story that I’d like to learn how to do well, particularly when it comes to encouraging others to find their passions and create opportunities.

Scaffolds and structures

February 20, 2009 - Categories: development, drupal, kaizen

I often talk about leverage and scale: creating as much value as I can for as many people as I can. Now that I’ve been with IBM for a while, I see the personal benefits of that practice in the assignments I get and the help I offer my coworkers. In a way, I build scaffolds to help people to do more.

Scaffolding Photo (c) 2008 Kevin Dooley (Creative Commons Attribution License)

One of the ways I’ve contributed to my team is by integrating a regression-testing framework into our Drupal project.On the team call last Tuesday, the project manager asked if everyone had seen the e-mail he had sent about testing, and if anyone had any comments. I reported that I had built the features that were assigned to me, but I was waiting for someone else to confirm testing. He asked if we could look into automated regression tests, too. I laughed and said we’d had them for months. I had even integrated them into the build and deployment script I’d written, but the other developers said that running the whole regression suite of project-related tests took too much time, so I turned that off. Still, I regularly ran full regression tests on my system, using customized versions of Drush and Simpletest.

I enjoy doing things like that: completing my tasks ahead of schedule and using the rest of the time to think of ways to optimize how people work. =) Kaizen – relentless improvement!

What does wild success look like? Kaizen and life; tweaking mornings

February 21, 2009 - Categories: kaizen, life, reflection

Photo © 2009 david.nikonvscanon (Creative Commons Attribution License)

“What does wild success look like?” I often ask that question when I want to clarify what we want to do and how we want to get there. I ask myself that question as well. If I could be wildly successful at whatever I want to do, what would life look like? Sketching a picture of what I want or writing about how it feels helps me figure out what kind of life I’d like to grow into, and the vision helps me figure out what I need to do to get there.

Sometimes I think about grand things, like the kind of difference I’d like to make. Sometimes I focus on the mechanics and the details – what does the day feel like? What are my routines? Who do I talk to? Both perspectives help me flesh out my sketch.

Sure, there are erasures as I change my mind, smudges as I blend different colors together, and lots of different versions of wild success depending on what I’m thinking about or how I’m feeling, but it’s a terrific tool for thinking long-term.

For example, here’s something I scribbled down on my iPod Touch while on the subway:

I wake up at 5:00 AM to opera, light, colors, cats, kisses, or whatever gives me a great start to my day. I exercise a little to get my blood flowing, and I have a healthy breakfast of steel-cut oats or fresh fruit. Then I gear up for a morning of creative work, settling into a comfy chair or setting up on the kitchen table for a four-hour session of brainstorming, writing code, and preparing articles and presentations. I snack on fruit and nuts along the way. I have a light lunch or head out to lunch with friends. Then I tackle more routine tasks: responding to mail, following up, editing and formatting documents, testing code, taking care of chores, reviewing delegated work, and other things. I make dinner and enjoy it with people I love, and spend the rest of the evening reading or enjoying people’s company. After tidying up and taking care of other things, I go to bed, happy with the work I did that day.

There’s more to it than that, and there are multiple versions too, but this is the one we’ll focus on for this blog post.

One of the advantages of envisioning wild success is that you often realize that it’s not too difficult to make it happen. The routine I’ve outlined doesn’t look too different from my typical day working at home. Because I’ve sketched the different components of my “ideal day”, I can start testing those parts to see if I can fit them into my life and if they really do contribute to happiness.

For example, I’ve been testing out this early-morning wakeup thing. I know that waking up and rushing through my morning routine is Not Fun. I also know that I enjoy creating “flow” space to do creative work in the early morning, and that I enjoy making breakfast for W- and J-. So an early morning wake-up time makes sense to me. But there are a couple of things I need to figure out in order to make this really work:

So if I want to wake up even happier and have even more productive mornings (which is difficult if I feel tired or stressed), I can tweak my life so that:

Then I’ll be a little bit closer to figuring out what a wildly successful day looks and feels like… =)

What does your ideal day look like?

Photo © 2009 david.nikonvscanon (Creative Commons Attribution License)

LifeCampTO: Tweaking the plan!

February 22, 2009 - Categories: event

Yesterday, Jordan Baker and I had a great conversation about how to make LifeCampTO even better. We wanted to figure out how to give people more time for quick connections and discussion. =)

So here’s the plan for the next LifeCampTO:

Intros: (10:30 – 11:00, 30 minutes) – 2 minutes per person, strict.
Come prepared with the ONE THING you _most_ want help with and the ONE THING you’re really good at and want to offer help with. We’ll keep the number system and use that to track who wants to contact whom after the meeting. Some people missed connections because neither person wrote down numbers, so we’ll keep a running tally on a whiteboard or a projected spreadsheet. If you don’t want your e-mail address to be included in the automatic matchmaking list, tell me during the event and I can make a note of that. Numbers might be pre-assigned before the event, and you can post your intros then, too. Come early and eat brunch. =)
Small Conversations (11:00-11:40, 40 minutes):
5 rounds of 6 minutes each, with a few minutes between for a mad scramble to find the next person you wanted to talk to. A timer will announce the halfway mark so that people can switch to offer help to the other, if they require this prompting. If people feel up to paying a small fee, we can arrange for appetizers to appear.
Large Conversations (11:40-12:30, 50 minutes):
2 rounds of 20 minutes each, for large topics that bubble out of the introductions. People can self-organize into whatever-size groups they want to talk about stuff. Ideal time to grab a quick snack.

Think Tank (12:30-12:45, 15 minutes):
Someone wins the think tank lottery! The lucky winner shares his or her goal/challenge/topic of interest and we collectively brainstorm how to help.
Wrap-up (12:45-12:50, 5 minutes):
Thanks, follow-ups, etc. People are invited to stay and chat over lunch with new-found connections. If you have any additional connections you want me to make, give me the numbers and I’ll update my spreadsheet.

After the event, I will run my super-fantastic automatic matchmaking thing to connect people with other people through e-mail (omitting e-mail addresses for those who opted out of the process). You can then take that information and schedule your own followups.

So that’s the plan. Now, we can either make a mad scramble for it and do it on February 28 (a week’s notice!), or have the next one on March 28 or 29 or so. Personally, I’ve got a few talks coming up and I may need some time to cram, so I’d prefer to postpone. But hey, if you want to get together and make it happen, go ahead and run with it! =)

Looking forward to experimenting!

On the other side of the (virtual) desk

February 23, 2009 - Categories: kaizen, management

If I’m going to take over the world, I need to learn how to delegate. ;)

It’s a simple matter of mathematics. There are only so many hours in the day. I can’t achieve infinite productivity. Scaling up means figuring out how to work with others and how to delegate.

The traditional way of learning how to delegate involves being promoted to a management role, and that takes time and opportunity. With a little of the money I’ve set aside for my Crazy Idea Fund, I can experiment with delegation and personal outsourcing now. (Naturally, I delegate only non-IBM-confidential things.)

I interviewed almost 10 candidates out of more than 40 who applied. I’ve hired five people on a trial basis and assigned them a few tasks. In the process, I learned so much already! <laugh>

So the next thing that would make this VA experiment better would be to give people a four-hour task (perhaps building on what they’ve already done), and then continue with those who can keep up. I can also reevaluate my budget for the experiment, maybe add some more so that I can give people longer tasks and get a better sense of how people work, and then go from there. I think it’s worth continuing to invest in learning how to delegate, and it would be awesome to eventually build a support structure that can help me scale.

I suspect that after a short trial, I won’t find anyone whose skills will blow me away–but that goes back to what I’ve reflected on before, with employers who expect that people will have all the necessary skills right off the bat.

Yes, some people will figure out what they want to learn and invest time in learning those things. It would be awesome if I come across someone like that – but then I would want them to do more in life than handle other people’s web research and calendars! ;) So in the long run, I think it makes sense for me to invest in improving people’s skills.

Managers and companies sometimes complain that the people they invest in end up moving on. It’s okay if people “graduate” from working with me and go on to do other things. That’d be terrific, and it would give me even more return on my effort! In the meantime, the training materials I build to help people learn how to work can help the next person, and the next person, and so on. In fact, having more newbies go through the system would be great for improving it.

Writing this blog post seems to have fleshed out my reasons for doing this experiment, and what I can do with it… Can’t wait to learn even more!

Feel free to use your laptop or your phone in my talks! I love the backchannel

February 24, 2009 - Categories: presentation, speaking, web2.0

If you ever find yourself in any of my face-to-face presentations, please feel free to bring out your computer, your phone, or whatever else you use. It’s okay. In fact, it’s more than okay. I love it.

Some people–particularly presenters–hate it when others have their laptops open and are typing away. They feel it’s disrespectful and distracting.

Me? I love it when people have their laptops or phones open. Go ahead. Liveblog. Chat on the backchannel. Look up stuff I mention. Write things down on your TODO list. Doodle if you want to.

And yes, if there’s something else on your mind that you’re worrying about–a report that’s due, an emergency that just came up–by all means go ahead and work on it, because even if I instituted a no-laptops-or-phones-open policy, you’d still be thinking about it anyway. Better that I’m there in the background for you to catch an interesting snippet and look up (thanks to the cocktail party effect), than for you to resent me for taking up valuable time and making it difficult for you to edge out of the door in a graceful manner. (Because you sat up front, right? Best seats in the house.)

And if I can’t keep you interested enough so that you don’t get distracted by mail or I Can Has Cheezburger, then that’s my own fault. ;)

I’m not afraid of the backchannel–the online conversations that go on behind the scenes, a scaled-up version of passing notes and whispering in the crowd. If you’re talking about the ideas that I’m presenting, fantastic! I’ve engaged you in a much better way than I could ever have if you just sat there passively listening. If you’re looking up examples I’ve quoted and bookmarking them for later reading, hooray! I’ve said something that’s sparked your interest, and you’ll take it from there. If you’re asking or answering questions about what I’m saying, wow! You jumpstart the discussion and save other people from being confused. If you’re liveblogging what I’m talking about, you help even more people learn from it, and you give me even more results on the time and effort I invested in preparing the presentation.

I wish all of my talks had backchannels! One of the things I love about giving virtual presentations is that I can open up a backchannel where everyone–even the non-Tweeters–can chat about what we’re talking about, and that conversation is easy to watch while I’m giving the presentation. That means that I can see what people are picking up on, what people are curious or confused about, what questions people have–without interrupting my flow or introducing too many awkward pauses for questions. I’ve seen people provide further examples and answer each other’s questions, and that helps me learn even more while I’m giving the presentation.

What I love about the backchannel is that it changes the entire dynamic. It’s not about me, presenter, speaking at you, audience. It’s about all of us learning together. My job isn’t to be a high-and-mighty expert with all the answers. My job is to spark interest, facilitate conversation, and connect the dots. The backchannel not only democratizes the actual talk, acknowledging the expertise and interest you bring, but it also extends our reach and starts bigger conversations.

Recent example: I was giving a virtual presentation on Totally Rocking Your Drupal Development Environment. The backchannel let me quickly poll people and collect their questions and tips.

Another example: I was on the Generation Y panel at the City of Toronto Web 2.0 Summit. The venue had WiFi, so I checked out the Twitter backchannel on my iPod Touch. Thanks to Twitter, I could tell that people were dissatisfied with the slow and moderated online questions process, skeptical of the event and the speakers, and interested in engaging further. I announced that I’d be watching the Twitter backchannel, and during our panel, I kept an eye on the questions and comments that flowed past. That let me shape what I said to incorporate other people’s perspectives and points of view, and that totally rocked.

And next time, I may even have Twitter breaks. ;) And I may put up a sign directing people to sit on the left side or the right side depending on whether they want to engage in the backchannel, so that others who are easily distracted by the clackety-clack of fingers on a keyboard can cluster together. I don’t think I can arrange for beanbags in the front for bloggers, though – that requires more planning than most of my talks have. ;)

Go ahead. Make my day! =) Next time you’re in one of my session, join the conversation. We’ll all learn so much more if you do.

Inspired by Olivia Mitchell’s excellent post on How to Present While People are Twittering

UPDATE: Also check out Beth Kanter’s blog post with lots of links to resources on backchannels: The art of the backchannel at conferences: tips, reflections, and resources

UPDATE: … and Olivia Mitchell’s follow-up at Is Twitter a good thing while you’re presenting? (thanks to Beth for the reminder!)

VA Days: Calendar Management

February 24, 2009 - Categories: -Uncategorized

Hey, this actually does work. =) I experimented with outsourcing calendar management, and the results so far are promising.

I invested some time in writing detailed calendar management instructions, and then I forwarded details for five events I’d like to arrange over the next couple of weeks. The VA I assigned the task to entered in all the details. The only part she forgot was to create appointments on my tentative calendar for each of the events, but that’s okay. The oDesk work diary shows me that she created them, but they were on her own calendar.

She took an hour to set up her account and type in the events, and she’ll probably do things even faster next time. And the process works! =)

Here’s my process so far:


Calendar Management

I use AgreeADate (http://www.agreeadate.com) to set up appointments, and Google Calendar (http://calendar.sachachua.com) for my calendar.

To find timezones agreeable to people, use this Meeting Planner: http://timeanddate.com/worldclock/meeting.html. I am okay with meetings after 7:00 AM EST and before 11:00 PM EST (Canada – Ontario – Toronto).
To convert between timezones, use http://timeanddate.com/worldclock/converter.html.

See XXX for password information.

Setting up potential appointments

  1. Open my main Google calendar in a separate window so that you can see when I’m available. You can access it at XXXXX with your username and password.
  2. Log on to http://www.agreeadate.com with the given username and password in Accounts and Passwords.
  3. Click on “Add a New Event”.
  4. Set up basic event details.
  1. Type in the event title (and venue, for in-person events), and the duration I specified
    Preferred venues:
    • Lunch during weekdays
    • Ichiriki – Japanese – 120 Bloor Street E, Toronto  Hours: 11:45 – 2:30?
    • Camros Eatery (http://www.camroseatery.com/) – Vegan Hours: M-F 11:30am to 7:30pm  (no travel time necessary)
    • Weekends: Linux Caffe (http://www.linuxcaffe.ca) – 326 Harbord Street, Toronto. Hours: M-F: 7am to 11pm, Sat 10am to 11pm, Sun 10am to 5pm
  2. Set AgreeADate to send a reminder 1 day before the event. 
  3. Add additional text:
    • If people have not indicated their phone numbers, add

Please use the “Send message to host” feature to send me the phone numbers / Skype ID I can reach you at just in case something comes up.

  • For phone appointments, include the following segment in the Additional text box:

    Times are given in Eastern Standard Time. If you need to change the timezone, use the link on the AgreeADate reply page labeled

    “Not your time zone? To convert time zone click here.”

    Sacha Chua’s contact information
    Skype ID: XXX
    Mobile number: XXX
    Work number: XXX
    E-mail: XXX

  • For in-person appointments, include the following segment in the Additional text box:

    Sacha Chua’s contact information
    Mobile number: XXX
    Work number: XXX
    E-mail: XXX

  • Click on the Next step.
  • Set up dates
    1. Offer 3-5 choices, making sure that they don’t conflict with events on my main or tentative calendars.
    1. For in-person meetings, I prefer lunch (12:00 PM – 1:00 PM) or coffee/tea/hot chocolate (any time between 3:00 PM and 5:00 PM), preferably on a Thursday or Friday
    2. For phone meetings, I prefer calls on Saturday or Sunday (9:00 AM – 9:00 PM), preferring Saturday afternoon
  • Create Google Calendar events for each slot on the Tentative calendar. That way, I can glance at my main calendar + tentative calendar to see where I might potentially have appointments.
  • Click on the next step.
  • Invite people.
    1. Type in the e-mail addresses of everyone I want to invite. You can generally skip the names, although I’ll ask you if I need the names typed in.
    2. Click on “Save changes.” DO NOT SEND INVITATIONS YET.
    3. E-mail me at XXX with a link to the event to tell me that it’s ready for review.

    When I ask you to copy the calendar information:

    1. Open the event on http://www.agreeadate.com.
    2. Click on Review and Select.
    3. Open my Google Calendar in another window.
    4. For each confirmed slot, update the corresponding calendar event. Set the event title to the event subject and invitee name(s). Copy any contact details (see the bottom for the messages sent to the host, and your e-mail for other contact information) into the body of the calendar event. Move the event to the main calendar.
    5. If all the appointments in this event have been confirmed, delete the other tentative calendar events from my tentative Google Calendar.
    6. Report completion through e-mail in your status update.

    I use the Google Labs “Canned Responses” feature to set up the following mail template:

    Hello, XXX!

    Could you please set up the following event:

    Event type:
    Title:
    Venue:
    Duration:
    Your timezone: Leave this at Eastern Time
    Dates and times:

    Invitees:

    Additional text:

    —–
    For your reference:

    Link to calendar management instructions: XXX
    Link to accounts/passwords: XXX
    AgreeADate site: http://www.agreeadate.com
    Google Calendar: XXX

    Thanks!

    Weekly report: Week ending Feb 22, 2009 (yes, a bit late)

    February 25, 2009 - Categories: weekly

    From last week:

    In addition, I

    … but as is usually the case when I write late weekly reports, there’s a lot more that has slipped away because I hadn’t written it down somewhere. =|

    Next week (or what’s left of this week, really):

    Your subconscious is your friend

    February 26, 2009 - Categories: life

    What do you dream about?
    Sleeping cat (c) 2006 dominiqs81 Creative Commons Attribution License

    I often have vivid dreams about upcoming important events. If I have a presentation the next day, I dream about waking up too late, forgetting the presentation, or forgetting what I have to say. If I have an upcoming trip, I dream about little things that could go wrong, like not having an up-to-date passport.

    I often recognize that I’m dreaming, and I can influence the way my dreams run. For example, I might repeat a scenario again and again until I figure out a good way to deal with it, or I might explore something else.

    Sometimes I prime the pump by thinking of upcoming tasks or events right before I go to sleep, letting my brain think about what can go wrong and what can go really well. Other times, I’ll think of a problem I’m trying to solve or something I’d like to figure out, and I’ll let my brain play with it while I sleep. On more than one occasion, I’ve dreamt in code. (It’s very strange!)

    It’s helpful. I think of things I might not remember in real life, and I get to practice different scenarios until I’m comfortable with the way I deal with them.

    Try it out. When you go to sleep tonight, ask your dreaming self to spend some time thinking about what’s on your mind. =)

    Photo credits: Sleeping cat © 2006 dominiqs81 Creative Commons Attribution License.

    VA Days: Refining web research process for virtual assistance

    February 28, 2009 - Categories: kaizen

    I do a lot of web research, and I’d like to be able to outsource that to a virtual assistant. Web research is also one of the common services offered by virtual assistants. My coworkers tell me that I find information on the Net very quickly. If I can teach those skills to virtual assistants I work with, then we’ll all benefit.

    What’s different about the way I do things? I think the following factors affect my speed:

    I want to help my virtual assistants learn how to work like this, or to refine their own process for finding information on the Internet. Here’s the process I’ve documented so far.


    There are several kinds of web research I might ask you to do. Sometimes, all I want is a brief overview of available resources, with excerpts for ease of scanning. Other times, I want to find specific examples. Yet other times, I want to fact-check something, or re-find something I’d seen before.

    These instructions are for doing web research to get a brief overview.

    Output: At the end of your Web research, I would love to get a list with lots of hyperlinks and with the key excerpts from your reading. You can create a page on this Google Site. I would also greatly appreciate it (and you probably will too) if you use a social bookmarking website to bookmark interesting pages as you come across them.

    Preparation – using del.icio.us:

    I’d like you to still be able to take advantage of your bookmarks and your research even if you decide to stop working as a VA or work for someone else. One way to do that seems to be to use social bookmarks. I find that del.icio.us is the easiest one to use and share.

    1. Go to http://del.icio.us and register for an account.
    2. Follow the instructions to add the buttons to your browser. If you want, you can also install the del.icio.us extension for your browser.
    3. Go to http://del.icio.us/sachac and click on Add to my Network. E-mail me your user ID.

    Now let’s try bookmarking.

    1. Go to one of your favorite sites for learning. (If you don’t have one, now is a good time to quickly look for one!)
    2. Click on the Bookmark on Delicious button to pop up a window. Copy an excerpt or type in a short description of the page in the Notes text field. For Tags, use for:sachac plus whatever other keywords you feel describes the content. You can use as many keywords as you wish. Separate keywords with spaces. If this is for a web research project, add the keywords for the project too. It may help to have a text editor open with for:sachac and the project keywords, so you can just copy and paste them in.
    3. Click on Save.

    See my bookmarks at http://del.icio.us/sachac for examples. In particular, I tend to be good at remembering to grab excerpts for http://delicious.com/sachac/web20forbiz . Compare a few of those bookmarks against the original pages to see what I focus on.

    ADVANCED TIP: If you’re comfortable with Mozilla Firefox, install the Ubiquity add-on and go through the tutorial. You will then be able to create del.icio.us bookmarks by typing Ctrl-space share-on-delicious description tagged tags. Bonus: It remembers the tags from the last time you called it. You don’t have to type in the full “share-on-delicious” command – use TAB to autocomplete.

    So here’s my recommended process for doing web research:

    1. Start by searching Google. Google News (http://news.google.com) and Google Blog Search (http://blogsearch.google.com) often give you newer content than a straightforward search on http://www.google.com does. On Google Blog Search, try both Sort by Relevance and Sort by date to find interesting and recent posts.
    2. Quickly scan the first page of results. When you see a promising page, use Ctrl+click to open it in a new tab. Continue scanning the first page of results, opening pages in new tabs. You’ll probably have lots of tabs open.
    3. Go to the first tab and scan the text. You don’t need to read everything. Just look for the key point(s) of the webpage or article. This is usually near the end. Keep an eye out for specific examples, results, and tips. Sometimes, there’s nothing worth copying, because the article or post just repeats other things you’ve already read. If there is something worth saving, though:
      1. Click on the Bookmark on Delicious button and make a bookmark for it, following the instructions outlined in the previous section.
      2. If I’ve asked you to prepare a report in another format or a longer format, copy the information into that document or spreadsheet, including a link to the webpage.
      3. Use Ctrl+w or the tab close button (if any) to close the tab, and process the next one. Repeat until you’ve finished all the tabs.
    4. Look at the next page of results. Repeat the process until you feel that it’s getting hard to find useful articles or posts.
    5. Try a different search query and explore. As you briefly scan the webpages you’re bookmarking, you’ll get a sense of other words people use to describe things. Try searching for those synonyms. By looking at the first few pages of results, you can get an idea of whether that search will get you new information. You can also check your del.icio.us bookmarks list by going to http://del.icio.us and clicking on your username. If any of your bookmarks have a number in a box on the right side, that means more than one person has bookmarked the same page. Click on the number to see the list of people and the tags they’ve used to categorize that bookmark. Explore by clicking on people’s tags to view _their_ bookmarks, and so on. You can follow links from interesting articles, too.

    At the end of this, you’ll have:

    • a whole list of bookmarked sites, which I can automatically check out (with your excerpts), and which will be available to you even if you decide to work with other people or stop working as a VA, =)
    • maybe an additional report (documents go in this Google Site, spreadsheets should be created in Documents and shared with me at sacha@sachachua.com; files can be e-mailed to me if you run into problems or can’t figure out how to share the information),
    • and a lot of new knowledge. Hooray!

    If I asked for a report, I’ll look at that first, and I’ll also look at my del.icio.us inbox (which contains all of those things that were tagged for me).

    Please feel free to ask questions or make suggestions on how we can improve this process!


    We’re going to try this new process out next week. =)

    VA Days: Rethinking web search and virtual assistance

    February 28, 2009 - Categories: kaizen

    While preparing a 6-minute demo of the way I use del.icio.us and Ubiquity to organize my web research, I had an aha! moment about how I find things on the Web.

    You see, the process I outlined for web research is about finding and bookmarking lots of pages, but what I really find useful isn’t compiling a list of individual pages: it’s finding one or two sites — or one or two people — who keep large, up-to-date collections of information. For example, in that search for Government 2.0-related sites, the key resources are a Government 2.0 Best Practices wiki and this Gov 2.0 Resource Center. Both pages are packed with examples.

    The first priority in web research, then, is to identify those key resources: lists that compile links to other resources, and bloggers who filter lots of news and post what’s going on. I can review the list and add the bloggers to my Google Reader. Only if these resources have not yet emerged will I find lots of individual pages useful. In essence, what I’m doing is building a network of mavens. I don’t need to know everything myself, but I need to know who would know or where to find information I want.

    Along the way, I also discovered Ubiquity goodness. =) It’s made social bookmarking so much easier.

    Anyway, here’s a demo of how I find things on the Net:

    March 2009

    Weekly report: week ending March 1, 2009

    March 1, 2009 - Categories: weekly

    From last week:

    I also:

    Next week:

    Reality check! Things are awesome

    March 1, 2009 - Categories: gen-y, happy, life, reflection

    Dan Pink shares this reality check from the comedian Louis CK:

    It’s easy to take progress for granted. Amazing things become commonplace. It’s even easier for Generation Yers like me to ignore all the leaps and bounds. We grew up with the Internet – how crazy is that?

    But there are so many opportunities to experience wonder and gratitude, even for simple things like going to the supermarket, taking transit, borrowing books from the library. People wonder why I’m so happy–well, that’s it! Everything is amazing. =)

    And heck, I’m still profoundly thankful that someone figured out how to domesticate cats. <grin>

    Everything is amazing. Are you happy?

    Cookie recipe: Oatmeal (chocolate chip/raisin) cookies

    March 1, 2009 - Categories: cookordie

    This recipe is based on the Joy of Cooking Quick Oatmeal Cookies recipe (1st edition), but modified to make chewier cookies. Cookies

    1. Preheat oven to 350°F.
    2. Cream in a bowl:
      • 1 cup butter
      • 1 cup white sugar
      • 1 cup packed brown sugar
    3. Beat in another bowl, then combine with butter mixture until thoroughly mixed:
      • 2 eggs
      • 1 egg yolk
      • 2 teaspoons vanilla extract
      • 4 tablespoons milk
    4. Whisk in another bowl and gradually add to wet mixture:
      • 2 cups unsifted all-purpose flour
      • 1 teaspoon baking soda
      • 1 teaspoon baking powder
  • Gradually add two cups of rolled oats while mixing. Mix until everything is moistened. Batter doesn’t need to be smooth.
  • Use a teaspoon to drop cookies on a silicone-lined or greased-and-floured cookie sheet, two inches apart. Bake for 10-12 minutes.

    I usually make raisin and chocolate chip cookies from the same batch of dough, because J- doesn’t like chocolate and I don’t like raisins. (I bear a grudge towards raisins because raisin cookies often masquerade as chocolate chip ones. Disappointing!). Instead of mixing the raisins or chocolate chips into the cookie dough, I press raisins or chocolate chips into the cookies by hand. I usually make the raisin cookies first, since they’re not as popular as the chocolate chip ones. After I finish adding all the raisins, I can then manually add chocolate chips to each cookie, or dump chocolate chips into the cookie dough and mix it some more.

    Cookie photo © 2008 Pink Sherbet Photography Creative Commons Attribution License

    25 Tips for Totally Rocking Your Drupal Development Environment: pre-session notes

    March 1, 2009 - Categories: drupal, presentation

    When I beta-tested this talk with an IBM audience, I realized that there was no way in heck I could fit all the generally useful tips I wanted to share into the session, much less go into the joys of Eclipse, vi, or Emacs. (Especially Emacs. I could spend hours sharing what I’ve learned about Emacs.) Besides, editor choice is such a personal thing. So I’m not going to try to braindump all the cool things you can do with your development environment. Instead, find me at DrupalCon 2009 and pick my brain.

    In the meantime, here are some tips that most people might find useful.

    1. Meta tips
    2. Browser tips and plugins
    3. Drupal modules
    4. Source code and configuration management
    5. Automation and regression testing

    Meta tips

    1. Be lazy.

    We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.

    Larry Wall, Programming Perl (1st edition), Oreilly and Associates

    Minimize your total effort and the total effort of your team. Learn more so that you spend less time looking. It’s amazing how much of a pay-off you can get from an hour or two just flipping through the Drupal API or the lists of Drupal modules – you’ll get a sense of where things are and what they’re called, and you’ll spend less time reinventing the wheel too. If you can invest thirty minutes in building a tool that’ll save you ten hours of work over the course of the project, do it.

    2. Learn from others.

    Join a users’ group. Read the Drupal forums. Hang out in #drupal, #drupal-support, and other channels on irc.freenode.net. You’ll learn so much from other people’s questions and answers, and even their approaches for figuring out what’s going on. And you’ll learn quite a lot by helping other people, too.

    3. Know your tools inside out.

    Read the documentation for your editor and development environment. Read the Drupal handbook and the API. Read the source code, even. Practice your editor’s shortcuts until they’ve been burned into your brain. Know your tools inside out, because they will save you lots of time and effort.

    4. Know what’s out there.

    One of Drupal’s strengths is the sheer number of third-party packages out there that you can just drop in and customize. Keep an eye out for interesting things. Browse through the available modules or view all the modules in a category. Subscribe to the Drupal Modules news feed in order to find out about new releases. Subscribe to Planet Drupal for interesting blogs. You’ll get lots of inspiration, too.

    5. Practice relentless improvement.

    At least once a week, invest some time in thinking about about what you’re doing and one small way you could do it even more effectively. Lather, rinse, repeat. As you incorporate more of these improvements into the way you work, you’ll free up more time and energy to work even better. Share your improvements with your coworkers or on your blog for even more benefit.

    Browser tips and plugins

    These tips are for Mozilla Firefox, because that’s what I use. =)

    6. Firebug

    Firebug: http://getfirebug.com/

    Probably the single most useful extension for web development. I love how you can examine your webpage structure and even change styles or HTML elements on the fly. The Javascript console is really handy for testing JQuery statements and other scripts.

    7. firefox -ProfileManager -no-remote

    This is how you start a separate session of Firefox, so you can test your site using, say, an admin account and a regular user account at the same time. Bonus: you can set up a test profile with very few add-ons, so that your add-ons don’t interfere with the site you’re testing.

    Other ways to accomplish this: run a separate browser, or use the Devel module to switch back and forth. Not as convenient, though.

    8. Tamper Data

    Tamper Data: https://addons.mozilla.org/en-US/firefox/addon/966

    The Tamper Data module is handy when you’re debugging form submits or page redirects, because you can step through the requests or change any of the submitted values.

    Alternative: The Devel module for Drupal lets you intercept redirects too.

    9. iMacros or another recorder

    iMacros: https://addons.mozilla.org/en-US/firefox/addon/3863

    Record and automate repetitive browser-based tasks or tests. Really handy for testing those pages where you have to log in, click on this link, click on that link, set this text field, and so on.

    10. Drupal for Firebug

    Drupal for Firebug: https://addons.mozilla.org/en-US/firefox/addon/8370

    Comes in two parts: a Firefox add-on and a Drupal module. This extends Firebug to give you all sorts of Drupal-related goodness, such as a message log, variable dumps for users, nodes, and forms, and data about your views. Reduces the need to insert var_dump into random parts of your code to figure out what’s going on.

    Drupal modules

    11. Admin Menu

    admin_menu: http://drupal.org/project/admin_menu

    One of the first modules I install on a Drupal project, this module adds a much more usable dynamic administration menu along the top of the page.

    12. Devel

    devel: http://drupal.org/project/devel

    Lots of goodies for developers and themers. I particularly like being able to view all the SQL queries run on the page, with slow queries highlighted. You may also want to set the SMTP library to Devel during testing, so that you can test e-mail without actually sending e-mail.

    13. SimpleTest

    simpletest: http://drupal.org/project/simpletest

    You can use SimpleTest to test your system both at the source code level and at the web page level – it includes a simulated browser, so you can send GET and POST requests and test whether the results contain text or things like that. Tests are tremendously handy for improving your source code quality. You can also use this to generate lots of test data – just write a test case that creates the test data, and then call the tests you want.

    14. Login Toboggan

    logintoboggan: http://drupal.org/project/logintoboggan

    Configure it to display a login form on every page. You’ll find this helpful when you’re testing various parts of your site, reloading the database from the backup, or generally doing things that involve logins and sessions. You might like it so much you’ll leave it on all the time. =)

    15. Xdebug

    Xdebug: http://www.xdebug.org/

    Not a Drupal module, but a very useful extension for PHP. Use either this or the Zend debugger to pretty-print nice stack traces and variables, or even step through your code. Your debugging life will get so much easier when you figure out how to integrate this with your development environment.

    Source code and configuration management

    Tip 0: Use a source code control system. If you don’t, you’re inviting disaster. Trust me, you _really_ want to be able to revert to code that’s known to work.

    16. Check in your entire Drupal source tree.

    Don’t get tempted to just check in the sites/ directory. You might need to touch others, you might need to upgrade core… Anyway, things could get messy. Just check it all in at the beginning, and your development and deployment will be easier.

    17. Organize your source code.

    Use different site subdirectories for multiple environments, and use subdirectories to organize your modules. This can help you keep your testing modules separate.

    I usually work with a local development environment (ex: local.example.com), a testing environment (ex: qa.example.com), and a production environment (ex: example.com). All of the modules that should be available to all those environments go in sites/all/modules. Sometimes I find it handy to put open source modules in sites/all/modules/oss/ and custom modules in sites/all/modules/custom, or another project-specific directory. Development modules that should never ever end up on the production server (such as simpletest and drush) go into sites/local.example.com/modules, and I use symlinks to make the modules available in other testing environments as well.

    18. Check in clean source for third-party modules.

    With Drupal’s hook and theme system, you can generally get away without directly modifying the source code of well-written modules. However, modules might not have the hooks you want. Before you make any modifications to third-party source code, make sure that a clean, unmodified copy is checked into your source tree. This makes it easier to upgrade the module later on: just get the difference between the current version and the last clean version, install the new version, and reapply the differences (correcting the patch when necessary). To be safe, commit the source code as soon as you unpack the module.

    If you started with an already-modified version, don’t worry. It’s not impossible to correct, just tedious. Get the difference between the modified source code and the clean source code, commit the clean source code, and then apply those differences.

    19. Test all upgrades against a copy of the production database.

    This is related to configuration and change management for a live site. When developing improvements to a site that’s already in production, you’ll often find yourself needing to set variables, enable new modules, and make other changes. Resist the temptation to make these changes by hand as part of a manual upgrade process. You don’t want to do that. You can experiment with making changes through the web-based interface for sure, but any behavior-related changes should (and can!) be written as update functions in the relevant .install files. This allows you to test the upgrades against a copy of the production database as part of your quality assurance process.

    CAVEAT: install functions are run in a certain order: alphabetically by module, and then numerically by update number. Keep that order in mind when writing update functions that interact with other modules that also have updates.

    For more about this, come to the panel on staging and deployment at DrupalCon 2009 – I’ll be there too!

    20. Manage your source code branches and track changes that need to be merged.

    Once your website is in production, you’ll find yourself working on bugfixes for the current site and new features for the next version. Save yourself pain and suffering by learning how to use your source code management system’s branching commands to maintain at least two branches of the source code tree – one for the development version, and one for the current released versions. Also look for tools to help you remember which changes you’ve applied to both branches. For example, the svnmerge tool is handy for managing Subversion tries. That way, you can fix bugs on the release branch and merge them into the development branch, so that the next version won’t have those bugs either.

    Automation and regression testing

    21. Use build tools

    You run lots of different commands as part of development. Refresh the database from the backup. Clear the cache. Enable development modules. Connect to the database. Instead of trying to remember or re-type all those commands, use a build tool like GNU Make or Apache Ant to simplify your work. For example, I have my Makefile set up so that no matter what project I’m currently working on or environment I’m currently working in, the following commands pick up project-specific settings and do the right thing:

    make mysql connect to the database
    make backup make a copy of the database
    make backup-partial make a partial copy of the database, omitting accesslog data and other unnecessary information
    make restore restore the database from the backup
    make dev-restore restore the database from the backup, and enable all the development modules
    make clearcache restore the database from the backup
    make tags restore the database from the backup
    make doc restore the database from the backup
    make test run all my project-specific tests

    You’ll enjoy not having to remember the command to type.

    22. Learn or make tools to save yourself work.

    This is an application of tip #1. A little scripting goes a long way. Learn how to write shell scripts and you can save yourself a lot of repetitive work. For example, my team members regularly need to deploy revisions of our source code to the QA testing server. In my team, I’m the most comfortable with Linux. Instead of doing all the deployments myself, I spent thirty minutes writing a script that lets any of the team members start a build. (For a while, I even integrated all the unit tests into it!). The whole system is a bubble-gum-and-string contraption involving PHP, a shell script, a Makefile, and SSH, but it works.

    23. Make the most of the Drupal shell (drush)

    drush: http://drupal.org/project/drush

    Drush totally rocks. Drush makes it easy to run Simpletest tests, SQL queries, even evaluate PHP statements within the Drupal context. I modified mine to make it easy to upgrade modules, too, which means that I can restore from a backup of the production database and run all the update functions within a minute. Learn how to use the different commands built into Drush, and add your own. You can save a lot of mouse clicks and time that way, and you’ll find it easier to automate things (including testing!) and integrate that into your workflow.

    24. SimpleTest

    Introduced this previously (#13), but it’s well worth repeating. If you implement other tips (such as #19: check all upgrades against a copy of the production database), your tests will become incredibly useful. Write lots of tests using SimpleTest and associate them with a group. Restore your copy of the database using the production backup. Run all of your updates. Use Drush to run the group of your project-related tests, or individual tests. A good test doesn’t display anything if the test passes. If everything passes, hooray! If a test has broken, find out what’s wrong–the code or the test–and fix it. Lather, rinse, repeat.

    25. … What’s your favorite tip?

    Leave it in the comments below, or share it with everyone during the DrupalCon 2009 session on Totally Rocking Your Development Environment, from 11:30 – 12:30 on on March 4 in the Trellon Room.

    Can you see why I’m going to have a hard time fitting all of that into the 60 minutes I have? ;) Particularly if I’m showing things. And I really don’t want to talk _all_ the time, because I’d love to hear people’s tips too. Come and join us on a whirlwind tour. Ask questions. Share your tips. It’ll be fun. =)

    Related sessions you might be interested in:

    Drupal Patterns: Managing and Automating Site Configurations: ChrisBryant, March 5, 3:00-4:00
    Staging and Deployment – A Panel Discussion: Greg Dunlap, Kathleen Murtagh, Shaun Haber, and me: March 5, 5:15-6:30
    Drush, Command Line Drupal Productivity: Moshe Weitzman and Owen Barton, March 5, 5:15-5:45  (conflict!)
    Drupal Process Management: Drew Gorton, March 6, 9:00-10:00

    Want to grow as a speaker? Look for inspiration!

    March 2, 2009 - Categories: speaking

    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. =)

    Geek cooking: In search of vanilla

    March 3, 2009 - Categories: cookordie

    Vanilla beans

    Winter is a great time for baked goods. Or as we like to call them in this household, baked awesomes. Baked awesomes usually involve a splash of vanilla extract. Our supplies are dwindling. The 500ml bottle of Posa pure vanilla extract that W- brought back from Mexico a number of years ago is down to maybe four batches of cookies’ worth.

    W- and J- are maple syrup snobs (nothing but pure maple syrup, and even then, only particular kinds!), and I suspect we’re all that way about our vanilla extract, too. so I’m not even going to try to suggest the artificial vanilla extract readily available in supermarkets. Besides, I think it’s awesome that W- had a 500ml bottle of pure vanilla extract in his kitchen when most supermarkets only sell these tiny little bottles of vanilla (and fake, at that!).

    So W- was searching the Net for a good place to order pure vanilla extract, preferably from Mexico. Turns out this is a dicey proposition because a number of companies add coumarin to bottles of vanilla extract (Wikipedia:coumarin). It’s cheap and it tastes like vanilla. It also does Really Bad Things to your liver.

    Along the way, we discovered that you can make vanilla extract at home. It involves vanilla beans and vodka, neither of which we keep handy. We’re looking forward to experimenting with it, though.

    And just as an example of how amazing the Internet is: we found that recipe on an entire site dedicated to the vanilla bean – varieties, comparisons, recipes, and so on.

    I’ll keep you posted on the awesomeness. =)

    Vanilla beans photo © 2009 acfou Creative Commons Attribution License

    IRC backchannel log for Totally Rocking Your Development Environment, DrupalCon 2009

    March 5, 2009 - Categories: drupal

    IRC chat, thanks to Stephane Corlosquet

    This was for my Totally Rocking Your Drupal Development Environment talk at DrupalCon 2009. =)

    bryankennedy my favorite development environment requirement = electricity
    bryankennedy glad i got near the power strips
    jrglasgow Be Lazy!
    lyricnz Such infectious enthuiasm
    jrglasgow http://c2.com/cgi/wiki?LazinessImpatienceHubris
    danblah hah nice jrglasgow
    jackaponte is now known as palante_jack.
    jrglasgow http://api.drupal.org
    jrglasgow What? I only maintain 5 or 10 modules myself!
    danblah lol, she has to much time on her hands!
    jrglasgow Hey, I’v read about all the modules, at one point in time, then there just got to be too many.
    danblah so true nothing worst is when i start putting a module together then find that it was already done a few hours in
    tcconway drupalmodules.com rocks
    edeloso biggest problem is sorting out which is the most current and well developed for the specific domain
    jrglasgow danblah: I’ve done that as well
    Morbus what’s going on in the trellon room?
    alaken Going through all 4000+ modules is being lazy???
    lladnar1_ I guess you have to work hard to be lazy
    scor__ Morbus: Totally Rocking Your Development Environment
    scor__ http://dc2009.drupalcon.org/session/totally-rocking-your-development-environment
    bryankennedy It’s lazier than writing a module that’s already been developed.
    jrglasgow Morbus: we are discussing being lazy, the first of the 3 virtues of a programmer
    lladnar1_ is now known as lladnar1.
    scor__ bashing windows and IE
    Morbus thanks.
    jrglasgow scor__: that’s exactly why I can this week
    jrglasgow ^^ came
    vasi For the firefox profile manager on Mac OS X, here’s my way to do it: http://weblogs.mozillazine.org/asa/archives/2008/08/shortcut_to_lau.html#comment-2622794
    Lane did she use some term to describe “relentless improvement”? “kaisa” or something?
    Lane or did I just mishear?
    vasi kaizen i think
    scor__ vasi: thanks for sharing your tips – keep it coming!
    vasi http://en.wikipedia.org/wiki/Kaizen
    tcconway http://getfirebug.com/
    Lane vasi: thanks!
    vasi np
    vasi Safari and Chrome have “private mode”, that also lets you log in as two drupal users in one browser
    vasi (Firefox 3.1 should have that too)
    Lane tamper data sounds fun just in general, nevermind for development work
    jrglasgow When you hate clicking on things, TAB is your best friend
    jrglasgow Lane: Tamper Data is fun, especially when writing screen scraping scripts.
    tcconway any good iMacros tool for the Mac?
    vasi tcconway: i don’t think there’s anything free
    tcconway figures….
    danblah dude thats crazy
    danblah this ext sounds sick
    vasi wow, Drupal for firebug shall be my new god
    vasi worships
    danblah https://addons.mozilla.org/en-US/firefox/addon/8370
    tcconway I’m in LOVE http://drupal.org/project/drupalforfirebug
    japerry omg bouncy bouncty!
    bryankennedy isn’t selenium kinda like imacros?
    bryankennedy http://seleniumhq.org/projects/ide/
    danblah lol
    bryankennedy you can use that on a mac
    tcconway OW – PAIN
    lladnar1 Drupal for firebug rocks!
    tcconway amazing!
    tcconway I can’t live without AdminMenu
    japerry tcconway: same here.
    danblah admin menu ftw
    jrglasgow Instead of Admin Menu I use Simplemenu, SimpleMenu has the full Navigation Menu, not just the Admin menu http://drupal.org/project/simplemenu
    tcconway Sacha is adorable!
    tcconway (couldn’t resist)
    bryankennedy Login with email should be in core.
    jrglasgow bryankennedy: I agree, let’s make a push to get it there
    vasi any recommended debugger UI?
    jrglasgow tcconway: I agree
    vasi i’m using Komodo
    vasi but it’s non-idael
    vasi *ideal
    sceo XDebug = like Krumo?
    vasi (i find Eclipse’s debugger painful)
    japerry didn’t emacs die?
    alaken I’m using freeware Komodo edit
    sceo +1 for Komodo Edit
    vasi (and don’t even get me started on vi)
    japerry ducks
    bryankennedy jrglasgow – yeah, i knew I should have had a commitment to do some code before I suggested
    vasi Does the freeware Komodo have debug?
    jrglasgow +1 Komodo Edit
    bryankennedy xdebug is more than krumo
    jrglasgow vasi: no
    vasi sceo: no, not at all like krumo
    bryankennedy you can use krumo with xdebug
    vasi it lets you actually step through lines of code
    danblah w00t! shooting
    vasi as they execute
    jrglasgow +1 Git
    alaken Komodo edit – MUCH better with the Komodo Source Tree add-in
    Moonshine_ can be handy for xdebug also… https://addons.mozilla.org/en-US/firefox/addon/3960
    tcconway what? You have to check things in?!?!
    bryankennedy brining new drupal developers into SVN or CVS is a big learning hump….so useful though
    sceo puts xdebug on the list
    tcconway makes a note to checkin.
    edeloso I agree with the whole source tree… makes sure that version of core code is tied with the site…. upgrading a multisite hosting can be a nightmare
    tcconway works really well for us too.
    bryankennedy whole tree in svn is great, especially b/c most websites have SOME non-drupal pages or info in them somewhere
    sceo source code control + drupal — so many approaches. we battled this for hours and hours at my company… we don’t really still have a good method
    tcconway wait – you can have subdirectories in /sites/all/modules?
    vasi sceo: yeah, it’s hard
    vasi tcconway: yup
    bryankennedy we use sites/all/modules/dev and then svn ignore on trunk for dev modules
    tcconway wow.
    vasi bryankennedy: doesn’t that make your dev env hard to migrate?
    openprivacy check out drubuntu’s layout http://groups.drupal.org/node/6270
    tcconway bryankennedy: brilliant!
    bryankennedy vasi: nah, you just ignore it on trunk, not on the branches
    vasi bryankennedy: nice
    Lane so what’s a good VCS for a single-person shop with no VCS experience or even awareness?
    bryankennedy you have to do some manual moving around when you branch
    Lane well, some awareness.
    tcconway Lane: I’ve had good success with VisualSVN
    vasi Lane: i’d start with SVN
    Moonshine_ likes subversion as it’s time tested, lots of tools and not CVS
    nick_vh Finally got some connection, yeah!
    roginald nice
    vasi but git is nice, too….it just breaks your brain
    bryankennedy and svn has a free book
    bryankennedy http://svnbook.red-bean.com/
    roginald i started using svn for local with 0 knowledge and it seems fine
    bryankennedy You can start using svn in a day, it’ll take a year to learn really well.
    nick_vh we use unfuddle for our repository and issue tickets. Really nice tool
    openprivacy svn >> cvs
    bryankennedy But it’s easy to weather mistakes with SVN
    bryankennedy was kicked from the chat room by dcdc. (flood)
    tcconway svn ftw
    Lane thanks all
    scor__ bryankennedy: what happened?
    Lane that’s very helpful
    Moonshine_ Lane: what os for dev?
    bryankennedy posted too much
    bryankennedy ooops
    openprivacy ubuntu
    Lane linux (CentOS 5) and Leopard
    bryankennedy Sound like we could have an entire session on version control strategies for Drupal.
    scor__ bryankennedy: submit a BoF!
    sceo bryankennedy +1 yes and I would definitely go
    bryankennedy BoF?
    lladnar1 I still struggle with keeping database changes in svn
    edeloso anyone had luck with versioning and changes to the database for modules that use a content type built with CCK?
    lladnar1 Staging and deployment… I’ll be there
    Moonshine_ Lane: In Leopard I use Subversion that’s built right into Komodo and SCPlugin for the finder http://scplugin.tigris.org/
    Lane Moonshine_: Thanks.
    bryankennedy lladnar1: yeah totally
    alaken can anyone recommend a how-to for this branch mergins stuff
    lladnar1 Anyone have a good answer for database structures and confit settings?
    roginald for a recap of last year’s dev/stage/build talk there is a video of the session here: http://www.archive.org/details/DrupalconBoston2008-BestPracticesInDevelopmentEnvironmentsStaging
    bryankennedy lladnar1: this one helped me at one time – http://blog.daemon.com.au/go/blog-post/merging-with-subversion-and-eclipse
    lyricnz what’s the link to Sacha’s pages again?
    lyricnz notes for this session, that is
    vasi i would LOVE a VCS BoF
    vasi btw, i recommend that people learn how to use the command-line for version control….
    bryankennedy make sure to svnignore your sites/default dir so you don’t put your DB pass in your version control
    msonnabaum yay bash
    openprivacy we rename settings.php to settings.inc and commit that to the SVN repos; then create a 2 line settings.php that includes settings.inc and sets the $db_url
    openprivacy you can also create any other local overrides into the settings.php file
    sceo http://dc2009.drupalcon.org/node/3974
    sceo http://dc2009.drupalcon.org/node/3810
    sceo ^^ any of those apply?
    vasi openprivacy: yeah, we do that too
    vasi we call it ‘settings-private.php’
    vasi and then we have tools that check if there’s a settings-private.php nearby, and will read it to autodetect the db/user/password
    vasi makes dump/restore much easier
    openprivacy since we do multisites for every project (Dev/QA/Live) I wrote a pushdb script that moves databases between them, changing all the appropriate values – doing dumps of the from and to DBs first
    tcconway what’s the tag?
    openprivacy it parses settings.php for the db_url
    tcconway vimpirator
    tcconway http://vimperator.org/trac/wiki/Vimperator
    nick_vh aegir
    vasi AEGIR
    vasi http://conkeror.org/
    tcconway http://groups.drupal.org/aegir-hosting-system
    nick_vh real nice tool for lot’s of sites
    tcconway geben
    vasi http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html#virtualdocumentroot
    openprivacy I haven’t got geben working yet
    tcconway what’s her blog url?
    vasi we just have VirtualDocumentRoot /var/shared/sites/%-3/site/
    nick_vh unfuddle
    vasi and then you checkout a site inside /var/shared/sites/
    nick_vh www.unfuddle.com
    nick_vh really really good!
    lyricnz has script to upgrade modules between versions, when module is under SVN control – which determines local patches, makes upgrade, reapplies patches, does svn add/delete as required. Maybe that’s useful to someone
    japerry definitely good!
    vasi and it appears as blah.ourdomain.ca
    sceo http://sachachua.com/site/ I think
    vasi blog url: http://sachachua.com/wp/2009/03/01/25-tips-for-totally-rocking-your-drupal-development-environment-pre-session-notes/
    vasi basically with VirtualDocumentRoot, you don’t need vhost
    tcconway quote of the session: “Spaces, no tabs. Spaces, no tabs”
    vasi entab/detab \o/
    openprivacy coder will mark those
    lyricnz Sacha ftw
    tcconway agreed.
    msonnabaum haven’t tried Drush for running update.php, but here’s a kinda ghetto bash script I wrote to run it: http://colonqbang.com/content/automating-updatephp
    danblah w00t for ghetto bash cripts
    sceo1 is now known as sceo.
    ccalnan http://drupal.org/project/install_profile_api for those who want to know about install profile
    vasi does anybody use a local DNS?
    vasi i’ve been thinking of doing that for staging….so i can see what a site will look like with the final domain
    tcconway I *kinda* do…I take advantage of MAMP Pro’s local dnsin’
    vasi ah
    nick_vh http://krimson.be/en/debugging-drupal-6-using-xdebug
    nick_vh another handy url
    bryankennedy great session
    vasi who’s emailing the log?
    scor__ http://openspring.net/tip/script-for-dumping-your-drupal-database-by-reusing-settingsphp
    scor__ vasi: I will

    Totally Rocking Your Drupal Development Environment

    DrupalCon Day 1: Notes and Links from March 4, 2009

    March 5, 2009 - Categories: drupal

    Building APIs that Rock
    Jeff Eaton

    More than 400 people packed into the Acquia Room to hear Jeff Eaton talk about APIs, a surprising number considering the early 9:00 start. Jeff talked about the importance of designing a module so that other modules could use it through code instead of through the user interface. He gave a number of examples, including how Views is divided into the API and a module that adds a user interface on top of the API. Great stuff. Pay close attention to the deadly sins of APIs towards the end of the attention, where Jeff outlines common errors and how to avoid them.

    …and all of it was presented in a lively manner, with frequent interjections from a co-presenting puppet! Check it out.


    Keynote: Dries Buytaert talked about the history of Drupal and where it’s going. Highlights: Picture of Dries when he started Drupal, complete with sombrero and chess board.

    Liveblog
    Photoset


    Totally Rocking Your (Drupal) Development Environment
    Sacha Chua

    Around three hundred people attended my session on Totally Rocking Your Development Environment, which consisted of a 40-minute whirlwind tour of my favorite Drupal development tips, and a free-for-all session where people shared their awesome tips too. It was lots of fun! People told me that they enjoyed the energy AND they walked away with a couple of tips that could save them hours of effort and frustration. Hooray!

    Session description
    IRC backchannel log, Stephane Corlosquet
    Outline notes, Jeff Schuler (who did an excellent job at capturing audience tips, too!)
    Video, Alan Doucette

    Totally Rocking Your Development Environment – also covered mostly stuff I knew, but I did learn a few tips (and also learned a little from my next door neighbor. It was a great talk by an incredibly enthusiastic speaker. I can’t believe though, that she suggested using Makefiles for Drupal!

    DrupalconDC Report #1, Michelle Murrain


    Handling Asynchronous Data with Drupal
    Josh Koenig

    Josh Koenig gave a quick demo of how to use Drupal.behaviors to contextually modify webpages using Jquery. Using contexts allows you to make it easy to embed behavior (ex: node edit form) within other elements, like a thickbox.

    Session description
    Presentation and examples
    Video


    Advanced Theming Techniques
    Trevor Twining and Bevan Rudge

    This promised to be quite interesting, but it got derailed halfway through. =| I did pick up a few tips about using preprocess functions as much as possible instead of copying and pasting theme code to override things.

    Session description
    Video


    Business Analytics with Views
    Frank Febbraro, Irakli Nadareishvili

    Frank and Irakli demonstrated upcoming features that make it easy to summarize and graph data using views. You can configure this module to use the FlashCharts, AmCharts, or Google Charts engine. Interesting! =)

    Session description


    Boosting Our Raw Capacity to Provide Drupal Training
    Sean Effel, Allie Micka, Lee Hunter, and Alex Urevick-Ackelsberg

    Sean started by emphasizing that different learners have different skill levels, interests, and needs, and that by addressing those specific needs, we can help people not only use Drupal but also get ready to contribute to the community. He talked about his approach at drupaltherapy.com, where he coaches people on Drupal. He shared the core curriculum he’s figured out, but said that as people move beyond that, people have specialized needs.

    Barry talked about the lab hours that his company offers to people who have subscribed to the program. It’s a code clinic where the company helps developers and users with their systems. It’s not open to walk-ins from the street; people have an existing relationship with the company, and that allows the company to provide more targeted help. At the beginning of the session, everyone shares what questions they’re working on. They split up to work on the tasks individually or in small groups. At the end of the session, they wrap up by sharing what they learned, what they didn’t learn, and what kind of follow-up they have planned. The company shares post-session wrap-ups on their website.

    Alex talked about how his company strongly believes in training both their developers and salespeople to contribute back to the community. Their training is modeled on the Google Summer of Code, and new employees start off by working on some outstanding tasks. They also give their employees 20% time to contribute to Drupal, often on projects that the company selects. They find that community contribution is a great way to vet people both before and after they join the company.

    Lee posed two koans: If you document the software, you’re doing it wrong. Also, put the cart before the horse. He meant that a lot of documentation focuses on the features and the interface of the software instead of what the users want to do, and that writing the documentation before developing the system is a surprisingly effective way to work.

    Session description
    No video recording

    Presentation Zen: Visualization of the credit crisis

    March 5, 2009 - Categories: speaking

    Kudos to Garr Reynolds of Presentation Zen for finding this animation by Jonathan Jarvis that explains the credit crisis:

    The Crisis of Credit Visualized from Jonathan Jarvis on Vimeo.

    As W- says: “Nicely done! The credit crisis sucks, but this was nicely done.”

    Maybe someday I’ll learn how to tell stories using these techniques…

    Reinvesting

    March 8, 2009 - Categories: finance

    I’m looking forward to receiving the first bonus of my working life. =) Thinking about it, I’m reminded of a story my mom told us a number of times. It goes something like this like this:

    Two entrepreneurs each start off with a variety store. The first entrepreneur takes the profits from the business and reinvests practically everything back, growing the store into a larger one. The second entrepreneur takes the profits and buys a television.

    Business is good. The first entrepreneur takes the profits from the business and reinvests practically everything back, opening a new branch. The second entrepreneur grows the store a little bit, and then buys a video player.

    Business continues to do well. The first entrepreneur branches out into another business. The second entrepreneur grows the business a bit more, and gets a new car.

    The first entrepreneur works very hard, and soon owns a chain of stores. The second entrepreneur has a small business and a comfortable lifestyle.

    At the end of the day, who’s happier?

    My mom told us this story to show us several ways of thinking about business and money. She said that my dad is very much like the first entrepreneur, reinvesting as much money back into the business as possible. My mom and my dad agreed to do it that way. The business has certainly flourished.

    She also told us how she helps make sure that it’s not just about that way of doing business, though. Drawing a little bit of inspiration from that second entrepreneur, she made sure that our family gave ourselves permission to spend money to create memories and make life wonderful (and that’s not just by buying stuff). So we went backpacking across the US and Europe, and we had lots of adventures.

    A good life is a mix of both: reinvesting for growth, and enjoying the results.

    So part of my bonus will go to my retirement fund, because it’s good to plan ahead.

    Part of my bonus will go towards investing in myself, further developing the skills that helped me get that bonus in the first place.

    Part of my bonus will go to exploring life and sharing experiences with people.

    If you think of your life like a business, you can make more conscious decisions about how you spend money.

    Drupal gotchas: watch out for Views dependencies

    March 9, 2009 - Categories: drupal

    One of the downsides of writing all configuration changes as update functions in .install files is that you need to watch out for static or cached variables and module dependencies.

    For example, I just finished helping a teammate debug an elusive Views problem. The symptom: some views with blocks didn’t show up in the blocks table, even after a _block_rehash in the update function. Other views were there. If we ran the update function independently, all the blocks appeared in the blocks table. What was going on?

    hook_views_default_views is a great way to programmatically define views. By using the Views Export function, you can interactively create the view, then export the code so that you can make the view available on your production site without manual administration.

    However, if your new view requires a table ($view->requires) that doesn’t exist, then _views_get_default_views discards it. By the time you enable the module in another update function (and you’re using update functions to do things like that instead of manually enabling modules on your production site, right?), views_cache.inc has cached the (incomplete) views list and won’t recognize that the requirements are now available.

    To get around the view dependencies, comment out the $views->requires line. It’s a hack, but it’s probably better than hacking all the functions that cache data in static variables.

    Okay, even more impressed by Timebridge

    March 10, 2009 - Categories: kaizen

    I was happy with AgreeADate’s interface for calendar management, and now I’m even happier with TimeBridge. I like how TimeBridge automates the addition of tentative slots to my calendar (so that I can see what it might impact) and the cancellation of slots that conflict with confirmed appointments. That makes my calendar management process much simpler. =) Let’s see if it can handle the other use case of letting lots of people sign up for slots…

    Hooray for experimentation!

    Weekly review: Week ending March 8, 2009

    March 10, 2009 - Categories: weekly

    From last week:

    Also: I came home to a wonderful scavenger hunt! I’m such a lucky gal… =)

    My priorities for this week are:

    I’m also planning to attend a few events during the week, and to meet up with a number of people. Busy busy busy! And I still need to write up my notes from DrupalCon…

    Making a name for yourself: thinking out loud about my talk

    March 10, 2009 - Categories: career, connecting

    From 3 PM to 5 PM on March 14 (Saturday), I’ll be giving a talk at the Toronto College of Technology to a group of approximately 80 newcomers to Canada and people re-entering the IT field. With that in mind, I proposed the following talk:


    Make a Name for Yourself: Creating Opportunities in Difficult Times

    If you’re new to Canada, new to the workplace, or getting back into IT, you may find it difficult to find work unless you can show people why they should hire you over everyone else. How can you distinguish yourself? How can you reach out and connect with people? How can you find–or even create–opportunities that are just right for you? In this session, you’ll learn how you can develop your passion, improve your skills, and grow your network. Packed with tips for getting started and stories from real life, this talk can help you turbocharge your job search. Come prepared to introduce yourself to others, ask questions, and figure out how you can make a difference!


    I’m thinking out loud as I prepare my outline, because writing helps me think. =)

    When I plan a talk, I sometimes think of it as a box. The size of the box is dictated by how much time I have to deliver it. When I know what size that box is, I can plan what goes into the box. I want to put lots of value into the box, so that people get lots of value out of it. On one hand, I’m limited by how much time I have, what resources I have, and how much I know about the audience. On the other hand, I can create lots of value with that box by sharing it with many people, or by repackaging the components into larger or smaller boxes.

    In this case, my box is two hours big. It’s better to break those two hours up into two boxes than to treat it as one big box, because if I treated it as one big box, there would be lots of wasted space where people wouldn’t be able to focus well. If I plan it as two boxes, filling each with interesting things and giving people a short break in between boxes, people will get more value from the boxes.

    The two natural boxes in this session are:

    1. Self: figuring out what distinguishes you, building on it, and creating opportunities
    2. Others: reaching out, networking, and giving and receiving help

    Self

    As much as I would like to be able to share a magic formula for figuring out what to do with life, we can’t fit that into a one-hour box. It’s the work of a lifetime, really. But what tools or ideas can I put into this box to make it easier for people to take the next step? Here are some that might work:

    Oooh, I like 20-minute boxes.

    Others

    Many people find it difficult to network, especially if they’re new to a field and they don’t know anyone. I find it hard sometimes, too. =) Here’s what might help you too:

    WRAP UP: Fill out evaluation forms, follow up on blog post / slides, e-mail me, start a blog ;)…

    Hmm, that’s starting to look like an interesting session I’d love to attend myself… =)

    NEXT STEPS:
    - Refine the points and examples in each box, then hunt down illustrations
    - Plan worksheets

    Tungle for the win: kaizen and calendar management

    March 12, 2009 - Categories: kaizen

    Life just keeps getting better and better. =) So after I posted that quick note about Timebridge, Aidan Nulman nudged me about Tungle. I asked Ana to look into it, updating the calendar management process along the way. Based on a little exploration, I think Tungle wins in terms of calendar management. =) It can synchronize with my multiple Google Calendars, show all of my Google Contants on the left side, and automatically avoid double-booking. I’m in love. (TimeBridge, AgreeADate, I hope you’re listening – keep up with the competition!)

    So in the spirit of sharing, here’s our newly refined calendar management process. Ana even went to the trouble of adding screenshots – how cool is that?

    Setting up appointments:

    1. Login to http://www.tungle.com, see Accounts and Passwords section for the login information.
    2. The screenshot below shows an example of a personal Tungle Page. To set up an appointment, click on Schedule a meeting at the upper left side of the screen.
    3. Fill in the fields.
      1. Subject of the Event
      2. Choose from the dropdown list for the duration of the meeting/appointment.
      3. Meeting Location (Note unless specifically specified on Sacha’s meeting details, here are Sacha’s Venue Preferences:
        • Lunch during weekdays
          • Ichiriki – Japanese – 120 Bloor Street E, Toronto Hours: 11:45 – 2:30?
          • Camros Eatery (http://www.camroseatery.com/) – Vegan – Hours: M-F 11:30am to 7:30pm (no travel time necessary)
        • Weekends: Linux Caffe (http://www.linuxcaffe.ca) – 326 Harbord Street, Toronto. Hours: M-F: 7am to 11pm, Sat 10am to 11pm, Sun 10am to 5pm
      4. Click Add for every person added in the list of Invitees.
      5. The calendar on the lower part of the page is linked to Sacha’s Google Calendar so you will know which hours and days she is available. Highlight available times or as instructed by Sacha.
        Additional Information in selecting time:

        • Offer 3-5 choices, conflicts and double bookings will not be a problem with Tungle since it is synchronized with the Google Calendar.
          1. For in-person meetings, I prefer lunch (12:00 PM – 1:00 PM) or coffee/tea/hot chocolate (any time between 3:00 PM and 5:00 PM), preferably on a Thursday or Friday
          2. For phone meetings, I prefer calls on Saturday or Sunday (9:00 AM – 9:00 PM), preferring Saturday afternoon
        • Sacha’s Google Calendar will be automatically updated as soon as invitees send back their confirmations.
      6. Click the RIGHT arrow beside Step 1 of 3.
    4. Step 2 shows a summary of the tentative dates you are proposing to the invitees. Click on X if you have entered an incorrect entry and go back to Step 1. If the details are all correct, click on the RIGHT arrow button to proceed to Step 3.
    5. For personal message refer to instructions below. Then click PREVIEW.
      • For phone appointments, include the following segment in the Personal Message box:

        Times are in your current time zone by default. If the timezone is incorrect, use the “Change” link above the calendar.

        Sacha Chua’s contact information
        Skype ID: XXX
        Mobile number: XXX
        Work number: XXX
        E-mail: XXX

      • For in-person appointments, include the following segment in the Personal Message:

        Sacha Chua’s contact information
        Mobile number: XXX
        Work number: XXX
        E-mail: XXX

    6. Check meeting details. Send invitation.
    7. A confirmation box will be shown to you after sending invites. See screencap below. Close.

    Virtual assistance and a review of TimeSvr, ODesk

    March 13, 2009 - Categories: -Uncategorized

    I’m starting to get the hang of this delegation thing, and I like it.

    Jeff Widman pointed me to TimeSvr.com, a virtual assistance outsourcing service that’s priced much more affordably than similar services like AskSunday, GetFriday, and LongerDays. With a USD 69/month plan, you get unlimited 15-minute requests and up to 8 hours for complex tasks.

    I took advantage of their a free 3-day trial period to give them a whirl, sending them 10 small tasks I’d been meaning to work on.

    Tasks with clearly defined processes (approve Facebook friend requests except for those who found me through Friend Finder, request books from the library, post my checked-out books on LibraryThing and Shelfari) worked out pretty well. I may set up repeating tasks to take care of these things.

    Web research tasks had mixed results.
    When I asked them to find me a Linux-compatible black-and-white laser printer and scanner that could do both sheet-fed and flat-bed scanning, they recommended two Samsung printers available from FutureShop. One of them didn’t do sheet-fed scanning, but the other was a pretty good deal, and we went out and picked it up the same day. (I’m very happy with my new Samsung SCX-4828 – it actually works!) When I asked them to find me that Firefox extension that adds numbered shortcuts to Google Search results, I got back a page that didn’t have anything to do with it. Your mileage may vary.

    How does this compare with the dedicated virtual assistants you can hire from oDesk or other services? I’m coming to similar conclusions as Sid Savara in his post Can Virtual Assistants Make Your More Productive? An Experiment, and a TimeSvr Review (with pretty diagrams!). TimeSvr’s 24/7 availability is a big bonus. Because of their focus on 15-minute tasks, I don’t feel nearly as guilty assigning them routine, well-defined tasks. On the other hand, I’m quite impressed by the initiative and personal development shown by one of the VAs I’ve hired off oDesk. I think web research tasks benefit from having someone build up background information and certain tasks benefit from processes that we develop, so I can lean towards asking her to do more of those kinds of things.

    I’ll continue with TimeSvr past the 3-day free trial to get a sense of what my small-task volume is like over a month. I’d already carved out a small portion of my budget for outsourcing experiments because I see it as valuable (and otherwise hard-to-get) education on delegation and management, and that + a little web research by Ana would fit in my budget nicely. After a month, I’ll review it to see whether it’s been a good fit, and what would make it even better.

    UPDATE: Added affiliate link to TimeSvr for better tracking. Disclosure: If you do sign up and you like it, I’ll get $10 from that, up to a maximum of $30. =)

    Making a Name for Yourself

    March 13, 2009 - Categories: career, connecting, presentation, talk

    The key points of my talk “Making a Name for Yourself” at the Toronto College of Technology on March 14, 2009 were:

    DEVELOP
    1. Build on your strengths. Identify your passions and skills inside and outside the classroom, and figure out how to get even better at them.
    2. Be flexible and create options. Look outside large IT companies, and even outside the IT industry.
    3. Change the game. Create new opportunities for yourself.

    CONNECT
    1. Focus on others. Look for opportunities to help other people.
    2. Make it easy to help you. Have a strong introduction (best-test-focus: start with a brief description of what you’re good at, a concrete example of how that benefited someone else, and a question that puts the focus back on the other person and how you can help them). Bring business cards. Carry a notebook and pen, or a PDA, or some other way to take notes. Have a web presence on social networks, or your own professional website/blog.
    3. Ask. Many people enjoy helping. Ask for help and reach out. Find mentors. Ask everyone.

    Here are some of the resources I mentioned:

    Toronto Geek Events calendar – for finding interesting tech-related events

    Love is the Killer App
    By Tim Sanders

    What Color is Your Parachute?
    By Richard Nelson Bolles
    Published by Ten Speed Press

    Make Your Contacts Count
    By Anne Baber, Lynne Waymon
    Published by AMACOM Div American Mgmt Assn, 2007

    How to Talk to Anyone
    By Leil Lowndes
    Published by McGraw Hill Professional, 2003

    DrupalCon 2009 Recap

    March 15, 2009 - Categories: drupal

    Quick notes on sessions I attended

    Building APIs that Rock
    By: Jeff Eaton
    Links: Slides, Video
    Talked about the importance of making it easier for other modules to use your code (not just users through the Web interface); showed an example of using hooks for ultimate flexibility. Key takeaway: Try building your module as an API, then layer a user interface on top of it (ex: Views). Also, puppets!

    Keynote: The State of Drupal
    By: Dries Buytaert
    Links:  Video , Text Outline
    Drupal community, code growing exponentially. Next steps: Connecting data

    Totally Rocking Your Development Environment
    By:  Sacha Chua
    Links:  Video, Installation Profile
    I had a lot of fun learning from people’s tips, too!

    Handling Asynchronous Data with Drupal
    By: Josh Koenig
    Links:  Video, PDF Presentation
    Key takeaway: Use Drupal.behaviors to attach contextualized Javascript code. Also, you can write data to files in order to make polling more efficient.

    Advanced Theming Techniques
    By: Trevor Twining
    Links: Video, Slideshow
    Most of the presentation was about how to define subthemes and extend something like Zen.

    Business Analytics with Views
    By: Irakli Nadareishvili
    Links: Video, Slideshow
    Ooh, pretty charts. Key takeaway: look into charts and views_charts modules for integration with Google Charts and other charting engines

    Boosting Our Raw Capacity to Provide Drupal Training
    By: Sean Effel
    Links: Training Models, Notes from Audience
    See my notes at http://sachachua.com/wp/2009/03/05/drupalcon-day-1-notes-and-links-from-march-4-2009/ . Key takeaway: Core training has lots of common ground, but then need to customize training for skill level / needs; group clinics/workshops handy

    Building Infrastructure You Can Scale, Monitor and Maintain
    By: David Strauss
    Links: Video
    Great slide breaking down flow of traffic to rough percentages. Key point: adding more components is easy (content delivery network, reverse proxy, etc.), but adding more than one component (ex: multiple database servers) is harder. Coherency issues, replication issues, etc. Try to minimize dynamic pages.

    When Efficiency and Manageability Matter, Drupal at Scale,
    By: Scott Mattoon
    Links: Slideshow, Video
    Left this session after a short while, as it seemed to be mostly about Sun tools.

    Powering Collaboration in a Distributed Enterprise

    By: Dan Karran
    Links: Video

    Interesting demo of a featureful Drupal site used on the intranet. Check out their auto-saved drafts.

    Drupal Patterns: Managing and Automating Site Configurations
    By: Chris Bryant
    Links: Slideshow, Video
    Patterns allow you to bring in groups of functionality. Interesting: can publish and share patterns. No support for change management yet.

    Staging and Deployment – A Panel Discussion
    By: Greg Dunlap
    Links: Video
    Deploy and db_scripts look interesting. Also, I promised to upload my .install file snippets…

    Why I Hate Drupal
    By: James Walker
    Links: Video
    Good stuff. Interesting contrast to kumbaya keynote: contrast of Drupal’s growth with Sharepoint, WordPress, and Joomla.

    Advanced Drupal Security
    By: Neil Drumm
    Links: Video
    Went through key parts of Drupal security handbook. My takeaway: use session_save_session(FALSE); when changing global $user;

    Selling Drupal Services
    By: Neil Giarratana
    Links: Video, Slideshow
    Lots of tips about the business side of it. Key takeaway: RFP process is inefficient; try partnering up with agencies instead, so you can build on relationships

    Project Management For Fun and Profit
    By: Crystal Williams
    Links: Video
    Not much new here if you’ve managed or worked on projects before

    How do Drupal, Joomla! and WordPress Stack Up?
    By: Amy Stephen
    Links: Video
    Didn’t go into an in-depth technical comparison / benchmarking

    Token: The Little API That Could
    By: Greg Knaddison
    Links: Video
    Walked through how Token module works, how to implement your own tokens

    Sessions I wish I also attended

    JQuery, Dmitri Gaskin Links: Video
    Drupal and the Geospatial Web, Jeff Miccolis Links: Video, Notes from Audience
    Optimizing your LAMP stack for Drupal, Eric Mandel Links: None
    Learning jQuery UI, Richard Worth Links: Video
    SEO & Drupal: Search Engine Optimization Tips, Tricks and Best Practices, Gregory Heller Links: PDF Slideshow, Video
    Building advanced social networks at a large US University, Kyle Mathews Links: Slideshow, Video
    Building a Frankenstein monster and how to maintain it, mortendk Links: Video
    Front End Performance – Make Your Website Lightning Fast, Konstantin Käfer Links: Video
    Communicating Data Online: Data Visualizations and Open Data, Eric Gundersen Links: Video
    Project Flow and Tracker: From business objects and user stories to test-driven Drupal based website application, Victor Kane Links: PDF within page
    Scaling Drupal using Amazon Web Services (AWS), Frank Febrarro Links: Video , Slideshow
    Drupal Process Management, Drew Gorton Links: Video
    The Business of Open Source, Liza Kindred Links: Video
    Quality Assurance and the Drupal Development Process, Fen Labalme Links: Video, Slideshow
    Inside Drupal Caching: From Static Variables to Memcache, John VanDyk Links: Video

    Note: Thanks to Ana Macatiag for all these handy links! =)

    Tasks I’ve tried delegating to TimeSvr so far

    March 16, 2009 - Categories: -Uncategorized

    Things that I think would fit into 15 minutes

    To improve this:

    Still looking for an awesome calendar management system

    March 17, 2009 - Categories: kaizen

    One of the things I do very badly is manage appointments. I can manage tasks.  I can manage time. But every so often, I write down the wrong times for a meeting, get frustrated by scheduling, or double-book myself. This is all the more embarrassing because people are involved. This should be something I can fix.

    That’s why I spend a lot of my time thinking about how to manage my calendar and how to do it better. Web-based systems like Tungle, TimeBridge, and AgreeADate make it easy to find available times for meetings, although I still haven’t found the perfect tool.

    Every service is just a little bit off. My ideal calendar management system would make it easy for me to propose meeting times, and reschedule them to a something else comes up. I’d also love to be able to give people a link to my schedule, so that they can sign themselves up. Maybe someday. I can outsource the fiddly things to a virtual assistant, but it makes sense that this stuff should be mostly automated. For the peace of mind of knowing my calendar’s correct, I’d pay maybe $5-10 a month…

    UPDATE: TimeBridge handles most of my cases, so I guess I’ll go with that.

    Weekly review: Week ending March 15, 2009

    March 17, 2009 - Categories: weekly

    From last week:

    Also:

    This week:

    Monthly review: February 2009

    March 17, 2009 - Categories: monthly

    The key thing I learned in February 2009 is that delegation is something I can learn and something I can benefit from. I hired a number of virtual assistants through oDesk, including a couple of computer teachers and an assistant who’s my age. In the process of delegating tasks, I learned more about the processes I use and how to make them better. I look forward to continuing to explore this.

    Related posts:

    I also spent some time thinking about presentations. I gave a lecture on Enterprise 2.0 and knowledge management at the Schulich School of Business:

    and I spent some time thinking about the use of a backchannel, what could help me become a better presenter, and how to get better at meetings.

    I learned a little bit about events, too: Lessons from LifeCamp and plans for the next one. I also volunteered to help organize DrupalCampToronto.

    At work, I developed custom code for the Drupal-based Transition2 system, improving its content management and community features.

    In March, I plan to:

    Five favorite Firefox add-ons for virtual assistants

    March 17, 2009 - Categories: kaizen, productivity

    I like helping people become more productive, particularly if that means they’ll get my work done faster or more effectively. ;) With that in mind, here’s a set of five awesome Firefox add-ons to help virtual assistants and other people who do lots of Web research for other people:

    This assumes that you already have all the usual good stuff, like Greasemonkey. And if you don’t have Greasemonkey yet, you should get it, and then you should check out UserScripts.org for lots of useful time-saving scripts.

    What are your favorite tools?

    Improving my talk management process

    March 18, 2009 - Categories: happy, kaizen, presentation, speaking

    Now that I’m reasonably happy with managing my calendar with a combination of virtual assistance and tools like TimeBridge, I’d like to improve my talk management system. I give lots of talks, and I’d love to scale up to do even more, and to do them even more effectively.

    Here are the key tasks I might be able to outsource:

    If I can get parts or all of this process in place, the results will be:

    Networking outside the firewall

    March 19, 2009 - Categories: connecting, speaking

    In a large company like IBM, it’s easy to forget to interact with the outside world. The internal network of people is rich and varied. We have our own conferences, our own mailing lists, our own communities. If you’re not paying attention, you can easily forget about what’s going on outside.

    But reaching out to people outside the organization is important, because it will let you:

    Anna Dreyzin invited me to speak at a breakfast meeting for a women’s networking group at IBM. While thinking out loud about what new tips I can share in 10-15 minutes, I realized that I can share a very different approach to networking that can result in a lot of benefits for less effort.

    You see, traditional networking is active. You reach out to other people, cultivating your network with frequent contact through e-mail, coffee, shared lunches, and other activities. You can build strong relationships, but this takes time.

    Active networking can be hard to fit into your schedule. When you have a full load of work, it’s difficult to take time to meet people for coffee or lunch. When you’re daunted by the number of messages in your inbox, you probably won’t feel like sending off another note to keep in touch. When you’re busy working inside an organization, you might not remember to make an effort to connect with people outside it.

    Active networking doesn’t scale. With traditional networking, you tend to be limited to people you’ve met or with whom you’ve had direct contact. You can grow your network by attending events, getting referrals, and working on projects with different groups of people, but your network grows slowly.

    In contrast, I would characterize my way of networking as mostly passive networking. Instead of actively reaching out to people, I focus on making it easier for people to keep in touch with me, and to giving them reasons for doing so.

    This is all because I’m shy and I have such a hard time starting conversations or calling people on the phone.
    When I started giving conference presentations in my third year at university, I realized that it was much easier to connect with more people if I gave them reasons to start the conversation. When I started blogging at around the same time, I learned that blogging was an even better way to reach out. And when social networking sites like LinkedIn came on the scene, I found them to be a great way to keep track of my growing network.

    By combining social networking, blogging, and public speaking, I can invest a little time and effort into sharing what I’m learning, reach far more people than I would have the time or courage to approach myself, and build relationships I would not have expected to have. People find my website through search engines, the business cards I hand out, and the web address in my e-mail signature. If I provide enough value, maybe they’ll subscribe to keep up to date with what I’m learning. I also occasionally receive e-mail and requests from outside the organization, which reminds me that yes, there is a world out there. ;) A little bit of effort, a whole lot of reward.

    So let’s flip networking around. If you find it difficult to reach out to people, make it easier for them to reach out to you. Here’s how to do it:

    Drupal Gotcha: Watch out for $user during update.php

    March 19, 2009 - Categories: drupal

    If you disable access-checking on your update.php, there’s no guarantee that the update script will be run with the superuser as the active user. This could mess up your update functions that delete nodes or use other access permissions.

    To fix this, temporarily assume the identity of the superuser in the update functions that need it:

    global $user;
    $old_user = $user;
    $user = user_load(array('uid' => 1));
    $session = session_save_session();
    session_save_session(FALSE);
    

    and then restore the old user afterwards:

    $user = $old_user;
    session_save_session($session);
    

    Five reasons why I’m experimenting with outsourcing to virtual assistants

    March 21, 2009 - Categories: kaizen, management

    My experiments with outsourcing amuse some people and raise questions for others. It’s difficult for most people (including me!) to give up control and delegate tasks to other people. We’re not used to it, and we don’t have many opportunities to explore it.

    A friend of mine asked me recently if I found that I needed to have many of my outsourced tasks re-done. Out of the 58 tasks I’ve reviewed so far, I needed to ask for four tasks to be completely re-done (or I found it easier to just fix it myself), and I had minor quibbles about the way six were done. That’s 7% redoing, 10% minor tweaking, and 83% totally happy with the results. Not bad, and the ratio will get even better as I learn more about delegation and as I make more of my processes explicit. I’m also very happy with the work I’ve delegated to my Philippine-based virtual assistants, which tends to be more about research or ongoing work.

    As I reflected on my outsourcing experiment, I realized that I’m doing it for a number of reasons that might not be immediately obvious to people.

    1. I can optimize my energy, kickstart tasks, and enjoy a little leverage on time.

    The time savings are obvious to people, but for me, energy is the biggest factor here. There are some tasks that I don’t particularly enjoy doing, and some tasks I feel almost anxious about doing. Being able to delegate those tasks to someone else lets me focus on what I’m passionate about and minimizes interruptions when I’m concentrating. It’s also helpful for kickstarting tasks that I’ve been procrastinating. Someone else provides the initial energy – looking up numbers, putting together some links – and then I can work on improving the results. This is similar to the way first drafts are hard to put together, but easy to revise. And I can spend five minutes delegating tasks that would’ve taken me an hour to do, giving me just a little leverage on my time.

    2. I can learn to scale even further.

    We all have the same amount of time each day. If I want to make the most difference I can, I’ll need to either become a solo genius (think Tesla) or learn how to harness the power of others (think Edison). There’s a limit to how productive I can be by myself, and besides, I enjoy learning from other people in the process of working with them. So, if I learn how to tap the strengths of other people, I can scale up beyond the limits of my own time and energy.

    3. I can refine my processes.

    As I try to delegate more and more processes, I find myself describing them and reflecting on how to do them more effectively. This helps me be more productive, it helps my assistants be more productive, and it helps other people be more productive, too.

    4. I can learn how to delegate in a safe environment.

    If I’ll need to learn how to delegate in order to accomplish a bigger difference, I might as well learn how to do so in a low-risk setting. Many people learn about management when they become managers, which is difficult because they’re held accountable for real business goals. Outsourcing to virtual assistants lets me learn about delegation and management in a setting that simplifies many of the factors (I don’t have to worry about HR too much, for example) and lets me experiment with low-risk tasks. If I incorrectly specify a task, I’m only risking some Web research, not a big project. Think of this as an MBA on steroids, because even in an MBA program, you don’t really delegate tasks to your classmates or hold yourself responsible for making sure things get done. ;)

    It’s like programming, too. I’m good at giving computers specific instructions to get the result I want, and I enjoy breaking problems down and coming up with solutions. I’m also good at understanding complex systems and holding them in my head, where I might not remember all the details but I’ll remember the relationships between components and I can figure out how to build something so that it blends in with existing structures and processes. What if I can get better at giving people specific instructions, and holding those complex systems in my head too? And just like programming, I won’t be able to do it well right away. I needed to write a lot of wrong programs (unintentionally, of course!) in order to get better at debugging them and learn about common pitfalls. As I learn more about delegation, I’m sure I’ll make mistakes–but that’s all part of the learning experience.

    5. I can develop characteristics of leadership.

    This brings to mind two interesting points from books I’ve recently read. One of the insights in Managing with Power that I found surprising can be found on page 73 and 74:

    Not only do we overattribute power to personal characteristics, but often the characteristics we believe to be sources of power are almost plausibly the consequences of power instead.

    Without, for the moment, denying that these characteristics are associated with being powerful and politically effective, consider the possibility that at least some of them result from the experience of being in power. Are we likely to be more articulate and poised when we are more powerful? Are we likely to be more popular? Isn’t it plausible that power causes us to be extroverted, as much as extroversion makes us powerful? Aren’t more powerful and politically effetive people likely to be perceived as more competent?

    Jeffrey Pfeffer, Managing with Power
    (thanks to Ian Garmaise for the recommendation; it’s an interesting book, well worth a read)

    Now combine that thought with the thesis of Bringing Out the Best in Others (Thomas K. Connellan), which is that firstborns are statistically overrepresented among leaders due to a combination of high expectations, early accountabilitiy, and good feedback. That makes sense. Older kids are often asked to take care of younger kids, and so on. (Thanks to W- for checking that book out for me from the library!)

    I’m the youngest of three sisters, so I never needed to take responsibility for my siblings, and they certainly wouldn’t hear of me delegating anything to them. ;) I don’t need to wait for anyone to give me authority so that I can learn how to delegate, though. I can invest time and money into learning that myself, so that I can learn how to build bigger things in the future. =) The more I practice, perhaps the more confident I’ll be, the more my analytical and communication skills will improve–which could lead to more opportunities to practice, and so on.

    So it’s not just about saving five minutes here and there, or helping redistribute resources to developing countries (although that’s part of the reason why I’ve hired some virtual assistants from the Philippines). It’s all part of an Evil Plan. I mean an Awesome Plan. ;)

    Weekly review: Week ending March 22, 2009

    March 22, 2009 - Categories: weekly

    From last week:

    Also:

    Next week:

    Wake up calls

    March 23, 2009 - Categories: -Uncategorized

    I’m beginning to rather like wake-up calls.

    I set up a recurring task in Timesvr to have someone call me at 6:30 every morning with an inspirational quote, the day’s weather, upcoming appointments, and a wish for a great day. This turns out to be surprisingly useful because:

    As a result of getting up earlier and with more energy:

    What would the wake-up call even better?

    Hmm… =D

    (Disclaimer: Timesvr link above is an affiliate link. I figure that if I’m going to advertise them for free because I like the service, I might as well get that tracked. Who knows, it might get me better service, or even a credit someday. ;) )

    Outsourcing processes: Wake-up call

    March 23, 2009 - Categories: process

    Here’s my process for my wake-up call:

    Every day, at the wake-up time I specified, please:

    1. Go to start.sachachua.com and sign in.
    2. Sign on to the various boxes as needed.
    3. Call me on my cellphone.
    4. Greet me good morning, tell me the quote of the day and the word of the day, and the weather for today (weather description (sunny? clouds? rain? snow), and both high and low temperatures.
    5. Tell me about my appointments for today.
    6. Tell me about my tasks for the day, and ask if there’s anything else I’d like to add. If so, create new tasks.
    7. Tell me the word for the day and its definition.
    8. Go to http://www.wgz.org/chromatic/projects/microfiction/ and read me the latest assignment. E-mail the assignment to me as well.
    9. Wish me a great day!

    Drupal tip: Test mail sending with Devel

    March 23, 2009 - Categories: drupal

    If you don’t want to send lots of mail to your users when you’re testing your site, change the Devel module’s SMTP Library setting to “Log Only”. Then you can check your log to see all the mail that would’ve been sent. Handy!

    To enable this only on your testing server, add the following to that domain’s settings.php:

    $conf['smtp_library'] = drupal_get_filename('module', 'devel');

    How to do a lot

    March 24, 2009 - Categories: career, life, productivity, reflection

    People often ask me how I get so much done. It gets almost funny, even: some people seem to think I’m somebody special, to which one of my friends rightly says: “I hate to break it to you people, but she is A HUMAN.” (warning: language)

    I don’t think I do extraordinary things, and I always emphasize that anyone can do what I do. It might take time, and you might find that your talents lead you to different applications, but there’s nothing magical about what I do. Here’s what I’ve learned:

    Do things you love, and love the things you do.

    You’ve probably already heard countless platitudes about this. “Do what you love, and the money will follow.” “Do what you love and you’ll never have to work a day in your life.” “Follow your bliss.”

    One of the advantages about doing something you love is that it becomes easier for you to invest time in learning how to do it well, and the better you do something, the easier and more enjoyable it becomes. In contrast, if you don’t like your work, you’ll spend more time and money trying to escape it – watching television, going on leisurely vacations, and so on.

    When Jeff Widman asked me what I was passionate about, I named several things right away.

    I’ve found ways to incorporate these passions into what I do at work and what I do outside work. I’ve been doing these things for a long time. I started programming when I was six! I’ve gotten pretty good at them, and passion drives me to keep learning more.

    Book cover The flip side is equally important: love what you do. Many people excuse themselves because their job doesn’t involve things they’re passionate about. One of the insights of the book Work Like You’re Showing Off (Joe Calloway) is that if you don’t hold back, if you look hard for that kernel in your work that you can be passionate about, you can grow that to be something special.

    Rather than quit work and go on a sabbatical to discover some burning career passion, which, by the way, might be just the ticket for some people, I’ve decided to go all in with my work because, well, it’s my work. Seriously. I decided that whatever work I do can be a source of fulfillment and even joy, depending on the extent to which I go all in with it. (p.72)

    Joe Calloway, Work Like You’re Showing Off

    Life is a lot more fun if you find your passion first and then develop opportunities to pursue it, but if you haven’t found your passion yet, don’t let that stop you. Life is not a spectator sport. Go all in, and you might find something you’re passionate about. Those passions may lead to other passions, too. As you get better at listening to yourself and at committing your energy, you’ll develop a sense for where your life goes.

    The next tip is:
    Do things that complement each other.

    If you’re good at a single thing, you can distinguish yourself by becoming even better at it. If you’re good at multiple, unrelated things, you can be flexible and resilient. If you’re good at multiple things and you can see how those things are related, you’ll be flexible and resilient, and you’ll get the benefits of combining those skills.

    For example, I’m passionate about experimenting, programming, writing, and presenting. Here’s how they all feed each other:


    Effort gets magnified by complementary skills.

    Do things that scale.

    Look for ways you can invest a little additional effort and get lots of benefit. For example, if you spend two hours solving a problem, spend an extra fifteen minutes writing about it online so that you can create more value for other people.

    The things I do also happen to scale, which is a happy coincidence. Once I write a program, lots of people can use it. Once I write a blog post, lots of people can read it. A presentation can reach hundreds of people, and if I invest a little effort into making the material available afterwards, I can reach many more. I always keep an eye out for opportunities to scale even more. =) Scale lets me help as many people as I can, creating as much value as I can.

    It gets easier over time, too. One or two blog posts might not be helpful, but years of archives may be. One presentation takes a lot of time to prepare, but succeeding presentations are both quicker and richer because of your experience. One program is hard to write, but the next one is easier because you’re more familiar with the tools.

    Do what you love, and love what you do. Develop skills that complement each other. Look for ways to scale up. You’ll do incredible things — and you’ll have lots of fun, too.

    Digraphs with Graphviz

    March 24, 2009 - Categories: geek

    And for the geeks, here’s the Graphviz dot file that created the graph in How to do a lot. Posting here because I know I’m going to forget, and also because it’s so cool…

    digraph {
      label = "Do things that complement each other";
      subgraph {
        rank=same
        experimenting
        programming
      }
      writing
      presenting
      programming -> writing  [label="new experience"]
      experimenting -> writing [label="new experience"]
      programming -> experimenting [label="automation"]
      experimenting -> programming [label="improvements"]
      writing -> presenting [label="content,\nopportunity"]
      presenting -> writing [label="content"]
      writing -> programming [label="reflection,\nideas"]
      writing -> experimenting [label="reflection,\nideas"]
      presenting -> experimenting [label="ideas"]
      experimenting -> presenting [label="improvements"]
    }
    

    I created it with the command:

    dot -Nfontsize=10 -Efontsize=11 FILENAME -o OUTPUTFILENAME -Tpng
    

    The result:

    Directed graph

    The Enchantress of Numbers; Happy Ada Lovelace Day!

    March 24, 2009 - Categories: women

    Today is the first Ada Lovelace Day, dedicated to the celebration of women in technology. =)

    It’s interesting to think about the history of gender and computers. Ada Lovelace‘s work in writing algorithms and imagining the many applications of computers beyond simply crunching numbers. When computers first came into the workplace, computing was seen as a pink-collar job because it resembled the secretarial work that women did. Then the tide changed, and things progressed to the point where countless research papers were written about the gender imbalance in computer science and related fields. What was it about computing that was driving women away?

    Now, perhaps, it’s shifting closer to balance, and that makes me happy.

    I remember growing up on the networks, and then the Internet. My ambiguously-gendered name and my technical skill led a number of people to assume I was male, to the great amusement of people who knew otherwise. Upon people’s discovery that I was actually female, I’d often get hit on. At technical conferences, there were never lines for the women’s bathroom, sometimes I was the only female in the session, and female speakers were rare. Being female in a male-dominated field had its perks: on overseas programming competitions, I usually got a room to myself.

    And yes, there was that niggling feeling of doubt that people found my early achievements disproportionately notable because of my gender, because I knew many brilliant people who didn’t get the opportunities I stumbled across. The imposter syndrome has many different shades.

    To this day, I still get personal e-mail addressed “Dear Sir:” (and I’m not talking about the 419 scams, but people applying for positions or asking me for help). I still have people surprised to hear my (obviously female) voice when we talk on the phone. I still find myself reflexively checking the proportion of attendees and speakers at the conferences I go to.

    I learned never to make gender assumptions in my speech and in my writing, and to enjoy turning other people’s assumptions upside down. (That’s one of the reasons I have a picture on my website.) I still come across technical documentation written exclusively with male pronouns, and it’s difficult to stifle the urge to rewrite it using plurals or alternating examples.

    It’s a lot better than it used to be, though. I don’t have to worry as much about people hitting on me or misinterpreting what I say, although I don’t know whether that’s because the culture is changing, because I’ve developed ways to head things off before they get to that point, or because I tend to hang out with older people who are already in good relationships.

    I’ve been very lucky. My parents made sure that we never thought of computers or other things as a “guy thing”. Growing up with two sisters who were both out there and doing cool things helped, too. I had plenty of role models, and I still do.

    Not everyone has that kind of environment. No matter what gender you are, keep an eye out for people who might be excluded from your field of work. Sometimes it’s a little thing like lack of confidence leading to a wider and wider digital divide. Sometimes it’s a big thing, like an environment where picking on people is acceptable (and it shouldn’t be). We can be better people than that. =)

    Tips for managing virtual assistants

    March 24, 2009 - Categories: -Uncategorized

    There are plenty of tips out there for becoming a virtual assistant, but not that many for managing virtual assistants. There are also plenty of books and resources about management and delegation, but none of them quite address the quirks of managing a diverse, changing virtual team. So I might as well start putting together useful resources here.

    Found any useful resources on how to manage virtual assistants? Share them here!

    Looking for female IT role models in Toronto?

    March 25, 2009 - Categories: toronto

    Joey de Villa (Accordion Guy) has put together a great list of some awesome Toronto women in technology. I know a handful of them, and I’m looking forward to meeting the others. I’m a huge fan of Leigh Honeywell, for example, with whom I have the fortune of being good friends, and of Sandy Kemsley, whose insights help me learn more about Enterprise 2.0 and whose donated cat bed keeps our kitties cozy. =)

    And I’m honored that Joey included me in the list!

    Helping my parents learn more about Internet and business; any tips?

    March 25, 2009 - Categories: blogging

    Last Sunday, my mom and I were talking about other businesses that she and my dad could explore. She’d recently attended a talk by a 15-year-old who said that the best product to sell these days is information.

    My mom knows a lot of things. She knows a lot about building and managing a successful photography business. She knows a lot about gifted education and parenting. She knows a lot about making big dreams happen, because she’s helped my dad with so many adventures. She knows about personal finance, success, entrepreneurship, and many other topics.

    My mom occasionally gives talks, and she’s planning to teach the business of photography as a course at a local university. If she could package some of her insights, experiences, and stories into e-books and blog posts, I think she can create a lot of value for people. And maybe my dad will get into the act too, with photographs and anecdotes and advice.

    The 4-Hour Work Week and other books that mention selling products or information online suggest using a tool like Google Adwords Keywords to study the market before investing time and effort into developing products. While looking into more information that could help my mom learn more about e-books, I thought I might do some preliminary market research. Out of hundreds of phrases suggested by the tool, I picked 19 that looked relevant, and 2 phrases that stood out because they combined okay search volume (a few thousand searches last month) with low advertiser competition. I sent the spreadsheet to my mom.

    She was delighted! She said,

    This is a wonderful list! I think there is a future for me in writing for the Internet! :)

    I started to highlight the ones with the highest number of searches. I will continue picking up info from the list tomorrow.

    my mom, after getting the Google keywords spreadsheet

    Who knows, maybe my mom will become an awesome problogger… Any advice or tips for her? =)

    Ada Lovelace Day linkfest and wrapup

    March 25, 2009 - Categories: women

    Here’s a quick wrap-up of some posts from Ada Lovelace Day:

    Linda Rodriguez wrote about how Ada Lovelace Day came to be, and paradox1x suggested some good reads.

    Mellystu wrote about her 4-year-old daughter (who’s using UNIX!), David Parmet wrote about his two daughters. Jennifer Hanen wrote about her mom’s cousin working for NASA.

    Speaking of classified work: Zach Copley wrote about Women Accepted for Volunteer Emergency Service (WAVES).

    Sharon celebrated Terri’s contribution at linux.conf.au, and Peter wrote about a Sydney IT evangelist. Lisa Damast listed six women shaping the Israeli technology industry. Red Bean wrote about a cryptographic researcher in China.

    Leah Culver wrote about Valerie Aurora (among others), who wrote about being encouraged by the fact that there are female kernel programmers like Pauline Middlelink. Karen Quinn Fung (one of my inspirations!) wrote about Leigh Honeywell (also one of my inspirations!), who salutes the Ubuntu Women.

    Julia Roy listed a number of social media geeks who have touched her life, and Jasmin Tragas wrote about a nonprofit social media consultant. Gabe Wachob wrote about a lawyer who focuses on the public interest. Jerry wrote about a number of thought leaders he admires.

    SusanT wrote about the teachers in her personal learning network, and Janet Clarey lists a number of edubloggers.

    And a shout-out goes to Tania Samsonova who included me in her list, along with lots of inspiring people including her mother-in-law (who keeps trying to teach Tania’s boys assembler… over the phone… in Russian…), Joey de Villa who included me in his list of Toronto tech women, RTFVerterra who likes my Drupal posts, and Clair Ching (another one of my friends! =) ), who shared some tidbits from our adventures. (Remember the random Japanese cat phrase? ;) )

    … and if you want a huge list, check out The Ada Lovelace Day Collection – 1091 posts and counting!

    Upcoming Web 2.0 Conferences

    March 25, 2009 - Categories: conference, web2.0

    Web 2.0 Expo – SF
    March 31 to April 3, 2009 (Schedule)
    San Francisco, CA
    Conference plus workshops: $1745 before March 30, $1945 on site
    Conference only: $1445 before March 30, $1645 on site
    Workshops only: $845 before March 30, $1045 on site
    Expo hall plus: $350 before March 30, $395 on site (includes two sessions, sponsored sessions, and all keynotes)
    Expo hall only: $100 before March 30, $100 on site

    Mesh Conference
    April 7 to 8, 2009 (Schedule)
    Registration: CAD 492.50

    Enterprise 2.0 Conf
    June 22 to 25, 2009 (Schedule)
    Boston, MA

    Early Rate
    Reg Open to 5/22
    Standard Rate
    5/23 – 6/21
    Onsite Rate
    6/22-6/25
    Full Conference Pass
    $1,995.00 $2,195.00 $2,395.00
    3-Day Conference Pass
    $1,695.00 $1,895.00 $2,095.00
    Workshops Package
    $595.00 $595.00 $595.00
    Pavilion Pass
    $100.00 $100.00 $100.00
    Pavilion Pass + Evening in the Cloud
    $195.00 $195.00 $195.00

    Web 2.0 Summit
    October 20 to 22, 2009
    San Francisco, CA
    By invitation only


    I’ll be moderating a panel on education at Mesh, and probably skipping the other conferences. I’m all for virtual conferences and blog interactions, though!

    Drupal gotchas: Never ever ever use anything less than module AND delta to specify blocks

    March 25, 2009 - Categories: drupal

    One of the common mistakes I run into is people not specifying enough information when deleting or updating entries in the {blocks} table. You should always use module AND delta to identify the block you’re working with. Delta by itself is not enough, and title is right out.

    I learned this the hard way when my blocks suddenly started failing. I jumped back to the last known-good revision, and then stepped forward. All the update functions ran okay, one after the other. When I ran all the update functions after a database refresh, though, things failed. It turned out that another developer had changed the title of a block to a blank string, but left a db_query(“DELETE FROM {blocks} WHERE title=’%s’, $title”); in the function. And since it was called fairly early in our update cycle, it didn’t turn up during the incremental updates from my known-good database.

    That took me about 45 minutes to find and fix. Thank goodness for tests and version control!

    LESSON: Never ever ever use anything less than module AND delta to specify blocks.

    Drupal in the Trenches: Fighting with Views

    March 25, 2009 - Categories: drupal

    The other developers have bought into the idea that all behavior-related changes should be in the source code. It’s the only thing keeping us sane with four developers and three environments: local, testing, and production. It has its own challenges, though, like this one:

    Problem: Blocks based on views with dependencies on custom tables sometimes don’t show up when we refreshed from the database dump, although things work if we update the database one revision at a time.

    After far too much pain and suffering, I figured out that _views_get_default_views was caching the results. When it checked our newly-enabled modules for default views, it found some views whose dependencies hadn’t gotten enabled yet, so it didn’t cache those. The next time _views_get_default_views was called, it used the values it had stored in a static variable available only in that function.

    _views_get_default_views did not provide a way to reset that static variable, so once it was called, the data was practically written in stone.

    _views_get_tables is similarly evil. (ARGH!)

    This might’ve been fixed in a Views update (and we’re still using Drupal 5, in any case), but I’m not going to suggest updating the module this close to external acceptance testing.

    So our options were:

    When there are no clean alternatives, you just gotta get your fingers dirty and hack code.

    Was that really only one hour of my life? It felt so much longer.

    RSS footers

    March 26, 2009 - Categories: blogging, wordpress

    I’ve noticed an increasing number of automated spam blogs (splogs) that syndicate my blog posts, usually with a teensy bit of attribution and a whole bunch of ads.

    I will always offer full feeds, not summaries, because summary-only blogs drive me crazy. =)

    So I thought I’d use the RSS Footer plugin to add a little context to my feed. If this is driving you crazy (too much text!) or if you want to suggest a change to the footer message, please leave a comment. Thanks! =)

    The innovator’s innovator

    March 26, 2009 - Categories: ibm

    One of the things I love about working with IBM is that we get to think about and experiment with the future. For example, with the economic climate and the travel restrictions in place, we’re looking for ways to hold more effective virtual conferences. It’s absolutely fascinating seeing people come up with ways to make virtual conferences more engaging and more inclusive, and to see the way we’re improving the technologies and processes. I can’t wait to help figure things out. And as we’re learning, we’ll help other companies save money and connect more effectively, too.

    IBM’s a large company, so we have the challenges and opportunities that many other companies also have. IBM has terrific people who are passionate about their work and who have the technical and organizational skills to make things better. And IBM has the services, software, and hardware structures to share these solutions and best practices with others. It’s not a perfect company, but it–we–can do a lot of good. =)

    The world will be a better place when anyone can come from anywhere in order to connect, collaborate, learn, and share. Looking forward to helping make this happen!

    From reactive to proactive, from inboxes to goals; thinking about the big picture

    March 27, 2009 - Categories: kaizen, life, passion, reflection

    There is surely nothing quite so useless as doing with great efficiency what should not be done at all.

    Peter Drucker

    I’m a couple of weeks into my experiment with outsourcing to and managing virtual assistants, and I’m thinking about how to take it to the next level.

    After I had cleared my backlog of lots of little things I had been thinking of delegating, I found myself mostly outsourcing trivial tasks. There’s nothing wrong with delegating trivial tasks. Although I might not get as much leverage on time, I can minimize distractions and avoid getting frustrated with interfaces. But I’ve never been the kind of person who’s happy just reacting to the numerous things that come into my inbox. I like thinking about my own projects and planning what I can do to make them happy. The difference between reactive and proactive is the difference between doing only things other people want you to do, and doing things that you enjoy doing. Reflecting on what I want to accomplish in the long run will let me identify further opportunities to make the most of virtual assistance, whether it’s the 15-minute trivial task model favored by Timesvr or the more in-depth tasks favored by the other assistants and companies with whom I’m working.

    On a related note, one of my virtual assistants in the Philippines has asked me if there’s anything else I’d like her to do. Yay taking the initiative! By thinking through and sharing what the big picture is for me, I can help assistants proactively find ways we can help each other succeed. I may even be pleasantly surprised in the process. =)

    So, what do I want to do? Long-term is a good place to start looking. I’ve got a good idea of my current strengths and some ways I can get even better at them. Here are some broad themes in my life:

    Energy and enthusiasm: I’m good at motivating other people with my energy and enthusiasm about technology and life. I’d like to someday be able to motivate thousands of people to make a difference, make a change, or make something awesome. =) I can get closer to that by:

    Communication: I’m good at writing and speaking, again about technology and life. Aside from what I’m learning because of my passion for developing systems and improving processes, I also bring my energy and enthusiasm. =) I’d like to someday be able to reach tons of people and share what I’ve been learning, and to help them share their stories, experiences and insights with others. I can get closer to that by:

    Developing software and tools: I’m particularly good at figuring out people’s source code, remembering where things are, and writing things that generally fit within that structure, thanks to my open source background. I’m also good at coaching other people along the way, breaking problems down and pointing people to relevant resources. I’m good at improving our processes, too. The automated builds and regression tests I helped my team adopt are saving us lots of headaches. I hope to someday help lots of developers pick up all sorts of great habits and skills, so that they can make lots of great systems. I can get closer to that by:

    Brainstorming and experimenting: I’m good at generating lots of ideas, at making ideas or processes a little bit better, and at combining wildly different ideas for fun. This helps at work, too – I often get asked to help people brainstorm. =) I hope to be able to look back and say that my life was one of constant learning and teaching. =) I can get even better at this by:

    Connecting the dots: I’m good at thinking of other people, books, ideas, and tools that other people should know so that they can make things happen. I hope to someday have tons of stories about what people did and how I helped them. =) I can get closer to that by:

    and I’m also slowly getting better at bringing people together to make something happen, which is why I’m experimenting with delegating to virtual assistants and figuring out how to make the most of their strengths. =)

    I’m sure I’ll discover other strengths along the way!

    That’s the very high-level picture of where I am, where I’d like to go, and a few ways on how I can get there. The themes are all related to each other, so it’s not like I’m being pulled every which way. Maybe they’re all facets of one thing I still have to figure out how to express. =)

    So, what does that mean in the next year, in the next few years?

    For communication, energy and enthusiasm: I would love to improve my processes and tools for organizing raw material for talks, and I would love to learn how to illustrate my presentations with my own sketches and photographs as well as material from the Net. I would also love to tweak my speaking style. I need to be able to slow down, use dramatic pauses, or lower my pitch when needed! ;)

    A virtual assistant can do web research on how other writers and speakers organize their raw material (some people call it their morgue ;) ), help me get my old notes together, help me look things up, help me clean up my sketches or come up with inspiration, find stock photography and Creative Commons-licensed photos on the Net, give me feedback on my speaking style, edit podcasts, transcribe speeches, and so on.

    For developing software and tools: Over the next few years, I’d like to learn how to help the developers on my teams grow even more. I could prepare webinars, presentations, and articles. Most virtual assistants probably won’t be able to help me with anything but formatting, but who knows, maybe the skills I develop during outsourcing will help me get work opportunities to grow teams too. =)

    Brainstorming and experimenting: I think it would be fantastic to learn from virtual assistants who work with lots of clients and are exposed to lots of different working styles. I also enjoy helping people improve their processes, and it’s a great opportunity for me to tweak my own. I’d also love to figure out a process or build a system for quickly testing small ideas, like articles or e-books or webinars…

    Connecting the dots: Oh, there’s definitely a lot here for a virtual assistant to help me out with! =) Managing my calendar (which I’m relieved to have someone else doublechecking), following up with people, reminding me of things, taking care of little tasks, helping me refine my process, looking for information related to people’s requests…

    So I’m pretty flexible, and if a virtual assistant can figure out how he or she can help me create value, I’d be happy to share that learning opportunity with them. =)

    What else am I missing? How can I make life even awesomer for people around me and on the Net?

    LifeCampTO: April 5 (Sun), 10:30am – 1:00pm, LinuxCaffe

    March 27, 2009 - Categories: connecting, event, life

    The next (quarterly?) LifeCampTO will be on April 5, Sunday, from 10:30am to 1:00pm at the LinuxCaffe (326 Harbord St, Toronto – south of the Christie subway station)! =)

    Sign up now!

    Agenda:

    Intros: (10:30 – 11:00, 30 minutes) – 2 minutes per person, strict.
    Come prepared with the ONE THING you _most_ want help with and the ONE THING you’re really good at and want to offer help with. We’ll keep the number system and use that to track who wants to contact whom after the meeting. Some people missed connections because neither person wrote down numbers, so we’ll keep a running tally on a whiteboard or a projected spreadsheet. If you don’t want your e-mail address to be included in the automatic matchmaking list, tell me during the event and I can make a note of that. Numbers might be pre-assigned before the event, and you can post your intros then, too. Come early and eat brunch. =)
    Small Conversations (11:00-11:40, 40 minutes):
    5 rounds of 6 minutes each, with a few minutes between for a mad scramble to find the next person you wanted to talk to. A timer will announce the halfway mark so that people can switch to offer help to the other, if they require this prompting. If people feel up to paying a small fee, we can arrange for appetizers to appear.
    Large Conversations (11:40-12:30, 50 minutes):
    2 rounds of 20 minutes each, for large topics that bubble out of the introductions. People can self-organize into whatever-size groups they want to talk about stuff. Ideal time to grab a quick snack.
    Think Tank (12:30-12:45, 15 minutes):
    Someone wins the think tank lottery! The lucky winner shares his or her goal/challenge/topic of interest and we collectively brainstorm how to help.
    Wrap-up (12:45-12:50, 5 minutes):
    Thanks, follow-ups, etc. People are invited to stay and chat over lunch with new-found connections. If you have any additional connections you want me to make, give me the numbers and I’ll update my spreadsheet.

    Feel free to pre-introduce yourself on Twitter, too – #lifecampto and whatever introduction you can squeeze into the 140-character limit.

    Advice to IT students: Learning to love what you might hate right now

    March 27, 2009 - Categories: career

    After I gave a talk at the Toronto College of Technology on how IT students can get ready for the workplace, I asked two of my virtual assistants (both educators) to follow up with some advice that they could share with their students and with students around the world. This post was contributed by Rose Andrade-Calicdan, who connected with me on oDesk. I think it’s not only an excellent insight into how IT courses can help one prepare for life’s twists and turns, but also a glimpse into the lives of wonderful people who offer virtual assistance.

    In total, it took her 1.5 hours to write, and about .5 hours of my time to give her feedback and polish the results. My conclusion: I think it was worth investing that time in bringing this story out, and I learned a lot in the process.

    Also, I feel tremendously unqualified to be delegating tasks to her, but that’s okay; I can think of it as making excuses for her to develop her skills, gain even more experience (and have more anecdotes to share with her students!), and teach me something cool. =)


    Advice to IT students: Learning to love what you might hate right now

    by Rose Andrade-Calicdan

    Teaching is a rewarding career, but it can be frustrating if your students are unmotivated and uninterested in their course. Many students registered for courses they hated, because of their parents’ demands. Some just tagged along with friends. Others had no other choice or had no idea what to pursue. Many of these students are in my class. My challenge is: how can I motivate these students to like my programming course (which they despise) and teach them the skills they need for work?

    Even during the first few days of classes, I could feel some students’ boredom. They wouldn’t participate in discussion or join the classroom interactions. I needed to encourage involvement in my class as part of the student-centered approach to class management. I love sharing my knowledge, and I also enjoy growing this knowledge by collecting others’ ideas. My personal belief is that the more you share what you have, the more you learn and gain.  

    How could I stimulate interaction and participation? Initially, I tried to let them see the significance of each lesson, demonstrating how those lessons related to their lives. If they understood how something affects them personally, they would be more likely to pay attention to the lesson.

    How could I enthusiastically share my own experience in order to heighten their interest in continuing learning? I shared how I started working in the academe, how I had experienced working on various IT-related and non-IT related jobs, and how I learned the skills to compete with other applicants.

    I told my students about my first non-IT related job, which was at the hospital. I was in charge of receiving and filing health forms submitted by patients in order to claim medical benefits. Although this task was not directly related to my course, it was my first stepping-stone to more work opportunities. Even though the job was simple, I tried to find ways to gain more experience and get the ‘know-how’ of real work scenarios. By keenly observing how the hospital generated related information, I was able to study the ‘ins and outs’ of real computer-based information systems, which during my studies were all theories and intangible concepts.

    Later, I had my first break: my first programming job. At the same hospital where I had worked, I was asked to create a database of patient information that could record medical treatment received by patients, monitor doctors’ consultations, and generate relevant reports. That was my first real taste of IT work.

    But I still wanted to teach. Taking advantage of time flexibility, I applied as a college instructor. It was difficult to adjust to working in the academe and going back to the same routine of studying and learning new lessons, but I got used to it. During this time, preparing lessons for my students was a burden. The Internet wasn’t available then, so I had to bring home several books from the library. Even though it was difficult, I gained a lot from the experience. I improved my ability to write course manuals specifically designed to suit my students’ needs and enhance their learning. And as an IT graduate, I had an advantage: I could use tools to help me develop these materials. Combining my new technical writing skills with my IT knowledge, I wrote an IT textbook and prepared modules for IT-related courses.

    The biggest break in my IT career took place when I was teaching. I wanted to personally experience real IT work. During my first summer break, I took a big programming job at my own risk! I was given a deadline to develop the application in less than two months. With guts, brainstorming sessions, and careful analysis and design, I completed a school program for assessing student fees. I found it quite complicated as the school had different schedules of fees for different type of students: government scholars, siblings discount, and various types of installment programs. This really tested my expertise. I remembered all my classes in database and programming concepts, system analysis and design knowledge, project management and software engineering. I conducted several stakeholders’ meetings, gathered users’ requirements and specifications, developed, debugged, constructed and tested–all by myself!  Whew! I not only survived the six-week project, I delivered what the school needed just in time for their school enrollment.

    When I had several years of experience in the academe, I was given the opportunity to manage a school as the College Dean. My position called for greater responsibility. I had to run the school, implementing policies while ensuring that quality education was being provided to our students. Schools face very stiff competition. Most of the time, I needed to ensure that we had updated curricula and course materials, well-maintained school facilities, and qualified professors. Even as a college dean, I still needed to keep myself up to date with new IT trends. I learned more about various e-learning and IT technologies, and I continued writing tips and advice for my students.  

    Due to some personal constraints, I needed to go back to teaching. To maximize my use of time, I’m working outside school as well, accepting simple home-based jobs that use my skills in IT: data entry, research, writing, website quality assurance, document specification, virtual assistance, and so on.

    My experiences showed that with an IT course, jobs are indeed unlimited! There are a lot of job opportunities that, in the beginning, you might have never imagined to be your means to earn a living.

    With these stories, many of my students who had been thinking of shifting to a different course were inspired to imagine themselves in various IT work opportunities. In fact, I think that among the accomplishments in my career are students of mine who landed their dream jobs, whether in the IT industry, the academe, or elsewhere: students who have learned to love the course they hated in their first few days of college.


    Rose is currently enjoying her teaching profession at Lyceum of Subic Bay while working as a Virtual Assistant and a Web Researcher at Odesk. Her dedication to teaching and her passion for sharing things she knows inspire her to continuously explore and study things relevant to her career.

    Haciendo que tu entorno de desarrollo de Drupal rocks

    March 27, 2009 - Categories: drupal

    Marco Antonio Villegas Vega of the Drupal Peru community translated my “Totally Rocking Your Drupal Development Environment” slides. Hooray! Full blog post to follow. In the meantime, check out the original at http://bit.ly/drupal25. =)

    Virtual assistance process: Manage Toronto Public Library books

    March 28, 2009 - Categories: process
    1. Visit http://www.torontopubliclibrary.ca and click on Your Account. Sign in with the provided library card number and PIN.
    2. Click on Your Account, and then click on Checkouts. You will see a list of checked-out books sorted by due date.
    3. Click on the checkbox beside all items due by the following Saturday, and then click on Renew Selected Items.
    4. You should see a list of items that were renewed and items that failed to be renewed (maximum number of renewals, other users have placed holds). Copy the titles of the items that were not renewed into an e-mail under the heading “TO RETURN“, one title and date per line. Keep this list sorted by due date.
    5. Click on Holds. If there are any items under the heading Ready for Pickup, copy the titles and expiry dates to the e-mail under the heading “TO PICK UP”, one title and date per line. Keep this list sorted by due date.
    6. Click on Sign Out.
    7. Repeat steps for any other library cards indicated, summarizing the books to return and pick up under the same headings you’ve created.
    8. If there are books to return, log on to Toodledo.com. Click on Add Task in the upper left corner. Set the subject to “Return library books”, the due date to today, the context to Errands, and the note to include all the text (return and pick-up) from the e-mail. Add the task.
    9. Send me the e-mail with the title Toronto Public Library Report.

    Making the most of opportunities – tips for managing time, energy, and money

    March 29, 2009 - Categories: finance

    Over dinner at Linuxcaffe last night, my friends and I had a great time catching up and sharing our latest adventures. I learned a lot from that conversation, too! =) In particular: the value of a crazy idea kitty fund.

    Nigel asked me if I knew lots of other people who were also experimenting with delegation and virtual assistance. I told him that a number of people were interested, but few people actually took the next step and gave it a try.

    It’s understandable. Even in good times, most people don’t experiment with ideas because:

    In order to make the most of opportunities, you need time and energy–and often, money too.

    You can free up more time for experimentation and learning. Trim your passive leisure time, like the time you might’ve spent watching cable television, if you still do. Find ways to do things more efficiently, like occasionally working from home in order to save your commute time. Increase your productivity so that you can get your work done in less time. Reassess how you spend your time and whether you can eliminate some activities or adapt them to include the new things you want to do. Batch your work for more productivity. Buy time back by asking or paying someone else to take care of some tasks.

    People often tell me that they’d love to save time, but they don’t have the time to figure out how they can. If you’re running flat out and there’s no room in your schedule for even five minutes to breathe and think, you’re running at an unsustainable pace. Slow down. This may require you to adjust people’s expectations of what you can deliver, at least in the beginning. But you need that time to think and make things better, and you’ll benefit a lot from having a little more control over how you invest your time.

    You can manage your energy. Figure out what and who give you energy, and what and who drain it. Figure out if you enjoy starting projects or finishing them, at what times of the day and in which circumstances you’re most productive. Manage around that instead of fighting yourself.

    I know my passions and what I can do to pursue them. I’m surrounded by wonderful, supportive people who cheer me on and help me recognize room for even more improvement. I can finish some projects, but I can start many more projects than I alone can finish. I’m definitely a starter, although there are some things that are difficult for me to get rolling. I’m better doing creative work in the morning than in the afternoon. I work well when I’m not worried about deadlines and when I have room to make things better.

    How can you go about understanding your energy? Experiment and reflect. =)

    You can save up money. Invest in yourself. When coming up with ideas or experimenting with new things, it pays to be able to invest a little on things that may or may not work out.

    How do you make space for this? Keep track of all your expenses and see which ones aren’t worth it. Set up automatic savings programs so you don’t even see the money in your bank account. Spend less on things and more on experiments and experiences. Focus on free or low-cost ideas in the beginning, and snowball your savings by reinvesting your profits back into your “crazy idea fund”.

    You can explore lots of interesting things when you set aside some time, energy, and money. Good luck and have fun!

    New library reminder script

    March 29, 2009 - Categories: geek

    Gabriel Mansour reminded me to update my old library script. =) Here’s the new one: library-reminder.pl. Serious geekery may be needed to make use of this script.

    Weekly report: Week ending March 29, 2009

    March 29, 2009 - Categories: weekly

    From last week:

    Also:

    Next week:

    =)

    Virtual conferences change the game

    March 29, 2009 - Categories: presentation, speaking

    One of the reasons why I give presentations at conferences so often is because I submit proposals for presentations so often. One of the reasons why I submit presentation proposals to conferences so often is because speaking at an event helps you make the most of it. Speaking also gives you a very good excuse for going to a conference, which is important when managers decide who gets to go.

    I just realized that virtual conferences are going to change the game a lot. And I love that.

    See, with virtual presentations, you don’t need to build as strong a case for going to a conference. You don’t need to wait for a conference to share your ideas, and you don’t need the votes of a program selection committee to present something and invite people to attend. You don’t need to be a speaker or an organizer in order to reach lots of people attending the same event or interested in the same area. Yes, you’ll network much more effectively as a speaker than as an attendee simply because people will come to you with questions and ideas, but even if you’re not a speaker, you can build an audience by sharing your notes or interacting with others.

    Virtual conferences level the playing field. Anyone can be a speaker. Anyone can interact. Anyone can create and share scalable value.

    What do virtual conferences bring, then? Awareness of sessions that are out there. Energy and momentum. A critical mass of people thinking about things. What can we do to take advantage of that? How can we make the most of virtual conferences’ unique strengths?

    Virtual conferences have their own challenges, of course. How do you interact with others? How do you engage people? How do you enjoy the serendipitous connections of hallway conversations? We’ll figure out how to do things like that well, someday.

    There’s something pretty powerful in this if we can help people learn how to do it effectively. That’s going to be one of my goals, then. I know something about presenting remotely. People tell me I’m an engaging and dynamic speaker, and I love figuring out how we can all get even better. I am going to help a thousand flowers bloom. =D I am going to coach my colleagues on how to make the most of these opportunities. And then–who knows–maybe the world, through our examples!

    What does that mean, concretely?

    April would be a great month to experiment with. I’d like to set up two webinars on remote presentation, and offer people coaching and consultation as well. It’ll be in addition to my full project workload, but it’s play, so I shouldn’t go crazy. The webinar materials will also be reusable, so they’ll keep creating value for other people. Hmm… I feel a Crazy Idea coming on…

    Quick tips for making the most of Sametime Unyte

    March 30, 2009 - Categories: kaizen, presentation, speaking

    More and more people are turning to virtual presentations as a way to save on travel and reach a wide audience. I’m particularly happy with Sametime Unyte, the system we use at work. Here are a few quick tips on making the most of it:

    What are your tips for webinar tools?

    Virtual assistance process: Calendar management with Timebridge

    March 30, 2009 - Categories: process

    Thanks to Ana Conception-Macatiag for documenting this process and including screenshots! =)

    Setting up appointments:

    1. Log in to http://www.timebridge.com, see Accounts and Passwords section for the login information.
    2. The screenshot below shows an example of the personal Timebridge Home Page.  To set up an appointment, click on Schedule a meeting at the left side of the screen.

      Your browser may not support display of this image.

    3. Fill in the fields.
      1. Type in email address of the attendees in the “Send Invite to” field.
      2. Indicate subject in the “Meeting Topic” field.
      3. Meeting Location (Note unless specifically specified on my meeting details, here are my venue preferences:
        • Lunch during weekdays
          • Ichiriki – Japanese – 120 Bloor Street E, Toronto – Hours: 11:45 – 2:30?
          • Camros Eatery (http://www.camroseatery.com/) – Vegan – Hours: M-F 11:30am to 7:30pm (no travel time necessary)
        • Weekends: Linux Caffe (http://www.linuxcaffe.ca) – 326 Harbord Street, Toronto. – Hours: M-F: 7am to 11pm, Sat 10am to 11pm, Sun 10am to 5pm
      4. Click the “More Meeting Options” and make sure the meeting reminder is set to 1 day before the meeting and that TimeBridge should automatically confirm the meeting time is also checked.

        Your browser may not support display of this image.

      5. Click on the button “Propose Times” to propose meeting times.  The calendar as shown in the screenshot below is linked to my Google Calendar so you will know when I’m is available. Highlight available times or as instructed by me. (Orange highlights below are the highlighted proposed times.)

        Your browser may not support display of this image.

        Additional Information in selecting time:

        • Offer 3-5 choices. Conflicts and double bookings will not be a problem with Timebridge because it is synchronized with the Google Calendar.
        • For in-person meetings, I prefer lunch (12:00 PM – 1:00 PM) or coffee/tea/hot chocolate (any time between 3:00 PM and 5:00 PM), preferably on a Thursday or Friday
        • For work-related phone meetings, I prefer calls on Wednesday to Friday afternoons (3:00 PM – 5:00 PM).
        • For personal phone meetings, I prefer calls on Saturday or Sunday (9:00 AM – 9:00 PM), preferring Saturday afternoon

        My Google Calendar will be automatically updated as soon as invitees send back their confirmations.

      6. Click DONE.
      7. Check if the proposed times are as correct. Click Edit if you need to change anything.
      8. Make sure the cc myself on this invitation box is checked.
    4. For the personal message, refer to instructions below. Then click Send.
      • For phone appointments, include the following segment in the Personal Message box:

        If the automatically-detected timezone is incorrect, please click the Edit button (under the Help Button) to set your timezone.

        Sacha Chua’s contact information

        Skype ID: XXX

        Mobile number: XXX

        Work number: XXX

        E-mail: sacha@sachachua.com

        Please send your contact information (phone number and Skype ID if available) in the “Send message to host” box.

      • For in-person appointments, include the following segment in the Personal Message:
      • Sacha Chua’s contact information

        Mobile number: XXX

        Work number: XXX

        E-mail: sacha@sachachua.com

        Please send your phone number in the “Send message to host” box so that I can contact you if something comes up.

    5. Unless instructed otherwise, click No, thanks on the “Share Availability” message to be sent to meeting contacts.

      Your browser may not support display of this image.

    6. You should see your created meeting in the home page as encircled in the screenshot below.

      Your browser may not support display of this image.

    Volunteer opportunity for teachers and retired teachers in Ontario

    March 30, 2009 - Categories: education, toronto

    I know Deniz from LifecampTO, and I’m all for helping newcomers with their job search. Know anyone who might be interested in this, either as a volunteer or as someone looking for a mentor?

    From Deniz:

    I am wondering if you can help me on a project that I am doing for not-for profit org called Skills for Change. This is a community based, charitable org. providing educational programs and settlement service to newcomers. Currently I am looking for 20 experienced practising or retired teachers who can voluntarily coach newcomer, certified teachers in their job search process. Please see the message below and let me know if you can pass on to your network.

    ——————————-

    Volunteer Opportunity for Teachers to become a Coach

    Are you a practising or retired teacher? Would you share just 4 hours a month to help a newcomer teacher adjust to teaching in Canada?

    On behalf of Teach in Ontario, Skills for Change is currently looking for experienced teachers to coach Internationally Educated Teachers (IETs) in their transition to teaching in Ontario.

    For more information, please contact

    Deniz Kucukceylan – Mentoring Recruiter
    Kucukceylan@skillsforchange.org
    Skills for Change – Toronto, Canada
    (416) 658-3101 ext. 203

    Passions, Strengths and Goals

    March 30, 2009 - Categories: passion

    I asked Joy Soria (another virtual assistant from the Philippines) to put together some career advice and stories to share with students around the world. Her first draft was okay, but generic; I challenged her to bring her own experiences and insights. I’m thrilled by the results, which I’ve shared below. I would never have discovered those facets of hers in the normal course of work, and I really appreciate getting a glimpse into her world. I hope you enjoy this post as much as I did! - Sacha


    Passions, Strengths and Goals

    Maria Victoria (Joy) Soria


    Your passions and interests motivate you to be your best in whatever endeavor you are in.

    When I was three years old, I used to listen to my older sister every time she played the piano. When she practiced her musical pieces, I found myself interested in knowing how those pieces were played. I really enjoyed listening to the melodies. I became curious and I asked my mother: I ran my fingers on the keys, could I make the same music played by my sister? My mother asked me if I would like to learn how to play the piano, and I eagerly answered yes.

    I was so excited about starting right away. When the piano teacher came to our house, I was overwhelmed with joy. Thus began my passion for music. I learned to play the piano quickly, because even at the very start, I was fascinated by it. I easily memorized the musical pieces the teacher taught me, and I began playing them by heart.

    As I grew up, piano playing became a part of me. My colleagues noticed my talent and passion for music, frequently asking me to play for occasions and even contests which needed live accompaniment on the keyboard. So even when I was teaching computers, I was able to share my passion for music.

    It is also important to examine yourself objectively and be bold enough to identify your strengths and weaknesses.

    When I was a teacher, I used to encourage my students to join school organizations in order to further develop themselves and enhance whatever talents and skills they had.

    One student named Melba asked my advice on what organization to join, because she was so shy. I told to her to write down her strengths and weaknesses so that we could identify what she needed to develop and what she could enhance.

    After examining herself, Melba found that she had a very good voice for singing. However, she was too shy to sing in front of people. I recommended that she join the school glee club where she could sing with a group. This enabled her to gradually overcome her shyness, build up her self-confidence and became bold enough to join singing contests.

    Melba won almost all of those competitions.

    She was so happy and grateful. Aside from being able to share her talent in singing, she had also successfully conquered her shyness, come out from her shell, and become a winner–not only in singing contests but also in acquiring self-confidence to discover and to explore more of her hidden talents.

    Don’t be afraid to find and develop your strengths.

    Define your goals.

    The goals we set become the targets we aim for as we face the challenges in life.

    I set personal goals for my teaching career. When I was assigned as an adviser for a graduating class, I aimed to have no student drop-out from my advisory section until the end of the school year. My desire to really have all of my students successfully graduate at the end of the school year made me set this as one of my personal goals so that I could prove that I could be a very effective class adviser.

    I wanted to make a positive difference in my students’ lives. This goal paved the way for me to establish open communication not only with my students, but also with their parents and guardians as well. I made myself approachable and accommodating whenever they needed me. I made it a point to always monitor each student in my class, especially their attendance and class performance, so that I could keep track of their progress and spot potential problems.

    I noticed that one of my students seemed to misbehave in almost all of his subjects. His other teachers complained about how  annoying he was and even threatened to drop him from the course because he habitually cut classes. I called him to my office so that I could talk to him privately and find out the core of his problem. I was concerned that he might not graduate. In the course of our talk, he shared what made him so defiant and stubborn. He told me how his parents would always quarrel violently in front of him, that his father was a drunkard and would hit his mother when they fought.

    I assured him that I would help him anyway I could. I told him that if he did his best in school, he’d have a better chance of building a better future and becoming financially independent. He could graduate and start his own career, rather than allowing himself to develop anger and hatred that could destroy his whole life. I told him to pause for a while and listen to himself and his heart so that he could find out who he wanted to become in the future.

    We stayed in touch. I helped him think about his personal goals in life, combining his talents and interests with his strengths and determination. I also went out of my way to invite his parents to school so that I could talk to them about how we could team up to help their son in his studies, helping them understand his needs–not only financially but also psychologically and emotionally. As parents, they were touched when I told them of the effect of their constant fighting on the school performance of their son. I told them that if they went on, unmindful of their son’s needs, he would be the only one who would not be able to graduate. All of his classmates and their parents were cooperating with me. This challenged them. They promised to do their best to avoid fighting and to provide their son the support he needed to succeed.

    Their son passed all his subjects and graduated. I could see the happiness and fulfillment in the parents’ faces as we celebrated the success of my students, their children, who were proud of all the challenges they had conquered. I had helped all of my students graduate during that school year, fulfilling the personal goal I had set as a class adviser.

    What are your passions, strengths, and goals?



    Maria Victoria Soria had been a public high school teacher for more than 14 years. At present, she’s using oDesk to further develop herself as a  data entry specialist, virtual assistant, and proofreader. If you’re looking for a virtual assistant, invite her to an interview!

    Monthly review: March 2009

    March 31, 2009 - Categories: monthly

    <stretch> What a great month! I learned so much. =)

    From last month:

    We’ve made a lot of progress at work on a new release of our website, which will be deployed today. Along the way, I learned a lot about Drupal, and I shared our lessons learned at DrupalCon 2009 in DC.

    I shared some tips and thoughts on public speaking and virtual conferences, which are becoming more popular at work:

    Other geeky things: I shared my library reminder script. Gabriel Mansour’s ported it to Ruby, which is probably much more readable. I learned how to make directed graphs with Graphviz, too.

    I also started delegating lots of tasks to virtual assistants, and that’s been interesting too. Here are some of my thoughts:

    and I’ve documented some of my processes:

    I’ve also shared two of the posts I asked my virtual assistants to put together for me:

    (… and my blog has the #1 spot for the search “managing virtual assistants” on Google! Nifty.)

    These experiments in delegation have prompted me to think about my own goals and see what else I can ask people to work on.

    I’ve also been able to turn that energy to other people’s goals. I brainstormed ways I could help my parents’ business, even over a distance. I helped my parents learn more about ebooks and market research on the Net. I also created a Google Adwords campaign for my parents’ company. I like how I can do split testing on the ads, and Google will optimize the delivery over time. So far, 20 people have clicked through.

    Thanks to the wake-up calls and to some schedule shuffling, I’ve been waking up early to write. It’s a great time to share what I’m thinking about or what I’m learning about life.

    I finally got the next LifeCampTO sorted out: LifeCampTO: April 5 (Sun), 10:30am – 1:00pm, LinuxCaffe, too!

    Weekly reviews:

    Week ending March 29, 2009
    Week ending March 22, 2009
    Week ending March 15, 2009
    Week ending March 8, 2009

    March had Ada Lovelace Day and Pi Day. =) Whee!

    Plans for April 2009

    Planning projects for April: making remote presentations that rock, managing virtual assistants

    March 31, 2009 - Categories: -Uncategorized

    There are two interesting projects I’d like to get going for April. One will be a guide on making remote presentations that rock, and another will be a guide on managing virtual assistants. I would like to put together blog posts and perhaps a nicely-formatted e-book. For the presentation project, I’m also planning to run a couple of seminars at work, and maybe even offer one-on-one coaching too.

    What do those projects look like?

    Making remote presentations that rock

    Possible topics:

    Coaching opportunities:

    Possible tasks to delegate:

    Managing virtual assistants

    I’d like to focus on documenting lots of processes so that we can come up with something like a manual. =) Possible topics:

    Each post will have the following structure:

    Possible tasks to delegate:

    More thoughts on calendar management

    March 31, 2009 - Categories: kaizen

    I have three days left on my free trial of Timebridge, so I need to make a decision. Do I upgrade to the USD 8.95 subscription, which includes web conferences using Dimdim and phone conferences (toll numbers), or do I ask Timesvr or my other virtual assistants to handle it and let them worry about the back-and-forth email, or do I simply publish my free/busy calendar information somewhere and let people schedule themselves?

    In the last month, I used Timebridge to schedule five meetings, one of which was with multiple people. I rarely need to schedule things outside work, and I rarely schedule meetings with multiple people. So I probably won’t renew until I feel a compelling need to do so–when I or my assistant find multiple meetings difficult to keep track of, and when my calendar isn’t being kept up to date.

    On the flip side, what would life look like if I got to the point where a service like this would be really, really helpful? Timebridge and other calendar management systems would rock if:

    I think I’ll take that USD 8.95 per month and invest it in getting to that point. =) Every little bit counts.

    April 2009

    Ethics and egos in virtual assistance and relationships

    April 1, 2009 - Categories: connecting

    Leesa Barnes is very firm about this: outsourcing social media content and relationships is not okay.

    I mostly agree. oDesk and Elance job posts recruiting people to write reviews and post comments praising products or places give me the heebie-jeebies, and there’s something Really Weird about asking someone to write fan letters to people you don’t even choose. I don’t invite random strangers to connect on LinkedIn or Facebook, and I don’t leave random blog comments in an effort to build links.

    On the other hand, I think that a little bit of delegation–yes, even in your personal life–can be surprisingly helpful. I really appreciate the list of upcoming birthdays and contact information that an assistant prepares for me each week, because I’m otherwise horrible at remembering birthdays, and it turns out that acknowledging people’s birthdays makes people smile. I’m glad that I have someone doublechecking the dates and times of meetings, because I’ve been burned by that before. I like being able to respond to Facebook and LinkedIn messages without having to use the Web interface.

    So there’s more to this than than just outsourcing, and I wonder how much of it is related to ego. ;) I don’t get frazzled by a lot, but I do know I tend to get mildly peeved when people impolitely make me feel bad because I didn’t make them feel important enough. For example:

    Hmm. When I get a half-joking prod about whether or not I had a virtual assistant handle a social gesture, I may send that person a link to this blog post.

    What’s important in a social gesture, anyway? Is it that someone holds all of the information about you in his or her head, or that someone cares enough to look it up or have it available? Is it that someone thinks about you all the time, or sets up ways to be reminded of you every so often? Is it that someone reads your blog and follows your tweets almost obssessively, or that someone’s willing to ask you questions about what you’re excited about and to listen to your update, and perhaps even drop by once in a while? (You can tell what I think. )

    If I had someone whisper in my ear the likes, dislikes, and conversational topics related to whoever’s walking up to me, I’d love that. I can’t remember everything on my own. Knowing more allows me to be of more help. Also, it makes me less stressed about interacting with people.

    If it offends someone that I don’t remember everything about them right away, or that I don’t know about the latest posts on their blog or the latest tweets they’ve shared, well–that’s probably more related to their ego. I’d be happy to let them take the initiative in the conversation. Most people forget, which is an interesting thing.

    And if you find yourself having that kind of a reaction… stop and think about it for a sec, mmkay? =) Maybe you don’t need to react that way. There’s a space between stimulus and response, and you can decide how you perceive things. If you find yourself focusing too much on a perceived slight, try to move past it and focus on the good stuff instead.

    Of course, other people get the same deal. If you meet me and you have no idea what I’ve recently been writing about or working on, that’s totally okay. If you say you can’t remember my name, I’ll happily reintroduce myself, no hard feelings. (In fact, if you hesitated even a little bit, I’d probably already have reintroduced myself by that point.) If you say, “Nice to meet you!” when we’ve already met, I’m never going to give you a hard time about it.

    So yes, I’m fine with delegating relationship-related tasks to virtual assistants (not all, but more than most people do). I think that people can help me both be more thoughtful and learn to be more thoughtful, and I think that there’s more to building relationships than just the mechanics of social gestures.

    And yes, W- knows I’m learning more about delegation, and why I’m learning about delegation, and he thinks it’s a good thing. He’s so awesome. =)


    This post was inspired by danielpatricio‘s tweet, which led me to leesabarnes’ tweet, which led me to her blog post, which tapped into something else I’d been meaning to write about because people occasionally do that “of course you should be able to remember my name” thing. =)

    Lessons learned from this phase of our Drupal project

    April 2, 2009 - Categories: drupal, kaizen

    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.

    During deployment, I also learned to:

    So my key things for next time are:

    Becoming a better developer, one step at a time…

    Remote presentations that rock: Challenges and opportunities of remote presentations

    April 2, 2009 - Categories: presentation, speaking

    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.

    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. =)

    Thinking about making ridiculous amounts of money

    April 3, 2009 - Categories: finance

    You know it’s going to be an unusual meeting when your manager asks you if you can see yourself making ridiculous amounts of money, and how you think you can get there. =)

    My manager reads my blog. He knows about my experiments. He knows I like playing around with ideas, and that I’m making good progress on saving up a crazy idea fund. Not that this makes him very nervous about keeping me. I love working with IBMers, I love working with IBM and our clients, and I love the kinds of things that we do.

    We talk about this in career planning discussions, too. He asked me before if money was important to me, which is probably manager-speak for “Do I need to keep a close eye on market salaries so that someone doesn’t hire you away?” I told him I’m okay, which is team-member-speak for “That’s not the main reason I accepted this position, but it certainly doesn’t hurt.” I also told him that I’m all for raises and bonuses–not because I need the cash, but because that’s a pretty good way of checking if I’m creating more value for the company and our clients year after year. I want to grow, while staying true to my work-life balance.

    So when my manager asked me about making ridiculous amounts of money, I told him that it’s not about making a ridiculous amount of money, it’s about creating a ridiculous amount of value. It would be nice to capture some of that value, of course. That would make it even easier for me to learn, to experiment, and to make a difference. If you create lots of value for other people, getting some of that back makes it easier for you to create even more value. It all works out.

    What I’m really interested isn’t making ridiculous amounts of money, but developing and sharing the skills to do so, and creating lots of value along the way. =) It’s the journey, not the destination.

    Also, it’s not about making ridiculous amounts of money. A large part is about saving relatively ridiculous amounts of money, and–very important–investing that into making a ridiculously wonderful life for myself and other people.

    It helps to have a bit of money and a lot of freedom when experimenting. Not too much money, though. Too much money makes people act weird, and even makes life dangerous. So a little money and a lot of freedom, and I can keep reinvesting or donating money beyond that.

    And then, because I’ve thought about this a bit, I told him about some ways I might go about doing it.

    Ken Fisher’s book on the Ten Roads to Riches is a good read. There are lots of paths. Knowing about different paths is helpful, because you can recognize them and you can prepare for them. Here are three ways that might fit me:

    And of course, there are other paths.

    So that’s what I think about making ridiculous amounts of money:

    Managing virtual assistants: the surprising benefits of transcription

    April 4, 2009 - Categories: speaking

    I frequently give speeches. During some months, practically every week involves a presentation or two. I usually post presentation, recording, and notes for these presentations, but it would be handy to have a transcript. Timestamped transcripts also make it easy to search within presentations, synchronize audio with slides, and even remove ums and ahs.

    I’m not an auditory learner. I find it difficult to sit still for an audio-only session, even if it’s my own. ;) I’ve transcribed some things–my research interviews, a few of my talks–using the handy Transcriber program, which made it easy for me to associate text with specific audio segments.

    And maybe transcripts can help me learn how to be a better speaker, too! I speak at about 200 words per minute when I’m excited. While that’s below the 300 words per minute I often joke about, it’s still well above the recommended 140-160 words per minute for persuasive speeches. Transcripts make my rambling sentence structure and my verbal crutches painfully obvious, too. ;)

    If I can get word counts and review what I’m saying without the large initial effort of transcribing things myself, I think it’ll be well worth it. It gives me metrics, and metrics are useful. Like the way that people work on getting into a target heart beat zone when exercising, these numbers can help me get into a target speaking rate zone, providing me feedback about going too quickly or too slowly. And like the way that listening to music and practicing on the piano will eventually give me a feel for how long a quarter note is in different tempos, listening to good speeches and practicing myself (either through actual presentations or through podcasts I make on my own) can help me adjust my speaking rate.

    On to the actual process of transcription:

    I posted a job notice on oDesk looking for people who can edit and transcribe audio files. While waiting for candidates to respond, I asked one of my virtual assistants to download Express Scribe and give it at try – it might help her develop new skills. I like having plenty of timestamps in the transcribed text because it makes it really easy for me to recheck the transcript, so I also sent her a link to this shortcut for timestamping files.

    A few good candidates responded to my oDesk ad. One of them had an excellent sample transcript, so I’ve also added her to my growing team. I sent her the audio recording for the talk I did yesterday, and I’m looking forward to getting it back.

    Here are some notes on my preliminary experiences with transcription, and I’ll add more as I explore this:

    I wonder how I can take advantage of Dragon NaturallySpeaking here, as I already have it. Even better if I could get someone else to train and correct my user model, but I think Dragon NaturallySpeaking wants me to upgrade to the super-expensive version in order to do that. =|

    Hmm… How can I tweak this process…

    Do you outsource transcription, or do any of your friends outsource transcription? I’d love to hear about experiences and tips!

    Nothing quite like Org for Emacs

    April 6, 2009 - Categories: emacs, productivity

    I’ve been trying lots of different Web-based GTD task managers like Remember the Milk, Toodledo, and GTDAgenda. I’m slowly coming to the conclusion that there’s nothing quite like Org for Emacs.

    Here’s what I like about the other services:

    Here’s what I like about Org:

    Of all the options I’ve tried, Toodledo is closest to where I am with Org, although it still doesn’t do everything.

    Some options are:

    Weekly report: Week ending April 5, 2009

    April 6, 2009 - Categories: weekly

    From last week:

    Also:

    This week:

    My Drupal Makefile

    April 10, 2009 - Categories: drupal

    As promised, a scrubbed version of my Drupal Makefile.

    I customize it for different testing or production environments with .mk files (ex: qa.mk) that contain the variables from the top part of the Makefile. These files are automatically included in this Makefile. Benefits: I don’t have to commit my database password to the source code tree, and I don’t have to think about which environment I’m in.

    I use “make cycle” and “make mysql” a lot. “make cycle” depends on Drush being set up properly, and patched to allow you to update all the modules from the command-line.

    I think this works for the Drush update command:

    function drush_tools_update($command = '') {
      global $user;
      ob_start();
      require_once 'includes/install.inc';
      include_once('update.php');
      $ret = ob_get_contents();
      drupal_load_updates();
      ob_end_clean();
      $user = user_load(array('uid' => 1));
      $list = module_list();
      $update_list = array();
      foreach ($list as $module) {
        $updates = drupal_get_schema_versions($module);
        if ($updates !== FALSE) {
          $latest = 0;
          $base = drupal_get_installed_schema_version($module);
          foreach ($updates as $update) {
            if ($update > $base) {
              if ($update > $latest) { $latest = $update; }
              $update_list[$module][] = $update;
            }
          }
          if ($latest) {
            sort($update_list[$module]);
            printf("%-30s %5d -> %5d (%s)\n", $module, $base, $latest, join(', ', $update_list[$module]));
          } else {
            printf("%-30s %5d\n", $module, $base);
          }
        }     
      }
      if (count($update_list) == 0) return;
      if ($command != 'force' && !drush_confirm(t('Do you really want to continue?'))) {
        drush_die('Aborting.');
      }
      ob_start();
      foreach ($update_list as $module => $versions) {
        foreach ($versions as $v) {
          print "Running " . $module . "_update_" . $v . "\n";
          update_data($module, $v);
        }
      }
      $updates = ob_get_contents();
      cache_clear_all('*', 'cache', TRUE);
      cache_clear_all('*', 'cache_page', TRUE);
      cache_clear_all('*', 'cache_menu', TRUE);
      cache_clear_all('*', 'cache_filter', TRUE);
      drupal_clear_css_cache();
      ob_end_clean();
      print $updates;
      $output = '';
    
      print $updates;
      if (!empty($_SESSION['update_results'])) {
        $output .= "The following queries were executed:\n";
        foreach ($_SESSION['update_results'] as $module => $updates) {
          $output .= "\n" . $module . "\n--------------------------\n";
          foreach ($updates as $number => $queries) {
            $output .= 'Update #'. $number . ":\n";
            foreach ($queries as $query) {
              if ($query['success']) {
                $output .= "SUCCESS: " . $query['query'] . "\n";
              }
              else {
                $output .= "FAILURE: " . $query['query'] . "\n";
              }
            }
            if (!count($queries)) {
              $output .= "No queries\n";
            }
          }
        }
        $output .= "\n";
        print $output;
        unset($_SESSION['update_results']);
      }
    }
    

    (and you’ll need to define it in drush_tools_drush_command also).

    Enterprise 2.0: The business value of social networks

    April 10, 2009 - Categories: enterprise2.0, happy, research, web2.0

    Both our internal Social Networks Analysis community and Colleen Haikes (IBM External Relations) tipped me off to some absolutely fascinating research on the quantitative correlation between social networks and performance based on an analysis of IBM consultants. You can read the research summary and view the presentation, or read the research paper for all the details. Highlights and what I think about them:

  • Betweenness is negatively correlated. Being a bridge between a lot of people is not helpful. The presentation clarified this by saying that the optimal team composition is not a team of connected superstars, but complementary team members with a few well-connected information keepers.
  • Strong ties are positively correlated with performance for pre-sales teams, but negatively correlated with performance for consultants. Pre-sales teams need to build relationships, while consultants often need to solve a wide variety of challenges.
  • Look! Actual dollar values and significant differences! Wow. =)

    Here’s another piece of research the totally awesome IBM researchers put together:

    A separate IBM study, presented at the CHI conference in Boston this week, sheds light on why it’s easier said than done to add new, potentially valuable contacts to one’s social network in the workplace.  The study looked at several types of automated “friend-recommender” engines on social networking sites.  The recommender engines used algorithms that identified potential contacts based on common friends, common interests, and common hyperlinks listed on someone’s profile.

    Although most people using social media for the workplace claimed to be open to finding previously unknown friends, they were most comfortable with the recommender engines that suggested  “friends’ friends” — generally, people whom they already knew of.  The friend-recommenders with the lowest acceptance rates were those that merely look at whether people have similar interests — although they were the most effective at identifying completely new, potentially valuable contacts.  Friend-recommenders that took the greatest factors into account were deemed the most useful.  (IBM’s Facebook-style social networking site, Beehive, uses this type of friend-recommender engine.)

    Personally, I don’t use friend recommenders to connect to completely new people, but they’re great for reminding me about people I already know.

    Check out the research – it’s good stuff. =)

    (cross-posted from our external team blog, The Orange Chair)

    Finding finishers, building a team

    April 10, 2009 - Categories: connecting

    “So, what did you tell Steve to convince him to take time out for lunch with me?” I asked Ian Garmaise as we settled into our chairs at the Village Idiot Pub. “You probably told him that I’m always on the look-out for interesting mentors,” I said. The Steve in question was Steve Mann, whose work on wearable computing had inspired my fledgling experiments with it in fourth year university, and who is unquestionably a remarkable inventor. I mentally reviewed my list of questions to see if they were up to par.

    Ian reassured me that it was because he thought I might be able to help. That is, I think he meant to reassure me. I scrambled to think of what I could’ve learned that Ian would’ve thought useful.
                           
    As it turned out, I did. Both Steve and Ian were particularly interested in my recent experiments with outsourcing work to virtual assistants. I told them how I asked a transcriptionist to process one of my talks, and how happy I was with the results. Steve’s got way more lectures and way more recordings than I have, and he’ll certainly have plenty of material to go through.

    I also told them how I enjoy starting work and turning them over to other people to finish. This can be a liability (I’m a little scatter-brained!), but if I can team up with, hire or partner with people who are good at finishing, it’s something that can be handled. At this, Steve lit up. He was also very much a starter, and if he can get better at assembling and coordinating teams (or work with someone who is), he can get more of his inventions further along. I referred him to the transcriptionist I hired, and I also gave him a few tips on starting working relationships with contractors (small jobs at first!).

    And then I had fun playing music on Steve’s hydraulophone. =D And yes, the brochure is right – it really is play. You can’t play music with water splashing everywhere and not smile. =)

    Some of the things that came out of that experience were:

    Thanks, Ian, for the introduction. Keep me posted – I think it would be cool to learn how to tap other people’s skills!

    Seven tips for making better presentations

    April 11, 2009 - Categories: presentation, speaking

    People often ask me how they can improve their presentation skills. Here are seven quick tips:

    1. Think about why you want to make better presentations. It’s not just about getting rid of your ums and ahs, it’s about making that connection with the audience and helping them act, learn, or understand. When you have a clear purpose, it’s easier for you to find opportunities to improve and to motivate yourself to do better.
    2. Go to lots of presentations, even bad ones. You’ll learn about what people do well and what you can improve. Try imagining how you would give that presentation.
    3. Look for great presentations. TED.com is a good source of inspiration.
    4. Read blogs and books about presentation design and delivery. My favorite blogs are Presentation Zen, Slideology, and Speaking about Presenting.
    5. Give lots of presentations. If you don’t have speaking opportunities coming up, make them. You can practice slide design and information organization by putting slides together for sites like Slideshare. You can practice delivery by organizing meetings or creating a podcast/vidcast. You can help people find out about what you’re interested in talking about, and you can volunteer.
    6. Record your presentations and review them. Having them transcribed helps, too. If possible, record both audience and speaker.
    7. Practice relentless improvement. Every time you give a talk, reflect on what you did well and what you can do better.

    Riding on my bicycle; taking advantage of novelty

    April 11, 2009 - Categories: life

    I spent the afternoon on my bicycle, taking care of errands and getting some exercise along the way. Or was that enjoying exercise, and taking care of errands along the way? It’s hard to tell with bicycles. =)

    W- and I rode to the Mountain Equipment Coop store near Spadina and King. He wanted to look for breathable shoes for the summer, and I wanted to pick up bike lights. On the way there, I quickly became convinced of the necessity of getting gloves and a windbreaker. (I had fleece on, but it was sometimes too warm. On the other hand, there were a number of moments when I was glad I had that layer!)

    After we had lunch at Burrito Banditos (the rebranded Burrito Boys W- has been going to for a long time), W- headed back home, and I took care of a few other errands. I passed by Designer Fabrics to buy buttons, and by theworkroom.ca to see if I could get some quick help on patterns I’d been trying to figure out. (No. Looks like I’ll need a private tutor for things like that.) Then I swung by Zellers on the way home to pick up lots of socks (I’m getting tired of not being able to match socks!), checked the post office (closes at 2 PM on Saturdays, apparently), and went home. =)

    I had fun. I really appreciate being able to tiptoe my way through crowded junctions instead of precariously wobbling from a higher seat. I still don’t like hills, but I’m sure I’ll get the hang of them with more biking. And I really like being able to enjoy the sunshine, go places, and take care of things.

    Maybe it’s the endorphins. Maybe it’s the novelty. Whatever it is, if I can take advantage of that energy and use it to make biking (or exercise in general) part of my habits, that’d make life even better.

    Weekly report: Week ending April 12, 2009

    April 12, 2009 - Categories: weekly

    From last week’s plans:

    I also:

    Next week:

    How to extract just the audio from Sametime Unyte recordings, on Linux

    April 14, 2009 - Categories: linux, presentation

    I use Sametime Unyte for web conferences at work. Unyte allows you to record your teleconferences (slides and audio), and you can download a ZIP containing Flash video after your session.

    I usually extract the audio track and publish that as a separate MP3 so that people can listen to it. I can also have the audio file transcribed. The audio track from Sametime Unyte is of lower quality than my voice recorder, but it’s a good backup and it captures both sides of the phone conversation.

    Here is one way to extract the audio using Linux:

    for FILE in *.swf; do ffmpeg -i $FILE -ab 64k $FILE.wav; done
    

    Then you can concatenate all the WAV files:

    sox *.wav all.wav
    

    Then you can use Audacity to edit the resulting file.

    Young and savvy

    April 14, 2009 - Categories: finance, gen-y

    Over at My Two Dollars, Diane Hamilton wrote a post decrying how Millennials “have been raised to expect immediate gratification” and that “everyone is bending over backward to meet their needs” (which popular media has been harping on for a while). She proposes adding more financial courses to colleges and K12, developing personal finance books geared towards younger kids, and sharing mistakes and lessons learned with kids.

    Heh. Maybe it’s just me, but I can’t help but want to stick my tongue out at popular media when it paints Gen Y with too broad a brush (and yes, that applies even when they’re bringing out the “Gen Y Will Save the World!” stories).

    Especially when it comes to Gen Y and money. It’s true that more and more people are struggling with student debt. In many countries, younger people felt locked out of the real estate market because older people had more assets and could bid up house prices. Now they feel locked out of the real estate market because of less access to capital and lower earning power. And of course, there are many younger people who have moved back with their parents in order to save money, a phenomenon much remarked-on in popular media.

    Two words: sub-prime mortgages. Who got the economy into that mess, anyway? ;) But this is the world we’re growing up in, so we’ll just have to help fix it.

    But you know, it’s not that bad. =) Here’s what I think about money and my generation: Most of us have seen way too many people make way too many mistakes about life, about money, about all sorts of things. It doesn’t mean that we won’t make our own set of mistakes, but it does mean that we’re generally not as clueless as media paint us to be. ;) The Gen Yers I’ve talked to keep tabs on their spending and plan long-term investment, look for ways to be frugal, and are pretty darn good at using all sorts of new tools to manage their money and learn more.

    Then again, I’m weird, and maybe many of my friends are weird too. ;)

    Schools: while I’m all for introducing more real-life education into schools, parents should take responsibility for teaching their children financial savvy. Children can have the best lessons in school, but if they come home to parents neck-deep in credit card debt and still spending on unnecessary things, or who laugh at the idea of saving for the long-term for people in their twenties, something’s wrong with that picture.

    Don’t just share your mistakes. Share the good things you do. Share your decision-making process. Share your goals, too. Lead by example.

    I’m really lucky to have money-savvy parents. My mom and my dad set up their own business, funding all of their growth from a little capital they had saved up and from reinvested profits. My mom taught me how to use the envelope method to manage my money without feeling constrained by a fixed budget. She also taught me never to carry a balance on my credit card, to resist the temptation to spend excessively on consumer goods, and to plan for the long term. Both my parents taught me to spend where it counts.

    It’s not hard to do something like that too. Instead of getting all worried about Gen Y and immediate gratification, practice conscious spending and reflective action yourself, and you’ll teach people of all generations along the way.

    SO:

    As for Gen Y being spoiled kids at work–you have to wonder how many of the things we ask for are common-sense. ;) Work-life balance is something I think a lot about, but it’s good for everyone. Focusing on results rather than on face-time–again, that’s a business best practice. Wanting opportunities to be engaged, to do work that you’re passionate about? That makes sense for everyone, too.

    My team would be the first to tell you that they adapt to me at least as much as I adapt to them, and they’d also be quick to reassure you that this is a Good Thing. ;)

    Managing virtual assistants: My process for managing talk deadlines and information

    April 14, 2009 - Categories: -Uncategorized
    1. Log on to docs.sachachua.com and open my Talk planning spreadsheet.
    2. Click on the last tab near the bottom of the page. (Talk planning)
    3. Select the F and G columns, right-click on the column header, and choose Insert 2 Left.
    4. Select the D and E columns, copy them, and paste them into F and G columns. Delete the TEMPLATE header.
    5. Replace the date and title from the text.
    6. Fill in the other information about the talk.
    7. Log on to Toodledo.com in a separate window, and arrange your windows so that you can see the spreadsheet and create tasks at the same time.
    8. Scroll down to see the tasks on the spreadsheet. The dates should be automatically calculated based on the due date of the talk. Manually set the dates if any were specified.
    9. In Toodledo, click on Folders, and then add a folder with the title of the talk. Then go to the To-Do List and add the tasks (shortcut key: n). Specify the folder, due date, and length based on the spreadsheet and/or talk information. Set the context to “home” (unless I indicate otherwise) and the tag as “presentation”. For the tasks before “Call or e-mail organizer to confirm details”, set the start date to be one week before the due date.
    10. Create a Timesvr reminder for two hours before the presentation with the following text:
      Please call me on my cellphone to remind me about the upcoming talk on (talk title). Remind me of the title, the time, the organizer’s name, and other information.
    11. Create a calendar entry for the presentation on my Sacha – Main calendar, including the talk title and organizer contact information. Add location, transit instructions, and driving instructions if specified. E-mail me when you’re finished.

    For reference, this is what the left side of my spreadsheet looks like:

    DATE OF TALK
    Title of talk
    Organizer contact info
    Duration
    Length Task Days
    30 Send organizer title, abstract, bio, and picture -21
    15 Get talk details -21
    30 Outline talk -18
    120 Do background research -14
    60 Assemble detailed outline -7
    150 Write pre-talk blog post -5
    60 Storyboard presentation -4
    120 Make presentation and send it to organizer -3
    10 Call or e-mail organizer to confirm details -2
    60 Give presentation 0
    60 Post recordings 1
    30 Update ROI spreadsheet 2
    Talk information
    Abstract
    Bio

    Quarterly review: Q1 2009

    April 15, 2009 - Categories: Uncategorized

    In The Periodic Review, Part IV, Stephen P. Smith gives a handy quarterly review checklist that includes:

    1. Review 3-5 year goals
    2. Review career goals
    3. Review purpose
    4. Review lifestyle

    which I will rearrange a bit, because this makes more sense to me:

    1. Review purpose
    2. Review career goals
    3. Review 3-5 year goals
    4. Review lifestyle

    Purpose

    I’m passionate about:

    which is really one passion: helping others and myself be the best we can be through tools, processes, and connections.

    Some key ideas that support that passion:

    No significant change in principles from last quarter. I’m getting better at experimenting and scaling, though! =)

    Career

    There are lots of different paths I can take so that I can eventually fully express those principles. =) No matter which path I choose, I hope to grow into a position where I can create opportunities, help lots of people grow, and continue to have the time and space to experiment with interesting tools and processes. This is basically my current situation, but on a bigger scale.

    From conversations, it doesn’t seem as if I’d like the high-powered corporate executive path, although I’m open to being surprised. ;) I can probably do well as a professional, and I would probably also do well as an entrepreneur. I’d like to keep my technical skills (building tools is a lot of fun!), and I want to learn how to build processes that help others be more productive.

    Personal projects that can help me advance my career goals are:

    3-5 year goals

    Among my 3- to 5-year goals are:

    Lifestyle

    My lifestyle is fairly frugal, although there are some things I spend on that other people might not, because I think it’s worth it. For example, my experiments with delegation have been very interesting! =) My roles and responsibilities are in line with what I want and with the lifestyle I have, although I’m looking forward to finding ways to be more present and more thoughtful, because that’s fun too. Key positive changes I’d like to make to my lifestyle this quarter: use my bike more often, take advantage of the warmer spring/summer weather to play catch, and gradually make more and more clothes for my wardrobe. Ooh, and make time for more dot-connecting!

    =)

    UPDATE: You might also find these links interesting:

    Monthly review: March 2009
    Monthly review: February 2009
    Monthly review: January 2009

    Reflecting on public speaking and my talk management system

    April 15, 2009 - Categories: kaizen, presentation, speaking

    As I was describing my talk management process and goals in an e-mail to a potential mentor, I realized I’d come pretty far from where I started in public speaking. Here’s what I have (and therefore, what I can help people learn about). I have:

    Here’s what I’m working on now:

    Over time, I’ll also learn more about organizing my own speeches and events, and working with other speakers.

    My goal is to be able to help inform and inspire people by consistently preparing and delivering engaging presentations, whether in person, over a teleconference, or as a recorded presentation (that’s tough!). I’ll know I’ve achieved it when I can give a presentation once a week or once every two weeks that makes lots of other people and me smile, learn something useful, and get moved to action. I would like to give 100 talks over the next 3-5 years, and I can also measure my progress based on the number of testimonials I collect.

    I enjoy public speaking. Public speaking (complements the other things I do), and applying the principle of relentless improvement to it is a lot of fun as well. =)

    One stick figure’s day

    April 16, 2009 - Categories: sketches

    It’s been a while since I posted a sketch!

    Sketches: Do these look like cats to you? =)

    April 17, 2009 - Categories: cat, sketches

    This was also fun to make. =)

    Weekly report: Week ending April 18, 2009

    April 18, 2009 - Categories: weekly

    From last week’s plans:

    I also:

    Next week, I plan to:

    Managing virtual assistants: Imagining more possibilities

    April 19, 2009 - Categories: delegation

    When it comes to finding people for my outsourcing team, I’m like a 5-year-old in Willy Wonka’s chocolate factory. There are so many people with so many great talents, and I want to tap all of them.

    I find it amazing that I can trade my money (which really represents my time and energy) for someone else’s time and energy. For example, the image below took one of my illustrators 4 hours to make based on a photo, for a total cost of around USD 45. This is not an amount to sneeze at, for sure, but considering how long it would’ve taken me and how badly I would’ve drawn it myself, it’s not a bad trade-off either.

    That’s so much better than my stick figures. =) Now my personal outsourcing team includes someone who types faster than I do (she’s an excellent transcriptionist) and several illustrators who can beat me in a drawing competition even with their eyes closed.

    I delegate many clerical tasks, taking it as an opportunity to think about and document my processes. But the times I really enjoy delegating something to someone is when I can tap their strengths at things that I find it difficult to do, and they do things that surprise and delight me. My team doesn’t just save me time, they teach me so many things along the way, and they help me imagine even more possibilities.

    There’s something powerful in here, and I’m looking forward to learning how to make the most of it. =)

    My financial network map and virtual envelope system

    April 20, 2009 - Categories: finance

    Taking Bargaineering‘s advice to map out my financial network, I decided to diagram how my accounts relate to each other:

    I have accounts at three banks, represented by the gray boxes at the top. The first bank offers me free chequing, okay-if-not-stellar rewards on my credit card, and a good savings rate. The second bank offers me a good savings rate and GICs that are easy to manage. The third bank offers me low-MER index funds for my registered retirement savings plan (RRSP) and long-term investments. (I’m 25, so my portfolio leans heavily towards equity.)

    UPDATE: I nearly forgot–I also have a Defined Contribution Pension Plan at work, which automatically deducts a portion of my paycheque for my retirement savings. That’s the good thing about automatic deductions–they work for you even if you forget about them… =)

    I use a modified envelope budgeting system to get a unified view of my finances, plan my spending, and save up for major expenses. Every week, I balance my books, entering in transactions and double-checking my envelope balances. All income is automatically put into a virtual “Unallocated” envelope. I copy the envelope allocations from my previous paycheque, and these allocations move virtual money to the different envelopes.

    Priority envelopes:

    Infrequently-accessed envelopes: I keep my emergency fund and my travel fund at a certain level.

    Regular expenses and flexible expenses: Every paycheque, I use a template to allocate money among my regular and flexible expenses. Then I check the balance of my virtual envelopes. If one of the regular expenses envelopes is lower than it should be or I have a negative balance somewhere, I move money from the flexible expense envelopes. This arrangement lets me build up some “play money” that I can spend on little indulgences.

    When I spend money, I track which account it flows out of (Chequing or Mastercard, typically), and I also semi-automatically track which envelope it comes from. Every expense gets taken out of the Play envelope by default, to make sure that all expenses are accounted for. If a transaction matches certain rules or I adjust the envelopes manually, then my system takes virtual money from the corresponding envelope and puts it into the play money envelope. The personal finance system I use (Ledger – it’s a command-line tool for geeks) allows me to prepare reports with or without these virtual transactions, so I can reconcile my finances with bank statements and with my virtual envelopes.

    When I want to save for a short-term goal, I create an envelope for it and adjust my envelope allocations. I wrote a shortcut to calculate the minimum I need to save each paycheque in order to meet my medium- or long-term goals by my target dates. That allows me to reduce my Investment envelope allocation and put the freed-up money in my short-term goal envelope. Once I’ve achieved that goal, I return my Investment envelope allocation to my customary amount. This allows me to enjoy things earlier, while still being on track for my medium- or long-term savings goals.

    Results: Because I control my spending based on the balances in these virtual envelopes, it’s easy to pay my credit card in full each month. I’ve also been able to fully fund my RRSP each year, and I save a decent amount for long-term retirement outside that tax shelter. Creating envelopes for short-term savings goals like a drawing tablet or a bicycle before lets me build both a budget and anticipation, and I get to do some consumer research along the way, too. The crazy idea opportunity fund lets me try interesting things. When an idea or an opportunity gets large enough, I split off another envelope to make sure I set aside enough funds to explore it well (ex: outsourcing). And yes, I end up with enough Play money to enjoy life, although I often move play money into my Investment envelope because it’s so much fun watching those numbers go up too!

    Couple finances: W- is also good with money. We’re both pretty frugal, although we spend where it counts. W- uses GNU Ledger to manage his accounts, too. (The couple that geeks out together…) He uses a similar envelope system, but he allocates money to virtual envelopes on a monthly basis instead of on the bi-weekly basis I use. We keep separate bank accounts, but we reconcile our books every so often so that we can keep track of who needs to be reimbursed for what. =) It’s a lot of fun, or maybe we’re just both weird in the same way.

    Next steps: I’m happy with the way my finances work, and I know that I have a reasonable chance of doing well in the future if I just keep plugging away at it. Most personal finance books are written for people overwhelmed with debt or worried about retirement, so there’s very little advice on what to do once you’ve gotten that sorted out. (I’m not guaranteed a good retirement – life happens! – but I probably won’t do too bad.) With a good foundation in place, I can then look at other things: how to get even more value for what I do spend (yay frugality!), how to explore opportunities, and even how to create opportunities for other people.

    Big picture: Good money management can help me explore opportunities and avoid one of the most common stressors for relationships, and both help keep me very happy. I’d like to figure out how to manage money really well, because someday I want to be in a position where I can create lots of opportunities for others. I also want to be able to build a library. =) Great money management can help me get there. With that big picture in mind, it’s easy (and fun!) to invest time in reading about how I can save more money, earn more money, or make the most of what I have.=)

    Like this? Check out my other posts about personal finance.

    Q1 2009 Newsletter

    April 20, 2009 - Categories: Uncategorized

    This is a quarterly email with my favorite blog posts, books, links, and personal updates. You received this newsletter because we’re connected on LinkedIn or you subscribed to the list. To unsubscribe or change your e-mail address, click here: !INSERTURL!

    THINGS I’M THINKING ABOUT

    1. Personal outsourcing

    No matter how productive you are, you only have 24 hours a day. I haven’t figured out a way around that, but I experimented with delegating some personal projects to virtual assistants.

    It has its own challenges (I’m learning a lot about specifying what I want!), but I enjoy working with different people–many of whom do the work much better than I can! You can read about my experiences and my processes at http://livinganawesomelife.com/wp/category/va .

    If you’re interested in getting started, comment on my blog or e-mail me. I’d love to learn along with you!

    2. Drupal application development

    I really enjoy building content management systems and social networking websites using the Drupal platform, and I’ve been teaching other people tips on how to become better (and lazier!) developers. I gave a sesson on “Totally Rocking Your Development Environment” at DrupalCon 2009 to around 150 people, and many people told me that it was one of their highlights. You can find it and my other Drupal-related posts at http://livinganawesomelife.com/wp/category/drupal .

    3. Web 2.0, Enterprise 2.0, and public speaking

    I gave 13 talks, reaching approximately 730 people with an additional 1825+ views online.

    External presentations:
    - Totally Rocking Your Development Environment, Drupal Peru
    - Totally Rocking Your Drupal Development Environment
    - Totally Rocking Your Development Environment, DrupalCon 2009
    - Enterprise 2.0 and Knowledge Management (Schulich School of Business)
    - How the Web is Changing the Way We Learn – Mesh panel
    - New Employees and a Smarter Planet

    IBM presentations:
    - Get Smart with IBM Web 2.0
    - GBS Tech Talk
    - Networking Outside the Firewall
    - Networking Outside the Traditional Office
    - Making the Most of Sametime Unyte
    - Totally Rocking IBM: FutureBlue and Web 2.0
    - Four Generations in the Workplace: Top 10 Signs of Multi-generational Issues

    I’m looking forward to helping even more people learn more about connecting and collaborating using social networking tools. I also love helping developers learn about ways to get even better at working with Drupal. Speaking and coaching are both are great ways to get even better ROI on what I’ve learned, and to meet and learn from lots of interesting people along the way.

    Want me to speak to your group? E-mail me and we might work something out. Interested in learning more about public speaking, or checking out my talks? See http://livinganawesomelife.com/wp/category/speaking for my thoughts and tips.

    4. Lots of hobbies

    I got my own bike, and that really changed Toronto for me. I’m learning more about sewing my own clothes, and I’ve been teaching myself the piano too. Ooh, and drawing! Check out http://livinganawesomelife.com/wp/category/sketches for my stick figures, and http://twitter.com/sachac to see my new background. =)

    QUICK LINKS

    Quarterly goal review:
    - Q1 2009: http://livinganawesomelife.com/wp/2009/04/15/quarterly-review-q1-2009/
    Monthly reviews:
    - March 2009: http://livinganawesomelife.com/wp/2009/03/31/monthly-review-march-2009/
    - February 2009: http://livinganawesomelife.com/wp/2009/03/17/monthly-review-february-2009/
    - January 2009: http://livinganawesomelife.com/wp/2009/01/30/monthly-review-january-2009/
    Weekly reviews: http://livinganawesomelife.com/wp/category/weekly/

    MY TOP BOOKS THIS QUARTER

    Understanding Comics: The Invisible Art
    Scott Mccloud, 2006
    Well-drawn, well-written, and surprisingly philosophical. Definitely worth a read.

    The Power of Full Engagement
    James E. Loehr, 2003
    Applies principles from athletic training to the corporate world. Great book for self-improvement.

    Fifty Years of Great Writing: Sports Illustrated 1954-2004
    Rob Fleder, 2003
    I don’t know much about sports, but good literature like this is a great way to learn why people love it.

    OTHER PEOPLE YOU SHOULD CHECK OUT

    If you like reading my blog and you’re looking for other people to read, I recommend:

    Sameer Vasta – I Tell Stories, http://itellstories.org/
    Check out his quarterly report: http://itellstories.org/2009/04/14/create-followup/

    Ryan Stephenshttp://ryanstephensmarketing.com/blog/
    Productivity and social media marketing from another Gen Yer

    – and cool blog posts I’ve shared from my Google Reader:
    http://www.google.com/reader/shared/04689935238818494850

    See you next quarter, or earlier! =) If you want more recent updates, check out http://www.livinganawesomelife.com .

    What were the highlights of your quarter, and what are you planning for the next one? Share your thoughts at http://sachachua.com/wp/2009/04/20/q1-2009-newsletter/ or e-mail me at sacha@sachachua.com!

    —-
    You received this e-mail because we’re connected on LinkedIn or you subscribed to the list. If you want to unsubscribe or change your e-mail address, click here:

    !INSERTURL!

    If you’d prefer to get these updates in your feed reader, you can get full or partial feeds at http://livinganawesomelife.com.

    If you received this note from a friend and you would like to subscribe, click here:
    !INSERTURL!

    My contact information:
    Sacha Chua
    +1 416 823 2669
    sacha@sachachua.com

    Software reconstruction

    April 21, 2009 - Categories: drupal

    Our partners really like the Drupal-based content management system I’ve been working on, so we might roll it out to a number of other countries. To minimize headaches, we’ll probably run them as separate Drupal databases using the same code. Over the next quarter, my team needs to clean up and genericize our current US-centric site so that it can be used in lots of other geographies.

    This would be a nightmare to do if we had made all of our changes on the Web. Fortunately, most of our changes are in .install files. The changes had gotten out of sync with the installation profile we created near the beginning of the project, but it was relatively easy to work through the updates and incorporate them in the profile. The regression tests I wrote are proving to be really useful, too.

    There are still a number of variables that we set through the web-based interface (blame moments of weakness!), so after we clean up the profile, we’ll compare some of production tables against the tables produced by our from-scratch installation.

    I applied the lots-of-little-inc-files-that-automatically-get-included-an-run pattern from our last project, so now everything is neatly compartmentalized. I improved that pattern to add weights, so now I can make sure that some inc files are run after others.

    Which brings me to thinking about the proper way to backport changes from update functions back into the install functions or to the installation profile. _install functions should reflect the latest versions of the database schema, but some code (node creation, etc.) logically feels more like a part of the installation profile’s final steps. My current approach is to use the _install function for code that doesn’t require other modules to be correctly configured, and to use my custom _install_final method for the finishing touches. I’ve also broken site-specific code out into separate .inc files so that I can include any of them as needed, and I’m using regression tests to check that things are okay. Command-line drush and my Makefile make it easy to switch between the two virtual hosts.

    Most of my tests are still fail, but some of them pass with from-scratch installs. Hooray! =D

    Learning to play the piano

    April 21, 2009 - Categories: life

    I’ve been teaching myself how to play the piano, and I really enjoy it.

    My parents arranged piano lessons for us when we were kids. I didn’t enjoy that nearly as much. The pieces were unfamiliar, and the rules of piano-playing seemed so strange. Read the notes, play the drills, curve the fingers. One piano teacher kept scolding me because I didn’t read the notes–but that was because I had figured out the pattern of the simple exercises we were doing, and my restless eyes couldn’t keep still.

    Fast forward a decade or two, and now it’s one of the things that makes me smile. I like being able to play simple arrangements of Moonlight Sonata and The Entertainer from memory. I’m currently working on learning Prelude: Op. 28 No. 6 by Chopin (PDF, Mutopia link). It’s one of W-‘s favorites. I’ve been looping over his CD of Vladimir Horowitz (A Reminiscence) playing that and other beautiful pieces, and I’ve been slowly making progress on learning the piece. I can do the left hand with a few pauses, and I’m learning the right hand chords. The timing reminds me of The Entertainer, although the prelude is more complex and it’ll be a while before I can do the proper dynamics.

    What I enjoy the most about learning how to play the piano is being able to chunk more and more complex segments: first notes, then chords, then phrases, and then eventually even the pattern of a piece. I love the instant feedback of knowing how close you are to doing things right, and the gradual improvement of playing a piece very slowly and then speeding up as I become more familiar with the way my hands must move. It is a welcome break after work, or even sometimes during the work day if I need to perk myself up. Playing the pieces that I’ve learned reinforces that feeling of competence, while working on the piece that I’m learning reinforces the joy of experimentation and growth.

    Another reason why I enjoy playing the piano is that I also end up inspiring J- to experiment with it, to play music and to play with music. When I sit down at the piano, she invariably comes to listen. I move to the left so that she can sit on the piano bench, and I help her practice a few pieces she wants to learn. I mostly just point to the notes on the sheet to help her keep track of where she is, and sometimes I’ll play passages for her. This turns it into a bit of a memory game, too.

    She told me I’m a better music teacher than the last one she had. Me, I just want to help her get even deeper into the joy of learning. =) And it pays off. Sometimes, when W- and I are working in the kitchen, we hear the faint strains of someone figuring out a new piece of music–from one of the piano books lying around, or from her memory.

    These experiences would be much more difficult to have if we didn’t have a piano in the house. Now that I’m starting to get the hang of it, I wish I’d opened up and let myself try it sooner, on the piano in my parents’ house. But maybe I needed to listen to a lot more music in order to enjoy playing it, and now that I can play a little bit, I’ll enjoy listening to music even more.

    Mapping what makes me happy

    April 23, 2009 - Categories: life, sketches

    Thinking about what makes you happy is a good way to tweak your life so that you do more of the things that make you happier.

    Here’s an incomplete, not-to-scale map of things that make me happy. I started by brainstorming lots of things, then moving them around in the Inkscape drawing program (it’s like magnetic poetry with an infinite refrigerator door!) until order emerged. Also, reading the book Back of the Napkin helped.

    I’ve divided into things I do with other people and things I do with myself, and I’ll add more as other things occur to me.

    Happiness map - click for full size

    What’s your happiness map? Here’s how you can figure it out:

    1. Take a whole bunch of sticky notes, index cards, or other things you can write ideas on.
    2. List all the things you do that you enjoy.
    3. Move them around until an order makes sense. I sorted mine in order of increasing happiness, and then I grouped them by type.

    Drupal staging and deployment tips: It’s all code

    April 23, 2009 - Categories: drupal

    As I talk to more and more developers about practices for working with Drupal, I get the idea that the staging and deployment process adopted by my team isn’t widespread.

    Many developers make their changes directly through the web-based interface of a testing server, or even on the production site itself. I think that’s both tedious and scary. =)

    Putting all of our behavior-related changes in update function in the install file makes it easier to merge changes and repeatedly test upgrades. Editorial changes (fixing typos, etc.) can happen on the site, but if it’s behavior-related code, it should be in the code repository. In moments of weakness, we’ve made web-based changes to our site, and we almost always regret those–either right away because things broke, or when we try to reconstruct our changes.

    The Module Developer’s Guide documents how to write .install files for Drupal 5 and Drupal 6, but doesn’t go into much detail about what else you can put in the update functions. Maybe that’s why many developers use install files only for database-related changes. But you can do so much more: creating nodes, adding permissions, enabling other modules, and so on. 

    Watch out for these potential pitfalls:

  • If your update works if you apply them one at a time, but not if you apply all of them in one go, look for functions that cache information in static variables. You may need to modify the source code to add an argument that allows you to reset the cache or find another way to deal with the static variables. Static variables are a pain.
  • Another reason why batch updates may fail while incremental updates work has to do with the order that the update functions are called in. Modules are processed according to weight and alphabetical order, and all applicable update functions within one module are run before moving onto the next. If you have a set of related modules, put update functions that affect the related modules into the module with the heaviest weight.
  • .install files may get really long if you create _update_N functions for every change and you frequently deploy to a test server. You can refactor your update functions if other developers know that they should test the updates from a fresh copy of the production database instead of from incremental updates to their current system. Make sure you don’t add code below the update level on the production server.
  • Don’t forget to return an array containing results, or even just array().
  • Here are some general tips on how to find out the programmatic equivalent of a web-based action:

    And here are some examples of programmatically doing things:

    Setting a variable
    variable_set(‘yourvariable’, ‘yourvalue’);

    Enabling modules
    include_once(‘includes/install.inc’);
    module_rebuild_cache();
    drupal_install_modules(array(‘module1′, ‘module2′));

    Disabling modules
    db_query(“UPDATE {system} SET status=0 WHERE type=’module’ AND name=’%s'”, ‘modulename’);

    Creating nodes 
    global $user;
    $old_user = $user;
    $user = user_load(array(‘uid’ => 1));
    $session = session_save_session();
    $session_save_session(FALSE);
    // Do the work
    $node = new stdClass();
    $node->type = ‘page';
    $node->title = ‘Title';
    $node->body = ‘Body';
    node_save($node);
    // Restore the user
    $user = $old_user;
    session_save_session($session);

    Deleting nodes
    global $user;
    $old_user = $user;
    $user = user_load(array(‘uid’ => 1));
    $session = session_save_session();
    session_save_session(FALSE);
    // Do the work
    node_delete($nid);
    // Restore the user
    $user = $old_user;
    session_save_session($session);

    Updating the list of blocks
    global $theme_key;
    $theme_key = ‘yourtheme';
    _block_rehash();

    Convenience functions for working with permissions

    function _add_permissions($roles, $permissions) {
      $ret = array();
      foreach ($roles as $rid) {
        if (is_numeric($rid)) {
          $role = db_fetch_array(db_query("SELECT rid, name FROM {role} WHERE rid=%d",
    				      $rid));
        }
        else {
          $role = db_fetch_array(db_query("SELECT rid, name FROM {role} WHERE name='%s'",
    				      $rid));
        }
        $role_permissions =
          explode(', ',
    	      db_result(db_query('SELECT perm FROM {permission} WHERE rid=%d',
    				 $role['rid'])));
        $role_permissions = array_unique(array_merge($role_permissions, $permissions));
        db_query('DELETE FROM {permission} WHERE rid = %d', $role['rid']);
        db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')",
    	     $role['rid'],
    	     implode(', ', $role_permissions));
        $ret[] = array('success' => true,
    		   'query' => "Added " . implode(', ', $permissions)
    		   . ' permissions for ' . $role['name']);
      }
      return $ret;
    }
    
    function _remove_permissions($roles, $permissions) {
      $ret = array();
      foreach ($roles as $rid) {
        if (is_numeric($rid)) {
          $role = db_fetch_array(db_query("SELECT rid, name FROM {role} WHERE rid=%d",
    				      $rid));
        }
        else {
          $role = db_fetch_array(db_query("SELECT rid, name FROM {role} WHERE name='%s'",
    				      $rid));
        }
        $role_permissions =
          explode(', ',
    	      db_result(db_query('SELECT perm FROM {permission} WHERE rid=%d',
    				 $role['rid'])));
        $role_permissions = array_diff($role_permissions, $permissions);
        db_query('DELETE FROM {permission} WHERE rid = %d', $role['rid']);
        db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')",
    	     $role['rid'],
    	     implode(', ', $role_permissions));
        $ret[] = array('success' => true,
    		   'query' => "Removed " . implode(', ', $permissions)
    		   . ' permissions for ' . $role['name']);
      }
      return $ret;
    }
    

    Use update functions for all of your behavioral changes. Use source code control. Write regression tests. These practices won’t take all the challenges out of Drupal development, but they certainly make it less stressful–and more fun. =)

    On the practice of happy-do

    April 24, 2009 - Categories: life, sketches

    Happy-do If you have a clear picture of what makes you happy, it becomes easier to transform things you don’t particularly enjoy doing into things that you do. I like to think of this as happy-do: the martial art of happiness.

    Like aikido, happy-do is about using your opponent’s energy to “gain control of them or to throw them away from you.” (from the Aikido FAQ). Like judo, it’s about timing and leverage. In both aikido and judo, the first thing a beginner learns is ukemi–how to fall safely. Then they learn different ways to transform other people’s force while developing flexibility, speed, and proficiency. In happy-do, you start with being able to see the silver lining and pick yourself up off the ground, and then you learn how to make things even better.

    Yesterday was a fantastic happy-do day. I turned some of my most frustrating tasks into things I enjoy. For example, I really don’t like working with clunky databases where I can’t find the information I want. I needed to get a better sense of the documents relevant to our project phase, though. Instead of feeling overwhelmed by the jumble of documents, I spent some time learning how to make a database view that showed me only items created this quarter. It made things so much better. I helped my team members learn how to make it for themselves, too. That turned the task of working with clunky databases into the more enjoyable activities of learning something new, building tools, relentlessly improving processes, and helping others grow, too.

    I also don’t enjoy writing design documents, particularly as I get frustrated when the word processor I use messes up my layout when I insert images. Instead of struggling with the word processor and with the tiny eraser-type mouse on my laptop, I imported the wireframes into my favorite drawing program and used my tablet to move things around. That turned it from the frustrating task of working on design documents into drawing, one of the things I enjoy a lot.

    Bicycle My last example–and all of this was just yesterday!–is about exercise. I’m not particularly fond of cardiovascular exercise (yet), and I never liked running (too much impact). I also don’t really enjoy commuting, which is one of the reasons why I try to work from home as much as possible. =) But if I take exercise and commuting, and I throw a bicycle into that mix, it becomes a whole lot more fun! After work yesterday, I biked to Yonge and Bloor (a good 30 minutes with a number of inclines), picked up some lightweight interfacing for a sewing project and some more Vogue patterns to try, and then biked back. That was a lot of fun, and it was good for me. Hooray!

    Map out things you enjoy doing, and think about how you can transform your other tasks into something like them. Not all tasks lend themselves well to happy-do–sometimes you just have to do what you have to do–but you might be surprised at what you can transform. Enjoy!

    Mapping my work happiness

    April 24, 2009 - Categories: career, life, sketches

    Here’s what makes me happy at work. =) For me, writing and passing test cases is a lot more fun than testing websites interactively. Also, Drupal development is a good part of my work, but I also do lots of other things I enjoy that I’m not specifically paid for. =)

    Weekly report: Week ending April 24, 2009

    April 24, 2009 - Categories: weekly

    From last week’s plans:

    I also:

    Next week, I plan to:

    Thinking about those newsletters

    April 24, 2009 - Categories: connecting

    I sent my test newsletter to 30 people randomly selected from my LinkedIn network. Half the people opened it, half the people skipped it. Three people clicked on a link (not bad!), but two people unsubscribed (hmm).

    Based on those numbers, I think I will not send an e-mail campaign out to my network. Yes, it will remind people I exist, but it will also cost people attention when they skip over it or when they unsubscribe.

    So if I don’t feel comfortable using e-mail marketing, what else can I do? I can make weekly, monthly, and quarterly feeds easier to subscribe to. I can make it easy to subscribe to those feeds by e-mail. I can focus on creating lots of value so that people come across me and perhaps even subscribe to what I share. =)

    Different strokes for different folks. That was a good experiment, though!

    Making some wool skirts

    April 25, 2009 - Categories: sewing

    A little too late for winter, I think, but I’ve gotten it into my head to make some pencil skirts from the dark red wool I used for a jacket, and the gray wool that I used for a jumper. I started with the red wool first. It wasn’t as pretty as the gray wool, so I knew I wouldn’t mind it so much if I botched the piece.

    I used the Simplicity 2906 pattern for skirts (the second skirt pictured).

    Instead of sewing darts, I eased the seams, and then used steam to shrink out the fullness. Result: excellent fit around the back, hooray!

    I also sewed in an invisible zipper before doing the rest of the seams, or at least I tried to. Positioning the zipper correctly was an interesting topological exercise! The generic invisible zipper foot didn’t fit my sewing machine, so I sewed the zipper in by hand. It’s relatively inconspicuous, although not as hidden as properly applied zippers on ready-to-wear clothes.

    The wool is a little itchy, but I can wear this with a slip. I may even line the other one. (Everything looks better lined anyway. ;)

    I’m going to hang this skirt up so that I can hem it tomorrow, and I’ll keep an eye out for something I can make into a slip. Given the warmer weather (hooray!), I may postpone sewing the other wool skirt. If so… Hmm… What would be nice to do next? A full skirt in red/white gingham check? Maybe get started on those Vogue shirt patterns I picked up yesterday? Hmm…

    Caturday

    April 25, 2009 - Categories: cat, sketches

    Another wonderful day… =)

    Science Rendevous, May 9 11 AM – 5 PM, Toronto

    April 26, 2009 - Categories: geek

    I love science. Love love love love. And now Toronto has a street festival for it: Science Rendezvous on May 9 from 11 AM to 5 PM at the University of Toronto, St. George campus! Isn’t that just awesome?

    Come and play! =) E-mail me your contact information and we can coordinate a great day out! =D

    Notes from a conversation with Isaac Ezer and Andrew Louis

    April 27, 2009 - Categories: Uncategorized

    Isaac and Andrew dropped by for tea and a wonderful conversation yesterday. =) Here are some rough notes from our conversation.

    … and lots of other good stuff, too.

    Three people, three hours of conversation, and plenty of good things learned and shared. Looking forward to our next conversation!

    The ups and ups of Mondays

    April 27, 2009 - Categories: life

    Clair e-mailed me a note about how wonderful it is to watch me grow (and she’s known me for quite a while!). I told her that it’s almost all W-‘s fault, and that one can do a lot of things when one laughs every day and lives well every day. ;) But it’s so true. Whatever gives you happiness–a great relationship, a great vision, a great environment–makes a huge difference in your productivity.

    Monday! If you can rock Mondays, you can rock any day of the week.

    On a scale of 1 to 10, with 10 being awesome, I typically start the morning at a happiness level of 7 or 8. If it’s warm and sunny, that might even be a 9. =)

    Breakfast and a good morning of creative work–brainstorming, developing software, finishing tasks, learning something new–get me to a 9 or 10. My energy dips a little at 10 or 11, which makes it a good time for a snack (apples, bananas, whatever we have handy). I can usually do that without breaking my concentration. I do my best work in the mornings.

    Lunch interrupts my flow, bringing me down to about a 7 or 8 again. I sometimes delay it a little to stay in flow for as long as I can. I save the afternoon for routine tasks and things I don’t enjoy doing, and work through the rest of the afternoon at a happiness level of about 5 or 6.

    If I’m frustrated or I need to work on things I actively dislike doing, I may go all the way down to a 4. If I’m anxious or stressed out about something (permanent residency paperwork, critical bug), I may get all the way down to a 3. The good thing is that within twenty minutes or so, I usually bounce back to a 6 or 7. If I’m very worried or frustrated or distraught, it may take twenty minutes and a good hug. I don’t really know why that is–maybe my defense mechanisms kick in almost automatically?–but it is.

    Dinner time with W- usually brings me me up to the 7 – 9 range. Riding on my bicycle, playing the piano, helping J- with her homework, playing catch, getting stuff ready for the next day, fiddling around with sewing… lots of little things help me increase my happiness level even further, and I often end the day at a happiness level of 10 (or even 11!).

    So yes, a day when I’m frustrated with word processing can still be an awesome days–and it keeps getting better all the time. =)

    There might be a useful tip in here: Pick a good default happiness level (or gradually grow into it), then get better at tweaking where you are and how you manage your energy. =)

    Getting better at writing design documents

    April 28, 2009 - Categories: geek

    I’m slowly getting better at writing design documents. Now that I’ve gotten rid of my two major annoyances (fields and images in OpenOffice.org), I’ve been able to focus on the design part, and I’ve finally written a document that satisfies the project manager and the IT architect on my team. Yay!

    Building Prototyping the functionality really helped. Once I’d gotten my hands dirty with the code, it was easy to refer to functions that need to called and hooks that need to be defined.

    I also ask way too many questions (all those programming competitions taught me to watch out for inconsistent or insufficiently specified behavior!), but this is apparently a good thing.

    Tomorrow: lots of meetings, but also a bit of time to write some more code, hooray!

    Tips for getting started with virtual assistance

    April 30, 2009 - Categories: delegation

    People often ask me about my experiments with outsourcing to virtual assistants and my reasons for this experiment, and I’m always happy to share what I’ve learned.

    So here are some getting-started tips I’ve figured out over the last two months:

    Good luck and have fun!

    May 2009

    Getting started with virtual assistance

    May 4, 2009 - Categories: delegation

    When people ask me about virtual assistance, I usually start off with a few stories about things my assistants do, like:

    My reasons for experimenting with virtual assistance are to:

    I use Timesvr for 15-minute tasks and well-specified processes, and I work with virtual assistants I hired through oDesk for more specialized skills or more extended projects. Definitely worth the experiment, and quite affordable considering what you can learn and how you can help yourself and other people grow. =)

    To get started:

    1. Make a list of things you do and things that you’ve been meaning to do.
    2. Identify things you frequently forget to do, don’t like doing, or can delegate to someone else easily.
    3. Set aside some money in your budget for outsourcing. Timesvr costs USD 69 + tax a month, and oDesk virtual assistants can go from USD 3 – USD 20 or more per hour. The virtual assistants I work with generally charge about USD 5 per hour, with specialized skills like illustration costing more.
    4. Try to estimate how much time it would take to complete each of those tasks. If your list has a large number of 15-30 minute tasks on it, consider signing up for Timesvr. If you have extended projects or projects that need specialized skills, consider posting on oDesk. You might even try both.
    5. Try a few small tasks. Timesvr has a free 3-day trial, and you can hire people on oDesk on an as-needed basis (< 10 hours a week, with no charges if you don’t assign them work).
    6. Think about your processes and your outsourcing experiences, and look for ways to improve. You can ask experienced assistants to help you learn, too. For example, I have Timesvr e-mail me a list of sample tasks every day.
    7. Lather, rinse, repeat. =)

    Resources for people getting started:

    My experiences

    Processes

    Check out my blog category about managing virtual assistants, and feel free to ask questions or share your experiences through comments or e-mail!

    Weekly report: Week ending May 3, 2009

    May 4, 2009 - Categories: weekly

    From last week’s plans:

    I also:

    Next week:

    Just a simple red skirt

    May 5, 2009 - Categories: sewing

    My skirt! I’m getting more and more confident about wearing my creations outside the house. <laugh> This is the skirt I wore to work today. It’s a simple straight skirt using the Simplicity 2906 pattern. As I mentioned previously, the wool’s rough, so I used some lining scraps to make a slip. The skirt came together quite nicely, and I could probably make the hemline a little neater next time.

    I love the colour of this wool. It’s a rich, deep red with warm undertones, and it’s the same wool I used for my red jacket (Vogue 8343). So nice picking up things like that!

    Thinking about organizing sewing patterns

    May 5, 2009 - Categories: sewing

    My stash of patterns keeps growing.

    Tops

    Bottoms

    Dresses

    Sleepwear

    Outerwear and sportswear

    I’d love to have the yardage and notions information on my iPod when I’m at the fabric store, and to have a taggable, browsable, very visual way to navigate through my patterns. I usually take all the envelopes when I go shopping, leaving the pattern tissue and instructions at home, but this results in quite a bit of shuffling around as I try to match fabrics with patterns. And it would be nice to have the patterns on my computer as inspiration instead of just sticking up one or two using magnets on my board…

    Oooh, and a way to organize online fabric swatches would be nice, too.

    PatternReview has a Pattern Stash and Wishlist. It’s one of their for-pay features, but it doesn’t support the kind of tagging and categorization I want, and I’d like the thumbnails to be a lot bigger, too. Maybe make styleboards using Kaboodle, so I can plan my spring/summer and fall/winter projects? That might be interesting…

    Otherwise, tempted to either put static images together in Inkscape or Scribus, or build a pattern and fabric organizing system using Drupal… <laugh>

    Yes, I work at a big company

    May 7, 2009 - Categories: career, ibm, work

    Sara Morgan e-mailed me to ask if I could tell any stories about self-employment for inclusion in her upcoming book, “No Limits: How I escaped corporate America to live the life of my dreams.” I laughed and told her that I’m actually very much in corporate [North] America, having joined IBM fresh out of graduate school a little over a year and a half ago. People often think I’m self-employed or an independent consultant. I guess they think I’m much too happy to be working for a large company. <grin>

    Big companies have gotten quite a bad rap. Job security? Health benefits? Retirement plans? Lots of things have been scaled back. The benefits that used to differentiate large companies from small companies or self-employment seem to have dwindled. On the flip side, technology and society make it easier for people to start their own companies and provide products or services to a global market, so it’s even easier now to get into the risks and rewards of entrepreneurship.

    I didn’t join my company for job security. I joined it because I wanted to work with these absolutely amazing people all around the world, and because I believed that we could make a difference in the way companies and people work, at a scale much larger than I could do by myself. After one and a half years, one worldwide economic shock, and lots of friends now at different companies, self-employed, or retired, I’m even more passionate, more engaged, and more amazed that I have these opportunities to make a difference.

    What is it like to work in a large company? You probably don’t hear many good things in blogs or news. It seems fashionable to complain, or to hunker down and just get through. So let me tell you what I love about my work, and maybe you’ll recognize some of your own company in it.

    I love the people I get to work with all over the world. When I think about how much my mentors have shared with me, when I think of all the talents sprinkled through the organization, when I think of how people are looking out for me and helping me learn, I feel just absolutely privileged to be in the same company, to have the same overall goals, and to share so much common ground with them. I can’t wait to help as many people as I can, and I’m so lucky that the same infrastructure that helps me discover and meet all these inspiring people is also the same platform for me to try to reach out and help others along the way.

    I love the work we get to do and how it helps me grow. I hear stories about the big projects that people work on, things that save lives and make difficult things easier. For me, even with the small project I’m working on, there’s always something new to learn every day, and there’s always something little I can teach others. I care about what I’m building, and it helps me learn how to build even bigger systems.

    I love it just because I do. It’s easy to get weighed down by other people’s fears, anxieties, and complaints. But work is such a large chunk of life, so I may as well look for and maximize the things I enjoy about it!

    I might try working with a small business sometime, and I’ve got endless lists of businesses I would love to try myself. But while I’m here in corporate (North) America, I’m going to be completely here, and I’m going to totally rock it. =) If I change that situation, it won’t be because I’ve let the situation grind me down into misery, it’ll be because I think that change would make life even better. Won’t that be a fun experiment?

    And no, this isn’t just because I’m new around here. I know some people who are still like this after decades, and I think that’s absolutely amazing. No matter which path I end up taking, I hope to grow up to be like them.

    I’m living the life of my dreams, and my dreams just keep getting better and better. I don’t think of myself as ambitious. I’m already happy and successful. I’m just driven by curiosity: how awesome can things be, and how can I help others along the way?

    May 8, 2012
    So I get to give a proper update, yay! I had a lot of fun working at IBM, and I ended up rocking it for four years. After I built up my opportunity fund, I left in order to explore my curiosity about experimenting with business. This is turning out to be wonderful too. I still have a warm and fuzzy feeling about what I got to do in the corporate world, and I think I had the best experience possible. On to new adventures!

    Putting together an inspiration board

    May 7, 2009 - Categories: sewing

    I asked one of my assistants to track down envelope images for the sewing patterns I have, and to send them all back to me with the pattern number as the filename. Then I created a large image using the free photo-editing program The Gimp, and I opened all the files as layers. Using my ever-so-wonderful Cintiq 12 WX, I moved the pictures around to organize them by type. I circled the patterns that I was happy with and crossed out the ones I tried and didn’t like as much, and then I added some more notes.

    The result:
    [Harrumph, I’ve lost my original inspiration_board.jpg].

    Some patterns are missing, but I can fix that next time. =) Must make room!

    Delegating weaknesses; experimenting with social secretaries

    May 9, 2009 - Categories: connecting, delegation

    I really enjoy bringing people together for great conversation and sending them home with new connections, new ideas, and perhaps a reading assignment or two. What I don’t enjoy is actually organizing these get-togethers. I’m terrible at it. I mix up dates all the time, as soon as I hit a calendar, I get mildly dyslexic. Even using the great calendaring systems we have at work, I occasionally mess up dates of meetings. Not good. Embarrassing!

    When it’s my job to organize an event, it drops in priority, I lose sight of it, and a monthly tea party becomes a quarterly tea party or worse. I would like to get better at this, and the fastest way that can get much better at this is to have someone else plan the event. Things I don’t like about organizing events:

    There’s so much here I can delegate so that I can focus on the things I love:

    And I learn so much whenever I have one of these get-togethers that it’s worth learning more about how to scale up. =D

    I shouldn’t let my idiosyncrasies get in the way of having great conversations. So I’m going to have an experiment — I’m going to see what it’s like to have a social secretary. =) It’ll be a learning experience for everyone, but I think it’ll be awesome!

    Weekly review: Week ending May 10, 2009

    May 10, 2009 - Categories: weekly

    From last week’s plans:

    Also:

    Next week:

    Making things; Vogue 8020

    May 10, 2009 - Categories: sewing

    I’ve been writing a lot about sewing lately, which might surprise you if you came to this blog for tips on Emacs or Drupal. =) It’s the way my life works–I focus on things, but the set of things I focus on evolves over time. I still have lots to write about Drupal, social networking, and virtual assistance, but I have to confess I haven’t been tweaking my .emacs lately! =)

    Anyway, sewing. I enjoy picking fabrics and imagining what to do with them, and then convincing the fabric to look like a reasonable facsimile of my intended result. For example, I picked up 5 meters of the adorable blue fabric below (100% cotton; the white flowers are glittery), and I’ve been making a dress following Vogue’s V8020 pattern (also pictured below). I’ve made it with a V neckline instead of a rounded neckline (yay options!), and the only things I need to do to make it wearable are to sew in the zipper and fix the hems.

    And then I’ll have a pretty dress to wear at my get-together this Saturday. =) Sure, the seams are a little crooked and puffy, but I made the dress, and I’ll just get better and better with each thing I make.

    The fabric’s also available in pink, but I thought that might be too jeune fille. I sound five years old, and I don’t need to look it. Blue takes a bit of that edge off, and the simple, non-frilly lines of the pattern further modify the effect of the print.

    New this time: diligently marking all seamlines, making a princess-seamed top whose fit I actually like, making the first dress I like. This will be my first time to use ribbons, too!

    A love affair with books

    May 12, 2009 - Categories: love

    (2008)

    W- and I got to know each other over lots of carpool conversations. One time, he gave me a lift downtown. I asked him to drop me off at the Lillian Smith library, which was just a few blocks from my dorm. I had just discovered that I could order books online and have them delivered to a branch close to me, and I was looking forward to a quiet evening with a pile of books.

    I hadn’t expected forty-two books to arrive all at once.

    I called W- on his cellphone and explained the situation. He drove back, loaded the books into his car, and helped me take the books to my place.

    I wonder what he must thought when he saw me with those two large piles of books and big puppy-dog eyes.

    -*-

    2009

    After we cleared the dinner settings, W- sat down with Neal Stephenson’s Diamond Age. He was nearly done with it, and had been amused by Stephenson’s occasional geek references (pirates and ninjas! Lisp!). I started reading You’ve Got to Be Believed to Be Heard. When I finished before he did, he said, “Sometimes, you scare me.” I made slurping sounds, and he laughed. We joke about this–I practically inhale books. Most nonfiction books are easy to skim. On the other hand, fiction and really well-written non-fiction are meant to be savoured.

    -*-

    2009

    “I have some more books for you,” W- said as he walked in the door. He had dropped by the library at his workplace and picked up a few books: one book on women and success, and another book on design.

    He often brings home books he knows I’ll like. Two weeks ago, he brought home books about leadership, management, and workplace engagement. Before that, he brought home books on productivity, life, and comics.

    He reads them as well. He likes how I bring a constant stream of books into his life, and often enjoys reading my finds.

    -*-

    2009

    We went to the library today. W- and I were browsing through the section for graphic novels. Flight Vol. 4 (Kazu Kibuishi) caught my eye. I picked it up and browsed through it, then tucked it into my to-read pile. When I looked up, I noticed that W- already had the next volume in his. That made me smile.

    -*-

    2009

    “There seem to be about fifty new books in my account,” W- said over lunch.

    I’d borrowed a great idea from a friend and had someone go through my long list of things to read, requesting them from the library if available. My assistant must have put the requests on W-‘s library card instead of mine.

    He laughed and corrected himself. “Okay, seventeen outstanding holds.” He read a few titles and smiled. He knows who I am, what I read, and why I read what I read.

    -*-

    I often tell people that my two main reasons for putting up with Toronto’s winters are W- and the Toronto Public Library. In some countries like my homeland, books are hard to get. I want to change that. Someday.

    Smiling over a distance

    May 12, 2009 - Categories: work

    I spent another hour this morning coaching Milind, a developer in India who’s starting on the Drupal project I worked on a year ago. I helped him set up Eclipse, the PHP Development Toolkit, and Subclipse, and import the project into his workspace. <laugh> What do you know – a month and a half after I started my experiments with delegating to virtual assistants, I’m learning how to delegate to and coach someone at work!

    I learned two interesting things from our session today:

    I’m really lucky to be working with other people who are good at asking for what they need. Milind not only asked me to provide more details in my bug reports, he also explained how that helps him build confidence while learning the new system. I understood his request right away and I was happy to add step-by-step guides. (Hey, all that practice in documenting processes for my virtual assistants is paying off!). He probably has way more experience working in a globally-distributed team than I do, and I’m glad I can learn from him!

    I enjoy making sure that a smile carries through in my voice. Technological challenges and timezone differences make remote collaboration tough enough, so I’m always looking for ways to make it a little bit better. For example, today’s call was scheduled a little after Milind’s typical office hours and a little before mine. We might not be at peak energy time–he might be tired, I might be sleepy–but I think it’s important to make sure that the conversation has a lot of positive energy.

    Imagine if it didn’t! Imagine if we went through all of that with sleepy or impatient or frustrated or tired voices. I think that would’ve wasted a lot of time and energy, and we would’ve gotten very little done. Now imagine what an awesome remote coaching session might be like: full of time-saving tips, acknowledgement, and feedback.

    There are plenty of reasons to be happy–he’s making the effort to meet after his own office hours, he’s picking up the concepts quickly, and he’s indirectly teaching me how to be a better communicator. If I can make the call a little more pleasant, a little more effective, then that’s terrific! I think the ideal kind of call that would leave him happy with his day and looking forward to the next one, and leave me happy about his work and looking forward to my own day ahead.

    Then there are all the other bits of work I can do to support project progress, happiness, and growth. If I spend some time adding more details to bug reports, not only would Milind be able to work more effectively on them to solve the problems in less time, but he’ll also improve his skills, grow a little more in knowledge and confidence, and feel happier about his accomplishments. That’ll make both of us feel good, and it’ll all make the project better.

    I don’t know if other people think about this, but it’s interesting to think about how these tiny human interactions affect the way we work, and I look forward to learning even more. =)

    Learning from Gen Y: Help needed!

    May 14, 2009 - Categories: gen-y

    In a few weeks, I’ll be giving a talk called I.B.Millennials: Working with and Learning From Generation Y at the IBM Technical Leadership Exchange. I want to help managers and technical leaders understand my generation better, get inspired by ways they can engage, coach and learn from younger members of their team, and find out how we can all work together to make something cool.

    I’ve got lots of stories from my one and a half years at IBM, including:

    But I’d love to tell your stories, too. If you’re a Gen Yer, tell me a story about how working with your team has been, and how they’ve been learning from you too. If you’ve worked with Gen Yer, tell me what that’s been like, what you’ve learned, and what you’ve helped them learn as well. Leave your stories below in a comment, or post it on your blog and leave a link back, and I’ll look for a way to feature your story, name, and picture in my presentation to IBM technical leaders!

    Best story will get a $25 Kiva gift certificate so that you can support an entrepreneur of your choice in a developing country!

    Please post your stories or e-mail them to me by Wednesday, May 20, 2009 to be eligible for the Kiva gift certificate (and lots of thanks and gratitude). If you’re reading this after that date, feel free to share your stories anyway – it’ll be a great way to inspire others!

    Drupal: I’m learning how to be a JQuery/Date+Calendar ninja! =)

    May 14, 2009 - Categories: drupal

    Our customized Date+Calendar-based Drupal event calendar is coming along quite nicely. The information architect’s design called for extensive customizations, such as:

    We went with Date+Calendar instead of Event because Date+Calendar seemed more up to date, and its integration with Views meant that it was easy to add in domain access and other constraints. I learned quite a lot of new things in the process of implementing these features, such as:

    It took me a bit of time to figure out how this Date+Calendar AJAX patch worked, and I ended up modifying it extensively. I had been getting confused by mini= and view=ajax and all the other parameters floating around. I tried different approaches, including creating a callback function that generated just the HTML for the block, but then I found myself passing in too many parameters to control the URLs for the links.

    My aha! moment was when I realized that the way the patch was handling the AJAX was to generate the entire page. When it got to processing the calendar block in the sidebar, the code checked for the $_GET[‘view’] parameter, and if an AJAX view was requested, it would print out the block and exit without printing the rest of the page. While that worked for the general case, we needed to modify our code so that the calendar blocks don’t appear on the calendar detail pages, so I wrote some Javascript code that requested a page within the right context.

    This approach of generating the whole page didn’t quite work when it came to the subscription form that we embedded in event node page templates, though, because it printed out the node content before it generated the form. I used jQuery to retrieve the entire page, and then I extracted just the DIV I wanted to keep.

    I still don’t like fussing with CSS (particularly when it comes to collapsing borders or dealing with browser issues), so I’ll leave that in the capable hands of our information architect. But now I’m the jQuery ninja on our team, too, and I know I can rock CCK+Views and calendars for future projects. =D

    (p.s. Left out details, but if you’re curious about any of the bullet points, comment and I might flesh it out into its own blog post!)

    Thinking about the next summer dress I’m going to make

    May 14, 2009 - Categories: sewing

    I’m trying to decide what to do with this pretty embroidered-border linen I picked up from Fabricland. J- thinks I should make it into a dress.  I think I’ll reuse the princess-seamed V-neck bodice from Vogue 8020, because that actually fits me (hooray!). Instead of continuing the seams into the skirt, I’ll just gather the skirt. I’ll need to either line the dress or wear a camisole and slip.

    It’s either that, or try to figure out how to sew two rectangles to each other in a way that makes sense… <laugh>

    Sewing: Of sewing more dresses and making more pots

    May 15, 2009 - Categories: sewing

    After I sewed the zipper on the Vogue 8020 dress I made using the butterfly blue fabric from Fabricland, I checked the fit in the mirror. I was beginning to think that the dropped waistline that hovered about my hip wasn’t the best place to put it. I tried smoothing my crooked seams, but they refused to behave. The more I looked at the dress, the more I noticed all the little things I needed to fix.

    Then my happy-do defense mechanism kicked in, and I realized I was letting myself do negative self-talk. I focused on the positives instead. The dress was wearable, the fabric was pretty, and my friends would let me get away with amateur creations. =) It was my first time to make a dress with princess seams or a dropped waist, and I was happy about how the princess seams in the bodice turned out. And the blue ribbon was a nice touch, although other accents might be more practical in a house with two cats.

    I told W-, “Sewing is good practice in celebrating the small wins.”

    He said, “Everyone starts somewhere.”

    I said, “It’s all about throwing more pots.” I started telling him the story. It turned out that he already knew the story. But you might not yet, so here it is:

    There’s a story about a pottery teacher who divided the class into two groups. A student in one group would be graded based on the quality of one pot that they turned in at the end of the semester, while a student in the other group would be graded based on the sheer number of all the pots submitted throughout the semester. At the end of the semester, students in the second group–those measured only on quantity–had produced better pots than those who had focused on quality. In the process of creating a large number of pots, the second group had learned from their mistakes, while the first group had been paralyzed by endless theorizing about what a perfect pot would be.

    Go ahead. Make mistakes and learn from them.

    Here’s pot #4:

    V8020 in butterfly blue

    I’m going to hem this dress, and then I’m going to practice straight and curved seams on some scrap cloth, and then I’m going to work on that white embroidered-border dress. I’m going to fill my wardrobe with clothes I’ve made. Over time, the quality of those clothes will just get better and better.

    Thank you, Lotus forums!

    May 15, 2009 - Categories: geek

    I started panicking when Lotus Notes 8.5 wouldn’t show me my mail. Everything else worked, but when I went to my e-mail, my folder hierarchy and my inbox just wouldn’t show. I tried rebooting Lotus Notes 8.5 several times, and I even rebooted the entire computer.

    No joy.

    Then I noticed an error message in the terminal. It said: SEVERE CLFNM0003E: Error getting outline actions for navigator (and so on).

    When I looked for that string, I found one hit – which was a perfect fit for the problem.

    The recommended fix was to get rid of bookmark.nsf. I moved it from ~/lotus/nodes/data/bookmark.nsf to a temp directory and restarted Lotus Notes.

    Now my mail works again. HOORAY! Thank you, Internet! =)

    Refuse to Choose: or life is a many-splendoured thing

    May 15, 2009 - Categories: life, reflection

    One of the things people pick up on right away, whether it’s from a five-minute conversation or a glance at my business card, is that I’m passionate about what I do.

    What I do, however, may change, and that’s totally okay.

    Whenever I feel guilt about things I’ve left behind, I should reread Refuse to Choose, which has lots of terrific insights into what it’s like to be one of these people with multiple passions. It’s okay to move on to other things. It’s okay to revisit things. It’s okay to explore and have fun.

    Whew! That feels better already.

    Refuse to Choose proposes this useful four-step system: Learn, Try, Teach, Leave. LTTL. I’ve been doing this all along the way, compressing Learn-Try-Teach into a quick cycle by blogging along the way, so that I can Leave when I feel like it.

    I’ve been interested in many things over the years. Here’s a short list of interests and skills:

    1. Computer programming: Started in grade school, went on to join and win programming competitions in high school and university, and continue to do a lot of programming today
    2. Open source: Started contributing to projects in university, went on to maintain some packages, and have since then scaled back my direct open source contribution because of intellectual property guidelines at work. I currently use a lot of open source systems to build applications, though, and I continue to write about it.
    3. Wearable computing: Started looking into this in third year university, went on to do my fourth-year university research project in this area (receiving quite a bit of media attention and one research prize along the way), used many of the ideas when I was in Japan, and have since then let it lapse.
    4. Computer science education: Started coaching my classmates in university. I went on to teach. I presented ideas for improving computer science education at a national conference, and several of my exercises were picked up by other teachers at my school and in other schools. I’m not in the academe at the moment, but I still teach people in a way.
    5. Emacs: Started in university,  went on to contribute source code and maintain modules, became an op on the #emacs channel at irc.freenode.net, gave well-received presentations like Livin’ la Vida Emacs (DemoCamp10), wrote four-ish chapters of a book on Emacs, then got distracted by other cool things. I still use Emacs to write code, but I haven’t been customizing it lately.
    6. Personal information management: Started learning more about this because I was maintaining Planner, went on to help people develop all sorts of cool stuff, then turned over community and source code to a new maintainer
    7. Web 2.0 and Enterprise 2.0: Started doing this because of my interest in social bookmarking, went on to do my graduate research in this area, became a subject-matter expert and most valued ambassador within the company, continue to coach people and organizations on this
    8. Managing virtual assistants: Started a little over two months ago and have quickly gotten to the point where I’m helping other people figure this out.
    9. Drupal: Started in early 2008 because of projects at work, went on to becoming one of the subject matter experts in the company, gave well-received presentations on development processes, and am now building systems and coaching people on how to use this.
    10. Public speaking: Started in third year university at technical conferences, went on to keynote conferences. Now reaching out and helping other people improve their communication skills, and enjoying experimenting with techniques.
    11. Gen Y, multi-generational workplace: Started reading and talking about this because it kept coming up at work. Now a subject matter expert within the company.
    12. Technical writing: Occasionally write documentation. Also got four chapters into writing that book about Emacs.
    13. Copywriting: Started reading about this when I was a kid. Occasionally write marketing materials.
    14. Sewing: Started a couple of months ago and am slowly building up a wardrobe of amateurish clothes.
    15. Biking: Learned how to bike when I was a kid. Stopped biking for a while. Got my own bike a month ago. Now lovin’ it.
    16. Art: Had art lessons as a kid. Nothing fancy, just drawing. Now drawing stick figures, occasionally posting them on my blog or sneaking them into my presentations.
    17. Piano: Took piano lessons as a kid. Didn’t like them. Now teaching myself how to play the piano, and liking it. When I started picking my own music and schedule, things got much more fun. =)
    18. Theatre: Everyone did theatre in grade school. I loved it, and went on to take a theatre workshop that summer. Haven’t done anything with it since, although have toyed with the idea of trying out improv. One of my mentors seems quite happy with it.
    19. Chess: Started in grade school, went to summer camps, played on the chess varsity from grade 4 to first year university, stopped because programming competitions took more training time.
    20. Photography: Started really looking into this a year ago or so. Occasionally take pictures, set up lights, etc.
    21. Event organization: Played around with this with LifeCampToronto and tea/dinner parties. Tend to switch between liking events and going into introvert mode. Like hosting events more than organizing them.
    22. Screen printing: Briefly flirted with the idea of screenprinting, but didn’t go far with it. Bought the kit, didn’t use it for much.
    23. Calligraphy: Toyed with this idea after receiving prettily-inked letters from Quinn. Bought a nib, read some books, haven’t pursued it further.
    24. Typography: Learned about making fonts, installed the software for making fonts of Linux but haven’t gotten around to actually making one.
    25. System administration: Started in high school, when my computer teacher introduced me to Linux. Still handle little sysad-type tasks for our team.
    26. Web development: Started in high school. Primarily focused on back-end development, although I’m picking up Javascript now.
    27. Languages: Learned Japanese, passed proficiency test. Occasionally pick up snippets of other languages in preparation for trips.
    28. Poi, diabolo, and other street performances: Started when my sister taught me, then went on to learn more about the diabolo, staff, devilsticks, and other things. Helped my sister do some professional gigs with fire poi. Singed my hair once. ;) Hardly do this now (not because of the hair thing, mind you).
    29. Crochet: Started in grade school. At one point, was even crocheting in class. Haven’t done it much since then.
    30. Singing: Joined the UP Singing Ambassadors’ rehearsals, joined my dorm’s choir, had singing lessons, and joined a U of T jazz choir too. Haven’t done much with this since then, although singing in those groups was lots of fun.
    31. Gymnastics: Did this when I was a kid. Loved the uneven bars and the trampoline. Couldn’t get the hang of doing backwalks on the floor – my arms would always give. Haven’t done anything with this since then
    32. Yoga: Started doing this a year ago. Enjoyed doing this with W- after krav maga, but then the gym I was going to cut down on the frequency of their yoga classes, and we decided to spend our exercise time elsewhere.
    33. Krav maga: Doing this with W- was a lot of fun. Haven’t been to that gym lately, though.
    34. Trapeze: This was tons of fun. I tried the flying trapeze and liked it, then found a static trapeze class and went to it. I stopped when the instructor stopped teaching, and haven’t looked for another place to take it. We’ve put in a chin-up bar, though, so I can work on my core muscles until I’m ready to take this again.
    35. Cooking: Love doing this with W-. =) Baking is lots of fun, too!
    36. Ballroom dancing: Started doing this in high school (swing, boogie, cha-cha). Took this in university, enjoyed it.
    37. Tango: Joined U of T tango club when I was in graduate school, got dancing shoes, enjoyed went to milongas, stopped dancing after a while. (Got busy with other things.)
    38. Renaissance dancing: Started because U of T tango club head was also into renaissance dancing and she needed some people for her group. Enjoyed learning the steps, dressing up in costumes, learning how to work with a hoop skirt. ;) Participated in public performance, then stopped. This was fun, though!
    39. Swing dancing: Tried out the Charleston at an event organized by the U of T Swing Club, and before that, danced a bit at Isaac Ezer’s party. Love the cardio and the rhythm; may pick it up again sometime.
    40. Gardening: Started when I was kid, trying to grow mung beans and salvia on my parents’ windowsill. Lugged home tea roses in high school. Tried to start a herb garden in a planter box when I was in Graduate House, but neglected it. Grew rosemary and sage quite happily in 2008. Now working on a proper herb and vegetable garden! (Update: June 18, 2010 – garden is wonderful!)
    41. Woodworking (Spring 2010): After W- and I built a chickenwire cage to protect the garden from squirrels, we got interested in making boxes and furniture.

    And the intersections between those interests are tons of fun.

    I’ll have many more interests in the future, and I’ll move on from my old ones. It’s all good. =)

    I am a young shock-worker

    May 15, 2009 - Categories: geek, sketches

    Tania Samsonova pointed me to this Russian-English language book because of its amusing stick figures and hilarious dialogue. To wit:

    How do loafers live?
    At work they steal pencils.
    In parks they conduct themselves badly.

    I laughed when I saw this dialogue:

    - Who are you?
    – I am a young shock-worker.
    - What does that mean?
    – That means that I work with enthusiasm.
    - The public wants to know why you work with enthusiasm.
    – I like to work with enthusiasm. I am a young shock-worker.

    Thanks, Tania!

    Sewing, or on soldiering on

    May 15, 2009 - Categories: sewing

    It’s amazing what a difference a hemline makes.

    I hand-basted most of the hem so that I could ease it to lie flat. I ran out of thread three-fourths of the way through. I really wanted to sew it already, so I didn’t bother with the remaining quarter. After I trimmed the excess material, I hemmed it with my sewing machine, and I put it on.

    And I’m happy with it!

    Maybe it’s just that I’ve had more time to get used to the idea of the dress. It’s blue (not one of my usual colors) and has a somewhat dropped waist (not one of my usual silhouettes). My seams are still crooked, and I haven’t yet bothered to put the hook-and-eye above the zipper.

    But it’s a dress, and it’s mine. =)

    I tied the ribbon around my waist and dashed upstairs to show W- and J- before W- tucked J- into bed. Both of them cheered as I twirled around. I had told J- the pot story after dinner, and it was–well–fitting that I follow it up with an unexpectedly happy twist. I had been prepared for the possibility that this was going to be Just One Of Those Attempts (like the gray wool jumper I have to figure out how to tweak), but the dress actually makes me smile.

    Must be the exceedingly cheerful glittery butterfly print. ;)

    Pictures tomorrow or Sunday. I’ll ask W- to take them when there’s light out.

    ANYWAY, on to the next dress, which will be my first experiment with borders…

    I’ve been thinking about taking classes, but class fees can buy a lot of fabric. =) Maybe I can sit in on some classes to see what they’re like first. Anyway, I’m happy and I’m learning a lot.

    On soldiering on: I’ve noticed that if I keep sewing, the project often turns out better than I thought it would be during the process. Red jacket, this dress… Lesson learned: sometimes I just need to keep soldiering on until the big picture reveals itself!

    Virtual assistance: Process for managing my to-read books

    May 16, 2009 - Categories: delegation

    I read a lot. Inspired by Mel Chua’s process for books: turning stocks into flows, here’s how I can ask a virtual assistant to keep my library account well-stocked:

    1. Log on to http://www.torontopubliclibrary.ca with my account. (Note: Make sure you use the account labeled “torontopubliclibrary.ca – *Sacha* (me)”, as there are two library cards associated with my Timesvr profile. My library card ends with 3536.)
    2. Log on to http://www.goodreads.com and go to my to-read bookshelf (My books – to-read)
    3. Search the library for the first book on my list. If it’s available, place a hold, then click on [edit] under the shelves column and choose requested. If it’s not available or you can’t place a hold, click on [edit] under the shelves column and choose bookstore.
    4. Repeat #3 until you have placed the requested number of books on my shelf, until you have reached the time limit set, or the library system reports an error because I have too many holds already.

    This is so cool! I have 2 books waiting for me at the library, with another 10 on the way… =D Combining this with my process for renewing my library books leads to library awesomeness. Looking forward to tweaking this even more!

    Cintiq 12WX on Ubuntu Jaunty with ATIconfig

    May 17, 2009 - Categories: geek, linux

    After far too much pain and suffering, I got my tablet to work again. Culprit: the switch to an ATI graphics card threw my config out of whack.

    Section "ServerLayout"
            Identifier     "Default Layout"
            Screen      0  "aticonfig-Screen[0]-0" 0 0
            Screen         "aticonfig-Screen[0]-1" RightOf "aticonfig-Screen[0]-0"
            InputDevice    "stylus" "SendCoreEvents"
            InputDevice    "eraser" "SendCoreEvents"
            InputDevice    "pad"
    EndSection
    
    Section "Files"
    EndSection
    
    Section "Module"
            Load  "glx"
    EndSection
    
    Section "ServerFlags"
            Option      "DontZap" "True"
            Option      "AutoAddDevices" "False"
            Option      "Xinerama" "on"
    EndSection
    
    Section "InputDevice"
     Identifier  "cursor"
            Driver      "wacom"
            Option      "Mode" "Absolute"
            Option      "Device" "/dev/input/wacom"
            Option      "Type" "cursor"
            Option      "USB" "on"                  # USB ONLY
    EndSection
    
    Section "InputDevice"
            Identifier  "stylus"
            Driver      "wacom"
            Option      "Mode" "Absolute"
            Option      "Device" "/dev/input/wacom"
            Option      "Type" "stylus"
            Option      "USB" "on"                  # USB ONLY
    EndSection
    
    Section "InputDevice"
            Identifier  "eraser"
            Driver      "wacom"
            Option      "Device" "/dev/input/wacom"
            Option      "Type" "eraser"
            Option      "USB" "on"                  # USB ONLY
    EndSection
    
    Section "InputDevice"
            Identifier  "pad"
            Driver      "wacom"
            Option      "Device" "/dev/input/wacom"
            Option      "Type" "pad"
            Option      "USB" "on"                  # USB ONLY
    EndSection
    
    Section "Monitor"
            Identifier   "aticonfig-Monitor[0]-0"
            Option      "VendorName" "ATI Proprietary Driver"
      Option      "ModelName" "Generic Autodetecting Monitor"
            Option      "DPMS" "true"
    EndSection
    
    Section "Monitor"
            Identifier   "aticonfig-Monitor[0]-1"
            Option      "VendorName" "ATI Proprietary Driver"
            Option      "ModelName" "Generic Autodetecting Monitor"
            Option      "DPMS" "true"
    EndSection
    
    Section "Device"
            Identifier  "aticonfig-Device[0]-0"
            Driver      "fglrx"
            Option      "OpenGLOverlay" "off"
            Option      "OverlayOnCRTC2" "1"
            Option      "DesktopSetup" "clone"
            Option      "VideoOverlay" "on"
            Option      "EnableMonitor" "crt1,tmds1"
            BusID       "PCI:1:0:0"
    EndSection
    
    Section "Device"
            Identifier  "aticonfig-Device[0]-1"
            Driver      "fglrx"
            BusID       "PCI:1:0:0"
            Screen      1
    EndSection
    
    Section "Screen"
            Identifier "aticonfig-Screen[0]-0"
            Device     "aticonfig-Device[0]-0"
            Monitor    "aticonfig-Monitor[0]-0"
            DefaultDepth     24
            SubSection "Display"
                    Viewport   0 0
                    Depth     24
                    Modes    "1600x1200"
            EndSubSection
    EndSection
    
    Section "Screen"
            Identifier "aticonfig-Screen[0]-1"
            Device     "aticonfig-Device[0]-1"
            Monitor    "aticonfig-Monitor[0]-1"
            DefaultDepth     24
            SubSection "Display"
                    Viewport   0 0
                    Depth     24
                    Modes    "1280x800"
            EndSubSection
    EndSection
    

    I also had to manually calibrate my Wacom tablet.

    xsetwacom set pad StripLDn "CORE KEY  Minus"
    xsetwacom set pad StripLUp "CORE KEY  Plus"
    xsetwacom set pad Button4 "core key  Del "
    xsetwacom set pad Button3 "core key space "
    xsetwacom set pad Button2 "CORE KEY n"
    xsetwacom set pad Button1 "CORE KEY p"
    xsetwacom set stylus Screen_No "1"
    xsetwacom set stylus topy "361"
    xsetwacom set stylus TopX 29500
    xsetwacom set stylus BottomY 22000
    xsetwacom set stylus TopY 0
    

    Last bit of weirdness: the pad buttons only work if I’m also touching the scroll strip. It took me ages to figure that out.

    Weekly review: week ending May 18, 2009

    May 19, 2009 - Categories: weekly

    From last week’s plans:

    I also:

    This week, I plan to:

    Drupal from the trenches: Database glitches

    May 21, 2009 - Categories: drupal, geek

    The problem: Our Drupal site stopped displaying nodes on our fuzzysearch-based pages.

    I started breaking down the SQL query to find out which joined table didn’t have the data that was supposed to be there. At first, I thought it might be that the publication dates or expiration dates were incorrect, but that wasn’t it. All of the nodes were set to ‘published’ (status = 1), and all remained correctly associated with the domain through the Domain module.

    I checked the search_fuzzy_index table. Hmm. The table was smaller than it should be. When I queried it for a node that should’ve been there, I got zero rows.

    I tried forcing the system to reindex the node. Still nothing.

    I printed out the SQL statements and ran them myself. ERROR 1062 (23000): Duplicate entry '2147483647' for key 1.

    Wha?

    That looked like a suspiciously large number. I popped it into Google and found a lot of people with the same problem. Turns out that the autoincrement sequence fuzzysearch was using had jumped all the way to the end, for some reason or another (we couldn’t have been reindexing _that_ much!). I changed the column to a BIGINT, reindexed all the nodes using Drush commands like:

    drush eval "\$rs=db_query(\"select nid from node where type='transitions_job'\");while(\$nid=db_fetch_array(\$rs)){fuzzysearch_reindex(\$nid['nid'], 'fuzzysearch');} fuzzysearch_cron();"
    

    (using my custom eval command),

    That worked. I reported the results to my team members in our group chat.

    The IT architect said we were still having disk space issues. We’d removed all the unnecessary files and stale backups already, and I didn’t think there was much more that we could trim. I used du --max-depth=2 /var | sort -n to look at the disk usage in the /var tree, which was where we were having those problems. The three biggest directories were /var/www, /var/lib/mysql, and /var/spool/mail, and we’d already scrubbed as much as we could.

    I used ls -lSr to look at the contents of /var/lib/mysql, and noticed that our watchdog table was 2.3 GBs. Gah! Turned out that Drupal had logged each of the PHP errors raised when we were trying to fix the previous problem. We didn’t want to delete all the logs, so we just deleted the logs of type ‘php’. After the IT architect ran DELETE FROM watchdog WHERE type='php'" in the MySQL client, though, we still didn't have free space.

    I guessed that the lack of free space could be solved by compacting the MySQL database, which I did with OPTIMIZE TABLE watchdog. That solved it!

    That was an interesting day. =)

    Drupal: Timezones and places

    May 22, 2009 - Categories: drupal, geek

    The Drupal date_timezone module (part of Date) lets you use city names instead of timezone offsets in order to select a timezone, and that picks up Daylight Savings Time rules in a reasonably good manner, too.

    A long list of cities can be hard to work with, though. This list is equally long, but it’s organized by GMT offset, which people are also likely to know.

    Index: date_api.module
    ===================================================================
    --- date_api.module	(revision 2404)
    +++ date_api.module	(working copy)
    @@ -490,6 +490,14 @@
               }
             }
           }
    +
    +      // Now reformat the zonenames so that they're of the form (GMT+0800) Asia/Manila
    +      foreach ($zonenames as $name => $zone) {
    +        $x = date_make_date('now', $name);
    +        $list[$name] = '(GMT' . date_format($x, 'P') . ') ' . str_replace(' ', '_', $zone);
    +      }
    +      asort($list);
    +      $zonenames = $list;
           if (!empty($zonenames)) {
             cache_set('date_timezone_identifiers_list', 'cache', serialize($zonenames));
           }
    
    

    There’s probably a much more efficient way to do this, but hey, it works.

    Monthly review: April 2009

    May 22, 2009 - Categories: monthly

    Better late than never! =) Here’s what April 2009 was all about:

    Happiness
    I thought about my typical day’s happiness, what makes me happy at work, what makes me happy in general, and happiness as a martial art.

    Software development
    I’ve been getting better at writing design documents. Our staging and deployment practices (particularly with my Drupal Makefile) are pretty good, too! Learned a lot from the previous phase of our Drupal project…

    Virtual assistance
    I found myself talking to more and more people about virtual assistance, so I wrote some tips for getting started with virtual assistance. Turns out transcription is awesome. Imagining more possibilities for talk management and talk information too! I shared some tips on building a team.

    Life
    I had a great conversation with Isaac Ezer and Andrew Louis. I wrote a quarterly review and weekly reports (April 5 April 12 April 18 April 24). I drew a map of my financial network and thought about making ridiculous amounts of money. I enjoyed riding on my bicycle, working on wool skirts and learning piano pieces

    From last month’s plans:

    Plans for May:

    Weekly review: Week ending May 22, 2009

    May 22, 2009 - Categories: weekly

    From last week:

    I also:

    Next week:

    Purple carrots

    May 23, 2009 - Categories: gardening, gen-y

    Last week, W- told me that he’d been thinking about what house-related tasks we might try delegating. He’s been helping me learn more about delegation in my experiments with virtual assistance, and he thought it might be fun to give real-life delegation a try too. We decided that housekeeping and gardening were easy ways to get started.

    I checked the Toronto Craigslist section for household services, and I came across this ad for organic vegetable gardening:

    Backyard Harvesting offers a full range of customizable services from
    seed to harvest to solve your backyard dilemmas and put fresh, organic
    produce on your table at reasonable prices. We take care of all the
    heavy lifting and you enjoy the fruits of our labour. Check out
    www.backyardharvesting.com for more information.

    I found a number of other gardening services, too. I asked one of my virtual assistants to send e-mail and call the services without websites, and I e-mailed the Backyard Harvesting service to set up an appointment so that we could see what the process was like.
    We set up an appointment with Backyard Harvesting for this Saturday at 2.

    I came home to find W- chatting with Laura, the gardener from Backyard Harvesting–a young woman with a notebook and some sheets of paper. As she was going through the list of plants she could get from her suppliers, I asked, “By the way, did you bring a portfolio?”

    Laura replied, “This is my first summer, actually. I’m a student. I couldn’t find a summer job, so I made one.”

    =D

    After some discussion (which mostly involved things like “Have you thought about growing heirloom plants?” “Oooh!” “Did you know carrots didn’t always come in orange? They were bred like that. You can get purple carrots and white carrots.” “Oooh!”), she filled up a page of notes and sketches. She promised to send us a plan and estimate by Wednesday.

    There are other services like Under the Sun which also offer edible landscaping, and we might get other quotes. But if it all comes out similar, I wouldn’t mind supporting a Gen Y entrepreneur! =D

    More gardening

    May 24, 2009 - Categories: gardening

    We spent most of this weekend thinking about and working on our garden. Laura’s going to think of what we can do with the two 6’x7′ patches we’re planning to turn into vegetable and herb plots. I’m thinking of growing nasturtiums in the front flower boxes, which are edible and pretty.

    W- and I raided Home Depot, Canadian Tire and Rona. We picked up seeds for:

    So J- and I are going to work on the starter pots over the next few days. If we’re lucky, they’ll germinate over the next couple of weeks, and then we’ll start planting them in the ground.

    W- and his brothers grew up helping out with their parents’ garden, and they often enjoyed the harvest. Me, I’ve played with growing things a couple of times, but I haven’t really gone into it seriously. I really appreciated growing rosemary last year, though, so now I’m ready to try more. Herbs give almost instant gratification, and the vegetable plants will come up over the next few months. Looking forward to our first harvest!

    Drupal in the trenches: AJAX history makes my brain hurt

    May 25, 2009 - Categories: drupal

    Many websites use asynchronous Javascript and XML (AJAX) to provide all sorts of whizbang improvements, such as smooth interaction without page reloads. It took me a week to figure out how to do all the effects specified in our information architecture document: callouts, modal dialogs, in-page calendar navigation, and so on. I was pretty happy with what I did, considering it was my first serious work with JQuery.

    Then my project manager said, “If I go to the event details page from the month view and hit back, it takes me to the day view instead.”

    I said, “Welcome to the wonderful world of AJAX. This might be tough to fix.”

    Making the back button work in AJAX applications requires a lot of effort. It doesn’t look like people have a nice and clean solution for it yet, although there are a number of libraries that try to address the situation.

    Following the principle of progressive enhancement, I had built all the plain HTML functionality first, then layered the Javascript on top of it using jQuery callbacks. In addition to ensuring that the site still works even if Javascript is disabled, this approach also helps make sure that I have proper URLs for almost all the webpages involved. (I didn’t bother with explicitly transient pages like the year navigator or the day pop-up.)

    I started with this Hijax-based approach, because it had the most documentation. I had problems getting it to behave, though, because my AJAX pages have other AJAX links that fail with the history-remote plugin. The history_remote plugin works by replacing all the links with the current page and a code (#remote-1, for example). When the back button is pressed, the library looks for the appropriate link and triggers the click event. This breaks down when the link isn’t actually on the first page. For example, when a user switches from a week to a month view, then goes to the next month, the plugin can’t find the link to the next month on the week view’s page, which is where the user started.

    What I really needed to do is encode more information in the URL. If I encode information in the anchor portion of the URL (#…), I can use that to request the page and put that into the appropriate div. For example, if I pass in #transitions_content?new_path=connect/calendar/2009/05 , I might be able to parse that and put the content of new_path into the transitions_content div.

    I started going down that rabbit-hole, and then I got myself thoroughly confused, so I decided that the best way would be to just rip out the major AJAX navigation and go back to the simple stuff (which fortunately still works).

    Gah. Brain hurts!

    Does anyone have a clean way to do this?

    The Read/Write Internet: Advice to students

    May 27, 2009 - Categories: presentation

    This is a draft for an upcoming talk called “The Read/Write Internet” for high school students at Sir Wilfred Laurier Collegiate this Friday. I plan to have very few slides, and a lot more discussion than indicated here. Actually, what’s likely to happen is that I’ll show up there with the headlines on slides, and then I’ll ad lib the rest of the way. =)


    What advice do people give students on how to use the Internet?

    “Don’t plagiarize, especially from Wikipedia.”
    “Don’t trust everything you read online.”
    “Don’t waste time surfing, chatting, or playing games.”
    “Don’t talk to strangers.”

    You’ve probably heard all that advice before. It’s common sense, really. But it doesn’t give you an idea of what you can do with the incredibly wonderful tool that’s the Internet, so that’s what we’re going to talk about today. At the end of this session,  you’re going to be full of ideas on how you can make the most of the Internet, and you’ll be able to use those ideas both inside and outside the classroom. Whether you’re researching information for your essays or you’re figuring out what you want to do with your life, there’s a whole lot of good stuff on the World Wide Web.

    So let’s take a look at the first one:

    “Don’t plagiarize, especially from Wikipedia.”

    When I was in second year high school, I once wrote an article for a small magazine. The editor sent it back and said it looked like I’d plagiarized it. I thought I’d done my research well, and I didn’t even copy things word for word. The editor suggested ways to cite the sources properly. I still remember how embarrassed and confused I was, and that reminds me to be extra clear about where my thoughts come!

    What’s the difference between plagiarism and research? Wilson Mizner (an American playwright) once said, “If you copy from one author, it’s plagiarism. If you copy from two, it’s research.” (He had an interesting life. You should look him up–on Wikipedia, of course, which is where I found that quote.)

    Plagiarism is when you take someone else’s work and you pass it off as your own, even if you do it accidentally. This is particularly bad in school, because if you plagiarize, you’ll be missing the entire point of the assignment or the project. School projects aren’t for the teacher’s benefit. They’re for yours. They’re there so that you can have an opportunity to learn about different things, practice your communication skills, and learn about all sorts of other useful skills along the way (such as time management and dealing with mistakes).

    Let’s say you have a friend who hasn’t worked on her project, and it’s due tomorrow. If she takes a shortcut and just copies things off the Internet, she’ll miss out on the learning experience. If a teacher catches her, it’s really embarrassing. If the teacher doesn’t catch her, she might end up with the idea that plagiarizing is okay, and then she’ll wake up thirty years later feeling like an imposter and being afraid that someone will discover she’s such a fake. Don’t go there. Life can be so much better than that.

    Write things in your own words, draw on your own experiences, add your own thoughts. If you’re going to write something, you might as well write something only you can write. It might be hard in the beginning, but trust me, you’ll be much better off developing your own voice and building your own experiences. If you use material from other people, give credit where credit is due. I won’t go into all the details on how to properly cite Internet articles, but you can find out about that on your own.

    So plagiarism is bad. Learning from and building on what other people have shared, however–that’s good, and that’s something you don’t learn nearly enough about in school. One of the fantastic things about Wikipedia and about the Internet in general is that you can learn about so much, and you can learn about things related to that, and things related to that, and so on. It’s incredible! Compare that with a traditional book

    And you can learn from all sorts of different perspectives, too. Interested in learning about the politics in China? You can read a (probably outdated) book or encyclopedia, or check paper newspapers for stories. You can also go online to read debates and blog posts, watch videos, and explore links, and you’ll probably find quite a lot of knowledge shared by people who are actually there. If you’re interested in any topic–science, gadgets, sports, or even retro car racing games–you’ll probably find lots of people who are passionate about those topics and who share what they know on the Internet.

    Don’t just settle for the summaries that you might get in an encyclopedia or in a news entry. You can get so much more than that! Look for the actual people involved, find out what their stories are, learn from their experiences, and express what you’ve learned in your own words.

    There’s a lot out there to learn from, and that takes us to the next point:

    “Don’t trust everything you read online.”

    Lots of teachers are nervous about Wikipedia and the Internet. If you do your research using something like Encyclopedia Britannica, for example, you can be reasonably sure that some very smart people have double-checked the facts. Wikipedia, on the other hand, was built with a bunch of volunteers–some of whom might be more interested in seeing if they can get away with adding “facts” that aren’t true.

    But printed books have mistakes, too. The scientific journal Nature found that Wikipedia was pretty close to Encyclopedia Britannica in terms of accuracy. And of course, things can change. When they kicked Pluto out of the planet club, I was heartbroken! People updated the Wikipedia page right away. Print books? That might take a while.

    The real lesson here isn’t that the Internet is better than printed material, or vice versa. It’s about thinking critically about what you’re reading, no matter where you’re reading it. You probably wouldn’t want to rely on what a used-car salesman says about how good a car is, whether that’s on a website or in a newspaper article.

    When you’re thinking critically, you might even find it fun to read people who are obviously biased. One of the great things about the Internet is that it’s so easy to find different perspectives on any particular issue. Read a lot and make your own decisions about what to trust.

    When you’re doing all of this reading and learning, you might hear this next bit of advice from well-meaning parents:

    “Don’t waste time surfing, chatting, or playing games.”

    Have you ever heard that? We hear that all the time when we’re doing something other people don’t see the point of or don’t understand. The important thing here is: Know why you do things, and make sure you’re getting those benefits.

    Surfing is a great way to learn a lot about things you wouldn’t have otherwise come across. It’s not fine when you’re just flipping through pages without learning. Chatting is a great way to get to know people. It’s not fine when you become really dependent on it and you feel terrible when your online friends aren’t around. Games are a great way to try new things. They’re not fine when they suck you in and you play so much that you ignore other things in your life, which can happen because companies have figured out how to make games really addictive.

    Know why you do things, and make sure you’re getting those benefits.

    In fact, the Internet can be a wonderful way to improve your skills and reach out to people. You can learn from all sorts of websites and all sorts of people, and–this is important–you can share things yourself.

    I have to confess: when I was in university, I got Ds in my English classes. I just didn’t care about the irony in the Love Song of J. Alfred Prufrock, and I got tired of writing essays that only my teacher would ever read, working on projects that went into recycling bins. (Looking back, thought, most of my work wasn’t really special.)

    The thing that changed everything for me was starting a blog. I started a blog when I was in third year university, which was about seven years ago. I started by writing about my classes, sharing my notes, asking questions. And other people occasionally came across my blog, shared what they thought, and taught me new things along the way. I could write things that other people could read! I could make presentations that could teach other people something new! Wow. I thought that was pretty awesome considering that I was a university student in the Philippines, and I was reaching people all around the world. You can too, and you can do even more. You can even make movies and share them on YouTube, although you probably don’t want to do anything you’ll find embarrassing.

    Anyway. Writing about what you’re learning is an excellent way to learn even more effectively, and sharing what you’re learning with other people is an excellent way to reach out and learn more. If you’re interested in this, learn about blogging, podcasting, or making videos, and then rock on.

    Which leads to the last clichéd bit of advice which you’ve probably heard:

    “Don’t talk to strangers.”

    There are a lot of scary people in the world, and there are a lot of scary people on the Internet. It’s a crazy world out there, which is why you should be careful about the personal information you share, and if someone invites you to meet up–even if the invitation’s from someone who seems to be your age–always use your judgment. If you do decide to meet, meet in a public place, and bring someone you trust.

    The second part of this is that you should also be careful about what you share about yourself. Blog posts complaining about your summer job, pictures of you at wild parties, videos of you doing that crazy dance–your future employers, clients, and significant others might come across that, you know. If you’re going to share that, make sure you check your privacy settings very carefully (sites sometimes let you restrict who can view something). Even then, those safeguards have been known to fail. The safest thing is not to do that.

    There was an intern who once e-mailed his manager, saying that he couldn’t come into work. His manager found a photo on Facebook from the Halloween party the intern had attended the night before, complete with Tinkerbell costume, fairy wings and wand. Not only that, the manager forw

    This is not to say that the safest thing is to just not be on the Internet at all. If you’re not on the Internet, you’re just leaving your reputation to what other people say about you, and that opens up all sorts of confusion or even cyberbullying. At other schools, there are problems with people creating pages for people they don’t like, and putting all sorts of nasty things on those pages. Not good. Be online, keep your future self in mind, and share what you do want to share.

    So that’s the public service advisory part of this. What’s the flipside?

    Getting to know strangers can actually be a wonderful thing. I’ve met lots of people through the Internet. Some of them turned out to be just plain weird, but that’s expected, and many people turned out to be good friends. Share what you’re interested in, keep yourself (and your future self) safe, and look for ways to create value for other people, and you should be fine.

    In summary:

    “Don’t plagiarize, especially from Wikipedia.”
    Build on what other people have shared, give credit where credit is due, and use your own words and experiences.
    “Don’t trust everything you read online.”
    Read a lot and think critically.
    Don’t waste time surfing, chatting, or playing games.
    Know why you do things, and make sure you’re getting those benefits.
    Don’t talk to strangers.”
    Reach out to people, keep yourself and your future self safe, and have fun.

    Next steps: Learn a lot, think a lot, share a lot, and have fun. What do you want to learn more about?

    Drupal from the trenches: This is my game

    May 28, 2009 - Categories: drupal, geek, goodkarma

    I’ve been coaching a senior architect on a Drupal site he’s developing on a tight schedule. With a little bit of help, he was able to build all the functionality needed and keep up with constantly changing requirements. Now it was time to theme the site. As I was walking through how to modify the Zen theme to use the HTML, CSS, and images that he received from the designer, flipping between Vim editors in two Putty sessions connected to the web server, I saw his eyes start to glaze over. Hmm. He was definitely interested in learning how to do it, but I knew he’d enjoy learning it more if he had most of the framework already in place.

    I offered to get things started. The senior architect asked me how much time I thought it would take. “Two hours,” I said, which was the first number that came to mind.

    After lunch, I headed to the senior architect’s desk with my laptop and wireless mouse. I thought about asking him to change his password to something I could easily type, just in case I needed to start multiple sessions. Then I realized a much better way to do it would be to use my Emacs environment, which is already set up for doing really cool things with Drupal. So I switched my keyboard layout to QWERTY, used ssh-copy-id to copy my authentication ID to the server, and then opened the directory in Emacs using the location /ssh:user@host:/usr/share/drupal6.

    Emacs worked like a charm. I edited files on the server as easily as those on my own computer, with all the syntax highlighting and keyboard shortcuts I’d gotten used to. I split windows, moved windows around, copied and pasted regions, and even did a little autocompleting.

    I think I made the senior architect’s jaw drop.

    I finished almost all the basic theming (minus a few quirky CSS things) in one hour and fifty minutes, ten minutes less than my thumb-in-the-air estimate. The senior architect said it would’ve probably taken him 16 hours over the weekend.

    While we were chatting about the changes he’d need to make and the other things he could learn, the senior architect asked me if I played any games. I told him that I play one computer game–Nethack (an old text-based roleplaying game)–and I only play it in airports. I pointed to my laptop and said, “This is my game.” Programming has its own major challenges and minor opponents, it has progress, it has points, it has that adrenaline rush of trial and triumph. Programming is my game. Life is my game.

    And it’s tons of fun. =)

    Helping people learn about Web 2.0 through stories

    May 28, 2009 - Categories: web2.0

    I help people learn about social media and Web 2.0 through stories.

    Bullet points and screencasts aren’t enough, but stories about how real people use these tools to reach out and connect can help inspire others to learn about and try those tools themselves.

    But I don’t just tell stories. I make them, and that’s my favourite, favourite way to teach.

    Take this week, for example. I was coaching a client on how she and others could make the most of LinkedIn. She called me up to ask me some questions. She started the conversation by asking, “How are you?”

    “Fantastic!” I replied, as I almost always do.

    “I know! You’re living an awesome life.”

    That made me laugh. And then she told me that she’d been reading about my gardening, and that she’s looking forward to hearing more about it. Turns out that she’s also growing a garden, and has rather ambitiously planted fifteen tomato plants.

    Fifteen! That’ll be quite a harvest. =)

    We had a great laugh about that… and now she has a story about finding common ground that she might not have come across in ordinary conversation.

    You can give a hundred presentations on social media and Web 2.0 without getting through, or you can make stories and cultivate the kind of environment and culture where other people will make stories. Focus on being part of other people’s stories, and make magic happen! =)

    Coming soon:
    Imagining stories
    Helping people create even more stories for others

    No magic beans required

    May 29, 2009 - Categories: life

    Over dinner and gardening plans, Laura (Backyard Harvesting) said, “So I was reading your blog… There’s just so much! Do you even sleep?”

    “I’m a big fan of sleep, actually,” I said, “and I have a blog post about that.” I told her that I have a lot of interests (now up to 40!–not concurrent, thank goodness), and that many of those interests build on each other.

    W- chimed in and told her that I often find other people who can help me finish things I start, which is great. =) (And I’m looking forward to learning how to scale up even better!)

    Whenever people go “Wow!”, I tell them that anyone can do it, and that I want to help people do even better. I emphasize that not because I’m downplaying what I’ve done or what I’m doing (or how much fun I’m having along the way!), but because I don’t want people to give themselves excuses just because they think I’m different.

    Go and make something happen.
    Here’s what I’ve learned that might help you along the way:

    Do things you love, and love the things you do.
    Do things that complement each other.
    Do things that scale.

    No magic beans required. =)

    Finally figured out what to do with presentation templates! =)

    May 29, 2009 - Categories: presentation, speaking

    I give lots of presentations at conferences, and I often receive presentation templates that the organizers would like me to use so that there’s consistent visual branding. The templates specify color schemes, the title page layout, and some of the other text slide layouts as well, including the background and the conference logo.

    While I’m glad that the templates can help bullet-ridden presentations be a little more visually attractive, the suggested style almost never goes with the creative presentation styles I use. Whether I’m using full-bleed images, simple text, or hand-drawn stick figures, nothing I use quite fits into the formal confines of a typical conference template.

    I finally figured out how to think about the presentation template, though. For the presentation I just finished making, I kept the title slide of the conference. Then I took the color scheme and the gradient from the top part of the title page, and I made the rest of the slides have a similar feel. Tada! Something that will probably get along well with the rest of the presentations, but that I had fun making. =)

    The actual presentation will have at least five stories, and will probably end up with even more.

    And I did all of that without a Mac or a beret! ;)

    Taking the Stage

    May 30, 2009 - Categories: leadership, life

    My manager recommended me to the “Taking the Stage” workshop series, a leadership program that helps women develop a more powerful presence and good communication skills.

    The first session was about choosing to take the stage. Many women are brought up to play supporting roles, but hesitate to be in the spotlight. Instead of talking about their individual accomplishments, they talk about their team’s. Instead of talking about what they’re interested in, they talk about their families. Even the way women sit shows a habit of self-minimization. While men might stretch over more than one chair, women can often be found perched on a corner of their chair, with legs crossed as if to minimize the physical space occupied. (I think wearing skirts has much to do with this!)

    We watched a video by the leadership training group who developed the program. Then the facilitator asked us about our first impressions.

    I told the group that the video was different from the way I’d grown up, and the part that interested me the most wasn’t the part about overcoming fears (which I recognize to still be useful), but about envisioning what kind of leader I wanted to grow into. In general, I prefer focusing on growing towards things rather than growing away from things. I wanted to think about this a bit further, because maybe something about what I’m learning can help other people develop their inner leaders too.

    I’d never felt the need to blend into the background or to minimize my accomplishments. Perhaps it’s because I saw both of my parents achieve remarkable things, or because I saw my two older sisters establish themselves, or because I was in the spotlight at a young age. The first news article I remember my mom saving was when a local tabloid had an article on me as a child genius who uses computers. I remember my dad asking me to put the floppy disk into the computer so he could take a picture. I said, “But it’s not even on!” And the reporter spelled my name incorrectly, too. <laugh>

    Yes, I was the kid who cried when her Grade 1 classmates made fun of her name, and I was also the kid who wrote down an explanation of what made her upset (on a half-sheet of intermediate pad paper – I still remember!) and figured out how to deal with it (I think I decided I needed a day off). I was the kid who was unafraid to raise her hand and try to answer a question, unafraid to get it wrong–or right!–in front of almost all the students in the entire grade school. The principal invented a whole new award for me in graduation. And yes, I still get those agh-I-don’t-know-if-I-can-pull-this-off moments, but I know that no matter what happens, I’m sure I’ll get a great story out of it.

    So it had never been about whether or not I would take the stage, but about what I would take the stage for, what I would do with the opportunities that came up, and how I could share those opportunities with others–how I could help other people discover their own spotlights.

    Taking the stage isn’t about being boastful or elbowing other people out of the way. I learned that from my parents, who always ended up with press attention when it
    came to their major projects. They never did something just for the exposure. They
    did whatever they wanted to do, and they made things happen.

    I remember when my mom told me how difficult it was for her to encourage the employees to talk about their accomplishments, and how important it was for them to do so because otherwise, it was hard for her to find out about their strengths. Culturally, Filipinos look down on boastfulness, saying that boasting is like trying to lift your own boat. Many cultures have similar sayings that discourage people from sticking out, from distinguishing themselves. But my parents showed me that accomplishments don’t need to separate you from other people. It’s not about being superior or inferior. It’s about making things happen, inspiring other people, and teaching them about you and about themselves.

    So there are a few interesting ways to look at this:

    I believe that being female–or being a foreigner, or being Asian, or being young, or being a geek, or being Filipino, or being a person of many interests–doesn’t put me at a significant disadvantage when it comes to what I do and who I want to be. I’ve worried about this before, and every so often I think about work-life balance and other topics. Yes, these things may make some possibilities harder than others, but there are still so many that would be a terrific fit. I see more opportunities than most people think about. I don’t need to claw my way to the top and struggle with organizational politics so that I can enjoy a position of power. (Knowing me, I’d probably get bored along the way). I trust that I can find or shape a life where I’ll be happy along the way, and as I grow in skill and understanding, people will help me find ways to help more and more people.

    So what would I like to learn from this program on Taking the Stage?

    June 2009

    Drupal in the trenches: MySQL and DELETE joins; multiple tests

    June 1, 2009 - Categories: drupal

    Today was the first time I used a DELETE statement that joined multiple tables. I didn’t even know you could do that. =)

    I needed to look into this because my update function was just taking so much time and memory. We have a little over 3,000 nodes, most of which are usernodes automatically created by the usernode module. I needed to rebuild the node access entries for a few hundred content nodes to take into account the new partner access module I wrote, but node_access_rebuild took quite a while.

    The first approach I thought of taking was to delete usernode because we didn’t seem to need it any more. In order to do that, though, I would still have to delete all the user nodes, though, and invoking all the hooks for each of the 2000+ user nodes took a while as well.

    The second approach was to delete just the node access records related to the nodes I needed to update. I found a way to do it even faster – instead of querying the node IDs and then deleting individual rows, I could do something like this instead:

    db_query("DELETE FROM na USING {node} n
              INNER JOIN {node_access} na ON (n.nid=na.nid) WHERE n.type='%s'", $type);
    $rs = db_query("SELECT nid FROM {node} WHERE type='%s'", $type);
    while ($row = db_fetch_array($rs)) {
      $node = node_load($row['nid'], NULL, TRUE);
      if (!empty($node)) {
        node_access_acquire_grants($node);
      }
    }
    

    (UPDATE: Fixed MySQL statement)

    That was interesting. =)

    I was also running into memory problems trying to run all the unit tests in one go. I broke it into individual tests with:

    drush test list | grep KEYWORD | xargs -n 1 drush test run | tee out
    

    where KEYWORD is the keyword I use to filter the list for just the tests I wanted to run, and out is the file that stores a copy of the results. It’s not neatly summarized, but oh well. =) It works.

    Weekly review: Week ending May 31, 2009

    June 2, 2009 - Categories: weekly

    From last week’s plans:

    Also:

    Next week (well, this week, really):

    Photos from High Park

    June 2, 2009 - Categories: photography
    High Park

    Gardening

    June 3, 2009 - Categories: gardening

    W- and I took the day off to set up our vegetable plot, with lots of great help from Laura Kalbun of Backyard Harvesting. She helped us plan the garden, pair up plants, improve the soil, and get everything sorted out. She even made nice laminated labels for us!

    Planting bush beans
    (photo © 2009 W. J. Young)

    We removed most of the patio stones, added compost and other amendments to the soil, and made three rows of vegetable beds. We planted:

    The basil seeds I planted a few days ago are starting to come up, too. We’ll be swimming in pesto come fall. =)

    We moved some of the irises to the back of the border, and I moved some of the other tomato and pepper plants in front of the new irises.

    And one of the bitter melon seeds looks like it might be growing well! =)

    In a way, anticipation slows time down. I can’t wait to see what the garden will grow into, and each moment seems to pass by ever so slowly. There’s a fine balance between anticipating the future and wasting time waiting for it. If gardening can help me enjoy the passage of time as well as the fullness of each moment, and if it can help me make my peace with Canada’s seasons, it’ll be well worth it!

    Oh, and another thing I learned today: it’s a good idea to keep one’s mouth closed when pulling up stubborn plants… ;)

    UPDATE:

    Starting our vegetable plot from Sacha Chua on Vimeo.

    Even the dentist’s assistant thinks I’m happy =)

    June 5, 2009 - Categories: happy, life

    I remember brushing my teeth under the watchful gaze of a small wooden sign on which was painted these words: “Be true to your teeth or they will be false to you later.”

    I’m a little paranoid about my teeth. I once spent a good twenty minutes obsessing about a particle stuck in my left inferior molar because I didn’t have a toothpick or toothpick-equivalent handy. (W- came to the rescue with some chewing gum, which eventually solved the problem.) I can’t go to bed without flossing. I run to the dentist at the slightest hint of a potential cavity.

    Which is why, just a few months after my last general cleaning, I was back in the dentist’s office for some preventive maintenance.

    I walked into the office a few minutes before my appointment. The office manager looked up and asked, “You have an assistant?” We had a great discussion about delegation and virtual assistance. I gave her the short URL to my summary post (http://bit.ly/va101), and she scanned through the first few pages of my blog. She saw my entry on Taking the Stage, and we talked about leadership and mentoring. I pulled out my iPod to take notes, and she asked me about my favourite iPod applications. I told her about CarbonFin Outliner and Toodledo, and she showed me the piano program she’d been using.

    We chatted for about fifteen minutes. By this time, the dentist had long finished with the previous patient, and was just standing in the doorway, shaking his head and laughing at the two of us chatting away.

    When I finally went in and settled into the dentist’s chair, the dentist joked that he’d have to put in really expensive fillings to make up for all the new iPod applications and services he would have to get. ;) So we had a good laugh about that, too, and I told them a few stories about my aforementioned concern about teeth-related things, sharing bits and pieces during the times when I didn’t have pointy instruments in my mouth.

    The assistant leaned over and said, “Happy girl, eh?”

    I grinned (carefully).

    So yes, it is possible to be happy at the dentist’s. Going early and going often tends to help. =) Oh, and experimenting with interesting ideas (like virtual assistance) leads to interesting conversations. And sharing things on your blog can lead to other interesting conversations, too. It’s all good stuff.

    More gardening and sewing

    June 6, 2009 - Categories: sewing

    We picked up a pair of planters for the porch. One of the planters is overflowing with strawberries, and I’m looking forward to enjoying a few of the hanging fruits. I think it’s amazing that plants will grow with just a little encouragement, and who knows, maybe I’ll get to experience the joys of being a locavore.

    The bitter melon seeds (ampalaya) my mom sent me from the Philippines have germinated (and to think I’d given up on those seeds!), and seven or eight of them are working on putting out their first leaves. When they grow a bit bigger, we’ll move them near the fence. We’ll probably have to put in some cold-weather protection towards the end of the growing season, but it’ll be worth a try. I was pleasantly surprised to find bitter melon seeds at a local supermarket, actually. Might not be a bad source in the future.

    W- helped me make a duct tape dress form, whom I have named Matilda. Oddly enough, it seems to be a common name for dress forms. ;) I made a quarter-circle skirt (thank you, high-school geometry teacher!) with a bold black/white/red print, which I’ve hung on Matilda so that I can hem the skirt tomorrow. I thought about adding fancy details like a yoke, but I figured I’d keep it simple for starters.

    It’s interesting exploring these non-computer things… =)

    Conversations with the students at Sir Wilfrid Laurier

    June 6, 2009 - Categories: life, presentation, reflection, speaking

    I was supposed to give a 40-minute talk to International Baccalaureate high school students. I was planning to talk to them about the benefits of posting their writing on the Internet. A few minutes into my talk, I realized that there was no way that my slides and my planned speech could keep up with all the things I wanted to share and all the things I wanted to learn from them. So I leaned over, turned off the projector, and proceeded to have a great conversation with the students.

    The key point I wanted to make was that blogging can help them discover how fun it actually is to write, and it’ll give them plenty of opportunities to improve their skills, develop their passions, and connect with incredible people.

    Most people don’t ever learn how to enjoy writing because their experience of writing comes from the essays and book reviews they wrote for class assignments and threw into recycling bins as soon as the term was over. I got Ds in my university English classes because I just didn’t like sitting around and analyzing the irony in the Love Song of J. Alfred Prufrock (still inscrutable, after all these years). I wrote my forgettable share of everything: essays, poems, lab reports, programs. I wrote because I had to, because the assignment was there.

    And on my computer, through the Internet, I discovered what it was all about. In class, I wrote essays about things I didn’t quite understand. Outside class, I wrote about what I was learning about life, and hundreds of people read what I’d written and shared their own thoughts with me.

    Powerful stuff.

    I learned that writing about what I was learning was a great way to learn even more effectively. I learned that it was a fantastic way to tell stories, to reach out, to make a connection. I learned that writing helped me scale up and reach wide. I learned that it could create opportunities and build connections.

    I wish I’d learned earlier! =)

    Anyway–back to the International Baccalaureate students, who were getting ready to do a major essay. My advice: write for yourself, and write for more people than you know. Blogging’s a great way to learn and a fantastic way to share.

    After I told a few stories related to that, we opened it up for all sorts of questions. Here are a few:

    How much do you make?
    (immediately followed by another student saying, “Hey, that’s a rude question!”)

    My manager knows the value I create for the company, and that I often get unsolicited job offers through my blog. So he makes sure to keep me happy. ;)

    Given the opportunity, if you were offered double the pay, would you leave the company? That is, do you like the environment?

    I love my environment. The only reasons I’d work with a company are because I love the environment, I love the people, and I love what we do. Never accept work for just money. What I want to say is that it is entirely possible to find something you love doing, to find people you love working with–and to find all of that and make money in the process. It is possible. Don’t let anyone tell you otherwise. Perhaps it takes more work, more energy and more enthusiasm, but it’s worth it.

    A lot of people grow up with this idea that work is supposed to be work–that’s why it’s called work, not play. But if you spend time thinking about what you love, and you find ways to get really good at it, and you find that something which you can do that other people need–if you find those ways to create value for other people, then you’ll create your own opportunities to make whatever amount of money and whatever kind of schedule you want.

    So if they paid me twice as much to work at a company where I didn’t like what I was doing… well, life is too short.

    Aren’t you worried that people will steal what you share online?

    You know what they say about knowledge being power? It used to be that knowledge that you keep secret is power, because then everybody has to come to you. What I find is that knowledge that you share is power. I can post something that’ll get viewed by 30,000 people–which is incredible! Nobody steals that kind of stuff–nobody consequential steals that, because if you’ve achieved any sort of fame or prominence, you haven’t gotten there by copying other people’s work, you get there with your words and your own experiences. So I’m pretty much safe from anybody more famous than I am, and if someone less famous than I am tries to rip off my work, then that doesn’t really affect me either. ;)

    I think it’s incredible when people take my ideas and run with it. I give what I know away because I learn even more in the process of doing so, and that helps me go even further. I’d rather teach things and then move on to other things that interest me. It’s a lot of fun.

    How do you get people to read your blog?

    A lot of people try posting a couple of times, then worry that nobody’s reading or they’re not getting any comments. The trick is to think about it as writing for yourself so you don’t get too worried, and you don’t feel like that unpopular kid who never gets invited to get-togethers. Don’t feel that way. Focus on the things that you’re getting out of it: practice and understanding.

    How do you get other people to read your blog? It’s the same way that you get other people interested in you and the same way you get other people to be your friends. It’s not about you, it’s about them. Go out there. Meet interesting people. Share. Get to know them. Be interested in what they have to say, and they might turn around and check you out. Focus on helping other people. That’s how you do it. You do it by creating value for other people. You do it by being interested in other people. You do it by being part of the conversation. You don’t expect people to come to you. You go out there, you get to know people and then you build those relationships over time.

    What do you do if you have a big task that’s not enjoyable?

    Usually, I go find someone who enjoys doing that kind of stuff. ;) If it’s something I absolutely have to do, then I look for something about that task that I enjoy, or I make it a game with myself. Have you ever noticed that when you’re a kid, you can turn practically anything into a game? “Just time me!” Good stuff.

    (And if it’s something I really don’t enjoy, I either just do it and then reward myself with a fun activity afterwards, or I find out if I really have to do it in the first place.)

    What do you do when someone is condescending?

    People sometimes tell me, “Oh, it’s nice that you’re so happy / you enjoy your job / you’re so full of energy. Enjoy it while you can; you’ll grow out of it.” Best way to deal with that? Collect lots of role models. For example: Benjamin Zander, conductor of the Boston Philharmonic and someone who manages to be even more alive and energetic than I am. Or closer to home: Dr. Oposa, my dad’s knee surgeon, who occasionally wears glasses with blinking LEDs (just for fun). When people tell you something can’t be done, chances are that someone out there’s already gone and done it. And if not, you can be the first!


    Lots of other great questions and thoughts. =) Feel free to ask me stuff, too! The more questions we explore, the more I understand, too… =)

    Preventive maintenance and the Goldtouch Go! keyboard

    June 7, 2009 - Categories: geek, kaizen, life

    Other people might go to a massage therapist to relax. I go so that I can spend an hour and a half picking a specialist’s brain for tips on preventive maintenance. “Why is that muscle sore? What can I do about it? What’s that one connected to? How about that one?” I’ve set aside space in my budget for quarterly sessions with Shelagh, a massage therapist at the Well of Alternative Medicine, and she’s been teaching me all sorts of useful exercises.

    I told Shelagh how tips from a previous massage convinced me to shift from a backpack to a rolling suitcase and from medium heels to flat shoes. Now we’re working on avoiding the issues many people get from lots of computer work: hunched shoulders, aching necks, painful wrists. I’ve ordered this just-released Goldtouch Go! portable ergonomic keyboard:

    The Goldtouch site will charge $150 for international shipping, so order it from The Human Solution if you need it shipped internationally. The coupon code “ergonomics” may save you $10.

    I thought about getting the Happy Hacking Lite keyboard, but I do actually like split keyboards. I also considered the Kinesis Advantage (too big) and the Kinesis Freestyle (too many accessories if I want the incline). The Goldtouch Go! looks like it’ll be worth trying out.

    Then I’ll do what another coworker of mine does: prop the laptop on an overturned recycling bin so that it’s at eye level, and then use a keyboard and mouse for good posture.

    A little bit of preventive maintenance now can help me enjoy life much more and much longer in the future. =) What do you do for preventive maintenance?

    My Charity Connects: The A, B, Cs, of Boomers, X, Ys, Zs: Reaching Different Generations Through Social Media

    June 8, 2009 - Categories: presentation, speaking

    This is a placeholder for the talk on “The A, B, Cs of Boomers, X, Ys, Zs: Reaching Different Generations Through Social Media”. I’ll update this post with recordings and notes by June 10. In the meantime, here are the slides, and some links to useful resources:

    Key message: There are generational and age-related differences, but they’re not as big as you might think based on popular media, and ther eare plenty of opportunities for you to reach out and help make a difference.

    Please feel free to post your questions as comments, or e-mail me (sacha@sachachua.com) if you’d like to learn more. I look forward to continuing the discussion!

    Stories:

    title: The A, B, Cs of Generations X, Y, Z (and Boomers, too): Reaching Different Generations Through Social Media) in the conference agenda

    Asus EEE 1008HA and Ubuntu: Keep a USB drive handy

    June 9, 2009 - Categories: geek, linux

    I’d been thinking about getting a netbook for a while, but I’d felt guilty over the two ultraportables languishing in our electronics drawer. I occasionally dusted them off and W- even got Ubuntu running on them again, but I just didn’t use them as much as I did before I got my work laptop. Keeping multiple configurations synchronized is a pain. Lugging two laptops around is a real pain.

    I held out for the longest time. I’d been into ultraportables when having an 8.9″ screen made geeks’ heads turn (which is how I got away with selling advertising on the back of my laptop one weekend, as an experiment ;) ), and now that ultraportable computers had gone mainstream, well… <laugh>

    Then W- reminded me that the real reason why I haven’t been using the Fujitsu Lifebook P1110 or the Sony Vaio U1 was that I’d used them until they fell apart. Really. Masking tape was the only thing keeping the P1110 together.

    And then I ran into all sorts of computing difficulties on my work laptop, and I decided that having a backup system that I could keep in a consistent configuration was worth some of my dream/experience fund. A light machine that I could use for presentations and for blog posts would be nice, and if it could let me connect to Windows-only teleconferences while continuing to do work using the Linux partition on my main laptop, that would be fantastic.

    After consulting Ted Tritchew (resident guru) and a number of Net resources, I ended up with two choices: the Asus Eee 1000HE, and the Asus Eee 1008HA. The 1000HE was relatively solid, worked well with Linux, and boasted a 9.5-hour battery life. The 1008HA was slimmer, lighter, and could get by on 6 hours. I went with light, because the pounds really do add up.

    It was easy to get Windows XP and Linux to co-exist, thanks to the USB installer that Ted lent me. The 1008HA was pre-partitioned, so I just installed Linux onto the second partition. (Nice not to have to fuss with resizing things!)

    The first major hiccup I ran into was getting networking to work. With the default install of Ubuntu, not even wired Ethernet worked! I came across this really useful Amazon.com review which said:

    Once you install, you need to grab the AR813X-linux-v1.0.0.8.tar.gz package from http://partner.atheros.com/Drivers.aspx . Untar this (ignore the gzip errors), cd src, make, sudo make install, then insmod the resulting file. That should give you wired ethernet.

    To get wifi, go to Administration > Software Sources > Updates and check off “Unsupported Updates (jaunty-backports)”, then do sudo apt-get install linux-backports-modules-jaunty . Once you reboot, you should have wireless.

    So the important parts of my system work now, and I’ll worry about the other bits later on.

    Stage fright, visualization and improvization

    June 10, 2009 - Categories: presentation, speaking

    “Maybe I should take a break from presenting,” I said, “and focus instead on writing blog posts and articles so that I can build up more material.”

    W- nodded. “You have to pace yourself,” he said.

    It was Monday morning, and I had a talk scheduled for 3:35 that day: “The A, B, Cs of Boomers, X, Ys, Zs: Reaching Different Generations Through Social Media”. I sent in my slides a week ago, so I didn’t have to worry about that. I knew which stories I wanted to tell, so I didn’t have to worry about that. But I still felt the nagging doubts of stage fright.

    I mentally ticked off the remaining talks I’d promised to do: “Awesomest Job Search Ever” at the Social Recruiting Summit, “Making Presentations that Rock” at IBM, and “I.B.Millennials: Working with and Learning from Generation Y” at the IBM Technical Leadership Exchange. If I juggled everything well, I’d be able to do all those talks while keeping my project manager and my manager happy. I’d be doing a talk a week. After conference season, I could take a break, study more, write more, draw more, and experiment more.

    First things first. Gotta get through the 3:35 to 5:00 talk. A tough timeslot even in the best of cases–who has energy at the end of the day? But a friend had recommended me to this, and the organizers had said that the nonprofits really needed tips on getting across to generations. I’d given talks like this before, starting with I.B.Millennials at last year’s IBM Technical Leadership Exchange, and ending up with keynote segments on the demographic revolution and the multigenerational workplace. I’d never talked about it in the nonprofit context before, but I’d read a bit about nonprofit marketing, and I hoped that many of the things I learned doing Web 2.0 consulting in the workplace would transfer to the nonprofit sector.

    I packed my presentation kit (laptop, power cord, presenter remote, mouse, voice recorder, webcam (just in case), courage) into my rolling case (gotta watch those ergonomics!) and headed out. From previous talks, I had learned that planning nothing else (no project work, no deadlines, nothing) during the day of a presentation really helped me relax because I had enough buffer time to take care of things. Besides, I was curious about the other sessions, and I wanted to pick up whatever I could.

    I arrived at the conference centre and snuck into a few sessions. The more I listened, the more I itched to give my own presentation. Part of me listened to the speakers and actively participated in the discussion, while part of me was listening to myself–to snippets and sound bites that might make it into my talk. I took notes on the current session and on how I was rearranging my own.

    Do other speakers have this experience? I’m having a hard time describing it because it seems so odd. I hear my own speeches, in my own voice. I can tell that I’m not actually hearing them in person–I don’t hallucinate, if that’s what you’re wondering ;)–but it’s definitely me. I don’t hear the full speech, just little bursts, but that’s enough to convince me that I can do it. Then I roll the words around on my tongue to find out what they feel like, and I know the performance will be fine. By the time the organizer introduces me, I’m ready to discover just how I’m going to get from point A to point B – how we’ll fill in the gaps between those bursts, where the topic and the audience will take me.

    That’s one of the reasons why I don’t script my talks as much as other people do, and I don’t include as many slides or talking points as other speakers do. The less text I have on slides, the more flexibility I have. The fewer slides I present, the more flexibility I have. I prepare the bones of a performance: the key message I want to communicate, the key actions I want people to take, the stories that will help people understand what I have to say and then act. The rest comes during those pre-talk visualizations (… audiolizations?), and in the interaction between me and the audience, strengthened by echoes of blog posts I’d written or things I’d said or heard.

    This is what it’s like to be up on that stage, and it’s exhilarating. It’s an improvised dance of discovery, where the reactions and questions and comments of the audience help me unlock more stories and ideas, and where we all learn more.

    How can I teach other people this? Is this a good start: “Imagine listening to a confident version of yourself give the talk. What does it sound like? What does that feel like?” Can I help people become more comfortable with speaking if I tell them that it’s okay to not know all the details going up, and that discovering the way can be lots of fun? =)

    Weekly review: Week ending June 7, 2009

    June 10, 2009 - Categories: weekly

    From last week’s plans:

    Also:

    Next week (this week, really):

    Relationships

    Wealth/career

    Skills/personal growth

    Health/fitness

    Thoughts on Toodledo versus Emacs Org

    June 10, 2009 - Categories: emacs, productivity

    It’s been a couple of months since I switched to using the Toodledo instead of Emacs Org to manage my tasks. I decided to use Toodledo because I wanted a to-do list that I could access on any computer and on my iPod Touch, so that I could capture tasks from anywhere. I liked Toodledo more than I liked Remember the Milk because Toodledo’s tagging and time-tracking features fit the way I work. I also liked how I could ask my virtual assistant to fill in templates–for example, preparation tasks for upcoming presentations–based on certain dates.

    I still like Toodledo, but I feel an unsatisfied itch. Toodle-do is a great Getting Things Done system for capturing and tracking tasks, but even though it has some support for defining short-, medium-, and long-term goals, I wasn’t using them because they were split up on multiple screens. I missed the outlines of Org where I could define my higher-level goals, easily add new ones, and create tasks and subtasks. I missed the close integration with my schedule and the ability to easily see my historical task information. I missed the distinction between scheduled dates and deadlines, and the calculation of days until something is due.

    So I think it’s time to switch back, at least temporarily. Maybe I can find a way to seamlessly synchronize my Org files so that changes are reflected on the different computers I’m on, and maybe I can find a way to easily capture or review tasks while I’m on the go. Perhaps I’ll continue working on org-toodledo so that I can export tasks from Org to the web-based interface. That way, I can quickly review today’s tasks while I’m out and about.

    Hmm…

    Work-life balance and the good life

    June 12, 2009 - Categories: happy, life

    Over a two-hour Skype conversation, Jason Watson (Queensland University of Technology, Brisbane, Australia) picked my brain for ideas for a Web 2.0 course. One of the things he mentioned was that reading about gardening, sewing, and all these other non-work interests on my blog reassured him that people didn’t have to spend all their time blogging, bookmarking, or otherwise building a digital presence. You can share things online and do your work and have a life (an awesome one, even!).

    Score one for the benefits of work-life balancing, then. Not only do I end up with lots of interesting stories, but I also help people see that these things are doable. =)

    The conversation reminded me of how my manager sometimes thinks I must be under-reporting my hours. He occasionally says something like, “But Sacha, what about all the other learning that you do? I know you might feel guilty about writing down all those hours…” To which I often respond, “Err, umm, I actually do have a life.” ;) A quiet, at-home-ish life, but a pretty darn good life nonetheless. (And if this is a career-limiting move, that’s good to know–it’ll mean I’ll find or make opportunities somewhere I and other people can flourish!)

    I sometimes spend my evenings and weekends exploring technology. More often, though, I spend those precious concentrated blocks of time on other pursuits: spending time with W- and J-, experimenting with virtual assistance or presentations, working in the garden or on my sewing, inhaling vast quantities of books from the library, preparing the groundwork. Certainly some of these things can benefit my company, but the connection might not be direct or immediate. Besides, I already have so much fun at work–coaching people, developing systems, sharing what I’m learning, influencing people’s behaviors and moods along the way. I like giving myself the freedom to let my thoughts explore all sorts of directions without necessarily focusing on work.

    I suspect this has a large part to do with the happiness and energy people find so remarkable. =) And if I could just figure out how to help people try this out, that would be awesome.

    Personal finance and work-life balance are surprisingly similar. Many people feel starved for both time and money. They live from paycheque to paycheque and moment to moment, stressed out by what they lack. Their conditions impose limits on them, and they end up without the flexibility to take advantage of opportunities. If you don’t have savings, you’ll find it hard to respond to emergencies or take advantage of a good deal. If you don’t give yourself time, you’ll find it hard to respond to changes or to fully enjoy each moment.

    The combination of a healthy emergency fund, long-term savings, and an opportunity fund is tremendously liberating. Time is even more precious. Giving myself the space to explore, learn, to grow, to share, to live–that’s what allows me to enjoy all the other moments, too. It allows me to appreciate the wonderful people I get to share these moments with and the fantastic experiences we have. It allows me to experiment with new tools and new ideas, so I always keep learning.

    Work-life balance is a personal thing. For some people, their ideal life might involve a whole lot of work. That’s totally okay, too. If they’re happy, they’re happy!

    I don’t know if you can just give this kind of experience to someone else. Many lottery winners commit suicide. Giving people the gift of time doesn’t quite do the thing, either. What questions can I ask and what stories and experiences can I share so that people can explore this?

    Garden updates

    June 13, 2009 - Categories: gardening

    The six-week bush beans are up, and so are the carrots. The edamame I planted on a whim has germinated, too, although it hasn’t poked its nose out of the soil just yet. The spearmint is absolutely lovin’ the pot that it’s in. I’ve taken to having lots of mint tea so that the plant stays neatly within the pot. The mesclun mix I planted last week is up as well, and some of the seedlings are starting to look lettuce-y. All the strawberry plants are flowering. The bitter melon is doing well, too – so well that I’ve had to thin the ones in the pot, transplanting some of the crowded seedlings to the spot near the fence where the bitter melon will eventually grow. The creeping thyme is starting to establish itself, and has delicately purple flowers. The cat grass is growing by leaps and bounds. No hint of the cantaloupes and watermelons just yet, but I’m sure they’ll come – and if they don’t, I can make other plans for that space. And in the shade near the lilies of the valley, I’ve spotted some dill–volunteers from last year’s attempt to grow dill in a planter?

    I find myself retreating to the garden to think. It’s comfortable, and it probably has more of me in it than any other place in Canada. The land is W-‘s, of course, but the vegetables and herbs are here because of me. I’m putting down roots. ;) Not that I’m not prepared to leave this, just in case–ah, paperwork and visas–but while I’m here, I may as well be here. Who knows? Someday I may cultivate heirloom tomatoes and snack on sugar peas, and I’ll be able to have–and share!–these experiences.

    It’s amazing to see how sunshine, well-fertilized soil, and water can get all these plants to grow. I love seeing the plants go through the different stages. I love knowing that the soil underneath our plants is rich in happy earthworms. I love being able to reach out and rub a few leaves to release the scent of rosemary, mint, basil, thyme, or lavender. I love the grit of our sandy soil between my fingers, the cool moistness that tells me when I should water and when I can let the plants rest. I love the anticipation and the constant change, even when that change comes in the form of weeds that enjoy the cultivated conditions as much as our plants do.

    Next year, I think we’ll add another feet or two out, plant zucchini instead of melons (or just plant them all and see what comes out first), plant more strawberries (although I have another planter coming in)… Squee!

    Social Recruiting Summit: Awesomest Job Search Ever

    June 15, 2009 - Categories: conference, presentation, speaking, web2.0

    UPDATE: Here’s the recording! =)

    pre-session notes

    This is a placeholder for “Awesomest Job Search Ever”, the talk I’m giving at the Social Recruiting Summit today at the Googleplex. It’ll eventually hold notes from the session, and if we’re lucky, a recording and a transcript as well. =)

    I plan to tell the story about how I got to do what I do at IBM. The three points I want to make are:

    I want to convince recruiters to take the following actions:

    Please feel free to leave comments with questions or further thoughts. You can also e-mail me at sacha@sachachua.com. Looking forward to hearing from you!


    UPDATE: Susan mentioned that she found one of my presentations. That’s probably this one:

    Another thing that you might like:

    More presentations on Slideshare

    Notes from the Social Recruiting Summit

    June 18, 2009 - Categories: conference, web2.0

    I love being part of industry conferences outside my field. I learn so much from the sessions and the conversations, and I meet all sorts of amazing people I might not otherwise have come across.

    Yesterday, I participated in the first Social Recruiting Summit, where recruiters shared questions, ideas and tips on how to use social media to connect companies and candidates. I gave a presentation on The Awesomest Job Search Ever.

    Reid Hoffman (co-founder of LinkedIn) gave the keynote address, demonstrating LinkedIn Recruiter. Listening to the conversations afterwards, I got the feeling that people had hoped to have more exciting news about where Reid saw the industry going in the next five years, or some other insights and information not available on LinkedIn’s website. Note to self: When you keynote a conference, focus on the big picture and give people something special.

    The summit had an unconference portion. I like unconferences because they let people bring out fresh perspectives, late-breaking news, and more conversation. I proposed a session for sharing success stories and war stories, which I removed when I saw that other sessions could fulfill that quite nicely. Ryan Caldwell and Dion Lim had proposed separate sessions around social media and ROI. When I saw what Dion had written, I called Ryan over, introduced the two of them, and convinced them to merge their sessions. Ryan said he thought I should be in mergers and acquisitions instead. ;) It became a four-person panel with some interesting points, although I think they were counting on a more experienced audience with success stories and war stories of their own. In the future, providing unconference sessions with whiteboards or easels would be a great idea because the facilitators can then capture and express more complex ideas.

    There were lots of other interesting sessions and conversations at the summit. During my presentation on “Awesomest Job Search Ever”, I encountered some difficulties hooking my laptop up to the projector, so I just went slide-free. I told people the story about how I got to know IBM, how IBM got to know me, and how that led to just the right position being created for me. We took almost 40 minutes for questions and answers, I think. I learned a lot and I had tons of fun. Others did too! The key messages that emerged were:

    Lots of good stuff, but I better get these notes out before they become stale!

    Dinner

    It was difficult to extract one of our companions for dinner, so I suggested that we all go. There were about 16 of us. Chandra Bodapati took us to a terrific Indian restaurant. (Yay local guides!)

    I had a terrific conversation with John Sumser, who opened by saying, “You must have amazing mentors.” He explained his company name (Two Color Hat) by telling me the African teaching tale about a man with a two-color hat who walked down a street and asked people what they saw. He likes bringing together different perspectives. He’s also very interested in the demographic shapes of companies and labour markets.

    John gave me tips on storytelling and emotional modulation. He encouraged me to find ways to develop my technical skills in parallel with softer skills like presentation and influence. He suggested checking out things like The Quantified Self, The Technium, Kevin Kelly (kk.org), cybernetics, and other complex things. This reminds of what Michael Nielsen told be about Lion Kimbro, who found that the practice of writing down his every thought made him think much more clearly. Must see if John knows about him.

    On the way to the airport

    I hitched a ride with Eric Jaquith and Geoff Peterson in a SuperShuttle, which worked out to be a very cost-effective and hassle-free way to get from Embassy Suites to the SFO airport. Along the way, they shared even more insights about recruiting, technology companies, leadership, life, and other good things. I’m really so lucky that people are so generous with their insights!

    Debriefing

    I arrived at 11:00 at the San Francisco International Airport. Since I had a few hours to spare before my 3:05 flight, I connected to the wireless network and started working. Jennifer Okimoto (enterprise adaptability consultant) sent me an instant message asking me about the summit. She said,

    so… I’ve received a request to respond to a media relations request ABOUT SOCIAL RECRUITING and you appear to be the current IBM expert!

    Jen had been reading my tweets, and she wanted to pick my brain about emerging trends in social recruiting. I spent 20 minutes braindumping the ideas and stories I’d picked up from the one-day summit. Here are some bits:

    So that’s the braindump from the conference. I’ve asked an assistant to transcribe my talk, and I’ll post that after I clean it up. =)

    129 summer camp ideas

    June 18, 2009 - Categories: life

    J- doesn’t want to go to any camps this summer. Instead, she’ll try to come up with interesting things to do. I spent a few minutes compiling this list of summer camp ideas. If some of these catch her eye, we can see about putting together our own curriculum and activities… =)

    1. Adventure
    2. Animal safari
    3. Animation
    4. Archaeology
    5. Arts and crafts
    6. Astronomy
    7. Backpacking
    8. Baking
    9. Baseball
    10. Basketball
    11. Biking
    12. Biology
    13. BMX
    14. Building / woodworking
    15. Business
    16. Canoeing
    17. Caving
    18. Cheerleading
    19. Chess
    20. Clay
    21. Claymation
    22. Chemistry
    23. Circus
    24. Computer
    25. Construction
    26. Cooking
    27. Creative writing
    28. Cross-country skiing
    29. CSI
    30. Culture
    31. Debate
    32. Diving
    33. Dog sledding
    34. Environmental
    35. Etiquette
    36. Farming
    37. Fashion
    38. Fitness
    39. Fencing
    40. Field hockey
    41. Film
    42. Finances
    43. Fishing
    44. Flash animation
    45. Football
    46. General academics
    47. Geology
    48. Gifted
    49. Golf
    50. Gymnastics
    51. Hiking
    52. Hip hop
    53. Horseback riding
    54. Hunting
    55. Ice hockey
    56. Ice skating
    57. International studies
    58. It’s a girl thing
    59. Jewelry
    60. Journalism
    61. Kayaking
    62. Lacrosse
    63. Language
    64. Liberal arts
    65. Life on the farm
    66. Life skills
    67. Life sports (tennis, golf, badminton)
    68. Magic
    69. Marine science
    70. Martial arts
    71. Math
    72. Medical
    73. Modeling
    74. Motocross
    75. Motorsport
    76. Mountain biking
    77. Mountain boarding
    78. Mountaineering
    79. Multi-sport
    80. Net sports
    81. Orienteering
    82. Paintball
    83. Personal growth
    84. Piloting
    85. Primitive skills
    86. Photography
    87. Psychology
    88. Rappelling
    89. Riflery
    90. Robotics
    91. Rock climbing
    92. Rockets
    93. Rollerblading
    94. Ropes
    95. Rowing
    96. Sailing
    97. Scrapbooks
    98. SCUBA
    99. Secret agent
    100. Sewing
    101. Shakespeare
    102. Singing
    103. Skateboarding
    104. Snowboarding
    105. Snow skiing
    106. Soccer
    107. Softball
    108. Spa
    109. Space
    110. Squash
    111. Stunt
    112. Survival
    113. Swimming
    114. Tennis
    115. Theatre arts
    116. Traditional
    117. Track and field
    118. TV
    119. Veterinary science
    120. Video game design
    121. Volleyball
    122. Wakeboarding
    123. Waterskiing
    124. Water polo
    125. Whitewater rafting
    126. Wilderness
    127. Windsurfing
    128. Wrestling
    129. Yoga

    Weekly review: Week ending June 14, 2009

    June 18, 2009 - Categories: weekly

    From last week’s plans

    Relationships

    Wealth/career

    Skills/personal growth

    Health/fitness
    Bike to work on Friday =) Stayed home instead.

    Also:

    Plans for next week (this week, really):

    Twitter brings down walls

    June 18, 2009 - Categories: web2.0

    In addition to Twitter, YouTube has been a critical tool to spread videos from Iran when traditional media outlets have had difficulty filming the protests or the ensuing crackdown. One YouTube account, bearing the user name “wwwiranbefreecom,” showed disturbing images of police officers beating people in the streets. On Monday, Lara Setrakian, an ABC News journalist, put out a call for video on Twitter, writing, “Please send footage we can’t reach!”

    “We’ve been struck by the amount of video and eyewitness testimony,” said Jon Williams, the BBC world news editor. “The days when regimes can control the flow of information are over.”

    Washington Taps Into a Potent New Force in Diplomacy – NYTimes.com

    The world is changing. Technology helps people make a difference.

    Thanks to Bernie Michalik for the pointer to the article.

    Taking the Stage: The Power of Voice

    June 18, 2009 - Categories: kaizen, leadership, presentation, speaking

    The second session in the Taking the Stage women’s leadership program I’m taking at IBM was called The Power of Voice. We learned about some of the vocal habits that undermine people’s confidence and rapport, such as trailing off or using a rising tone at the end of sentences.

    We also had a short discussion about what makes presentations engaging. Many of the participants mentioned enthusiasm and passion–if not for the content, then for something beyond that.

    The three key tips I picked up were:

    1. Breathe deeply from the diaphragm so that you can support your voice.
    2. Open your mouth both inside and out, because that affects your tone and articulation.
    3. Resonate using different areas of your body: head, chest, and others.

    I’ve thought about finding a speaking or presentation coach who can help me learn how to make even better use of my gift of spreading enthusiasm. I’m good at collecting and retelling stories. I’m good at finding something worth being excited about, sharing my enthusiasm, and helping people remember why they care about their work. I’m good at mixing presentations up with creative approaches. I’m good at scaling up – getting more value from the effort I put into making a presentation. I’m good at handling questions and dealing with the unexpected.

    The first thing that can help me become an even better speaker would be to learn how to use even more vocal variety. I’ll start with varying tempo, then I’ll learn how to vary pitch, and maybe even learn how to bring in different accents and sound effects. These will help me build more dramatic tension into storytelling, use emotional modulation, and pick the right voice. Articulation would also be good to improve.

    I can practice on my own with vocal exercises, aerobic exercise (to increase my breathing capacity), and perhaps even podcasts. I can also practice in my presentations, which usually come once or twice a week during conference season. Once I get my work permit paperwork sorted out, I’ll sign up for Impatient.ca‘s longform improv classes. In the meantime, I can look around for acting workshops or speech coaches who won’t charge an arm and a leg, and I can check out lots of books from the library on how to improve speech.

    Other things I can work on in the future: storytelling, navigational structures, vocabulary =) (richer words! more concrete expressions!), improvisation, humor, rhetorical structures, illustration… There’s so much to grow into!

    I’m interested in this for a number of reasons:

    Next actions: Check out library books on voice training, and ask for quotes from voice coaches in Toronto. Waiting for paperwork: sign up for improv classes, and look for acting workshops.

    Social media and education

    June 18, 2009 - Categories: teaching, web2.0

    There’s an insightful 82-page PDF entitled Educating the Net Generation: A Handbook of Findings for Practice and Policy. Support for the original work was provided by the Australian Learning and Teaching Council Ltd, an initiative of the Australian Government Department of Education, Employment and Workplace Relations. (And the report’s CC-Attribution-Noncommercial-Sharealike!)

    Interesting bits:

    Educating the Net Generation: A Handbook of Findings for Practice and Policy

    If you’re in education, you should definitely check this out. Might be interesting to write case studies like this for the corporate world, too.

    Thanks to Millennial Leaders and Ryan Coleman for the link!

    A tale of two laptops

    June 19, 2009 - Categories: geek

    I’m really starting to appreciate the convenience of having two laptops. I can leave one running tests while I work on the other. I can separate memory-hungry applications like Emacs+Firefox (development) and Lotus Notes (work coordination). I can take the smaller laptop with me when I travel, which makes it easier to travel light.

    Although the Eee’s screen is only 1024×600 pixels, I prefer it for development because I’ve set it up with my complete Emacs environment. The Windows partition of my work laptop doesn’t have all of my shortcuts set up, and accessing the development server through putty/ssh is slow. So I do my development on the Eee (small screens encourage short functions!), use the work laptop for mail and web conferences, and occasionally look up webpages on the work laptop’s bigger screen.

    Worth it. I’m seriously thinking about upgrading the RAM on the Eee to at least 2GB, though, as I regularly use at least 1.2 GB during development.

    Travelling with smiles

    June 19, 2009 - Categories: travel

    I think I’m getting the hang of how to make flights comfortable. =)