May 2008

Weekly review: Week ending May 4, 2008

May 4, 2008 - Categories: weekly

Last week:

Next week:

Kaizen Presentations: Web 2.0 and the University

May 7, 2008 - Categories: kaizen, presentation, talk

I’m still buzzing from the first client teleconference presentation I made. I gave a brief overview of Web 2.0 and universities.

Here’s what I learned because I did it well:

Here’s what I can do to make things even better:

Happy! =D

May 8, 2012
I remember this talk. I was nervous, but I pulled through, and things were just fine. Many of the tips I shared here ended up resurfacing in my “Remote Presentations That Rock” talk. I’m still in the process of building a library for slides. Slideshare gives me a visual library of my past presentations. I’ve been using Emacs Org to collect ideas and snippets, and I use Evernote to store some of my hand-drawn images.

Gen Y Growing Up: My first chat with a financial planner

May 7, 2008 - Categories: finance

Another milestone! Today, I consulted a financial planner for the first time. I’d been meaning to find a financial planner who could review my setup and suggest other best practices, and I learned a lot from the session.

When I told the financial planner how I’d maxed out my registered retirement savings plan. She was impressed and suggested looking into corporate class funds. They’re taxed a little differently than regular mutual funds, and can be more tax-efficient than regular funds when outside an RRSP. I took the literature and promised to read up on it. Based on this Globe and Mail article about corporate class funds, it seems that corporate class funds are good for active investors who like switching in and out of funds, and not so good for buy-and-hold investors who favor index funds because of tax efficiency and low management expense ratios. (TD Canada Trust e-Series has the lowest-MER index funds I’ve seen so far, as the exchange-traded index funds that are increasingly popular in the US are somewhat bulkier over here.)

It was good to get some advice on uncommon concerns, such as international personal finance. How would I need to prepare for the scenario of moving back to the Philippines? I knew that my RRSP investments could be left in Canada, but I didn’t know how to handle my non-registered investments and other accounts in a tax- and duty-efficient manner. It turns out that I can leave money here, but I may not be able to give further instructions from overseas, and withdrawing everything could result in losses or high taxes. One way to handle this situation might be to convert all my accounts into long-term investments, then leave very good instructions. I’m currently planning to stay in Canada for a while, but it’s nice to know what I need to do in order to prepare for other options.

I answered her questions about my existing assets and expenses, and I asked her to help me prepare several retirement scenarios: the traditional retire-at-65 kind of plan, the ambitious be-flexible-at-40 plan, and the calculations for time in between. I wanted to figure out what a basic plan is, then inch that retirement date earlier and earlier. I gave her the numbers she asked for, and she’ll share some plans with me the next time we meet.

Writing about this gave me an epiphany. What I want to develop is not a retirement plan, but a medium-term opportunity plan. I don’t need to know how many dollars I’ll need in order to never work again. I’m not in the habit of postponing life until then, and I certainly hope I can continue doing meaningful work forever. What I want to know is this:

How can I position myself so that I can create and take advantage of opportunities while dealing with the risks?

(This post is not financial advice. Good luck!)

May 8, 2012
I ended up not going with the financial advisor or her advice, instead sticking with index funds with low management expense ratios. I’m not trying to beat the market, and I don’t trust actively-managed funds. The opportunity fund that I started building after this epiphany worked out really well, though. It enabled me to leave my full-time job and focus on building my own business, which is what I’m doing now. Yay!

Gen Y Growing Up:

May 8, 2008 - Categories: career, life

Holly Hoffman is another Gen Y blogger writing at worklovelife.com. I came across her blog on a short list of Gen Y bloggers, and after a quick browse, I subscribed. Today, she posted an entry about being good at what you do – even if you don’t like it:

In a word, what I am talking about it responsibility. I may not be passionate about my 8-5 job, but I am passionate about being a quality employee and coworker. To buck Gen Y stereotypes, I guess you might say I am passionate about responsibility.

Holly Hoffman, worklovelife.com

That reminded me of this excerpt from a book I read last year:

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.

It can be a chicken-or-egg question. Should I wait until I find work that I love before I commit to go all in? Or should I go all in so that I will begin to love the work that I’ve got?

Why would I conceivably not want to be the best I can be at whatever I’m doing? I like the idea that whether I’m sweeping a street, weeding my yard, playing drums in a band, teaching a class, taking photos at a wedding, working as a customer service representative, selling insurance, washing cars, running a company, being a personal fitness trainer, bagging groceries, or writing a book that I take the attitude that I will knock your socks off with how I do what I do. Or maybe it’s my own socks that I want to knock off.

Work Like You’re Showing Off: The Joy, Jazz, and Kick of Being Better Tomorrow Than You Were Today (p. 72)
by Joe Calloway

Read more about this book…

Go and knock your own socks off.

Geek: How to use offlineimap and the dovecot mail server to read your Gmail in Emacs efficiently

May 8, 2008 - Categories: emacs, geek
2014-04-09: This post is from 2008. =) I think I used dovecot+offlineimap because Gnus and maildir weren’t getting along properly and directly connecting with IMAP to Gmail’s server was slow, but things have probably changed a fair bit since then. I eventually moved to using the Gmail web interface for most things, but I still miss my Gnus setup!
  1. Make sure you’ve set up Postfix or some other mail server that can send mail. I’m not going to cover that because my configuration for outgoing mail doesn’t use Gmail.
  2. Install dovecot (IMAP server) and offlineimap (IMAP synchronization). You can probably find binaries for your distribution.
  3. Edit /etc/dovecot.conf and set the following:
    default_mail_env = maildir:%h/Maildir
  4. Put the following in ~/.offlineimaprc, changing your_local_username, your_username, and your_gmail_password:
    [general]
    accounts = Gmail 
    maxsyncaccounts = 1
    
    [Account Gmail]
    localrepository = Local
    remoterepository = Remote
    
    [Repository Local]
    type = IMAP 
    remotehost = localhost
    port = 143
    remoteuser = your_local_username
    
    [Repository Remote]
    type = IMAP
    remotehost = imap.gmail.com
    remoteuser = your_username@gmail.com
    remotepass = your_gmail_password
    ssl = yes
    maxconnections = 1
    realdelete = no
    folderfilter = lambda foldername: foldername in ['INBOX']
    

    If you feel comfortable specifying your password for your local account in your ~/.offlineimaprc, you can do so by adding a remotepass line under the remoteuser line in the [Repository Local] section.

  5. chmod go-rwx ~/.offlineimaprc for a little bit of safety.
  6. Type offlineimap to start synchronizing.
  7. While that’s synchronizing, use something like this as your ~/.gnus:
    (setq gnus-select-method
          '(nnimap "Mail"
    	       (nnimap-address "localhost")
    	       (nnimap-stream network)
    	       (nnimap-authenticator login)))
    
    (setq user-mail-address "youremail@example.com")
    (setq gnus-ignored-from-addresses "youruser")
    
  8. Start Emacs. Start Gnus with M-x gnus. If you don’t see the INBOX group, press ^ (gnus-group-enter-server-mode), open nnimap:Mail, move your cursor to the INBOX, and either press RET to go into the group or press u (gnus-browse-unsubscribe-current-group) to toggle the subscription status until you’re subscribed to the group. Then it should show up on the group screen (M-x gnus).
  9. Hope that helps. Have fun!

Lotus Notes Tweak: End of Message, No Response Needed

May 9, 2008 - Categories: geek, lotus

Taking a quick break from Javascript hacking to post this Lotus Notes tweak.

Following Susan Schreitmueller’s advice in the 28-hour Workday presentation she gave, I started replying in subject lines and using [EOM, NRN] to indicate the end of the message and that no response is necessary.

Not everyone’s familiar with this convention, so I always included a short explanation in the body of the message. After a number of these EOM/NRN messages, I created an AutoHotkey macro to save me a few keystrokes. I set up !eomnrn to expand to “EOM – end of message, NRN – no response needed”, and I used that in the body of the message.

I thought it still took too many keystrokes and mouse clicks to reply to a message, add my note to the subject line, add “[EOM, NRN]” to the end of the line, and type in the explanation in the body of the message. In fifteen minutes, I whipped up this little LotusScript agent that prompts you for a response, puts it in the subject line with an explanation, and sends the message off.

