6200 comments
2357 subscribers
Follow me on Twitter (@sachac)
Subscribe! Feed reader E-mail

How I got hooked

I fell in love with Emacs because of Planner and Remember. I got hooked. By that, I mean that I discovered the joys of modifying the behavior of other people’s code through hooks. Well-written Emacs code has plenty of entry points so that you can change things without rewriting everything, and both Planner and Remember were well-written. The flexibility that John Wiegley had built into Planner and Remember (in his spare time!) convinced me that I absolutely needed to learn Emacs Lisp. I e-mailed John, singing high praises about Planner and volunteering to help track down any bug reports so that I could learn in the process of helping others.

What did he do? He made me the maintainer for Planner, the go-to person, the buck-stops-here person. Was I terrified? My first time being in charge of an open source project, a language that I had just begun to learn, and schoolwork to do on top of all of that… Of course I was scared. I found a way to make working on Planner part of my final-year project (might as well get academic credit for hacking on it!), made the Emacs Lisp Intro and the Emacs Lisp manuals my weekend, bedtime, and mealtime reading. Back then, Planner.el was one file, which made it a little less intimidating.

At first, I found it hard to think of a way to improve Planner, which was already a great way to track my tasks. Remember was also a good way to jot down short notes that were automatically added to my Planner day page. Both Planner and Remember had some support for picking up hyperlinks to whatever I was looking at when I created the task or note. What was missing? Timestamps so that I could tell when I wrote a note; more link support so that I could automatically link to a file or a mail message or a contact record; private, perhaps even encrypted segments; copying a note to another page; publishing a blog as RSS… For the next few years, I worked with incredible people who had thought
long and hard about how they managed their tasks and their notes, and
who taught me how they did things through their feature requests and
their code. I became more comfortable in Emacs Lisp than in any other computer language I knew (eventually maintaining Remember as well), I had formed a thriving community of about 200 people around the world who also contributed ideas and code, and I was hooked.

Because I could change so much about Emacs, I had so much fun
coming up with creative applications. When a friend and I
were studying Japanese, she wanted to know if I could set up Emacs with
flashcards and example sentences so that we could learn words in
context. I knew that Jim Breen had a huge database of example Japanese
sentences with their English translations and that this was freely
available on the Net. I downloaded the database and–one crazy idea
fueled by another in that natural sugar high that can happen when two
geeks start brainstorming–I made our learning fun by
extracting all the cat- and kitten-related sentences. This is how I
learned about such wonderfully onomatopeic words as “fuwafuwashita”,
which means “fluffy”. We both adored cute little kitties, and reading
example sentences about these furballs would make our studies
delightful. Now, where could we put these sentences so that we’d run
into them often? Aha! Remember! Every time we wrote a blog post or
needed a scratch pad to store some information, we would be rewarded by a
short sentence in Japanese about cute little kittens, and we could look
up the meaning and pronunciation with custom keyboard shortcuts. And
hey, it worked for me–I found myself writing because I wanted to see
what sentence would come up, and I found myself learning because I’d
run into all these cool words. For variety, I switched to sentences
about computers and other topics that I wanted to be able to discuss.
Try getting your blog editor or note manager to reward you each time you share a story or write down a tidbit of information. There is incredible power in customizing your note-taking system to just the way you think, and when you combine that with the delight of a surprise, you have something that is difficult to do with any other system–paper-based or electronic, text-based or graphical, commercial or free.

I turned the projects over to other maintainers when I started with graduate school, but as you can see, I still love working with Emacs. My mind does this little somersault of joy when I pull off a particularly nifty tweak or when I run across a beautiful piece of code. And yes, one of the reasons why I’m writing this book about Emacs is because I’d love to have an opportunity to explore all the nooks and crevices of this piece of software–well, not all, because by the time the book hits press, people will have added even more.

In this chapter on notetaking, I hope to be able to show you the mechanics of note-taking in Emacs–but more than that, I hope to show the sheer joy of having a system that you can play with, of not just filing notes in a database but M-x remember-ing in a system that will make you smile or laugh, of shaping and reshaping things until they fit you like clay fits your hand. Come and have fun.

