October 2006

Little joys

October 2, 2006 - Categories: happy

On the way back from Simon's place last night, I took a streetcar with a wonderful surprise. The streetcar driver sang out the stops in this beautiful, beautiful voice! I was so tempted to take the car all the way to Humber just to keep listening to him. On the way out, I told him that I really wished I could tip on the TTC and that it was the awesomest streetcar ride ever. I wish the other riders on the streetcar were as appreciative. He deserved a lot of warm and fuzzy thoughts!

I love it when people go above and beyond, turning even ordinary jobs into something that brings joy to other people. I remember the announcer for Delta Airlines at the Washington airport whose sense of humor over the public announcement system made the four-hour delay so worthwhile.

Waking up with wonder

October 2, 2006 - Categories: life

I've figured out a great way to start my day. I love waking up to the alarm on my cellphone, hitting the snooze button, and spending the next five minutes slowly waking up and thinking of all the things that make me happy and grateful to be alive. I also mentally sort through my day and think of what I want from it.

Sometimes it takes more than one snooze button and sometimes I fall asleep again. When I notice that I'm getting sleepier instead of more awake, I focus on just doing the very next step: sitting up, for example. I will graduate to doing this kind of five-minute meditation sitting up, or maybe even over breakfast. I think it'll be easier to stay awake that way.

Speaking of breakfast, I need to clear out my part of the fridge and go for more groceries...

Reaching out and being human

October 2, 2006 - Categories: connecting

Most of the time, I'm on the top of the world. People wonder where I get the energy to be so enthusiastic and positive almost all the time.

Here's the secret: I get that energy from other people. Being around loving people fills me with great love, which spills over into everything else I do and everyone else I meet. People don't have to be perkily happy. They just need to be real, and I'm lucky to be surrounded by very real friends.

I get that energy from all the wonderful things around me, too. A singing streetcar conductor. Sunlight glinting off a sign. Sentimental letters. Crazy coincidences. My parents observed that it was very rare for me to be disappointed or sad for more than twenty minutes or so. What can I do? The world kicks in. =)

For longer-running, deeper-seated issues, though, sometimes I end up returning to what threw me out of whack in the first place. Sometimes the issue's too big for me to deal with. When I'm running on empty, that's when the most amazing and wonderful thing happens: people and the universe just infuse me with love (and, occasionally, vast quantities of hot chocolate).

It never fails to amaze me how my moments of weakness are those which draw me closer to other people. This is why I do not fight being sad, do not deny it, do not hush it away or starve it of sunlight. The other day, as Dan Howard comforted me, he said that he was glad that I shared this with him. Before that day, I had seemed to be some unapproachably, inhumanly happy person. Now our bond is stronger for those tears: he knows more of me, and I know that he can know that me and still be there.

The outpouring of warm and fuzzy thoughts from people I'd never even met fills me with great gratitude and the determination to give even more back to the world. My life has been too short and my work too small for me to deserve the smallest fraction of the love I have received, and so I am driven to be more and love more in order to repay this tremendous debt—one of gratitude to the world. Not that I ever can. The interest on this debt grows and grows. The principal of it grows and grows. But it is a debt I am happy to labor under!

I am human, and these are the moments that make me love being so. I am flawed, and as Quinn pointed out, that's a wonderful opportunity for others to show compassion—and for me to learn by their example.

Tim Sanders told me the story of how a reporter once asked Albert Einstein what question he would ask if he knew he would get an answer. Immediately—as if he had been thinking about it for a long time—Einstein said, "Is the universe friendly?" To him I would say: the world is not only friendly, but loving. To the world: I love you too. I love you too. I love you too.


October 2, 2006 - Categories: -Uncategorized

I am also very, very lucky to have people who remind me that this experience of great love is not yet universal. Some provide me with an opportunity to be compassionate. Others remind me that I have been extraordinarily lucky and loved, and that not everyone has the same experience or awareness. Thank you for helping me grow as a person.


October 2, 2006 - Categories: happy, life, purpose

Since childhood, I have had a gift for working with computers. For a while, this seemed like the perfect fit for my life. My grade school teachers were not surprised to find me interested in computers in high school. My high school teachers were not surprised that I took computer science in university. One of my university teachers told me I'd do well in "hard" computer science and encouraged me to go for a master's degree, maybe even a PhD.

But I am also awakening to a gift I have with people. I want to reach millions and millions of people over generations and generations. I want to lift them up, inspire them, share my experiences with them. I want to tell their stories and help make their dreams come true. This is what I want to do with my life.

I don't want to wait until I've made my money before I do good. I want to get out there and live and love and do and write and speak and share. I will keep my needs simple, my schedule flexible, and my overhead low so that I can spend as much time as possible developing myself and other people.

I belong to the world not just as a mind, but also as a heart, and I will make a life that allows me to express both.

So, concretely, how can we make this happen?

  • I want to repay the trust the university has shown in me by finishing my master's degree and doing well.
  • I want to set up a newsletter and topic-focused blog that inspires people and shares tips with them.
  • I want to write best-selling books. The second book will be easier than the first, so I should really just sit down, pull out material from my blog, do more research, and make this happen. Hey, maybe even before I'm 25. ;)
  • I want to be a totally awesome professional speaker. That way, I can reach *lots* of people with not only my message but with my communication style. It's also a good reason to meet people around the world.
  • I want to set up an organization for generous connecting.
  • Lots more!

How can I make this self-supporting? I want to get as quickly as possible to the point where I don't have to worry about my expenses so that I can follow these crazy ideas for free. Then I can build up my crazy idea capital, and then we're off!

The best way for me to do that is not to plan for retirement at 60 with a slow-and-steady savings plan, but to take advantage of my crazy ideas, train my intuition, and get better at going from crazy idea to reality.

If I open my mind and look for ways I can create value for other people (like my networking business cards that list my favorite networking books!), then I'll probably be able to create enough value to make the kind of life I want.

(Crazy idea! Trust in coincidence by having business cards with random stuff on the back. Moo cards does this with Flickr photos. Why not do that with whatever you currently want/have? I think business cards should be short-run and current. That way, they're more than just a static piece of contact information, and you'll have reasons to keep giving people your cards and for people to keep reading yours! Maybe I should start date-stamping my business cards... Ah, now there's a great idea...)

Right. That's the ticket. I should keep a notebook of all these crazy ideas. Probably a blog page *and* a paper notebook. Probably part of my Moleskine. And I should go and make those crazy ideas happen, like advertising on my laptop or tweaking my business card, etc.

I don't mind giving the ideas away. I get terrific feedback. In fact, if other people pick up the idea and run with it, that means I get to train my crazy-idea sense for free!

Remember the movie Phenomenon? I want to be that guy, overflowing with lots of ideas and improvements! I want to be someone you tell about the cool stuff you're working on because I'll be enthusiastic about it too, and I *might* just go "Hey, what do you think about trying out ...?"

Simon's fantastic at designing systems from scratch. I'm good at thinking about how to improve something that's already there, finding things to smoothen, noticing things that are missing... Come to think of it, even my computing background points to this. Why do I love open source development? Because I can build on what's there! Why am I totally addicted to Emacs? Because it indulges my crazy-idea thing! Whee!

So I want the ability to explore all these crazy ideas even when I'm working. I have lots of options in terms of the type of job, too.

  • A high-margin job that will train me up and take advantage of what I can do well and the crazy ideas I can come up with - marketing and sales, maybe?
  • A job that develops my skills even though it requires more work and concentration, such as writing. But not for long.
  • Something that pays for my expenses without demanding any mindshare, such as waiting tables ;) (Can't do that on my work permit, though!)

Right. Getting a better sense of what I want in life. There we go. Does that sound like a plan? Let's make it happen. =)

On Technorati: , ,


October 2, 2006 - Categories: -Uncategorized

One of our friends blogs poetry between stories of his work. It's always interesting reading, although you wonder sometimes if you should probe further...

Places to eat in New York City

October 2, 2006 - Categories: Uncategorized

Things to remember next time I'm in New York: Jim Suto highly recommends Little Lad's Restaurant and Cafe, which has a USD 2.99 vegan buffet special (eat-in) of homemade soups, salads, entrees, and breads. 120 Broadway downstairs. Totally vegan - no animal products. Way cool!

On Technorati:

Also of note: East West Books

October 2, 2006 - Categories: Uncategorized

I picked up a pretty set of postcards from East West Books in New York City (78 Fifth Avenue at 14th). The bookstore feels great. Check it out if you find yourself in the area. It's open daily from 10 AM to 9 PM. http://www.eastwestnyc.com , +1 212 243 5994.

On Technorati:

Sweet! The Peer Review: Graduate Studies and Academic Life

October 2, 2006 - Categories: school

I opened my mailbox to find a small publication called "The Peer Review: Graduate Studies and Academic Life." The cover advertised an article on "The Ultimate Guide to Scholarly Publishing: Editors of leading journals tell you how to make sure your research gets published *before* you hit the job market". It continued: "Also inside: How to memorize all of your students' names in just one class: + why some students hate new ideas (and what to do about it)." The trailer: "Grad research: The nurture of your true nature... do fish have feelings?"

I should just take a picture of it, really. ;)

I'm sold. I don't remember signing up for this, but the first thing I thought was, "This is a terrific idea." The second thing I thought was, "How can I help with this?" The third thing I thought was: "How can I send them warm and fuzzy thoughts for a job well done?"

So I've left voicemail (although the office will be closed for a few weeks), blogged this entry, and sent enthusiastic kudos to the Peer Review folks. I would totally subscribe to this in order to keep more of this content flowing, and I would love to write for it as well.

Check it out. A casual flip-through reveals both good U-of-T-specific content as well as lots of other helpful things.

The Peer Review

Now I'm thinking: how can we syndicate this idea to lots of other universities? I'm sure other universities have some kind of serious grad-student-oriented bulletin...

Crazy idea for Emacs: Random Emacs taglines

October 2, 2006 - Categories: emacs, pimpmyemacs

Would anyone happen to know of a way to select a random symbol with a description?

Actually. Hmm.

  (apropos ".")
  (write-file "~/.taglines.random-emacs-symbols")
  (delete-matching-lines "Plist")
  (delete-matching-lines "not documented")
  (replace-regexp "\n  " " - " nil)
  (delete-non-matching-lines " - "))

Et voila! Random Emacs taglines together with the code:

(defun sacha/random-tagline (&optional file)
  "Return a random tagline and put it in the kill ring."
  (with-current-buffer (find-file-noselect (or file "~/.taglines"))
    (goto-char (random (point-max)))
    (let ((string
           (buffer-substring (line-beginning-position)
      (kill-new string)

(defadvice remember (after sacha-tagline activate)
  "Add random tagline."
  (goto-char (point-max))
  (insert "\n\nRandom Emacs symbol: "
          (sacha/random-tagline "~/.taglines.random-emacs-symbols")

On Technorati: , ,

Random Emacs symbol: eshell-remove-entries - Function: From PATH, remove all of the given FILES, perhaps interactively.

Crazy Emacs: Personalized signatures with random taglines

October 2, 2006 - Categories: bbdb, emacs

Of course, that naturally leads to the crazy idea: "What if I can personalize my signatures?" Knowing that Paul Lussier is an Emacs geek, I can reward him for reading all the way to the bottom of my message... ;)

(defun sacha/gnus-personalize-signature ()
  "Personalizes signature based on BBDB signature field.
BBDB signature field should be a lambda expression.
First person with a custom signature field gets used."
  (let* ((bbdb-get-addresses-headers
          (list (assoc 'recipients bbdb-get-addresses-headers)))
         (records (bbdb-update-records
                    gnus-ignored-from-addresses 'gnus-fetch-field)
    (while (and records (not signature))
      (when (bbdb-record-getprop (car records) 'signature)
        (setq signature
              (eval (read (bbdb-record-getprop (car records)
      (setq records (cdr records)))
    (or signature t)))
(setq-default message-signature 'sacha/gnus-personalize-signature)

So then all I have to do is add the following field to his record:

      signature: (concat "Sacha Chua - Emacs geek
                 What crazy idea can I help you hack next?
                 Random Emacs symbol: "

Emacs. One crazy idea at a time. Now I can use this to select random information, like my favorite networking books or a list of my upcoming events...

On Technorati: , , ,

Random Emacs symbol: sort-coding-systems-predicate - Variable: If non-nil, a predicate function to sort coding systems.

Must be a better way to reserve books at the library

October 2, 2006 - Categories: library

I'm going on another reading spree, this time on relationship marketing.

At some point in time, I will be annoyed enough to write a non-(mouse and pageload)-intensive way to say "Request all selected books and have them delivered to my nearest branch."

Argh. Little inefficiencies like that annoy me. That is so getting hacked. Probably during CASCON, even.

Random Emacs symbol: Info-edit - Command: Edit the contents of this Info node.

43folders blogger and GTD guru Merlin Mann in Toronto tomorrow

October 2, 2006 - Categories: -Uncategorized

Merlin Mann of 43Folders and uber-cool GTD/productivity lifehacking will be in town for a podcast tomorrow (Tuesday). http://upcoming.org/event/111696/

I will probably not be able to go, or if I do, I'll be cramming for school in the background. But go and have fun!

Random Emacs symbol: auto-coding-alist-lookup - Function: Return the coding system specified by `auto-coding-alist' for FILENAME.

So many resources!

October 2, 2006 - Categories: -Uncategorized

Every so often, I just stop and wonder what I've been doing with my time. This usually happens when I go on an academic reading spree and I rediscover just how amazing it is that the University of Toronto has full-text access to almost everything.

I'm *so* tempted to scale back everything as much as possible and just pack lots and lots of information into my head. ;) I want to take advantage of all the magazine subscriptions and the huge library just two blocks from my residence.

I love reading!

Random Emacs symbol: gnus-summary-article-header - Macro: Return the header of article NUMBER.

Misplaced index cards

October 3, 2006 - Categories: -Uncategorized

The strangely solid kerplunk I noticed when I emptied my trash into the garbage chute may have been the sound of a full index card case containing hundreds of index cards with notes from the Power Within event and from a brainstorming session on goals. Maybe. Possibly.


That's okay. Good reason to write down my goals again. I know, I'll make that my reward activity for the day. Once I get through all the rest of the stuff...

Random Emacs symbol: decompose-string - Function: Return STRING where `composition' property is removed.

Lazyweb request: dependency grapher?

October 3, 2006 - Categories: -Uncategorized

Would anyone happen to know of something that makes it easy to graph dependencies, preferably interactively? I'd like it to be ridiculously easy to split an entity into two entities A and B, while preserving the inbound connections for A and the outbound connections for B. This is for a crazy goal management thing I'd like to have... =)

If it's open source and keyboard-friendly, that would totally rock. If not, well, I'll sit down one of these vacations and hack something up. Maybe Christmas. (Only two months away! eek!)

Random Emacs symbol: message-unix-mail-delimiter - Variable: Regexp matching the delimiter of messages in UNIX mail format.

The power of applause

October 3, 2006 - Categories: -Uncategorized

Listening to the Entrepreneurship 101, I find myself struck by the silence of the rooms sometimes. Perhaps it's Toastmasters training, but I feel strange when transitions between speakers aren't accompanied by applause. I've been up there before. The stress of speaking in public does *not* stop when you step off the stage. No, it gets worse. You start wondering whether you said the right thing. You're sure you rambled on and that no one learned anything useful. You retreat to your seat and agonize.


I should try applauding every transition, even if that means being the first to clap...

Random Emacs symbol: ad-update-regexp - Command: Update functions with an advice name containing a REGEXP match.

October is crazy!

October 3, 2006 - Categories: -Uncategorized

If I disappear from the surface of the earth or blog sporadically, it is because not only do I have a number of academic deadlines (important!), but I also have:

Taking the Terror out of Talk
Oct 10, 6:00 - 8:00 at Metro Hall
(A Toastmasters educational module on dealing with anxiety when speaking in public)

Oct 16 - 19, a free IT conference at which I am:

  • on a panel about Enterprise 2.0
  • presenting my research at the technology showcase
  • giving a lightning talk
  • organizing and running a "Hack Night"

DemoCamp: Livin' la Vida Emacs
Oct 23, Monday (*UPDATE! Not 26 as originally announced)

AND the IBM Center for Advanced Studies is reviewing its proposals this month or so, too...

So we're looking at one major thing each week, although the truth is, all of them are droppable if I accept the consequences.

I can do this. =)

Random Emacs symbol: group - Widget: A widget which groups other widgets inside.

Good things: KMD2004

October 3, 2006 - Categories: conference
Quote for the day: An unexamined life is not worth living. - Socrates

I come from a technical background, and the almost-sociological analyses we need to do for this KMD2004 course on Knowledge Media, Culture and Society actually scares me. That's probably why I participate the most in class - I want to test my ideas, even if that means admitting I don't understand something or taking a wild guess at something else.

I'm happy with the critique I submitted today, though. Instead of the usual bullet points, I spent some time last night and this morning picking out the main point and summarizing other points in the article. You can find a draft of my critique at http://sachachua.com/notebook/school/lea.muse.html . I like it more than the terse, almost telegraphic summaries my classmates prepared, following the text closely. It's less of a summary than a discussion, and I didn't repeat all the points during the main discussion - I just picked out a few to talk about. I'm happy with it, although I may have nervously rambled. I guess it's a good sign that as I explained things, I learned more, and I realized some of the answers to my questions! <laugh>

I can't take credit for another good thing that happened today, but still. =) During the break, the person beside me turned to me and asked if my frequent blogging examples meant that I blogged. I said, "Sure!", introduced myself, and handed him a business card with my blog URL. I asked him if he blogged too, and he said that he hadn't updated his in a while. I asked how I could get in touch with him anyway. Upon reading his e-mail address, I mentioned the roleplaying I'd done in high school, and that turned into a good conversation. (And he said he was shy! He started the conversation... <smile>)

I turned up at the MaRS Entrepreneurship 101 series and met a few people whom I want to introduce to others, so that was good. Heading over to No Regrets to catch Merlin Mann of 43Folders also netted me a few people I should follow up with.

I wish I could've worked more on the IBM stuff, but that just means I'll need to plan my morning carefully. And get up early, for once!

It was a good day, and tomorrow will be even better.

An unexamined life is not worth living. - Socrates

(I keep messing up the attribution of this quote! Socrates, not Aristotle, not Aquinas. Socrates. Must remember; I cite it so often!)

Developing a better sense of time

October 4, 2006 - Categories: emacs, pimpmyemacs, planner, productivity

One of the things I want to do is develop a good sense of how long it takes me to do something. Better time estimates lead to better scheduling, better sense of what I can commit to, and ultimately less stress and more happiness. =)

Fortunately, Planner makes it easy for me to do really detailed time-tracking. When I mark a task as in progress, the clock starts ticking. When I postpone or close a task, the system clocks out automatically.

I find that my attention occasionally strays. Sometime ago, I wrote a function to help me keep track of what I'm supposed to be doing. Today, I've decided to try estimating task completion times for more of the tasks on my list. I modified my old function to tell me how much time has elapsed since I started the task. This doesn't take into account previous clock-in/clock-outs, but it will do for now.

We'll see how well it works. =)

;; I've bound sacha/planner-what-am-i-supposed-to-be-doing to F9 F11. I
;; start out by clocking into the task (use planner-timeclock.el and
;; C-c TAB to mark a task as in progress). Then, when I find myself
;; getting distracted, I hit F9 F9 to see my current task in the
;; minibuffer. C-u F9 F9 jumps back to the task so that I can either
;; mark it as postponed. M-x planner-task-pending (bound to C-c C-p in
;; my local config) and M-x planner-task-done (C-c C-x) both clock out
;; of the task. If I want to jump back to the previous window
;; configuration from that planner page, I can just hit F9 F9 again.

(defvar sacha/window-register "w"
  "Register for jumping back and forth between planner and wherever I am.")
(defvar sacha/planner-current-task nil
  "Current task info.")
(defadvice planner-task-in-progress (after sacha activate)
  "Keep track of the task info."
  (setq sacha/planner-current-task (planner-current-task-info)))

(defun sacha/planner-what-am-i-supposed-to-be-doing (&optional prefix)
  "Make it easy to keep track of what I'm supposed to be working on.
If PREFIX is non-nil, jump to the current task, else display it
in a message. If called from the plan page, jump back to whatever
I was looking at."
  (interactive "P")
  (if planner-timeclock-current-task
      (if (string= (planner-task-page sacha/planner-current-task)
          (jump-to-register sacha/window-register)
        (if (null prefix)
            (message "%s %s"
                     ;; Minutes so far
                     (timeclock-seconds-to-string (timeclock-last-period))
          (frame-configuration-to-register sacha/window-register)
          (planner-find-file (planner-task-page sacha/planner-current-task))
          (planner-find-task sacha/planner-current-task)))
    (if prefix
      (message "No current task. HEY!"))))

On Technorati: , , ,

Random Emacs symbol: cal-tex-mouse-filofax-week - Command: Two page Filofax calendar for week indicated by cursor. (Hey, I didn't know we could print Filofax calendars from Emacs cal...)

Emacs Gnus hack: Prioritize based on the number of recipients

October 4, 2006 - Categories: emacs, pimpmyemacs

Ever found yourself confronted with an inbox overflowing with general messages that you can ignore and messages that you and only you can act on? Here's something to help you sort the wheat from the chaff.

This indicates how personal messages are so you can immediately see which messages are just for you and which are part of a long Cc. Stephen Perelgut showed me the feature in Lotus Notes and I wanted to steal it sometime, so I did it while waiting for the Instant Rails archive.

To use it, add %ur to your gnus-summary-line-format.

(add-to-list 'nnmail-extra-headers 'To)
(add-to-list 'nnmail-extra-headers 'Cc)
(defvar sacha/gnus-count-recipients-threshold 5
  "*Number of recipients to consider as large.")

(defun sacha/gnus-count-recipients (header)
  "Given a Gnus message header, returns priority mark.
If I am the only recipient, return \"!\".
If I am one of a few recipients, but I'm listed in To:, return \"*\".
If I am one of a few recipients, return \"/\".
If I am one of many recipients, return \".\".
Else, return \" \"."
  (let* ((to (or (cdr (assoc 'To (mail-header-extra header))) ""))
         (cc (or (cdr (assoc 'Cc (mail-header-extra header))) "")))
     ((string-match gnus-ignored-from-addresses to)
      (let ((len (length (bbdb-split to ","))))
         ((= len 1) "!")
         ((< len sacha/gnus-count-recipients-threshold) "*")
         (t "/"))))
     ((string-match gnus-ignored-from-addresses
                    (concat to ", " cc))
      (if (< (length (bbdb-split (concat to ", " cc) ","))
     (t " "))))

(defalias 'gnus-user-format-function-r 'sacha/gnus-count-recipients)

Random Emacs symbol: dired-listing-switches - Variable: *Switches passed to `ls' for Dired. MUST contain the `l' option.

On Technorati: , , ,

Clearing e-mail clutter

October 5, 2006 - Categories: geek

I've set almost all of my Yahoogroups mailing lists on Special Notice only to curb my inbox overload. I'll reenable them as I miss them, if I ever. =)

Random Emacs symbol: ibuffer-pop-filter-group - Command: Remove the first filter group.

Rotman School of Management: Nexus for non-profits

October 5, 2006 - Categories: business

Ushnish Sengupta told me about Nexus, the Rotman School of Management's initiative for providing low-cost services to non-profit organizations. Already in its second year of operation, Nexus has helped many non-profits through affordable management consulting and other services provided by MBA students and a network of mentors.

I'm glad to see that Rotman (part of the University of Toronto) is doing cool things like that. It's a great way for students to gain real-world experience, and it should be fun getting to know the people in the program.

On Technorati: ,

Random Emacs symbol: tramp-pre-connection - Function: Do some setup before actually logging in.

Minutes from meeting on Thursday

October 6, 2006 - Categories: Uncategorized

Attendance: Dave Kemp, Sacha Chua
From 2:10 to 2:30 or so

  • Apologies for miscommunication: Sacha had written down the meeting for 1:00 but for some reason thought it would be 2:00 instead.
  • Briefly discussed Sacha's actor-network map for the economic effect of open source development in developing countries and Dave's actor-network map for open content
  • Dave focuses more on content creators, while Sacha focuses more on "content remixers" adapting global content for a local market. MJ will focus on content distributors. Neat, isn't it?
  • Sacha's AN map includes proprietary content developers (notably foreign proprietary software companies), which actively try to discourage open source development and adoption. On the other hand, Dave's AN map shows how proprietary content organizations assimilate open content (indie movies get bought up, etc).
  • Maybe our joint AN map can discuss the open economic model?

On Technorati:

Random Emacs symbol: map-char-table - Function: Call FUNCTION for each (normal and generic) characters in CHAR-TABLE.x

Check out Hack Night!

October 6, 2006 - Categories: life

In Toronto from Oct 16 to 19? Come to Hack Night on Oct 17 (Tuesday)! It'll be fun. Free pizza, free T-shirts, computers, Net, lots of geeks... Sign up today!

Random Emacs symbol: muse-project-alist-set - Function: Turn customized version of `muse-project-alist' into something

Book: Endless Referrals, by Bob Burg

October 10, 2006 - Categories: connecting

Endless Referrals
Network your everyday contacts into sales
by Bob Burg
ISBN 0-07-146207-4 (3rd ed, paperback)

Having gone through a majority of the Toronto Public Library's books on networking, I'm starting another reading sprint into relationship marketing. *Endless Referrals* is a good primer on how to network by focusing on what you can give to others, and it has great tips for how to ask for referrals. The key point of the book is that people give business to those they know, like, and trust, and the book is filled with things you can do to build that trust.

Reading the book, I was reminded of the two nuggets Dave Forde shared during my BarCamp session on networking for introverts. He mentioned the F-O-R-M questions (Family, Occupation, Recreation, Message) and the Feel-Felt-Found method for addressing objections.

The book repeatedly emphasizes the importance of personalized notes with pictures and contact information on them, so I might use some of my idea capital to have some printed. I'd like to send many more notes than I normally do. Alternatively, I could have my picture printed on my business card, and just include that in all my correspondence.

Pages 16 to 19 list ten networking questions that work every time because they make people feel good.

  1. How did you get your start in the ... business?
  2. What do you enjoy most about your profession?
  3. What separates you and your company from the competition?
  4. What advice would you give someone just starting in the ... business?
  5. What one thing would you do with your business if you knew you could not fail?
  6. What significant changes have you seen take place in your profession through the years?
  7. What do you see as the coming trends in the ... business?
  8. Describe the strangest or funniest incident you've experienced in your business.
  9. What ways have you found to be the most effective for promoting your business?
  10. What one sentence would you like people to use in describing the way you do business?

Chapter 8 discusses how to use the Internet to help build your network, and has good examples of how to use blogs and instant messaging to reach out to more people.

Chapter 15 has good tips for starting an effective and profitable networking group, which might be useful for a few people I know.

Good book. Worth reading and recommending to other people.

On Technorati:


October 10, 2006 - Categories: life

So I walk in (late) for my KMD2004 class, and who do I find demonstrating something—Sunir Shah! He's got this totally awesome bibliographic wiki. I like it more than WIKINDX, although WIKINDX still has some cool quote management stuff that I like.

Funny crossover. Small world!

Random Emacs symbol: gnus-open-server - Function: Open a connection to GNUS-COMMAND-METHOD.

Collaborative lit review

October 10, 2006 - Categories: research

Sunir Shah has gone and built a wonderful collaborative wiki with features for lit reviews. The one for our class is at http://meatballsociety.org/cgi-bin/kmd2004 . He will be moving the main site to http://www.designbiblio.org sometime in November.

I can't wait to play around with it. He's even put up the readings... Isn't that so cool?


Random Emacs symbol: utf-8-pre-write-conversion - Function: Prepare for `utf-translate-cjk-mode' to encode text between BEG and END.

Crazy idea: SMART goaltracker

October 10, 2006 - Categories: -Uncategorized

Goals should be S.M.A.R.T. - specific, measurable, ardently desired, realistic, time-bound. Why don't we already have a system that makes it easy for people to measure their progress towards goals? I might build one for Hack Night. Something that takes off on Joe's Goals and has a lot of little meters, e-mail interaction (and maybe even SMS! ;) ), daily/weekly/monthly/quarterly reminders and reports... Hmm.

This should be fun.

Random Emacs symbol: browse-url-epiphany-sentinel - Function: Handle a change to the process communicating with Epiphany.

Oh well, no takeaways

October 10, 2006 - Categories: -Uncategorized

I was going to print neat little takeaway business cards with tips on one side and Toast I.T. club info on the other, but the printer isn't working today. Oh well! Good thing we have Toastmasters promo material in our kit.

Maybe I have time to throw some quick visuals together and run through them.

Random Emacs symbol: compilation-get-file-structure - Function: Retrieve FILE's file-structure or create a new one.

Next thing on the horizon: CASCON 2006

October 11, 2006 - Categories: conference

I survived the Toast I.T. Toastmasters Open House. Yay!

The next thing on my horizon is CASCON 2006, IBM's free conference. We're still not sure if my research demo is going to get yanked from the tech showcase due to patent concerns, but I'll be helping out with a social computing panel and Hack Night is a go.

Sign up for Hack Night! Free T-shirt, computers, pizza, hacking into the night... Sweet!

Surviving October one thing at a time...

Random Emacs symbol: gnus-cite-unsightly-citation-regexp - Variable: Regexp matching Microsoft-type rest-of-message citations.

How to get to CASCON

October 11, 2006 - Categories: cascon

If you're coming from downtown, you can take the subway to Finch and the Viva bus from there. Three choices:

Viva Pink Get off at South Town Centre
#300 Express Get off at South Town Centre
#1 YRT Get off at Warden

Check out York Region Transit for schedules.

On Technorati: ,


October 11, 2006 - Categories: -Uncategorized

I just got a flash of what my DemoCamp presentation on Emacs will be like. <laugh> It's going to be *so* diggable.

I need to plan this well. I want to completely blow the DemoCampers away. Maybe even get a standing ovation. ;) That means I need to build in a crescendo.

I should also figure out how to record a presentation and how to put it up online, so that it can go live right after the event. Mwahahaha!

Note to self: Get Adsense sorted out.

Emacs: Hideshow

October 11, 2006 - Categories: emacs, pimpmyemacs

One of the things I love about vising irc.freenode.net #emacs is that helping people with their questions lets me discover all sorts of cool things about Emacs. Today's nugget? hideshow.el, which allows you to automatically hide / show code. (Equivalent of vim folding).

I've added the following code to my config:

(load-library "hideshow")
(add-hook 'emacs-lisp-mode-hook
          (lambda () (hs-minor-mode 1)
            (set (make-variable-buffer-local 'my-hs-hide) t)))
(defvar my-hs-hide t "Current state of hideshow for toggling all.")
(defun my-toggle-hideshow-all ()
  "Toggle hideshow all."
  (set (make-variable-buffer-local 'my-hs-hide) (not my-hs-hide))
  (if my-hs-hide
(global-set-key (kbd "C-c @ @") 'my-toggle-hideshow-all)
(global-set-key (kbd "C-c @ h") 'hs-hide-block)
(global-set-key (kbd "C-c @ s") 'hs-show-block)
(global-set-key (kbd "C-c @ SPC") 'hs-show-block)


... and then I find that I already have a hideshow config, of course, and that I added it on 2003.11.21... <bonk>!

On Technorati: ,

Random Emacs symbol: timezone-parse-date - Function: Parse DATE and return a vector [YEAR MONTH DAY TIME TIMEZONE].

The Constant Connector

October 12, 2006 - Categories: connecting

I spent some time reviewing all of my blog posts that contained the keyword "networking". I think you'll find the results useful. =) Check out the Constant Connector page for a preview of what just might become a topic-focused blog!

On Technorati:

Random Emacs symbol: tramp-find-ls-command - Function: Finds an `ls' command which groks the `-n' option, returning nil if failed.

Meeting minutes from KMD2004

October 12, 2006 - Categories: conference

Started 2:20 PM
Ended 3:00 PM
Attendance: Dave Kemp, Sacha Chua

  • Talked about tentative plans for lit review. Sacha will probably choose one of the articles from AN map reference, Dave Kemp will do The Wealth of Networks (book) or maybe change his mind. E-mail each other about concepts.
  • Intervention: Press kit about the Experimental Exhibition Laboratory (EEL). Open Source, Open Access grant will fund development of the online version of the gallery under Creative Commons license (Electric EEL). If showing work, then should be released under CC. Exposing people to the ideas that they might not aware of. Gaining attention for? Project launch November or so. We can write the press kit that can be used when the gallery is formally opened in March or so. Press kit for: Eye and Now magazine.
  • Integrative summary: We will provide point form summaries, and maybe one person can take the lead in preparing the summary. Wiki: post an outline or bullet points, try to merge as much as possible. Post a summary. Then post full drafts. Individual structure: 1-2 page summary. Set up wiki. Final paper due week 9, outline up by week 7 (Oct 24). Oct 26 meeting, we'll try running through five-minute presentations of key ideas, come up with introduction and conclusion. Week 8, seriously start working on the integrative summary.

SACHA: Set up wiki, e-mail everyone by tonight, post minutes

Week 7 (Oct 24) point form up on the wiki, maybe even a summary if you're feeling really nice
Oct 26* 2:00 meeting run through 5-minute presentations, think about introduction and *depending on symposium
Nov 7 Seriously work on integrative summary, people should be mostly done with their backgrounder articles
Nov 14 submit backgrounder article and integrative summary
Afterwards write intervention piece

Random Emacs symbol: pcomplete-match-end - Function: Return position of end of text matched by last search.

Emacs: Quick way to collect references

October 12, 2006 - Categories: emacs, pimpmyemacs
(defvar sacha/planner-collector-buffer nil "Buffer for collecting links.")
(defun sacha/planner-collect-reference ()
  (let ((text (sacha/yank-blog-reference-for-summary)))
    (with-current-buffer sacha/planner-collector-buffer
      (insert text))))

(defun sacha/planner-collect-reference ()
  (let ((text (buffer-substring (line-beginning-position)
                                (1+ (line-end-position)))))
    (with-current-buffer sacha/planner-collector-buffer
      (insert text))))

On Technorati: ,

Random Emacs symbol: sgml-tag - Command: Prompt for a tag and insert it, optionally with attributes.

Emacs and a British voice

October 12, 2006 - Categories: emacs, pimpmyemacs

There's something about deep, deep cultural programming. Anything spoken with a British accent just sounds infinitely cool. Everyone uses the default voice for Asterisk and all of that - an American male.

You want to install festvox-rablpc16k or festvox-rablpc8k in addition to all the usual things you need for emacspeak. You'll also need espeakf from CVS.

cvs -d:pserver:anonymous@espeakf.cvs.sourceforge.net:/cvsroot/espeakf login
cvs -z3 -d:pserver:anonymous@espeakf.cvs.sourceforge.net:/cvsroot/espeakf co -P espeakf
cd espeakf
sudo make install

One of these lines is responsible for setting up espeakf. I just can't be bothered with figuring out which. ;) Probably the dtk-program line.

(setq dtk-program "/usr/share/emacs/site-lisp/emacspeak/servers/espeakf.pl")
(setenv "DTK_TCL" dtk-program)
(setenv "DTK_PROGRAM" dtk-program)

Then add this to your /etc/festival.scm:

(set! voice_default 'voice_rab_diphone)

Yummy British accent goodness.

On Technorati: , ,

Random Emacs symbol: mail-extr-disable-voodoo - Variable: *If it is a regexp, names matching it will never be modified.


October 12, 2006 - Categories: -Uncategorized

I love looking back at the day and knowing that I finished everything I set out to do. I can get rid of so much stress simply by keeping my horizon in mind, choosing the one or two things that could make the most difference in my life right now, and doing those things.

Today, I got my MIE assignment out of the way. It won't be due for another 6 days, but it's one of the things with high importance and a hard deadline. The sooner I finished it, the sooner I could concentrate on other requirements that might have softer deadlines.

If my task list looks scarily detailed, just wait until you see my time log. ;) I find it handy to account for as much of my time as possible while still blocking in treats to reward myself with and time to relax. Today, I rewarded myself by organizing a small get-together for tomorrow night. I'll need something to look forward to! First snow today, and lots of work to be done at IBM tomorrow...

... but today was good, and it's nice having the feeling that things are more or less under control.

I'm still probably going to do more than one headless-chicken impressions over the next few weeks. I've taken on quite a set of challenges. I have no idea if I can really pull all of it off, or how gracefully I can drop things if nevessary. But just as I force myself to speak before I'm 100% ready, I'm going to step up and do things even though I'm not sure how it will all work out. I'm going to jump, and grow my wings on the way down!

One day at a time becomes one week at a time becomes one year at a time becomes one life at a time. =) Things are going well.

Random Emacs symbol: gnus-article-strip-all-blank-lines - Command: Strip all blank lines.


October 13, 2006 - Categories: -Uncategorized


I'm still...

Simon told me the story of his first project. There is *no* way I can do it justice. If you ever hear him tell it, you'll understand instantly why I can't help but say "Wow."

Here is someone who makes things happen. Even if his back is to the wall, he won't give up - he'll find a way to make things work.

Simply by being, he inspires me to push beyond myself.

He's amazing.

Bus updates for Hack Night

October 13, 2006 - Categories: life
FYI, the YRT changed their bus routes back in April - the #1 doesn't go to Finch anymore, it stops at Richmond Hill. Also, the Pink stops running after 9am and doesn't start up again until 3 or so and stops again at 6-something, so the alternative to the Pink for those staying late for Hack night would be purple viva + whatever buses go to finch, which includes the blue viva and the 91 or the 99, I forget which.

E-Mail from Karen Quinn Fung

Random Emacs symbol: inhibit-quit - Variable: Non-nil inhibits C-g quitting from happening immediately.

Of all the days

October 14, 2006 - Categories: ibm

I knew I was going to have a potentially difficult teleconference call to determine the IP concerns for my research, so I decided to dress interestingly. IBM dress code isn't strict at the Center for Advanced Studies because we're expected to be geeky researchers, and I knew I could get away with it. Besides, Fridays during off-seasons, there's hardly anyone there.

So I decided to wear the skirt Kathy gave me. I thought I might as well get a few more uses out of the skirt before winter really set in. The skirt naturally suggested this whole pink outfit: a heavy maroon corduroy shirt/jacket, a pink T-shirt, a plaid miniskirt, and shocking pink tights. Fortunately I didn't have pink winter boots, only black ones! ;) (Despite all your assurances, Kathy, it is *NOT* a winter mini!)

In the middle of cramming my presentation for the teleconference, I heard the distinctive clicking of the shutter of an SLR camera. I grew up around photographers. I'd know that sound anywhere. I looked up to find five or so people standing in the middle of the Center for Advanced Studies. One of them has a serious-looking camera, and he was pointing it in my direction.

"This is just perfect," said the person who appeared to be in charge, smiling.

I stopped slouching and looked around. There was no one else in my corner of the lab: just my desk, the brightly colored kite dangling from my wall, the wobbler toy I occasionally talk to when I podcast, and me in a shocking pink outfit.

They said that they'd talked to my manager already.

I pushed up my glasses and touched my hair, self-conscious about a messy ponytail. I'd gotten just five hours of sleep and hadn't had the time to put it in a bun.

"Oh, don't worry, it's just for a poster for IBM 3600. We want to show them what the Lab is like."

I smiled while thinking, "Oh no oh no oh no..." Of all the days to catch me in a miniskirt and shocking pink tights. Then again, it would've been a tossup between that or a brilliantly colored malong.

And hey, if word got out that IBM technology gets invented by cute girls... ;)

I suppose that dressing conservatively would allow me to avoid stuff like that, but then it wouldn't be *nearly* as much fun. Although maybe I should start seriously looking for ethnic accents like scarves and stuff like that, so that I can still spice up a conservative-ish wardrobe...

Another interesting thing is that this was the second time my desk has turned up in promotional material. Apparently, my desk was included in a recently filmed video about the Center for Advanced Studies, although I wasn't there at the time.

Possible explanations:

  • The brightly-colored kite and stash of hot chocolate packets at my desk give it far more character than other grad students' desks.
  • They want to archive potentially embarrassing material for when I'm famous. ;) "See, this was her first IBM desk!"

Heh. IBM. Gotta love the place.

On Technorati:

Whew! Midterms done

October 16, 2006 - Categories: school

I'm not too happy with my performance on the midterms, but there's no use worrying about it now. I'm surviving this crazy month!

I'm so tempted to write down each milestone on index cards just for the visceral satisfaction of tearing them up once I'm finished with them.

Ah, what the heck. I have plenty of index cards. MWAHAHA! Let me write down "MIE1402 Midterm" just so that I can tear it up! ;)

More cramming

October 16, 2006 - Categories: school

I realized that I'd forgotten Alvin's poster in the lab, so I trekked back there to pick it up. The walk wasn't a total waste, though. I breezed through some 400 blog posts (out of 1200 or so) from IBM's blogs in October.

More cramming to follow. I need to work on my KMD2004 requirements. Then I need to work on adapting the dogear tagclouding code so that we can make tagcloud T-shirts. After I finish that, I can quickly sort out my CASCON schedule so that I know how crazy tomorrow will be. Fortunately, I don't have to present anything at either Wednesday's workshop or Thursday's panel. I just have to show up and be interesting.

After I survive this, I'm treating myself to a musical! (And *then* there's DemoCamp to pull off...)

During times like this, I wish Simon lived closer downtown. <laugh> Then I'd have some company while cramming, and a steady supply of hot chocolate. Speaking of hot chocolate - we tried the spiced hot chocolate from Soma last Sunday. I followed the instructions, whisking it over low heat until it was smooth. It was terrific, although tsokolate eh from Tsoko.Nut was still much better.

Anyway. Little breaks are good for sanity. Maybe we'll hook up the headsets later so that we could be doing things separately but still prompt each other to relax. My cellphone plan has unlimited incoming anyway, and he can use his home line to call for free. I guess Canada's telecom pricing was *just* right after all...

Random Emacs symbol: w3m-halfdump-command-arguments - Variable: Arguments passed to the w3m command to run "halfdump".


October 16, 2006 - Categories: -Uncategorized

Wow. This timing thing is freaky. It's *fun* to dash off a few quick estimates of how long something will take me, do the task, and find myself almost right on the mark.

I don't know if that means I'm getting better at estimating how long I'll take to finish something, or if work expands to fit available time. ;)

Random Emacs symbol: whitespace-toggle-leading-check - Command: Toggle the check for leading space in the local buffer.

On the other hand…

October 16, 2006 - Categories: -Uncategorized

On the other hand, it's great when something takes you a third of the time you thought it would! =)

It took me 30 minutes to summarize an article in 494 words. I had read the article before, though, and knew what the key points were. 16 words a minute means my bottleneck is thinking, not typing... <laugh>

Random Emacs symbol: eshell-error-handle - Variable: *The index of the standard error handle.

Waiting for the keynote

October 17, 2006 - Categories: conference

I am seated front and center for the CASCON keynote, having decided to run off my laptop battery so that I don't have to sit near the edges of the room.

My jeans are spattered with mud (and possibly cement) from the construction site that I had to walk through in order to get to the Hilton. The pouring rain wasn't kind to me, either, and there was an appalling lack of sunlight at 7:30 in the morning. I guess winter is here.

Despite that, I am here. In one piece. And suitably well-fed. I may yet survive the day.

I've put up Alvin's poster in the technology showcase. Mine doesn't look so intimidatingly empty after all, what with the provided signs. If I have to, I can just handwave.

Ah, there's another thing I forgot to do: print out something interesting for the back of my laptop. And print business cards. The lab printer's broken, so I didn't get to print them last night.

It begins.

Address from Martin Wildberger

October 17, 2006 - Categories: cascon

Martin Wildberger opened by reexamining IBM's motto, "Innovation that matters". One of the key things we struggle with is making sure that what we do matters, and one of the ways to do that is through collaboration. CAS is about meeting of minds of industry and academe to germinate ideas.

Wildberger also commended Kelly Lyons, who heads the CAS program for the Toronto Lab. Last night in Winnipeg, the CAS program received a very prestigious award: the NSERC Leo Derikx Award for Synergy.

He showed a video clip from last night's awarding ceremony. (Hey! That was my desk! Kelly and Luanne borrowed my desk! <laugh> You can tell - my e-mail address is actually readable for a second...)

He then went on to thank NRC and introduce Christian Couturier, Director General of the Institute for Information Technology, National Research Council Canada.

On Technorati: , ,

Random Emacs symbol: diary-cyclic - Function: Cycle diary entry—entry applies every N days starting at MONTH, DAY, YEAR.

Address from Christian Couturier, NRC

October 17, 2006 - Categories: cascon

Christian Couturier spoke about the importance of ICT and rattled off a number of areas that would not be possible without ICT. He also thanked those who helped make the conference a reality.

Introduced technical program co-chairs:

  • Eleni Stroulia, University of Alberta
  • Hakan Erdogmus, National Research Council, Canada

On Technorati: , ,

Random Emacs symbol: gnus-nntp-server - Variable: *The name of the host running the NNTP server.

Technical co-chairs

October 17, 2006 - Categories: cascon

Eleni and Hakan joked a bit about their ethnic origins (Greek and Turkish), gave a few statistics for paper submissions, and announced the best papers. Ooh, Ian Bull gets a Lenovo Thinkpad for having the best Student Paper!

On Technorati: , ,

Random Emacs symbol: event-apply-shift-modifier - Function: Add the Shift modifier to the following event.

CAS Dublin

October 17, 2006 - Categories: cascon

The CAS Dublin team linked up through videoconferencing. The speaker highlighted four key fields: high performance computing, software engineering, visualization, and computational analytics and language. He presented awards for best paper and best student paper.

On Technorati: , ,

Random Emacs symbol: eshell-post-command-hook - Variable: *A hook run after each interactive command is invoked.

OMG. Girls have the geek gene, too?! NO WAY!

October 18, 2006 - Categories: cascon, women

Girls have the geek gene, too, reports Jen Gerson of The Toronto Star. Read it and weep. Goodness gracious, someone *please* tell me that this is a satire article appearing in The Onion, not a serious article appearing in the I.D. section of a major newspaper.

The opening sentence starts the same way as most articles about women in technology, making us feel like an endangered species. (Crikey!) But then it gets worse, and worse, and worse. I feel like printing and framing it.

I.D. chatted with one of the key speakers, Dr. Telle Whitney, president of the Anita Borg Institute for Women and Technology, about why young women are frightened by the prospect of joining a field dominated by intelligent men who have no idea how to please them.

The things I could say about this...

So, women and technology. Why do they need their own symposium?

Because we're afraid of cooties. Snark snark snark.

Do you think fewer women are getting involved in technology because they're not as interested in it, or are they just not smart enough?

Could you possibly have a more provoking question if you tried?

But tech companies, they paint their electronics pink. Shouldn't that draw women in?

Apparently you *can* have a more provoking question.

So pink is not the way to go, for attracting women?

I like frilly interfaces and flowers myself. NOT.

Should we bring more women in? Aren't there few enough jobs in technology that we need to bring women too, into it?

Completely missing the point!

But how is it that women can juggle making computers with making babies?


But are the babies disruptive to the computers? How do you trust babies around all that sensitive equipment?

More than I'd trust a certain reporter, apparently.

The following segment is just... horrible.

  • Q Is Anita Borg a real name?
  • A Anita Borg was the founder of the Institute.
  • Q Was that before Star Trek: The Next Generation, or after?
  • A It was really her name.
  • Q Bad luck.
  • A She passed away a few years ago from brain cancer. She was a very dear friend of mine and I took over here a few years ago.
  • Q Oh. I'm a terrible human being. Is that what you're saying?
  • A No no, she used to have these big pictures of Borg all over her house. She was a Star Trek fan.




There are no words to explain how terrible the article is. It is downright irresponsible of the Toronto Star to publish something this insensitive and disrespectful, considering the pressures that are already on women in technology.

Should we cut Jen some slack just because she's a fourth-year Ryerson University journalism student, or the Toronto Star for giving its columnists free rein? At what point are journalism students supposed to gain common sense? Jen asked those questions, typed up the interview, and the Toronto Star published it. At what point was someone supposed to go, "Wait a minute, what is this article saying?"

ARGH! Read, blog, link, whatever: clueless journalist. Her e-mail address is jgerson@globeandmail.ca . Help her learn not to do that again.

On Technorati: , , , ,

Random Emacs symbol: compilation-find-file - Function: Find a buffer for file FILENAME.

I miss cooking

October 20, 2006 - Categories: cooking

Now that I'm back from CASCON, I can think about cooking again. For example, tomorrow, I am going to have a proper breakfast!

So I need to go buy groceries sometime. Hmm. I still have plenty of pasta to work through, but I need to combine that with some kind of veggie. Now is a good time to go through the meat in the freezer, too. I might as well.

I think I'll grab a pita, head back to the dorm, inventory my fridge, plan out my week, pick up some staples at Dominion, and then get back to blogging.

Random Emacs symbol: shell-directories - Group: Directory support in shell mode.

Notes from CASCON2006: Passion is the key to Web 2.0

October 20, 2006 - Categories: cascon

What do you as an individual need to do to make the most of Web 2.0? In the middle of answering this question as part of the Enterprise 2.0 panel at IBM CASCON 2006, I realized that nothing else is as important as passion. Passion leads to Web 2.0 success.

Passion > skill

I had started off thinking that communication skills were essential to making the most of blogging and other Web 2.0 opportunities. But I only learned how to write because I stumbled across something I wanted to write about.

Web 2.0 can help you find out what matters to you, and you can share that with the world. The most valuable thing you can do to make the most of Web 2.0, to make the most of *life*, is to find out what makes you uniquely you. That's how you get visibility. That's how you get audience. And that's how you'll rock your world.

Passion is more important than skill. You can learn anything you want to - if you want to. Passion will drive you to learn how to write, to blog, to link, to embed pictures and widgets. You can develop technical and communication skills along the way, but you *have* to give yourself permission to be bad before you can be better.

Write for an audience of one

A lot of people give up after posting a few entries on their blogs, discouraged by the lack of response. REALITY CHECK: You are not going to win any prizes for your first few blog posts. You are going to be BORING. Your coworkers might visit your blog out of curiosity, but they probably won't come back.

Writers don't win accolades for their first drafts. Scientists don't do their best work as undergrads. They all had to practice. They all had to develop their skills.

Write. Write for an audience of one. Write and write and write until you know what you're talking about. You'll feel some topics click with you. When you've written something you can't help but tell other people about, you've got yourself a blog.

So what's Web 2.0 about this? Can't you do this with a paper diary, too? Sure. But with Web 2.0, you can share your thoughts with thousands and thousands of other people who can give you suggestions and encouragement. You can be searchable. You can become an expert in your area.

But it all starts by writing for an audience of one. If you have other readers, great. Listen to them, but don't be afraid to lose them in order to follow your voice.

You're either visible or you're dead

Where can you find the time to do all of this? You make time for it. You have to. Stephen Perelgut pointed out that in the coming age, you're either visible or you're dead.

The cost of *not* getting into blogging will be really high. Traditional networking methods such as face-to-face meetings, phone calls, and e-mail will still be effective. However, blogs give bloggers so much of an edge when it comes to finding their passions, discovering common interests and building collaborative relationships. Can you afford to be outside this conversation?

Start today

Find your passion and learn how to share it with others. That's how you can make the most of Web 2.0. Browse through bookmarks at del.icio.us and see what strikes you. Bookmark websites and see how your tag cloud evolves. Read blogs and find out what you resonate with. Blog. Comment. Link. Share. Blog some more.

Web 2.0 can help you find Life 2.0. Have fun!

On Technorati: ,

Random Emacs symbol: gnus-topic-forward-topic - Function: Go to the next topic on the same level as the current one.


October 22, 2006 - Categories: -Uncategorized

<laugh> Okay, this not-working-on-Sunday thing is driving me nuts. I can't just sit around and do nothing all day; I have to be doing something! <impish grin> Maybe I should set aside Sunday evening for catching up with people, and Sunday (day) for a Hack Day or some other form of stretching myself. Mama's right - sleeping until noon is no way to spend a day. Not only does it throw my sleeping patterns off, but it throws me off as well.

And to think that I've got such a backlog of blogging...

There's nothing wrong with being on the computer on Sundays. <laugh>

Random Emacs symbol: remprop - Function: Remove from SYMBOL's plist the property PROPNAME and its value.

Excited about my DemoCamp presentation!

October 23, 2006 - Categories: democamp, emacs, pimpmyemacs

I've written a totally small-time presentation thingy that cues me thanks to Emacspeak. ;) Here's the setup code:

(progn ;; Setup
  (defvar democamp/presentation-file "~/democamp.el")
  (defvar democamp/cue-buffer "*DemoCamp*")
  (defun democamp/next ()
    (let (start sexp)
      (with-current-buffer (find-file-noselect democamp/presentation-file)
        (setq start (point))
        (setq sexp (buffer-substring-no-properties start (point))))
      (eval (read sexp))))

  (defun democamp/previous ()
    (let (start sexp)
      (with-current-buffer (find-file-noselect democamp/presentation-file)
        (setq start (point))
        (setq sexp (buffer-substring-no-properties (point) start)))
      (eval (read sexp))))

  (defun democamp/repeat ()
    (let (start sexp)
      (with-current-buffer (find-file-noselect democamp/presentation-file)
        (setq start (point))
        (setq sexp (buffer-substring (point) start))
      (eval (read sexp))))

  (defun democamp/say (text)
    (with-current-buffer (get-buffer-create democamp/cue-buffer)
      (insert text)
      (goto-char (point-min))
      (call-interactively 'emacspeak-speak-buffer)))
  (global-set-key (kbd "") 'democamp/next)
  (global-set-key (kbd "S-") 'democamp/previous)
  (global-set-key (kbd "C-") 'democamp/repeat)

On Technorati: , ,

Random Emacs symbol: gnus-multiple-choice - Function: Ask user a multiple choice question.

Demo camp: Online grading and code review

October 23, 2006 - Categories: democamp

The online grading and code review system demonstrated by Greg Wilson's students from the University of Toronto is really cool, and the kind of thing I'd love to see open-sourced and spread. I know my alma mater would find it handy!

Things I particularly like about it:

  • You can highlight a region and attach either a predefined comment or a new comment.
  • The support for rubrics makes grading much easier and more consistent.

Hmm, maybe the student view can be improved by making it easier for students to see all their projects.


  • Per project views, etc.
  • Accessibility guidelines
  • Downloadable spreadsheets
  • Usable for code reviews for open source projects? Won't be grading, of course, but interesting for annotation...

The developers said that Turbogears made development much easier. One of the biggest challenges that faced them was cross-browser Javascript. Another is that the school uses a different authentication system (Kerberos) than the one used by Turbogears.

On Technorati:

Random Emacs symbol: nnvirtual-find-group-art - Function: Return the real group and article for virtual GROUP and ARTICLE.

Demo Camp: Quotiki

October 23, 2006 - Categories: democamp

Quotiki has live search for quotes, which would be good if it was more responsive. For example, the search "caesar" just shows the results for "ca" even after a while. Tagging and bookmarking is great, of course, and if I can get a fortune file or RSS for my favorite quotes (there *must* be an RSS feed for this and all the other views), then that would be fun to pull into my blog.

Hmm. They've got some kind of hyperlinking going on when you hover over the quote, which may make it difficult to copy the text.

A podcast of quotes, too. Hmm. It's nice to go into the history of these quotes. =)

Hmm, interesting. Stumbledupon gave them lots of traffic.


  • Digg-style: Add some information to the large graphic elements at the left of each quote.
  • Blog widgets! Lots of blog widgets! QOTD, random quote, stuff for the sidebar...

On Technorati:

Random Emacs symbol: muse-replace-regexp-in-string - Function: Replace REGEXP with REPLACEMENT in TEXT.

Demo Camp: Broken Tomb: The world’s first commercial Smalltalk host

October 23, 2006 - Categories: democamp

Look! It's the Demo Camp of the Living Dead Languages! =D

Smalltalk is a fun language. I ran into it when a friend told me about Squeak, which is this *totally* awesome little 3D Smalltalk environment which you should try if only so that it can warp your brain.

I would do more Smalltalk, but Squeak is not fun to use when you don't really have a mouse. =) Maybe when I get a proper computer.

But really, it's adorable!

Okay, the demo is back on track. Okay... AJAX for Smalltalk... <laugh>

Murphy's Law unfortunately strikes again. I'll check this out later.


Random Emacs symbol: nnmail-purge-split-history - Function: Remove all instances of GROUP from `nnmail-split-history'.

On Technorati:

PBJ 1.0

October 23, 2006 - Categories: democamp

Kudos to the presenter for structuring the presentation for quick and early audience participation, and for taking on the challenge of writing something in realtime! =) He's doing a quick tic-tac-toe game with the help of some PHP code he prepared before and a framework called PBJ, which isn't linked on the Democamp site and is near-impossible to search for.

Look at that, programming with maybe a hundred people in the audience catching missing parens and stuff like that. =)

On Technorati:

Random Emacs symbol: gnus-article-washing - Group: Special commands on articles.

Hello world

October 23, 2006 - Categories: democamp

This is a blog entry

On Technorati:

Random Emacs symbol: eshell-script-load-hook - Variable: *A list of functions to call when loading `eshell-script'.

Emacs presentation was a blast!

October 23, 2006 - Categories: democamp

Had too much material (of course), but had tons of fun anyway. =) Blew people's minds. Yay!

On Technorati:

Democamp a blast! Blew their brains to bits

October 24, 2006 - Categories: democamp, emacs

I set out to geek the heck out of Toronto's hippest geeks, and I did. I showed them Emacs as they'd never seen it before—and even that was a tiny fraction of my config. Lots of cool stuff behind the scenes, too. When I showed them M-x doctor (the Emacs psychotherapist), someone shouted out, "Is Emacs talking to you?" I laughed and continued. What I *really* should've done was break the sequence of my presentation, hook up the speakers, and tell them about Emacspeak - presentation sequence be darned. ;) Oh, if they only knew how easy it was to make jokes reality under Emacs! I remember writing my 'bot implants' - the hippie-expand code I used to answer questions really really quickly on IRC...

Anyway. That was FUN. And it was relatively easy to get through, especially with the cue system I made (Emacspeak rocks!). I'll talk about that some other time. It's a really cool hack and well worth exploring.

SO. The democamp.ca folks will eventually get around to posting a vidcast. In the meantime, I have a 431MB MPEG movie that I need to either downsample or cut up in order to put online, maybe on YouTube. I don't have enough memory or hard disk space to play around with this (have you seen my computer?!), but I'll happily put the video up if we can figure out how to go about doing that.

If you enjoyed the talk, missed it, or just want to hear/see me bounce up and down about Emacs some more, come to the Linux Caffe on Saturday (Oct 28, 2006) from 1:00 PM to 3:00 PM. I'll be there, and we might even see about having some kind of mini-show / vidcast. I wonder if David has a projector. =)

That was fun! Can't wait to do it again!

On Technorati: , , , ,

Random Emacs symbol: comint-input-sender-no-newline - Variable: Non-nil directs the `comint-input-sender' function not to send a newline.

Terrible at remembering names?

October 24, 2006 - Categories: connecting

Check out this teacher-oriented article What's Your Name Again? by Mary !McKinney. It starts:

“I’m terrible at names,” complained my friend Steve. He’s a respected professor of entomology who is fascinated by ugly bugs that make many of us shudder. “Really?” I asked. “How many species of beetles can you identify by name?”


On Technorati:

Random Emacs symbol: comint-input-ignoredups - Variable: *If non-nil, don't add input matching the last on the input ring.

Not among strangers

October 24, 2006 - Categories: democamp

It's amazing, looking out over a crowd of some 70 people and realizing that very few of them are strangers. It was my first DemoCamp presentation. I jumped at the opportunity to wear my beautiful white suit (I *love* that outfit!), but neither the suit nor the stage (MaRS is big!) imposed any distance whatsoever. It felt as if I was sitting around a table with good friends who indulged me by listening to an enthusiastic demonstration of my latest cool hacks.

It helped that there was a low table that I could put my computer on so that I could do my demo without hiding behind the podium. (I hate podiums and other things that stand between me and the rest of the people!) The microphones were good, too. I left the podium microphones in place, and my natural presenting voice was strong enough to get picked up without effort. And of course, a warmed-up sympathetic crowd was just *wonderful* to work with... =)

I can't wait to work on a few more things. A lower voice might be easier to listen to, as long as I can still keep my warmth and humour. A slightly higher table would've been nice. More structure for the hacks, maybe a clearer message? But it was a fun presentation, and I'm glad I got the chance to show people something crazy and fun.

I'd like to refine this presentation even further. I have an important message I want to share with as many geeks as possible. I want people to push the boundaries, to imagine what's possible when software can be customized to that extent. Maybe the benefits will trickle down to everyone else, the way wild ideas in research prototypes can be taken into the mainstream...

On Technorati: , ,

Random Emacs symbol: emerge-revisions-with-ancestor - Command: Emerge two RCS revisions of a file, with another revision as ancestor.

Awww, good karma

October 24, 2006 - Categories: goodkarma, happy
You are really becoming an great speaker ;) btw, I was hanging around the back and overheard people asking if you had gone yet - apparently you were the only thing they were there for! awesome!

E-Mail from Mike Tsang

On Technorati: ,

Random Emacs symbol: color-values - Function: Return a description of the color named COLOR on frame FRAME.

10 rules for staying young

October 24, 2006 - Categories: life

Via Quinn, who got it from Richard, who got it from Dave Pollard, George Carlin's 10 rules for Staying Young:

  1. Throw out nonessential numbers. This includes age, weight and height. Let the doctors worry about them. That is why you pay "them".
  2. Keep only cheerful friends. The grouches pull you down.
  3. Keep learning. Learn more about the computer, crafts, gardening, whatever. Never let the brain idle. "An idle mind is the devil's workshop". And the devil's name is Alzheimer.
  4. Enjoy the simple things.
  5. Laugh often, long and loud. Laugh until you gasp for breath.
  6. The tears happen. Endure, grieve, and move on. The only person who is with us our entire life is ourself. Be alive while you are alive.
  7. Surround yourself with what you love, whether it's family, pets, keepsakes, music, plants, hobbies, whatever. Your home is your refuge.
  8. Cherish your health: If it is good, preserve it. If it is unstable, improve it. If it is beyond what you can improve, get help.
  9. Don't take guilt trips. Take a trip to the mall, even to the next county; to a foreign country but not to where the guilt is.
  10. Tell show the people you love that you love them, at every opportunity.

On Technorati:

Random Emacs symbol: byte-goto - Variable: Byte code opcode for unconditional jump.

Postfix TLS problems

October 24, 2006 - Categories: geek

It looks like my mail authentication has very quietly broken behind the scenes. I've been using SSH tunnel to get out to another host, and then TLS to authenticate against Jijo's mail server.

I think TLS is no longer doing its job, which is why Jijo's mail server is now rejecting all my mail. How do I go about troubleshooting this?

Hmm. HANG ON A SEC. This is dodgy.

telnet localhost 10025
Connected to localhost.localdomain.
Escape character is '^]'.
220 pd7mf1no.prod.shaw.ca -- Server ESMTP (Sun Java System Messaging Server 6.2-2.05 (built Apr 28 2005))
HELO sachachua.com

That's not the server I'm looking for! The port is supposed to be forwarding to mail.hosting.qsr.com.ph. I think Shaw may have just started transparently fiddling with its SMTP out.

That's not good. I don't know if I can find another way out, as I think Grad House or the university blocks port 25 out...

I rock! Mail back online

October 24, 2006 - Categories: geek

Stymied by the sudden breakage in my mail setup, I racked my brain for another way to get to the mail server in order to deliver my mail. None of the shell accounts I had on other systems were active, and none of the people I pinged were online.

I remembered that /etc/services was a list of well-known ports. If mail.hosting.qsr.com.ph was listening on another standard port, that would be a good place to find it. Searching this file for "smtp" turned up port 25 (smtp) and port 465 (smtp over SSL).

A quick check confirmed that port 465 was accessible from my computer even without tunneling.

All I had to do, then, was set up my mail system to use the new port.

I tried putting the port in directly. I also tried playing around with the configuration, but I couldn't find a clear tutorial.

I found stunnel along the way. Stunnel is a generic SSL tunnel for any network service, and it was really easy to set up. Here's my /etc/init.d/stunnel-mail based on http://www.technovelty.org/linux/tips/exim4ssmtp.html :

case "$1" in
    echo -n "Starting ssmtp tunnel "
    start-stop-daemon --start --quiet --exec /usr/sbin/stunnel -- -c -d ssmtp -r mail.hosting.qsr.com.ph:ssmtp
    echo "stunnel."
    echo -n "Stopping ssmtp tunnel "
    start-stop-daemon --stop --quiet --oknodo --retry 2 --exec /usr/sbin/stunnel
    echo "stunnel."
    $0 stop
    sleep 1
    $0 start
    echo "Usage: /etc/init.d/ssmtp-tunnel {start|stop|restart|reload|force-reload}"
    exit 1

Then it was just a matter of adding new entries to my sasl_passwd file and regenerating the map.

Nothing like a good problem solved!

Random Emacs symbol: visible-frame-list - Function: Return a list of all frames now "visible" (being updated).

Whoops, a little too hasty with the rm there

October 24, 2006 - Categories: geek

I accidentally deleted the second half of my workshop recording. Which is a pity, as it turns out you can get a fair bit of quality out of a plain recording.

Wow. The first one's not bad at all.

Random Emacs symbol: dump-emacs - Function: Dump current state of Emacs into executable file FILENAME.

mencoder rocks for editing movies

October 24, 2006 - Categories: democamp

I used my Sony Cybershot digital camera to take a video of my presentation at Democamp last night. The file weighed in at 400+ MB! After a bit of trial and error, I figured out how to use mencoder to crop to just me bouncing up and down and talking excitedly about Emacs. =) Here's the incantation I'm currently using:

mencoder -ss 111 -vf crop=275:300 mov07578.mpg \
         -of mpeg -oac mp3lame -ovc lavc -o emacs.mpg

I might need to tweak it a bit more. Still, mencoder is fun!

On Technorati: , ,

Random Emacs symbol: w3m-w3m-retrieve - Function: Retrieve web contents pointed to by URL using the external w3m command.

Progess report

October 25, 2006 - Categories: ibm, research

I've been with the IBM Toronto Center for Advanced Studies since February, and it's time to make a progress report. What have I done in the past eight months to create value for them and work on my research?

My work seemed pretty random in the beginning. I spent a fair bit of time just getting the feel of IBM, learning about the different services on IBM's intranet and making sense of the blogosphere. I had to be told to concentrate several times! ;)

The funny thing is that this random casting-about is probably *just* what I needed to do. My blog helped me meet other people working in the space, and I learned about visualizations and resources that I wouldn't have come across on my own.

The prototype that I made for kicks might be an interesting tool. The researchers I talked to found it novel...

What's next?

I need to sit down and just build the darn tool. I think it'll take me two, three weeks for the search engine, maybe another week for the aggregator. I already have most of the code. November will be my intensive hacking month, so don't expect to hear much from me externally.

Then I need to test the tool with people so that I have data that I can write up during my vacation. Early December?

On Technorati: ,

Random Emacs symbol: w3m-url-authinfo - Function: Return a user name and a password to authenticate URL.

Alumni networks and business networking sites

October 25, 2006 - Categories: connecting
The Greater IBM Connection

My notes from last month's Greater IBM networking party are in my backpack, just in case I find the time to write a trip report. They get me thinking: how useful are alumni networks, anyway? How can we use social networking to support people even when they leave an organization?

Pauline Ores pointed out that alumni need to find:

  • Candidates for open job positions in their company
  • Jobs for themselves or other people in their network
  • Clients or vendors

There's also a fourth need that I think alumni will definitely appreciate: keeping in touch with people in the organizations they've left behind, even when those people have moved on to other organizations.

Hmm. Are any of these needs compelling enough for some people to actively participate in a space, or can they be handled by basic social networking without the additional structure of an IBM group?

What value can IBM bring? I'll split this up into several blog posts and reassemble them into an article when we're done thinking out loud. Here's one of them.

Looking for candidates for an open position

IBM hiring is a vote of confidence in the person. Experience at IBM may be an asset that employers could look for. Would people explicitly search for IBM alumni when looking for candidates to fill a position. Does IBM want to encourage and support that?

We're looking at two use cases:

  1. Finding a list of people who are interested in a different position
  2. Advertising an open job position

It's unlikely that business networking sites will ever support case as such information is sensitive. Would you indicate on your profile that you're looking for a different job? Probably not.

Case 2 can already be done with current business networking systems. LinkedIn allows people to post job advertisements to their personal network. People can see these job ads when they log in. A group affiliation allows you to be part of a larger network without having to make all the connections yourself, which is useful.

If organization networks and other affiliations were automatically considered part of your personal network, the volume of information from IBM and all your other affiliations could be overwhelming. Filtering will become essential as volume grows. A smart social networking site would make it easy to filter displayed jobs by area of interest.

Jobs advertised through second- orA third-degree personal networks make sense because of referrals. Does it make sense to use second- or third-degree affiliations in your network? I think that affiliations might only be useful for the immediately-connected.

How would it work? If I want to advertise a position, it would be useful to be able to either explicitly activate a network (such as my Toastmasters network if I'm looking for people with good public speaking skills) or advertise to all my networks. It wouldn't make much sense for these jobs to be advertised to people without those affiliations, though.

To support the search for candidates, business networking services should make it easy to advertise jobs to selected networks of people.


On Technorati: , , ,

Random Emacs symbol: sacha/bbdb-gnus-ping - Command: Add a ping for authors/recipients of this message.

The magic of helping out

October 25, 2006 - Categories: life, purpose
Magic Johnson believed that if he helped everyone around him get what they wanted out of the game, then winning would always follow. And so would his own rewards, in their own time and of their own accord.

- From the Winner Within, by Pat Riley, coach, Miami Heat, as quoted in Business is a Contact Sport, by Tom Richardson, Augusto Vidaurreta, and Tom Gorman.

On Technorati: ,

Random Emacs symbol: next-file-list - Variable: List of files for M-x next-file to process.

Now that’s how to recruit!

October 25, 2006 - Categories: connecting
As part of its employee recruitment effort, Adjoined Technologies spent $20 apiece to have "care packages" delivered to 40 IT majors who were studying for their final exams at a nearby university. The packages included Starbucks coffee, Power Bars, snack foods, and such. Cost-benefit analysis told Adjoined that $800 spent on a memorable win for 40 hand-picked potential candidates is a bargain compared with scattershot advertisements in the Sunday paper for hundreds of dollars each or recruiter's fees of $2,000 to $3,000 per hire. Moreover, providing that win got the relationship between the company and the candidate off to a beautiful start. Adjoined did not offer a position to everyone in that group of 40, but every candidate who was extended an offer accepted it.

- From "Business is a Contact Sport", by Tom Richardson, Augusto Vidaurreta, and Tom Gorman

Now *that's* how to recruit!

On Technorati:

Random Emacs symbol: file-modes - Function: Return mode bits of file named FILENAME, as an integer.

Business is a contact sport

October 25, 2006 - Categories: book, connecting

"Business is a Contact Sport" by Tom Richardson, Augusto Vidaurreta, and Tom Gorman (ISBN 0-02-864163-9) makes the case for a dedicated Chief Relationship Officer or a team for dealing with all the important relationships a company has. It contains twelve principles:

  1. See relationships as valuable assets.
  2. Develop a game plan.
  3. Create ownership for relationships
  4. Transform contacts into connections.
  5. Move into the win-win zone.
  6. Get to know your stakeholders as people.
  7. Build bonds of trust with all stakeholders.
  8. Banish relationship killers.
  9. When something breaks, fix it fast.
  10. Get rolling and maintain momentum.
  11. Maximize the long-term value of relationships.
  12. Keep the wins coming, stakeholder by stakeholder.

The appendix is pure gold. It's a list of typical wins for the different stakeholders in company relationships. Keep it in mind when you're dealing with people, and look for ways to help them win!

On Technorati: ,

Random Emacs symbol: auto-coding-regexp-alist - Variable: Alist of patterns vs corresponding coding systems.

(MUST find a better way to blog about books...)

KMD2004 meeting

October 26, 2006 - Categories: -Uncategorized

Start: 2:15 PM
End: 4:00 PM
Dave Kemp, Sacha Chua, MJ Suhonos

  • Sacha will send Dave Kemp login information for the wiki
  • Discussed feedback on actor-network map; needs more focus, technological actors, adversarial relationships to change it from a system diagram into an actor-network map
  • Confirmed deadlines for backgrounder articles and integrative summary (Nov 14)
  • MJ Suhonos mentioned First Monday issue on open science that contains an article about confluence of open source, Creative Commons, open science
  • Chatted about Project Open Source, Open Access
  • Tentative internal deadline Nov 7
  • Will meet again Nov 9
  • Draft backgrounder article on the wiki
  • Sacha is focusing on remixers, Dave is focusing on free riders, MJ can focus on producers
  • Keep an eye on the context so that we can write the integrative summary
  • We will revise actor-network map and submit for remarking
  • Discussed intervention piece: press kit for EEL
  • Revised actor-network map

Random Emacs symbol: eshell-parse-command - Function: Parse the COMMAND, adding ARGS if given.

What does a portfolio for a tech evangelist look like?

October 26, 2006 - Categories: career

Software developers show printouts of code. Artists bring a portfolio. What does a tech evangelist wannabe show?


Speech transcripts?

A short pitch for something interesting?


On Technorati:

Looking for a personal board of advisors

October 27, 2006 - Categories: career, life, reflection

I won't be going to the Free Software and Open Source Symposium tomorrow because I'm meeting Stephen Perelgut and a possible mentor for lunch.

I'm really lucky to know people like Stephen Perelgut, who reminded me in his e-mail:

And, for the record, you are in a rush. You may not know it yet, but you're very ready for a mentor. Just accept that the inner-parent in me "knows".

I need a mentor. I need more than one mentor, actually. If I'm thinking of being in Canada for a while, I'll need a whole new personal board of advisors. I miss talking to my parents, my godparents, and other people back home. It's hard to talk about everything, though, because so much context is missing. I can't blog everything, and it's hard to explain things over the Internet! I need people I can talk to here.

I'm growing rapidly, and opportunities unfold everywhere I turn. I need to make sure that I'm growing sustainably and in the right direction(s). I have a lot of hats on at the moment, and I'm having a hard time fully living up to some roles. Here's what's on my plate:

  • Graduate student (MIE1402, KMD2004)
  • Researcher (IBM CAS project, University of Toronto)
  • IBM 2.0 evangelist - I could do a whole lot more than I am right now
  • Graduate House Council member - sustainable
  • VP Education, Toastmasters - I don't do enough to help out with this
  • Daughter, sister - I don't keep in touch well enough
  • Friend - I don't keep in touch well enough

And somewhere in there is the networking I also care about and love doing...

I have a number of goals, too, and I need help figuring out which goals really matter to me and how I can go about accomplishing them. My short-term goals are easy to figure out:

  • Finish my schoolwork.
  • Finish my thesis.

But I'm not spending all my waking hours doing these things because I'm also trying to build a few more things before I need them. An excellent professional and personal network. A personal brand. Useful skills.

I remember how my very first roommate finished her project with CAS, looked up, and found herself without any job offers despite having a MS from the University of Toronto. I don't think I'll be in that situation, and even if I were, I have confidence in my contingency plans. (I can do a lot of cool stuff in the Philippines!) So it's not that I'm in a rush to do all of these things, to write that bestselling book, etc. I know there's time.

I have to admit, though, that it's *very* hard to resist the urge to focus on things outside my short-term goals. I feel that I could make such a difference if I concentrate on, say, IBM 2.0 evangelism: pour myself into it, devote my energies to it, make it happen. I feel that the time would be right for such things, too. Thanks to the constant reminders of my research manager (Hi Julie!) and the occasional restraining hand placed on my head (Stephen's figured out how to get me to stop bouncing, at least temporarily), I do manage to resist it. Barely.

This is one of the reasons why I really need a board of directors whom I can tell about opportunities, ask for advice, think things out loud with, hold myself accountable to...

And I'm surrounded by wonderful, wonderful, wonderful people whom I am glad to have as part of my life and whom I would love to include in whatever successes I may have.

Quinn Fung, Dan Howard, and Jed Smith have taught me so much about love and friendship. I owe them big time.

Stephen Perelgut is practically on my board already, what with all his help and support. I'm really, really grateful for his help.

Gabriel Mansour has volunteered to be on my board. He's my crazy-idea go-to person who can enthuse about my crazy ideas and help me figure out how to make things happen.

Ian Garmaise has taught me a lot about networking and speaking, and I look forward to learning more from him.

There are others, but it's 2 in the morning and I need to sleep at some point. =) And of course, there's my extended circle of mentors, and that could include you reading my blog: thank you for putting up with my random thoughts and telling me about everything from how to prepare really good oatmeal to free software evangelism opportunities!

So yeah, I need a board of directors. They don't have to read my blog (I write way too much), but I'd like to keep in touch with them quarterly at least. Probably monthly, as I'm changing so much. I need that help as I'm growing. I also need to find role models who have succeeded at the things I want to do, so that I can learn from their insights...

I'm 23 years old. I haven't quite figured out life yet. With your help and theirs, I'm slowly getting there.

E-Mail from Stephen Perelgut

On Technorati: , ,

Random Emacs symbol: ps-mule-plot-composition - Function: Generate PostScript code for plotting composition in the region FROM and TO.

UPDATE: Changed "directors" to "advisors" now that I understand more. =) Dec 10 2009

Livin’ la Vida Emacs

October 27, 2006 - Categories: goodkarma, happy

Squee! <bounce, bounce, bounce>

Democamp10: Back at Mars

Last, and certainly not least was Sacha Chua. If we could harness it I'm pretty sure we could power a few small cities of the energy that's contained in this one, tiny person - especially when you get her talking about Emacs. Sacha's demo, entitled, "Livin' la vida Emacs" was hands down the most entertaining of the evening. Sacha has basically taken this simple, extendable text editor and pushed it about as far as it can go - at DemoCamp10 she pulled back the curtain and showed us all her little systems and apps she's created in it. I like my GUI/Windows so the whole text-based thing isn't for me but it certainly was interesting to see just how strung out she's got that machine.

DemoCamp10: Congratulations

DemoCamp 10 was held last night, and three of the five presentations were from U of T. Sana Tapal (now at Jonah Group) and Andrey Petrov led off with the Online Marking tool; Jonathan Lung (who was part of the student team that presented at DemoCamp 5) showed us all how productive PHP procrastination can be; and Sacha Chua tried to convince us that Emacs isn’t actually bad for you. The other two demos were a social networking/quotes site called Quotiki.com, and Broken Tomb, which advertises itself as the world’s first commercial Smalltalk host. There wasn’t any new technology, but the presenters were entertaining, and it was fun to read the stuff that flashed by on the screen during their demo; the Smalltalk demo had a lot of technical and other difficulties.

Demo Camp Toronto 10 : The return to MARS

Sacha Chua showed off what can be done in the scriptable environment, in this case emacs, as she went from Text editor, to a.i. doctor, to game engine to task / email organizer and beyond. Sacha was six feet tall on that stage, even though she did not actual levitate at anytime (although she came close, as always). A Tour de force of the Emacs, a text editing tool built in a interpreted lisp language environment, bascially a personalized productivity platform which allows for massive customization. Sacha had the crowd entertained and enthralled. (Sacha blogged her own impressions and mentions that Emacs was speaking to her!)

What would you do with Sacha Chua?

Within Toronto’s Web community, Sacha Chua has become one of the leading “personalities”. Armed with infectious enthusiasm, charm and smarts, she would be an excellent person to hire once she graduates from UoT. The key question is how best to use her talents. It would probably be as a “super customer service rep, who can come into a bad situation and get everyone happy by the time she leaves. If I was an HR person from Microsoft, IBM,, etc. I’d be knocking on Sacha’s door ASAP.

On Technorati: ,

Planet Emacsen

October 27, 2006 - Categories: emacs, pimpmyemacs

http://planet.emacsen.org/ by Edward O'Connor. 'Nuff said! =D

On Technorati: ,

Random Emacs symbol: ido-subdir - Face: *Font used by ido for highlighting subdirs in the alternatives.

Keeping track of the age of messages

October 27, 2006 - Categories: emacs, pimpmyemacs

I can get pretty bad at responding to e-mail. This is an experiment to see whether the negative reinforcement of seeing just how old a message is will help me be more responsive. Either that, or I can strive for a Mean Time Between Responses of whatever... ;)

Hmm, maybe I should combine this with my blog and start distinguishing between E-mail to and Reply to...

(defadvice gnus-post-news (around sacha/gnus-track-message-age activate)
  "Insert a header showing how old a message is, to shame me into replying faster."
  ;; Before you post the news, figure out how old it is
  (let (days)
    (when article-buffer
      (setq days
            (- (time-to-days (current-time))
    (when days
      (goto-char (point-min))
      (when (re-search-forward "--text follows this line--" nil t)
        (forward-line 1)
        (insert "In reply to a message sent by "
                (mail-header-from message-reply-headers)
                " "
                 ((= days 0) "today")
                 ((= days 1) "yesterday")
                 (t (format "%d days ago" days)))
                ": \n\n")))))
(setq message-citation-line-function nil)

On Technorati: , ,

Random Emacs symbol: tramp-perl-directory-files-and-attributes - Variable: Perl script implementing `directory-files-attributes' as Lisp `read'able

Heavy stuff nearer floor = good

October 27, 2006 - Categories: life

I can't believe I hadn't thought of this earlier. The perfect place for my heavy suitcases is, of course, *on the floor* instead of on the top shelf. Granted, the suitcases very neatly fit on the top shelf and that's the best way to keep them out of the way, but it was just such a mission (and a hazard!) getting them up there in the first place. The sweater organizers I use to keep matching clothes together easily squish up to accommodate the suitcases under them.

Slowly figuring out how to organize my stuff.

Random Emacs symbol: eval-expression-print-length - Variable: Value for `print-length' while printing value in `eval-expression'.

Don’t sell; help people buy

October 27, 2006 - Categories: connecting

A book I'm reading right now (151 Quick Ideas to Get New Customers, by Jerry R. Wilson) notes that people hate it when you sell to them, but love it when you help them buy. That could be why Microsoft's evangelists are now called advisors, which makes sense in the more-about-helping-you kind of way.

I've gotten many positive comments about the unofficial title of "evangelist" that's in my ~/.signature and my business card. I'm thinking of changing that, though, to reflect market trends. ;)

I'm not too keen on "advisor" because I'm younger than most people, but "advocate" might be a fun word to try. There seems to be an interesting distinction between a technical advocate and a technology advocate. I feel that a technical advocate is someone who's on your side, and a technology advocate is on the technology's side. Hmm...

Something to think about and test on other people.

Halloween party downstairs, but not in the mood

October 29, 2006 - Categories: life

The Graduate House Halloween bash is still going on downstairs. The loud whoops seem to indicate that people are still having tons of fun. But I don't have any energy. I feel so out of things.

This lethargy started at dinner. Maybe an MSG overload at the Japanese place we went to? Not eating there again.

But there's also... well... it's never really been my scene. That's why I still insist that I'm an introvert. I don't get a thrill out of just partying.

I'm tired. I don't want to meet more people right now. I want to get to know the people I know, and maybe go from them to the people they think I should know.

The high energy, bubbly person most people know - that's me. That's a real me. But there's also a quieter, deeper me. That's a real me, too. I think it's time for people to get to know that side of me. (That said—I might be quieter, but I still think life is good!)

Or maybe this is just the MSG talking...

Random Emacs symbol: mail-extr-disable-voodoo - Variable: *If it is a regexp, names matching it will never be modified.

Stuffed toy!

October 30, 2006 - Categories: -Uncategorized

My mom sent me a penguin stuffed toy! =) And cute cat self-adhesive notes! And a Halloween gift box with a cute cat on it! =) Awww...

Random Emacs symbol: ucs-input-activate - Function: Activate UCS input method.

Activity ideas, or Spending-time-with-Sacha-HOWTO

October 30, 2006 - Categories: life

A good way to grow friendships (or relationships, for that matter) is to do non-work stuff together. I initially stuck this under OnLove#date-ideas, but realized it was generally applicable.

Objectives for activities:

  • Enjoy life
  • Get to know each other
  • Share experiences: "Remember when..."
  • Expand our experience and try something new
  • Work towards goals
 Familiar surroundingsChange of scene
  • Conversation
  • Playing board games like Scrabble or chess
  • Watching a movie (thought-provoking, uplifting, funny, senti (but not cheesy))
  • Reading books and sharing ideas
  • Playing billiards
  • Meditating
  • Exploring art and culture (see below)
  • Learning a foreign language
  • Walking around, preferably near water
  • Exploring art and culture
  • Window-shopping
  • Attending a lecture
  • Visiting friends
  • Picnicking
  • Golf
  • Badminton
  • Larger conversation / dinner party
  • Hack night
  • Goal sprint - pick a goal and work towards it
  • Table tennis
  • Foosball
  • Attending a tech event
  • Volunteering: canvassing, etc.
  • Rockclimbing
  • Tennis
  • Skating
  • Power-walking/running
  • Biking

Art and culture

  • sketching
  • working with clay / pottery / sculpture
  • listening to music
  • making music
  • reading
  • writing (poetry, short stories, nonfiction)
  • developing a better sense of design
  • taking photographs
  • going to a museum or gallery (realistic paintings, photographs, sculptures)
  • watching a play

Feel free to suggest more!

Random Emacs symbol: bbdb-finger-host-field - Variable: *The field for special net addresses used by "M-x bbdb-finger".

Remembering to breathe

October 31, 2006 - Categories: life

One of the things about always being on, always working on stuff, is that it's sometimes hard to remember to just breathe. I'm glad that Simon's around to remind me of these things and to share those moments. He came over last night. We talked until almost one o' clock. I showed him the video of my Emacs presentation, and he laughed and regretted missing it. Much of the time, though, we just sat on the couch and relaxed. Note to self: when I have my own place, I need a more comfortable couch...

The programming competitions continue…

October 31, 2006 - Categories: emacs

Didith Rodrigo's blog post about Ateneo's performance in the ACM Intercollegiate Programming Competition reminded me that the first-years I taught are in their fourth year now, and will soon face the Real World. I miss teaching...

Random Emacs symbol: planner-page-name - Function: Return the canonical form of a Muse page name.