In Lotus Notes, use Create – Agent to create an agent called something like “1. EOM – NRN”. Edit the agent and put this in the Initialize sub.

	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim collection As NotesDocumentCollection
	Dim memo As NotesDocument
	Dim reply As NotesDocument
	Set db = session.CurrentDatabase
	Set collection = db.UnprocessedDocuments
	Set memo = collection.getFirstDocument()
	While Not(memo Is Nothing)
		Set reply = memo.CreateReplyMessage( False )
		response = Inputbox("Response to " + memo.Subject(0))
		If (response <> "") Then
			reply.Subject = response + " re: " + memo.Subject(0) + " [EOM, NRN]"
			reply.Body = "EOM - end of message, NRN - no response necessary"
			reply.IsSavedMessageOnSend = True
			reply.Send(False)
		End If
		Set memo = collection.GetNextDocument(memo)		
	Wend

Then you can select the message(s) you want to whiz through, type Alt-A 1 to call the action, and reply quickly. You can also call it while viewing a message, which is probably a safer place to start.

Enjoy!

The Gen Y Guide to Web 2.0 at Work

May 9, 2008 - Categories: gen-y, sketches, web2.0

An IBM colleague asked me to put together a few tips for Web 2.0 at Work. Here’s something I had fun putting together, sketching it on my Nintendo DS:

I need a faster web host

May 10, 2008 - Categories: Uncategorized

My site’s been slow for a while now – so slow that even I don’t have fun flipping through it. So I’m thinking of switching over to a different site. I checked out webhostingbuzz, but they don’t offer full SSH access. Here’s what I need:

Anything you’d recommend?

You have received a painting from Sacha

May 10, 2008 - Categories: sketches

080511-05.32.23.png

Welcome to my new host!

May 11, 2008 - Categories: geek

If you see this, you’re on my new webhost. Hooray! =)

This will be a little shaky for the next few days as I move more things over, but things should be much more zippy now. Next steps: get my domain name sorted out, then move my non-blog content over.

Thanks for your patience!

Sketchcast: Week ending May 11

May 12, 2008 - Categories: sketches, weekly

Andy Piper linked to my Nintendo DS sketches and to something interesting called sketchcasting, so I wanted to figure out if I could do that myself without having to get a tablet or work with the mouse. It turns out that you can use a Java program called ColorsDraw to play back DS Colors sketches on regular computers, and you can even export to AVI. A little bit of editing later, and voila!

[kml_flashembed movie="/notebook/colors/weekly-may11.swf"]

Let’s see how well this works.

Sketchcat

May 12, 2008 - Categories: cat, sketches

Hey, that worked. Good thing I still have some of my favorite sketches on my DS. Here’s the sketch I play back to myself whenever I miss my cat or feel uncreative:

[kml_flashembed movie="/notebook/colors/cat.swf" width="400" height="318" /]

She very obligingly posed for me the last time I was in the Philippines. I miss my cat.

It’s not just for you – it helps other people remember the steps, too!

May 14, 2008 - Categories: life

We took J- to her last hiphop dance class before the performance on Monday. It’s amazing what lessons in life and leadership you can pick up from something like that.

We arrived early, so we watched the previous class. The instructor was a lively young woman who coached and cheered the kids through their dance routine. You should have seen the serious looks of concentration on the kids’ faces as they tried to remember all the steps. They wanted to do well – and they certainly didn’t want to be That Kid Who Forgot The Dance Steps.

After a rather subdued dance routine, the dance teacher called all the students together and asked them to say the steps out loud, just as she’d taught them before. Some of the kids hesitated. The dance teacher explained, “It’s not just for you. It helps other people remember the steps, too!” At that, the kids perked up. I guess they realized that other kids faced the same problems they did, and that they could help each other. =)

The kids went into the dance routine with renewed energy. Some kids jumped straight into it, shouting their moves. Others were more tentative, whispering the moves to themselves. Seeing that, the teacher said, “I can’t hear you!” By the end of the run, the kids were yelling their moves as they did them, and laughing at each other’s antics.

“Great! Now during the performance, we’ll whisper it, okay?” said the teacher. Several kids turned to her with worried looks. The teacher reassured everyone that saying it out loud would help them remember. “Pinky promise!” she said. Then–if I saw it right–all the kids clustered around the teacher, pinky-promising one by one.

Other people around us are trying to figure out the steps, too. We can help others while helping ourselves. That’s why I like yelling out my steps, sharing what I’m doing and how I’m doing it. Who knows, someone might be going through a similar thing too! =) Sometimes, what we need to boost our confidence is that pinky-promise from someone that things are going to work out all right. I pinky-promise you: things will be wonderful.

The Incoming University Student’s Guide to Web 2.0

May 16, 2008 - Categories: education, tips, web2.0

Read extensively. The university library’s an amazing resource. Yours might come with access to online research libraries, too. Combine that with Internet resources such as Wikipedia, blogs, and so on. Speed-reading can help you browse through information quickly so that you can focus on the good stuff.

Write. Writing is a great way to remember what you’re learning and reflect on how you’re doing things. This will help you get better and better at what you do, and you’ll be able to recognize the things you’re good at and that you enjoy. If you write on a blog, you can use it to reach out to people. Write about what you’re learning, and you’ll help other people who are learning about it too. Write about what you’re doing well, and you’ll start building a network and a reputation that will come in really handy when you’re looking for work.

Connect. Find out if there’s a Facebook group for your incoming university class. If not, start one and invite other people to join. It’s a great way to connect with people even before the first day of class. Feeling shy? That’s okay, everyone is too. If you focus on helping other people connect and make friends, you’ll become more and more comfortable, and you’ll make friends along the way too. Don’t hesitate to look for role models online, too. Many people have blogs that you can read to get a sense of what life is like in their industry. Read, then comment, then contact them, and you’ll get a head start on growing your network.

Behave online and offline. The Internet remembers, and even sites that promise you privacy occasionally mess up and expose things you’ve shared to the world. Think twice about posting pictures of wild parties, underwear-on-your-head shenanigans, and other things things that future employers and coworkers might take against you. In fact, since just about anyone can take a picture of you and post it up on the Net where you don’t have control of it, you might want to keep clean entirely. You don’t need to posture to be cool, and you can have fun without doing things you’ll regret.

Don’t let yourself be limited by anything or anywhere. I took my bachelor’s degree in a university in the Philippines. Great school, but it didn’t have all the courses I wanted. =) I was on the Internet learning from course materials from everywhere: MIT, Georgia Tech, wherever I could find information. Now there are even more choices. Check out places like MIT OpenCourseware and Stanford iTunes for free courses. This is great not only for learning things, but also for getting a better sense of what you like. In fact, it might be a good idea to check the courses out now before you declare a major. You don’t need to understand everything. You just have to get a sense of whether you’ll like the course or not. That way, you’ll spend less time switching around to find something you enjoy and will use.

I think I’ll make a few sketches about this over the long weekend. =) Any other tips for incoming college and university students?

How to sketch with a Nintendo DS

May 17, 2008 - Categories: sketches

As promised, here’s a quick guide to sketching on the Nintendo DS:

Useful sites:

I like sketching on the DS because it’s something I can always take with me. I’ve thought about getting a digitizing tablet, but I’ve always held off because, well, I don’t think of myself as an artist. Not a proper artist–not like Diane, one of my best friends. She has sketchpads full of good stuff, and would definitely make the most of a tablet. Me, I doubt my artistic skill and hand-eye coordination. But I’ve been working on developing my visual vocabulary by taking pictures, looking at photos and great presentations, and trying to explain abstract things with analogies, and I’m discovering that maybe I do have a little bit of an artistic side. Sketching is actually a lot of fun. Maybe my drawings aren’t as cool as the sketches that people have posted in the Colors Gallery, but they’re my drawings, and they make me happy. =)

I’m starting to save up for a tablet PC. =) I think that would be fun to play with, and I’ve learned that it’s good to follow my intuition. I would love to mindmap and storyboard my presentations with a tablet PC, and if I can use that to sketch bigger things, even better! So I’ve made room in my spending plan, and at my current rate of saving, I’ll have the sum saved just in time for my 25th birthday. =) I want the Lenovo X61 multi-touch model, but maybe an even better one will come along by the time I’ve saved up for it. (And maybe there’ll be more software for it, too!)

In the meantime, I want to learn more about communicating with the tools I have. I’ve got so many things I want to share: things I’ve learned, things I’m learning from other people and from books and from the world around me. You can come along and learn with me as we figure things out. That’s what this blog is for. =) So I’ve checked out a whole bunch of books on visual storytelling, and I’m going to be drafting and drawing some other ideas over the next few weeks. (My Wicked Cool Emacs book may turn into a cartoon guide to Emacs… Yeah, right. ;) )