Short URL: http://sachachua.com/blog/p/4672
  • Clair

    Hahaha! I remember that fuwafuwashita thing from almost two years ago! XD *glomp*

    It was really hilarious, like we were on crack, as some people would say. But in any case that was one of the really nifty things you showed me about Emacs! You even made sure I had the emacs-goodies package.

    There’s probably something in Emacs for everyone. If only they have the chance or somebody could point to them what that thing is.

  • http://sachachua.com Sacha Chua

    That was a brilliant idea, Clair. =) Wouldn’t have ended up with all those wonderful taglines without your crazy suggestion!

  • http://goodbyecorey.com Jonathan Mark

    Sasha, what kind of blogging software do you run this site on? I also, in the spirit of learning, wanted to ask you if the two-columns-on-the -right, none-on-the-left approach is better than separate columns on the right and left.

    I ask because it seems to me that two narrow columns next to each other are harder to read. But I could be wrong.

  • Simon Castillo

    I have just started to use Emacs as my full time editor. I have started to customize it with functions I find around, and my own functions.

    I am pretty happy with it right now but at the same time I know I am only on the tip of the iceberg. This post makes me keep going and trying to learn more about Emacs.

    Thanks for those inspiring words.

  • http://sachachua.com Sacha Chua

    Jonathan: This one’s WordPress, but I often pull in posts that I’ve written in Emacs and published using Planner, just because writing in Emacs is more fun for me. =) I do that with the Feedwordpress extension to WordPress, which monitors the RSS feed for my Emacs-published blog and pulls in new or updated posts.

    Simon: Emacs gets more and more interesting the more you learn about it. I hope you have lots of fun! You should check out Emacs Wiki and Planet Emacsen for all sorts of good stuff.

  • James O’Beirne

    This is what computing is all about: the integration of ability, ideas, and will. Congratulations!

  • http://sachachua.com Sacha Chua

    Thanks, James! I look forward to many more experiences like that, and to helping others try it out. =)

  • Raymond Zeitler

    You were scared when you offered to maintain Planner? Wow, you did an awesome job! Maybe it was the fear that made you strive to do a great job!

    Perhaps you should add this to your list of life’s lessons: “Do something scary.” But maybe you already know that, since you’re practicing trapeze!

On This Day...

  • 2013: Weekly review: Week ending January 11, 2013 — It was an awesome week. I hit the ground running in my consulting engagement, coming up with a useful feature [...]
  • 2012: Work, extracurriculars, and measuring time: an epiphany — I remember now why I had stopped tracking time before. Breaking things down at the project level made me feel [...]
  • 2011: Three tips for cheerful chores — I’ve been taking a closer look at household tasks that I could outsource or simplify. Groceries, laundry, cleaning, cooking… [...]
  • 2010: Facilitation: Thinking about the ends and means — I want to learn more about facilitation. What does better facilitation look like? Thinking about that will help me figure [...]
  • 2010: A night with the barkada — I’m trying to figure out how to explain to other people what this barkada thing is like, but it’s hard. [...]
  • 2010: Cats in high places — “What am I going to do?” my mom asked. “There are two kittens near the catwalk, and they’re coloured like [...]
  • 2009: Stick figures on campus; IBM at the University of Toronto — As a favor to Stephen Perelgut (one of my mentors) and because I happen to really like working with IBM, [...]
  • 2009: Blogging helps — People often tell me that they’ve thought about blogging, but they don’t know if anyone would be interested in what [...]
  • 2008: Someday like seas
  • 2005: Emacs for Authors — http://www.therandymon.com/papers/emacs-for-writers.pdf A book writer has written a guide on how to use Emacs in lieu of mainstream word processors. Check it out! Post [...]
  • 2005: two-mode-mode: Multiple modes in one Emacs buffer — two-mode-mode allows you to switch between two major modes in a single buffer. You can find it at http://www.dedasys.com/freesoftware/files/two-mode-mode.el If you need to [...]
  • 2004: Knowing one’s self — Yesterday found us at the Greenbelt mall. Kathy wanted to watch Buffalo Soldiers – she heard it was a comedy. My [...]
  • 2004: On technology and lifestyle — About my father Perhaps he and I are more similar than we thought. I know I am cross and irritable when my [...]
  • 2004: Timestamps all screwy — I suspect my computer does _not_ keep time in GMT, annoying as heck. Oh, it does that on suspend.
  • 2004: committing — The proper thing to do when C-x v v is called and files are modified depends on whether or not multiple [...]
  • 2004: Emacs hacks — (defun sacha/reverse-line () (interactive) (let ((string (buffer-substring (line-beginning-position) (line-end-position)))) (delete-region (line-beginning-position) (line-end-position)) [...]
  • 2004: “Head-Up Displays Get Second Chance” — Carmakers and suppliers expect head-up display (HUD) technology to get a new lease on life with the advent of multicolor light-emitting [...]
  • 2003: Life is good — reflections () — So… hmm. Life is good. =) Let’s see. My grandmother (father’s mother) died at the ripe old age of 92, 93, or 94, [...]