What would be some great ways to improve on this without springing for new gadgets? I’d really love to figure out how to work with the videos I can get from ColorsDraw and turn them into a slideshow where the pace is controlled by the viewer. I’d love to be able to move things around, cut things apart, and crop and greenscreen… I’d love to do proper animations of stick figures and drawings, too. (Wouldn’t it be awesome if someone came up with a DS homebrew app for that?) And there’s plenty to learn even with static images. =)

So that’s where I am with this Nintendo DS sketching thing. I’m learning a lot, and it’s fun. <grin>

New workflow for sketching; ooh, batch import!

May 17, 2008 - Categories: geek

So here’s my new workflow:

  1. figure out the gist of what I want to say
  2. write down some titles
  3. sketch a couple of ideas into my idea book (thanks Mom!)
  4. pull the storyboard together
  5. draw it on my DS
  6. copy the files using the USB adapter
  7. convert the DRW files to PNGs using a scale of 2.0 (nice and not too blurry even blown up)
  8. batch-import all the PNGs in a directory (OpenOffice.org extension or Microsoft Powerpoint Import Image -> Photo Album)
  9. post the presentation to Slideshare.net
  10. blog about it

=)

I really wish I could just automate step 7, but oh well! ;)

Weekly review: Week ending May 18

May 18, 2008 - Categories: weekly

Wow. What a week. Every week helps me understand a little more about life and what I love to do, and this week’s been a terrific teacher. =)

The quickly-sketched Gen Y Guide to Web 2.0@Work that I put together for a friend caught people’s attention, with over 8,000 views on Slideshare and a mention in ReadWriteWeb’s article on Why Gen Y is Going to Change the Web. Wow. =) That little thing combined many of my passions and resulted in big results. I love helping people connect. I love bridging the gaps between generations and helping people figure out how to make the most of these new tools. I love exercising my creativity. I love communicating and learning more about communication. I love inspiring and being inspired by others. And I love love love love learning from other people. When I can bring all of those things together… Wow!

I want to build on that strength. I’ve checked out books on sketching and visual storytelling because I really like how comics and editorial cartoons express things so concisely and effectively. As in writing, I often find it difficult to figure out what I want to say and how I want to say it. I know I’m going to get it wrong, but that’s okay. I may need to get it wrong a couple of times before I figure out the message. Talking to other people helps me figure out what I have to say, too, and that’s why this blog’s so useful. If you comment on something, I learn from what you’re saying, and I learn about what I’m saying. (Does that make sense? Maybe it will make sense when I figure out how to explain it.) If I practice, I’ll eventually develop the verbal and visual vocabulary to help people understand what I mean, and then I can use that share all these things I’m learning from you and from others. I can’t get there unless I go through the awkward phase of trying to figure out what I mean, so… umm… thanks for your patience. =)

I did a number of other interesting things at work, too. We held a virtual exhibition called Innovation in Action, and I volunteered to help staff the Social Networking booth. It was my first time to try a virtual conference/tradeshow like that! =) I had the first shift, and I had a lot of fun figuring out ways to make the most of the platform. In addition to the simultaneous conversations I had with the people who dropped into our booth and typing up my tips to share with colleagues on my internal blog, I had my hands full. Figuring out good ways to connect with people and sharing those tips with my colleagues was a lot of fun!

I’ve also been doing more development work with Drupal and Javascript, and I’m slowly but steadily making progress. I like the puzzle-solving aspect of it, and I hope I can add more of a people aspect to that kind of work too.

I started on the fifth chapter of my technical book about Emacs, too. I was really anxious about the book before because it was so difficult to write about something that’s always changing, but I’m going to keep writing about it anyway and we’ll just figure out how everything works out. =)

In other news:

W-, J- and I have been bitten by the gardening bug. We’re trying to grow some hot peppers from seed, have a few small hills ready for canteloupes (me) and watermelons (W-), and I’ve planted the forget-me-not seeds we received for free. We also bought sage and rosemary plants, although we’ve been keeping them indoors due to chilly weather.

I have also discovered a rather territorial and ruthless side of me: I won’t tolerate dandelions in the backyard. I know they can be used in salad and tea, and they really are quite pretty, but I won’t have them crowding out my plants (well, my future plants). =)

We watched Prince Caspian today, too. I couldn’t help sobbing during the disastrous castle scene, but the rest of the movie felt great, and Reepicheep stole the show. =) After we watched the movie, we chatted about how the movie differed from the book. (Hehehe… Never miss a learning opportunity!)

Great week!

Plans for next week:

Life is great!

But how do you know what to draw?

May 18, 2008 - Categories: sketches

080519-04.39.02.png

But how do you know what to draw?
You don’t know until you start drawing.

Are you neglecting new employees? Web 2.0 can help you with relational onboarding

May 19, 2008 - Categories: sketches

When you’re new to a company, you can feel quite lonely. Who will you eat lunch with? Who can you ask for help? You can also feel lost. Why are you working there? What can you do to make a difference? Where do you go from here?

This can be hard to remember this several decades after you’ve joined the company and when you’ve developed a wide social network, but people who are starting out might not only feel tremendously isolated, but also not know about opportunities to use their strengths.

Gallup has an article about helping newcomers make friends in order to increase employee engagement and retention. This reminded me of the Human Capital Institute’s webcast and whitepaper on relational onboarding and how social networking accelerates new hires into star performers, which said:

Rather than abandon highly motivated new hires to orientations, hard to navigate intranets, and stacks of dusty manuals, successful organizations help new hires build a strong network of relationships with colleagues who can help transform them into star performers. Building strong relationships from day one makes new hires feel more connected to the workforce, resulting in decreased turnover, shortened time to contribution, greater engagement and job satisfaction. This webcast will examine how HR executives can make the shift from ‘administrative’ onboarding’ to ‘relational onboarding,’ and how Corporate Social Networking technology can help build the network of connections integral to a new hire’s and the company’s success.

Sally Colella and Nancy Wheeler, Human Capital Institute

I’ve been with IBM for seven months, and I want to share this kind of onboarding experience with everyone. As a new hire, I’m learning so many things every day. Writing about what I learn helps me not only understand and remember things better, it also helps me share what I’m learning with other new hires and with other people throughout the company. Isn’t that amazing? I get to create value for other people while I’m learning. Blogs have helped me make friends, ask for help, give help, get plugged in… It’s terrific stuff, and I want to help as many people connect as I can.

That’s one of the reasons why I love working with IBM. I want to help organizations figure out how to use social networking to help bring new people on board, connect passionate people with each other (employees, customer evangelists, whoever!), and join the conversations inside the company and in the world. This is challenging because it’s not just a matter of introducing a blogging platform or putting up a wiki – it requires a lot of thought about the work culture, and yes, even the occasional cheerleading. But this is work I love to do, and if there’s any way you can help me find organizations who want to consult with me and my team, please feel free to e-mail me at sachac@ca.ibm.com. =)

I worked on a little sketch presentation on “Web2.0@Work: In Pursuit of Passion” over the weekend, trying to explain why this is just so cool. I put it up on Slideshare on Saturday, and today it’s the Slideshow of the Day. That probably means lots of people are interested in this topic. =) Are you? Let’s talk about it so that we can figure out how wonderful it can be!

 

Link from myventurepad: Make Friends with Employee Engagement

You have received a painting from Sacha

May 19, 2008 - Categories: sketches

080519-17.20.53.png

The only way to fight the darkness is to blaze even brighter with light

May 19, 2008 - Categories: cat, sketches
080520-02.19.45.png

Thank you for your comforting thoughts.

I was horrified to hear what happened to Ollie. It’s sad that people can do things like that. I cried and cried and cried, and J- and W- put their arms around me and comforted me. There was nothing I could have done to prevent it or to call him back, and there was nothing I could do to prevent that from happening to other animals in the future.

When the initial shock passed, I found myself faced with a decision: I could either let this close me up and discourage me from caring so much that I could get this hurt, or I could defy that and keep myself open. I realized that–at least for me–the only way to fight the darkness within the world and within ourselves is to blaze even brighter with light. The only way to deal with random acts of sickness is with kindness. The only way to deal with hate is to love more fiercely. The only way to face death is to live.

Ollie was a good cat, and I’m glad I had that time with him. You can read about the time my dad rescued this poor drenched little kitten off the street and our daring cat rescue when Ollie decided to go and get lost on the roof. It was more than just the adventures, though. Ollie taught me a lot about the kindness of my parents, Kathy, and the other people at home. That’s what I treasure most about him: that a rather dusty orange cat with an endless appetite for food, the most piteous kitten-like meow (really quite out of place on a tomcat), and a penchant for getting stuck (in the same place! sweet but not very smart – that meow certainly helped persuade us to keep rescuing him), could teach me more about people and love.

I am sad that people can do such things to a cat, but I will not let that eclipse the goodness of other people or the happy stories Ollie was part of. I’m happy I got to know Ollie.

(And I am trying very hard not to run off and adopt another stray cat.)

UPDATE: My mom said that Ollie might have been in an accident; no one knows. But it’s beautiful that a stray and fearful kitten could find in our house something to call home.

Work permit reprieve

May 23, 2008 - Categories: Uncategorized

I was relieved to find out that extending my post-graduate work permit should be straightforward. The Government of Canada had recently extended the post-graduate work permit program from one year to a maximum of three years, although the work permit can’t last longer than the period of studies, so I can renew it for at most another year. It was difficult not being able to look beyond October of this year, and I’m glad that I have a little more leeway now. It’s still probably not going to be enough time to get my permanent residency application completely resolved, but I’ve assembled most of the paperwork and I’m just waiting for two more pieces. Yes, I’ve been remiss, but I’ve been focusing on other things. =) All in good time…

Getting through the plateau of mediocrity; Picking up the idioms

May 25, 2008 - Categories: career

This week, I discovered–rediscovered?–something I love about programming and broke through something that had been frustrating me for a while.

The energy I get from sharing what I know with people–giving presentations, writing articles, talking to people in small groups and one on one–coupled with a slight imposter syndrome–difficult to avoid when working with such experienced people!–had left me wondering if developing software was still in my future. I’ve been good at it before, but I was wondering if it was the kind of competence that had taken me far but which could keep me from doing something that would bring in even more of my passions.

One of the things I loved about programming was working with people directly. When I maintained an open source personal information manager named Planner, I enjoyed helping people who were passionate about becoming more productive. I wasn’t sure if I could get that kind of experience in commercial software development, where there might be layers of analysis and design between me and actual users, and where we typically work on larger projects than the highly personalized customizations I helped other Planner users make. In the seven months I’d been with the company, I hadn’t really been on any projects that made me feel good about programming.

I was feeling pretty blah about coding. I could do it, but I wasn’t feeling that spark. I figured that it might be just be the relationship of skill to joy. I remember coming across something like this graph when I was reading about the role of deliberate practice in developing expertise.

When you start learning something, you enjoy it because you’re learning a lot. Then you hit the plateau of mediocrity. No matter how much you practice, it seems as if you’re making very slow progress. This lasts until you become good enough to stop thinking about doing things and start enjoying yourself while you do them. Deliberate practice gets you through that plateau of mediocrity. It’s not very fun, but if you can trudge through that plateau, you can break through to new heights.

Actually, the skill/joy curve looks more like this:

… because there’s always more to discover. (And that’s a good thing!)

Researchers found that this holds true whether you’re talking about tennis, chess, music, or anything else in life. I was feeling it with my work. I’d gotten good enough at presenting to have fun doing it (although it still makes me nervous), but I was stuck in the plateau of mediocrity when it came to programming. I was frustrated because I couldn’t get a sense of my progress.

But this week, I immersed myself in Drupal code, learning enough of it to rewrite some code to follow the Drupal way of doing things–and I felt a shift in the way I wrote the code. I love picking up the idioms of a language or a programming platform, just as I enjoyed learning enough Japanese to understand the juggling unicyclists at Ueno Park. There’s something magical about feeling your brain start flowing along different paths. Picking up programmatic idioms, learning more about other people’s code and ways of thinking–that’s what turns the isolated activity of programming into a social activity for me. I’m not just writing code. I’m listening to and talking with the other programmers who had touched that code before. I’m learning the lingo. I’m grokking it.

I’m looking forward to doing more work in this area. I’m still very far from a Drupal whiz (that’s probably a number of other joy/skill cycles away), but it’ll be fun getting there. =)

Weekly review: Week ending May 25, 2008

May 25, 2008 - Categories: weekly

Next week, I have more Drupal and translation server work, and I have three presentations I need to put together for work:

I also plan to:

=)

Book: Success Built to Last

May 25, 2008 - Categories: book

In Success Built to Last (Jerry Porras, Stewart Emery, and Mark Thompson), you’ll learn that passion is essential to lasting success, and that both preoccupation and pain can point you towards what you’re passionate about. Here are a few quotes I liked:

What we consider to be painful offers a window to our soul — to see uniquely who we are and what we must do. Do you love to play music and at the same time find it disturbingly painful to hear a flat note on that CD, or hate to live without music for a whole day? Let’s forget for a moment that friends and relatives think it’s foolish or even dangerous for you to choose music as your next profession. Do you love to write poetry and find it torturous to read a bad sentence? When I say painful, I don’t mean annoying–I mean, does it torment you, keep you awake at night, or get you up in the morning? (p.156)

I have many passions that trigger that in me, and over time I’ll learn how they all blend together. It’s painful to listen or watch people communicating ineffectively, and this drives me to learn more about presentation skills and other ways to reach out. It’s painful when I hear someone make excuses for not learning something (no time, etc.), so I make an effort to understand the root causes and see if I can help people over any humps. It’s painful to know that I want to communicate something but I’m not doing it well, so I get out there and keep trying. It’s painful to watch other people get buried in money worries, so I enjoy balancing my books and looking for more ways to be frugal. It’s painful to do things that a computer really should take care of, so I program little tools that can automate some of my work. It’s painful to watch people have humdrum days at work, so I try to bring more of myself to the work that I do. It’s painful to consider resigning myself to a less than full life, so I find as much joy as I can.

The point is that you know that you are on the right track when you naturally obsess over what you love like a geek, as in being a person who is single-minded in pursuit, at the risk of being socially insensitive while so engaged. It attracts you even when you’re too tired to do anything else.  It seduces you to the point where you lose interest in everything else, to the extent that you become socially inept around people who couldn’t care less about whatever it is. (p.40)

<grin> Hey, I’ve been geeking out since I was a kid. W- is like that too, so we’re working out how to signal each other when we’re in our single-minded focus modes.

What are you passionate about?

If you can’t name anything, you might want to contemplate this quote:

"And if you say, I don’t have anything I love, well then there’s a real problem right there, and you have to sit down and say, ‘Why don’t I have anything that I love?’  What in me has walked away from every inclination that I had, that I had found something, something that sparked me, something that was for me, and I didn’t do it.  You have to go back,   you know, just recount every moment of your life, what was it, what was that one thing that I did that I loved?" said [Sally] Field, [a director and actress].

My dad taught me how wonderful following your passion can be. I hope you discover that joy too. =) Me, I’m discovering it step by step – and the journey is awesome.

Success Built to Last: Creating a Life that Matters
by Jerry Porras, Stewart Emery, Mark Thompson

Read more about this book…

Thinking out loud: Taking it off/online

May 25, 2008 - Categories: connecting, web2.0

Do you want to get more people you know to read your blog, connect to you on social networks, and interact with you online? Do you want to build stronger, deeper relationships with your online contacts, maybe even interacting offline? Here are some quick tips on how you can use your online network to strengthen your offline one and the other way around.

To go from offline contacts to online contacts, build value:

1. If you want people you know to connect with you online, make sure people can find you. Create a personal website that has your bio, some contact information, and links to more information on the Net. Put your website address on your business card and in your e-mail signature, and mention it when appropriate.

2. To get people to visit your website or read your blog, give them something they’ll find immediately useful. For example, if the coworker encounters a problem that you’ve solved before and blogged about, give your coworker the URL of that blog post and he or she will almost certainly check it out. If you’ve given your elevator pitch to people and they’re convinced that you’re the person who can solve their problem, they’ll check out your website too. Make it easy for people to find the information they’ll find immediately useful.

3. To get people to keep coming back, provide continuing value. If you follow the advice in step 2, you’ll end up accumulating a lot of useful information that can show people that you’re worth subscribing to. Make it easy for people to browse through your website and figure out if they want to subscribe to you or connect with you. If you want to connect with people on social networks, don’t think of it as a one-time connection, but treat it as an opportunity to develop an ongoing relationship.

To go from online contacts to offline contacts, build trust:

1. Teach people about your competencies. This is probably the easiest one to start with. Sharing tips and experiences shows people what you’re good at, and they can start to trust you in those areas.

2. Show people your character. If you go beyond just giving facts and start telling stories, you can form more of a personal bond with people. This helps them trust you as a person, because they get to know your character.

3. Be yourself. It’s a lot easier to go from online contacts to offline contacts if people know your real name. A picture and a biography helps, too. =)

Hmm, will think about this more. There’s something in here that might be useful… =)

New blog design

May 25, 2008 - Categories: blogging, wordpress

Well, it’s still really the Networker-10 theme underneath, but I’ve stripped away a lot of the CSS that made my site look heavy, moved things around, added some quick links along the top, and finally got around to making sure wp-cache worked. The site should be nice and zippy again. Check it out at sachachua.com!

Relentless improvement and a focus on the positive

May 26, 2008 - Categories: kaizen, management

W- asked me the other day, "Does everything need to be positive with you?" I thought about it for a bit, and I realized that yes, I firmly believe in the power of focusing on what’s positive and what’s actionable in order to grow. (So much so that I translate what other people tell me!) I think that focusing on the positive helps you build people up instead of tearing them down. I love Sam Decker’s description of one of Bazaarvoice’s workplace practices:

Quarterly performance feedback (our "3/3/1" process), including "upward" feedback for the managers from their staff – to help all of our employees rapidly grow and reduce the anxiety in our organization (everyone always knows where they stand); I have been told by many of our employees and managers that they have learned more at Bazaarvoice than anywhere else they have worked.  Our feedback is balanced (the 3/3/1 is a simple email form to document the 3 things you did well that quarter, the 3 things you could have done better, and the 1 initiative you are going to focus on as a result).  The upward feedback from staff illuminates blind-spots on our management team, many of which have never been discussed with them in previous companies because the feedback process was too poor to generate intensely constructive dialogue.

Sam Decker, myventurepad: Total Leadership and Bazaarvoice’s Amazing Culture

3/3/1. The three things you did well, the three things you could have done better, and the one initiative that you’re going to focus on as a result. Relentless improvement that gives you energy and opportunities to celebrate what you’re doing well and envision where you want to go. Good stuff.

WordCamp Philippines: September 6, 2008 in Manila

May 26, 2008 - Categories: conference

From my WordPress dashboard: WordCamp Philippines is On. Unfortunately, I won’t be in town for it. =( Glad people are doing it, though! =D

Some thoughts on reading

May 26, 2008 - Categories: book, reading

Ben Casnocha’s blog post about how to find new books to read (sparked by a blog post by Tyler Cowen on the same topic) made me think about how I pick books to read. I tend to go through six or seven books a week, squeezing pages out of subway moments, quiet evenings and weekend afternoons, and even the occasional lunchtime read. A branch of the Toronto Public Library is just a few blocks away from the house, making it a pleasant walk now that days are long and nights are warm.

I enjoy pulling random books off library shelves, stepping out of the genres I typically read. For example, here are the results of today’s library raid:

Life: The Odds: And How to Improve Them
by Gregory Baer

I picked this up because a quick browse showed that the book managed to make numbers and statistics interesting, which is a skill I’m sure to find useful.

Read more about this book…

Drawing Comics is Easy! (Except When It’s Hard)
by Alexa Kitchen

I was curious about drawing. When I opened the book, I was won over by this:

Publisher’s note and author’s disclaimer:
The contents of this book were created in a short burst when Alexa was 7 years old. As this book goes to press she is all of 8 years old and, as a writer and artist, is now a quantum leap ahead of these early efforts. The publisher believes this book is worthly of publication or he would not have mortgaged his home and Shmoo collection to finance the 6-figure initial print run and national publicity campaign. However, the author wishes it to be known, for the record, that Drawing Comics is Easy! is "not very good" and "full of mistakes," and wishes to emphasize that her "next book will be much better."

Published by DKP, P.O.Box 2250, Amherst MA 01004-225. DKP is an acronym which the designer likes because it fits the spine dimensions much better, though at the same time, of course it also conveniently disguises the actual name of the company: Denis Kitchen Publishing Co., LLC. Thus, if you’ve been persistent enough to read this far on the indicia page fine print (which nobody does) you realize that–yes–this book has been published by Alexa’s own father’s publishing company. However suspicious, unseemly or opportunistic that disclosure may seem to some, the publisher wants it known that Alexa’s literary agent made this choice of companies objectively and at arm’s length after no doubt weighing attractive offers from Pantheon, Norton, Knopf and other competing publishers. Thus any familial connection is strictly coincidental.

Drawing Comics is Easy!

I had to bring it home and blog about it. =)

Read more about this book…

Howl’s Moving Castle
by Diana Wynne Jones

I watched this in Japan… in Japanese… which didn’t help my comprehension much… so I figured I’d read it again to see if I could reinterpret my befuddled memories. Also, I like raiding the children’s lit section. =)

Read more about this book…

 

I always appreciate recommendations from other people. I love finding other bookworms, and I love the way our shared books give us conversational shorthand. I love finding out what other people are interested in, and books are a great way to do that. Of course, I’m thrilled whenever I can return the favor by prescribing some of my favorite books for whatever situation I come across. =)

When I was a kid, my parents used to let me pass the time in bookstores while they took care of other things. As a result, I’ve gotten pretty good at skimming through books while standing or walking around, and I’ve gotten pretty shameless about pulling ten to fifteen books off the shelf and scanning through them quickly to see if any of them are good. I usually find two or three to buy, so I guess it works out for the bookstore.

I tend to go on reading spurts, reading everything I can find in the library about a particular subject. The Toronto Public Library allows me to place holds on up to fifty items, and I often run into that limit. I use my Amazon wishlist to store other books I’m interested in–books that didn’t fit in the 50-book limit, books that haven’t been acquired by the library, and so on. One of these days, I’m going to get Amazon/Toronto Public Library integration working again. =)

When I read a book, I mark interesting segments by tucking scraps of paper between the pages. I used to dogear pages and I still occasionally do so, but I feel guilty about doing that to library books. I’m horrified by the way that other people actually scribble in library books. Augh. Anyway, after I finish the book, I encode my notes in an outlined text file, along with the page numbers. I’ve gotten my Dragon Naturally Speaking to the point where I actually enjoy dictating things to it, which is much better than typing because (a) I don’t have to lift my hands from the book, (b) I can trace lines with my finger so that I don’t get lost, and (c) I get to experience the words in another medium. Good stuff.

Every so often, I review my book notes and think about how I’ve applied the ideas, how I might apply the ideas, how the ideas relate to other things I know, and who might be able to use those ideas as well. That’s where the outline comes in handy. I can skim the outline to see which book I’d like to think about, or I can search it for keywords to find a useful quote, or I can even jump to a random spot. I’ve copied the text file to my Nintendo DS (yes, you can read text files on it), so I can even read on the go. (Next step: make an application specifically for reviewing my book notes? =) )

I’ve gotten so many benefits from my insatiable appetite for books. Richer conversations, interesting connections, improved communication skills, and an abundance of material to share… I love reading, and I hope lots of people discover the joys of reading too!

Dealing with stage fright

May 28, 2008 - Categories: presentation, speaking

I had a lot of fun presenting at yesterday’s conference. Reflecting on it, I realized that my presentations are strongly influenced by what people bring to the session. The passion that people like about my presentations comes from the energy that people share with me when they listen and when they share. The insights they walk away with come from other people like them as well as from the people and experiences and thoughts I bring in through my presentation. I’m just there to prepare the stage and spark the conversation. =) Here are some quick tips for energizing presentations and some reflections based on the presentation I gave today.

1. Chat with people before the presentation starts so that you can make personal connections and find out what people are interested in.

2. Always treat it as a dialogue.

3. Turn your presentation into a conversation and learn something new from your audience.

Stage fright – everybody has it

I had one hour left before my presentation at the IBM Regional Technical Exchange in Markham. I couldn’t shake off my anxiety. The words felt heavy in my mouth, and my voice felt strained. The new stories I wanted to add didn’t quite blend in with everything else. My phrasing was off. My energy was off, too–I was having a hard time making the shift from the morning’s introverted-programming mode to the high-energy presentation mode I needed for the afternoon.

I headed over to the refreshments table to make myself a cup of mint tea, snagging a couple of chocolate-macadamia cookies along the way. I was savoring the chewy chocolate cookie when another IBMer walked up to me. She asked if I was anxious about my upcoming talk, and she said that she could never eat when she was nervous. I told her that a couple of cookies are remarkably effective at reducing stress. After my headless chicken impression at the IBM Web 2.0 Summit, I went so far as to pour milk into a glass and dunk cookies into it. (That worked. It’s important to know what works for you.) We chatted briefly about the talk and about some other matters, and she wished me luck on the presentation. I felt my mood start to lift.

By the time I finished my tea and munched through the second cookie, I was ready to set up the room. I plugged in my power supply, fiddled with the video settings, and tested the color scheme (no reds) and all the slides (legible). These little routines help me get into presentation mode.

(Yes, everyone gets stage fright. I think mine comes from the idea that so many people are trusting me with their time! Mine goes away when I start sharing my energy with people and people give it right back (in a good way). Neither my level of preparation nor the aesthetics of my slides matter, although having slides that make me happy helps. Nope, my stage fright depends on whether people in the audience are getting a good deal for their time. =) )

Chat with people

One of the key things that helped me tap presentation energy was chatting with the people waiting for the presentation to start. I really appreciated how people came up to me and wished me luck, or let me engage them in conversation–that helped me calm my stage fright. I made sure to ask a number of people throughout the room what they were interested in. I figured that if I could make those people happy, then I’d probably stand a good chance of making most people in the room happy. If people were interested in the session, then by golly, I was interested in it too! Hearing what a few people were interested in allowed me to see the hundred-something people as individuals and to talk about things in a way that felt (to me, at least) as if I was having a regular conversation (in which I’d feel comfortable making all these side comments). Establishing that initial contact with people throughout the room helped me remember to make eye contact and to talk about different perspectives. After all, you can’t talk to only the front row after you’ve met some people in the back row who are curious about what you want to say. And did I mention that talking to people helped me handle my stage fright?

So the next time you give a presentation, get your setup time out of the way, and spend the rest of the time talking to people who have made an effort to be there early. They’ll give you plenty of ideas, encouragement, and energy, and if you can engage them, you can spread that energy to other people.

Always treat it as a dialogue

Interaction is what makes an real-time presentation different from a recording. The presentation starts off with the energy you bring and the curiosity that people in the audience bring, and it takes shape as people interact with it. When people take the time to attend your presentation in person, give back to them by involving them in it. When you have the ability to see people’s reactions or even engage them in conversation, listen to those people throughout your presentation. You are always in a dialogue, even if you’re doing most of the talking.

How do you do this? You can use the same skills and instincts you use when talking to people one on one. You know how you can tell when someone’s interested or someone’s losing focus, even if they aren’t saying anything? If you focus on presenting to one person at a time, you can listen and adapt just as instinctively, and you’ll talk more naturally too. Just remember that there are lots of other people in the room, so talk to them too. If you’re facing a big audience and you can’t see people, you’ll have to imagine them. Talk to people before your presentation so that you can go into your presentation with a sense of real people in the audience.

Turn your presentation into a conversation

Another thing that makes me excited about presentations is that I know I’m going to learn something new. I love including a lot of discussion in my presentations, and I’m always amazed by what people share. For example, terrific issues and insights came from the audience today. (I’ve got to retell some of those stories!) So I’m not an expert passing on knowledge, but rather as a facilitator who sets the stage and gets the conversation going. When I give larger, less interactive presentations (like that blue horizon 2008 keynote to around seven hundred people!), I like thinking about the internal dialogue people are having with me, even if they can’t raise their hands and share what they’re thinking with everyone else.

Next time you plan a presentation, try adding more dialogue. You need energy and openness in the room to get this going. People need to want to add something, see that they have something to add, and feel that you’re open to it (and you’ll manage the time and the rest of the discussion as necessary). It really helps to have some friendly faces who will take pity on you and jumpstart the conversation if needed. =) Have some backup questions based on what other people might ask you, and feel free to ask the audience questions as well. Most speakers are unnerved by silence (trust me, three seconds of quiet feels like an awfully long time!), but you need to give people time to understand what you’ve said and to think about what they want to say. A teaching tip I picked up before is to count to seven (silently) instead of moving on after just a few seconds. That seven-second gap helps people shift from listening mode to interacting mode, and if you can get people to share, your presentation will really sparkle.

So here are those quick tips again:

1. Chat with people before the presentation starts so that you can make personal connections and find out what people are interested in.

2. You’re always in a dialogue. Listen.

3. Turn your presentation into a conversation and learn something new from your audience.

And don’t forget to have fun! =)

Trying to get a good head shot

May 28, 2008 - Categories: connecting, photography

Tim Sanders blogged about the importance of having at least one really good picture. It’s true: a good head shot adds a dash of personality to blogs, slide decks, corporate directory profiles, and everything else that forms part of your personal brand. If you don’t have a picture on your blog yet, think about adding one! Besides, photos tell stories. =) Here’s the story behind my current profile pic:

Last January, a colleague asked me for a high-resolution head-shot that would be included (along with something I said) in one of their annual reports. I no longer had the high-resolution version of the profile picture I was using at the time. Besides, I’d taken that picture myself in 2005 using a point-and-shoot camera and my desk lamp (you can see the ceiling of my dorm room at Graduate House!), and it was definitely time for a change. But where was I going to find a low-cost photographer on a Friday evening?

Right next to me, apparently. I asked W- to take my picture. It was a good opportunity to try the 50mm lens he got me for Christmas. We’d both read plenty of photography books, so we knew that we needed a plain white wall near a window with good light. The only suitable one was the wall directly across the bathroom, so W- set up the tripod across the threshold and I quickly put on some foundation and tucked my hair into a bun.

The window light was coming from my right, and the shadows were a little too dark. I tried turning this way and that, but I couldn’t turn too far towards the light because my face would then be at the wrong angle. The tripod was stuck in the doorway and we couldn’t move it further. Hmm…

Fortunately, reading books on photography and blogs like Strobist gave us the confidence to try a little lighting. W- had splurged on an external flash unit, though, and we put that to good use. J- got conscripted into holding the large white sheet of paper that was our reflector, and we bounced the light off that in order to fill in the shadows. W- also fiddled with the manual-focus lens until he felt that things were reasonably in focus. (Apparently, it’s hard to get the eyes sharp when the subject’s giggling too much because of the art direction and the assistant’s antics.)

Naturally, J- wanted her picture taken too. (I remember some particularly good zombie-J pictures from this session.)

I was still breaking out in lots of pimples at the time, so I edited the most promising picture in Gimp in order to tone down the distracting bits. I didn’t think I could do anything about my teeth (short of braces–tried them, couldn’t stand them), so I left those alone. Anyway, I ended up with a profile picture that made me happy and taught all of us a little more about playing with light.

My picture’s nowhere near as awesome as my mom’s, but that’s because my dad’s a professional photographer. I’d love to practice taking portraits of friends, and once we either have that yard sale or put all the extra stuff away, maybe I can have people over again… =)

Two presentation stories for today: Oooh, shiny; Reaching the back row

May 29, 2008 - Categories: passion, presentation, speaking

Today, I talked to about eighty to a hundred people during my TechConnect keynote in the IBM Toronto Lab Amphitheatre. My presentation was about The Top 10 Web 2.0 Tools You Should Try. I enjoyed customizing it for the audience (IBM Toronto Lab folks – research and development) as well as for the challenging timeslot (30 minutes for 10 tools!). I owe a lot to the Lab, and I was glad to have the opportunity to give back. =) I also had the pleasure of turning the stage over to Abe Batthish for his talk on the Web 2.0 Technology Interest Community, and I had fun listening to him as well.

Here are a couple of stories from the presentation.

Oooh, shiny

With only thirty minutes on the clock, the presentation was going to be fast-paced, and I had to have some way to keep track of what slide I was on. I considered standing near my laptop, but I nixed that because I’d have an even tougher time connecting with people behind such a massive podium. I didn’t want to constantly look behind and up at the two projected screens a few feet above my head. Running through the slides in my head, I walked to the center of the stage. As my eyes drifted upwards, I caught a glimpse of something shiny.

Oooh, shiny.

The control room at the back of the amphitheatre was separated from the auditorium by a large one-way mirror, which was reflecting all that light. The mirror was just the correct angle for me to see it–and was that a backwards image of my slides?

I hadn’t noticed that the last time I gave a speech in the same amphitheatre. Nifty.

Thanks to a childhood spent reading everything and everywhere I could, I had picked up the ability to quickly read backwards. My slides were easy to distinguish even when flipped horizontally. I grinned and returned to my seat in the audience, looking forward to giving my totally small-scale "confidence monitor" a try.

After Julie Waterhouse introduced me, I launched into a whirlwind tour of the top 10 Web 2.0 tools the audience should try. I found it easy to make eye contact while avoiding the microphone feedback zones and occasionally glancing at the reflection to make sure I was flipping to the right page. It was like my keynote segment to 700 people using the Hilton Toronto’s snazzy audio/visual setup. No, this amphitheatre was better. The Hilton’s LCD panel had been in the lower left corner of my vision, and I had caught myself glancing to the side to see it. Here, the mirror was in the center of the back wall of the amphitheatre, slightly above the audience’s heads, and visible anywhere I looked.

Now I’m wondering how I can set up a mirror like that in less-equipped rooms. A full-length mirror wouldn’t be portable, but maybe a small mirror set up at the appropriate distance would work. I’m not talking about a double-mirror clamped to the podium, though–I really don’t like standing behind podiums! Maybe a convex mirror like those car rear-view mirrors? Will the image be too distorted? Maybe I can make a totally small-scale confidence monitor. Hmm…

Reaching the Back Row

I wasn’t quite sure if I had effectively reached people today. I felt that I was cramming too many words into too short a time. (If I’m going to do this again in 30 minutes, I’ll probably focus on just 5 tools!) I made a few jokes, got a few chuckles, got plenty of nods of recognitions at the problems and pain points I described… but I didn’t have time to turn it into the kind of open, interactive presentation I love. When I gave a similar presentation at another conference, the other tools that people shared during the discussion gave me plenty of material for follow-up posts. Due to today’s time constraints, I didn’t get to open it up, so I ended up doing all the talking. (Pity! I would’ve loved to find out what was on people’s shortlists of tools.)

But people enjoyed it, and I think I convinced a few people to give some of those tools a try. =) I wish I could’ve stayed for the networking events, but I needed to hitch a ride back home for some other stuff. When I got home and reconnected to the intranet, I noticed that a manager had left a comment on my presentation. He mentioned that he had sat in the back row and that he really enjoyed my presentation and my contagious enthusiasm. If I can reach someone in the back row with my passion, I must be doing something right! =)

Teaching passion

May 30, 2008 - Categories: passion, teaching

Ideally, teachers would focus on one single thing: getting their students really, deeply excited about the subject of the course. Everything else, the students can do on their own.

Peter Turney, Apperceptual: Genius, Sustained Effort, and Passion (blog post)
Link from Michael Nielsen

Here’s another of my favorite quotes:

If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.

Antoine de Saint-Exupery

=)

Emacs Gnus: Searching Mail

May 31, 2008 - Categories: emacs, wickedcoolemacs

There are several ways to find messages in Emacs. From the summary
buffer, you can use / o (gnus-summary-insert-old-articles) to display
all or some old messages. You can then scan through the headers in the
summary buffer by using C-s (isearch-forward), or you can limit the
displayed messages with these commands:

Messages from a given author / a gnus-summary-limit-to-author
Messages whose subjects matching a given regular expression / / gnus-summary-limit-to-subject
Messages that match a given extra header / x gnus-summary-limit-to-extra-headers
Messages at least N days old / t gnus-summary-limit-to-age

Limits work on the messages that are currently displayed, so you can
apply multiple limits. If you make a mistake, use / w
(gnus-summary-pop-limit) to remove the previous limit. You can repeat
/ w (gnus-summary-pop-limit) until satisfied. To remove all the
limits, type C-u / w (gnus-summary-popl-limit).

If you specify a prefix, the limit’s meaning is reversed. For
example, C-u / a (gnus-summary-limit-to-author) will remove the
messages from the matching author or authors.

You can use Gnus to search the currently-displayed messages by using
M-s (gnus-summary-search-article-forward) and M-r
(gnus-summary-search-article-backward).

If you want to search a lot of mail, you’ll find NNIR handy. NNIR is a
front-end to mail search engines which can index your mail and return
search results quickly. If you want to use NNIR with a local or remote
IMAP server, you will need to use nnir.el and imap.el. If you download
your mail using fetchmail or connect to a POP3 server and use an nnml
backend, you can use NNIR with a search engine such as swish-e to
search your ~/Mail directory efficiently.

1.6.7.1 Setting up IMAP and NNIR

If you use IMAP, then your mail is stored on the mail server and
you’ll need to use the IMAP search interface to search through
it. Download nnir.el from
http://www.emacswiki.org/cgi-bin/wiki/download/nnir.el and save it to
your ~/elisp directory. You will also need an imap.el that is newer
than the one that comes with Emacs 22. Download imap.el from
http://www.emacswiki.org/cgi-bin/wiki/download/imap.el and save it to
your ~/elisp directory as well. Because Gnus comes with an older
version of imap.el, you will need to make sure that the new version of
imap.el is loaded. Add the following to your ~/.gnus:

(add-to-list 'load-path "~/elisp")
(load-file "~/elisp/imap.el")
(require 'nnir)

Restart your Emacs. You can check if the correct version of imap.el
has been loaded by typing M-x locate-library and specifying
imap.el. If Emacs reports “~/elisp/imap.el”, then Gnus is configured
to use the updated imap.el.

1.6.7.2 Setting up POP3 and NNIR

If you use the configuration for POP3 that is suggested in this
chapter, then your mail is stored in the nnml backend, which uses one
file per message. To search this using NNIR, to install nnir.el and an
external search mail engine. The Namazu search engine runs on Linux,
UNIX, and Microsoft Windows, so that’s what we’ll talk about here. To
find and configure other mail search engines supported by NNIR, check
out the comments in nnir.el.

First, you’ll need to download and install Namazu. If Namazu is
available as a package for your distribution, install it that way, as
it depends on a number of other programs. An installer for Microsoft
Windows can be found at http://www.namazu.org/windows/ . If you need
to build Namazu from source, you can get the source code and instructions
from http://www.namazu.org .

After you’ve installed Namazu, create a directory for Namazu’s index
files, such as ~/.namazu-mail. Then index your mail by typing this at
the command-line:

mknmz --mailnews -O ~/.namazu-mail ~/Mail

and add the following to your ~/.gnus:

(add-to-list 'load-path "~/elisp")
(require 'nnir)
(setq nnir-search-engine 'namazu)
(setq nnir-namazu-index-directory (expand-file-name "~/.namazu-mail"))
(setq nnir-namazu-remove-prefix (expand-file-name "~/Mail"))
(setq nnir-mail-backend gnus-select-method)
1.6.7.3 Searching your mail with NNIR

From the group buffer displayed by M-x gnus, you can type G G
(gnus-group-make-nnir-group) to search your mail for a keyword.

If you’re using the Namazu search engine, then you can use more
sophisticated search queries such as:

Linux Emacs messages that contain both “Linux” and “Emacs”
Linux or Emacs messages that contain either “Linux” or “Emacs”
Emacs not Linux messages that contain “Emacs” but not “Linux”
Emacs and (Linux or Windows) messages that contain “Emacs” and either “Linux” or “Windows”
“apple pie” messages that contain the phrase “apple pie”
{apple pie} messages that contain the phrase “apple pie”
+from:example@example.com messages with example@example.com in the From: header
+subject:”apple pie” messages with the phrase “apple pie” in the Subject: header
+subject:apple +subject:pie messages whose Subject: headers contain both “apple” and “pie”

If
matching messages are found, then you will see a temporary group with
the results. Although you can’t delete messages from this view,
reading and replying to these messages is the same as reading and
replying to regular messages.

To see a message in its original context, type G T
(gnus-summary-nnir-goto-thread) from the summary buffer. This opens
the message’s original group. If Gnus asks you how many articles to
load, press RET to accept the default of all the articles.


This is a draft for the Wicked Cool Emacs book I’m working on. =) Hope it helps!

Too much time on her hands

May 31, 2008 - Categories: life

“Where do you find the time to do that?” That’s what I often hear from people when I talk about blogging, social networking, or anything outside their current habits. I’ve also heard this as “I don’t have the time to even learn about that,” or even “In order to follow that advice, you have to have a REALLY good job where you don’t have to do any real work.” They’re all variations on the “Too much spare time on his hands” put-down dissected by Cory Doctorow in his excellent blog post.

Too much time on my hands. I’ve heard that a lot. People use it as a convenient excuse to dismiss what I’m saying, to not take action, to not think about what they’re currently doing and what they can do better. And that’s okay–as long as they’re being intellectually honest about their excuse.

When I handle this question at my presentations, I usually show that all the activities I talk about can be salami-sliced into things that people are already doing. Spent two hours searching for how to solve a problem? Spend another two or three minutes posting the solution on your blog so that you can remember it and so that you can teach others. Reviewing the previous week and planning the next one? Blog about it as a way of sharing your progress.

People who understand the principle of relentless improvement (kaizen) and are interested in something will almost automatically find those slices. People who want to learn something but who don’t know how to get started will find those slice suggestions useful. People who think it’s a waste of time will shake their heads and say things like “She has too much time on her hands.”

Clay Shirky made an excellent point about spare time and what people choose to do with them. Here’s an excerpt from one of his presentations about Wikipedia and cognitive surplus:

[The television producer] heard this story [about Wikipedia] and she shook her head and said, “Where do people find the time?” That was her question. And I just kind of snapped. And I said, “No one who works in TV gets to ask that question. You know where the time comes from. It comes from the cognitive surplus you’ve been masking for 50 years.”

Clay Shirky, Gin, Television, and Social Surplus

Too much spare time on my hands? =) We all have moments when we don’t have to do anything. People can spend that time watching television or indulging vices, or people can do something that helps them and helps other people. As long as people are happy with the way they spend their time and the consequences of their choices, then they’re fine. But if they use “I don’t have the time for that” as an excuse to avoid thinking about how they spend their time, then that’s their decision.

It’s not about having time. It’s about choosing how to spend time. I’m still learning how to do so, and I think I’ll always need to learn more and more about the best use of my time. But I’m pretty happy with the way I spend time – there’s always more to do, but I’m pretty good at doing good things. When I hear other people say, “She has too much time on her hands”, I hear it as less of a statement about me and more of a statement about them.

How about you? How do you feel about time?

Emacs Gnus: Organize Your Mail

May 31, 2008 - Categories: emacs, wickedcoolemacs

People handle large volumes of mail in different ways. Keeping
everything in one mailbox can quickly become unmanageable because
messages you need to read get lost among messages you don’t need to
read.

You can move mail manually by selecting them in the summary buffer and
typing B m (gnus-summary-move-article). Then type the name of the
group to which you would like to move the message. The group will be
created if it doesn’t exist.

To move multiple messages, mark them with #
(gnus-summary-mark-as-processable) and then type B m
(gnus-summary-move-article). To unmark a message, type M-#
(gnus-summary-unmark-as-processable). To unmark all messages, type M P
U (gnus-summary-unmark-all-processable).

Automatically filing mail

Moving messages by hand is tedious and time-consuming. One way to deal
with this is to set up rules that automatically file mail into
different groups (or folders, as they’re called in other mail
clients). Gnus calls this “splitting” mail, and you can split mail on
IMAP servers as well as mail downloaded from POP3 servers to your
computer.

For example, if you’re using Gnus to read mail from an IMAP server,
you can split your messages by adding this to your ~/.gnus:

 (setq nnimap-split-inbox "INBOX") ;; (1)
 (setq nnimap-split-predicate "UNDELETED") ;; (2)
 (setq nnimap-split-rule
       '(
         ("INBOX.emacs" "^Subject:.*emacs")
         ("INBOX.work" "^To:.*you@work.example.com")    
         ("INBOX.personal" "^To:.*you@personal.example.com")    
         ("INBOX.errors" "^From:.*\\(mailer.daemon\\|postmaster\\)")   
        )) 

If you use a different inbox, change the value of
nnimap-split-inbox(1). Any messages in the inbox will be split
according to nnimap-split-rule(2), which is a list where each element
is a list containing the group’s name and a regular expression
matching the header of messages that should be filed in the group. In
this example, Gnus will move mail with subjects containing the word
“emacs” to INBOX.emacs, mail directed to you@work.example.com to the
INBOX.work group, mail directed to you@personal.example.com to the
INBOX.personal group, and mail error messages to INBOX.errors. All
other messages will be stored in INBOX.

If you’re downloading your mail from a POP3 server and storing it in
nnml, add this to your ~/.gnus instead:

 (setq nnmail-split-methods
      '(
        ("mail.emacs" "^Subject:.*emacs")
        ("mail.work" "^To:.*you@work.example.com")    
        ("mail.personal" "^To:.*you@personal.example.com")    
        ("mail.errors" "^From:.*\\(mailer.daemon\\|postmaster\\)")   
       )) 

All other messages will be stored in mail.misc.

Start M-x gnus again, and your mail will be split into the different
groups.

Where are my groups?

If you don’t see your new groups in the group buffer displayed by M-x
gnus, type A A (gnus-group-list-active) to see all the groups. Go to
the group that you would like to add to the group buffer, then type u
(gnus-group-unsubscribe-current-group) to toggle its subscription. In
this example, INBOX.automated is not subscribed to, but INBOX is.

 U    13: INBOX.automated 
      76: INBOX 

When you type M-x gnus again, you’ll see your subscribed groups if
they have unread messages.

nnimap-split-rule and nnmail-split-methods allow you to filter
interesting or uninteresting mail into different groups based on their
headers. Gnus comes with an even more powerful mail splitting engine.
In fact, Gnus comes with “fancy mail splitting.”

Fancy mail splitting

With fancy mail splitting and some configuration, you can split mail
based on a combination of criteria. You can even manually file a
message and have Gnus automatically file incoming replies in the same
group.

To configure an IMAP connection to use fancy mail splitting, add the
following to your ~/.gnus:

 (setq nnimap-split-inbox "INBOX")
 (setq nnimap-split-predicate "UNDELETED")
 (setq nnmail-split-fancy ;; (1)
       '(|                                ;; (2)
         (: gnus-registry-split-fancy-with-parent) ;; (3)
         ;; splitting rules go here       ;; (4)
         "INBOX"                          ;; (5)
        ))
 (setq nnimap-split-rule 'nnmail-split-fancy)
 (setq nnmail-split-methods 'nnimap-split-fancy) ;; (6)
 (gnus-registry-initialize) ;; (7)

This configures IMAP to use the nnmail-split-fancy function to
determine the group for messages. Note that we’re setting the
nnmail-split-fancy variable here. If you want to process your IMAP
mail separately from your other mail, you can set the
nnimap-split-fancy variable instead. If so, also set nnimap-split-rule
to ‘nnimap-split-fancy. Using nnmail-split-fancy here makes the other
examples easier to understand, though.

The nnmail-split-fancy variable controls the splitting behavior(1). The
“|” symbol means that that the first matching rule is used(2). For
example, if the message being processed is a reply to a message that
Gnus knows about, then the gnus-registry-split-fancy-with-parent
function will return the name of the group, and nnmail-split-fancy
will file the message there(3). You can add other splitting rules as
well(4). If messages don’t match any of these rules, the last rule
specifies that the messages will be filed in INBOX(5). Set
nnmail-split-methods to nnimap-split-fancy as well in order to work
around some assumptions in other parts of the code(6). After that,
initialize the Gnus registry(7), which is responsible for tracking
moved and deleted messages. This allows you to automatically split
replies into the same folders as the original messages.

To configure fancy mail splitting with an nnml backend (suggested
configuration for POP3), add the following to your ~/.gnus instead:

 (gnus-registry-initialize)
 (setq nnmail-split-fancy                 
       '(|                                
         (: gnus-registry-split-fancy-with-parent)
         ;; splitting rules go here       
         "mail.misc"                          ;; (1)
        ))
 (setq nnmail-split-methods 'nnmail-split-fancy)    

This code is similar to the IMAP example, except that the default
mailbox name for nnml is mail.misc(1).

Here’s how the previous rules in nnmail-split-methods would be
translated to nnmail-split-fancy rules for an IMAP configuration:

 (setq nnmail-split-fancy
      '(|
        (: gnus-registry-split-fancy-with-parent)
         ;; splitting rules go here       
        (from mail "INBOX.errors")   ;; (1)
        (any "you@work.example.com" "INBOX.work")   ;; (2)
        (any "you@personal.example.com" "INBOX.personal") ;; 
        ("subject" "emacs" "INBOX.emacs") ;; (3)
        "INBOX"    ;; or "mail.misc" for nnml/POP3
       )) 

The from keyword matches against the “From”, “Sender”, and
“Resent-From” fields, while the mail keyword matches common mail
system addresses(1). The corresponding to keyword matches against
the “To”, “Cc”, “Apparently-To”, “Resent-To” and “Resent-Cc” headers,
while any matches the fields checked by the from and to
keywords(2). You can also compare against the subject
and other headers(3).

You can use logic in splitting rules, too. For example, if you like
reading the jokes on joke-mailing-list@example.com, but you don’t like
the ones sent by vi-guy@example.com (he not only has a bad sense of
humor, but also likes picking on Emacs!), you can use a rule like
this in your nnmail-split-fancy:

         ;; ... other splitting rules go here...
         (any "joke-mailing-list@example.com"   ;; (1)
              (| (from "vi-guy@example.com" "INBOX.junk") ;; (2)
                 "INBOX.jokes")) ;; (3)
         ;; ... other splitting rules go here

The first rule matches all messages with
“joke-mailing-list@example.com” in from- or to-related headers.
Matching messages are processed with another split rule, which moves
messages from vi-guy@example.com to a separate group(2) and files the
other messages in INBOX.jokes(3). To learn more about creating complex
rules, read the Gnus Info manual for “Fancy Mail Splitting”.