March 2014

Weekly review: Week ending February 28, 2014

March 1, 2014 - Categories: weekly

It turned out to be course selection time for Grade 11 and 12, so we spent the week discussing options. Intense stuff. J- does well in science, tech, and math courses, so we’re leaning towards those types of courses. I’m setting up various (paid!) work tasks to give her a flavour of the kinds of skills people are looking for, too. If she can pick up computer programming skills through robotics and web development, she’ll probably be well-suited for co-op and university programs.

That took just about all of our brainspace for the past week. I have to catch up on planning, writing, and creating. It was time well spent, though.

Blog posts

Sketches

  1. 2014.02.24 Aha, a plan for the things I want to write #experiment
  2. 2014.02.24 Emacs tips – use Dired to manage files #dired #emacs
  3. 2014.02.24 Reminding myself of freedom #freedom #experiment
  4. 2014.02.24 Yes, but how do you make money #experiment #business
  5. 2014.02.26 Thinking about delegation and projects #delegation
  6. 2014.02.27 Art #goals #drawing
  7. 2014.02.27 Automation #goals #automation
  8. 2014.02.27 Delegation #goals #delegation
  9. 2014.02.27 Design #goals #design
  10. 2014.02.27 Development #goals #coding
  11. 2014.02.27 How can I make it easy to print collections of my sketches #packaging #sharing
  12. 2014.02.27 Learning from people #goals #my-learning
  13. 2014.02.27 Map for getting the hang of Emacs movement #emacs #map #guide
  14. 2014.02.27 Thinking of tasks I can assign to J- to help her build her skills #delegation
  15. 2014.02.27 Writing #goals #writing
  16. 2014.02.28 Are there ways for organizations to help me scale #experiment
  17. 2014.02.28 What outcomes do I care about #experiment

Link round-up

Focus areas and time review

Reflecting on what I want to contribute to and how interested people might (semi-)work with me

March 3, 2014 - Categories: experiment

From time to time, people ask me if I’d be interested in working with them to make something bigger happen. I’m getting better at saying no. I want to focus on learning how to direct my own life. Other-directed work is seductive. Clear tasks! Appreciation! My mind wanders back to it, thinking about whether it’s better to spend this hour doing something I know people want, or something that I think might help me and others grow.

2014-02-21 Untangling myself from client work #experiment

2014-02-21 Untangling myself from client work #experiment

But I have the space to explore more, and I need to learn how to use it. Sometimes, to remind myself, I flip through the spreadsheets of my finances and projections. I joke about this being an experiment with semi-retirement. I don’t know how close to the truth it is, since circumstances can always change, but I’m ahead of where I had hoped to be. If the numbers do work out, what difference would it make? Mainly the freedom to focus on things beyond what people are clearly willing to pay me for. People might be able to pay others to do the same work I would have done, but few people are in the position to do the things I can choose to do.

2014-02-24 Reminding myself of freedom #freedom #experiment

2014-02-24 Reminding myself of freedom #freedom #experiment

What do I care about, then? What do I want to work on building as part of this experiment? What outcomes do I want to support?

2014-02-28 What outcomes do I care about #experiment

2014-02-28 What outcomes do I care about #experiment

At least for the duration of this 5-year experiment, I don’t need a salary or a flow of clients. The only reason to work with an organization or enter into any new partnerships, then, would be to take advantage of the scale in order to do things that I can’t do as effectively on my own. So far, I’ve been referring all work to other people (except for previous commitments). Would there be reasons for me to connect with other people who are working towards similar goals, whether through a formal partnership or an informal relationship?

2014-02-28 Are there ways for organizations to help me scale #experiment

2014-02-28 Are there ways for organizations to help me scale #experiment

So that points out a few possibilities for relationships:

I think I’ll do this on a free/pay-what-you-want basis as well, as an experiment. I want people to talk to me, because I learn a lot from the process. Comments, conversations, confederacies, and long-term relationships are awesome. If you’re charging people for stuff (directly, through sponsorship, etc.), it’s probably fair that you pass some revenue on as a way of indicating the value you perceive. That mostly translates into more experiments anyway, so you can indirectly encourage me to explore the kinds of stuff you’re also interested in.

Hmm. That might be a good way for me to focus on the stuff that I want to happen, while allowing other people to link up in case we can collaborate on shared goals. I’m not going to subsume my goals under anyone else’s, but if there’s low-hanging fruit that I can easily reach and pick for you while I’m on my way to what I want, I might as well – especially if it gives you a boost so that you can pick your own low-hanging fruit better. =)

So what this might look like in real life is:

That should be good for letting me give focused, specific help, while keeping my mind uncluttered so that I can focus on the things I want to do that are less common. =) Let’s see how it works out!

More notes on managing a large blog archive: 17 things I do to handle 10+ years of blog posts

March 4, 2014 - Categories: blogging, wordpress

I’ve been thinking a lot about how to manage a large archive to encourage discovery and serendipity, and to make it easier to fish out articles so that I can send them to people. I started in 2001-ish and have more than 6,500 posts. There’s not a lot of information on how to manage a large archive. Most blogging-related advice focuses on helping people get started and get going. Few people have a large personal archive yet. I love coming across other bloggers who have been at this for more than ten years, because information architecture is fascinating. Here’s what I do, in case it gives you any ideas.

  1.  I set up Google Chrome quick searches for my blog, categories, and tags. This means I can quickly dig up blog posts if I remember roughly where they are. (Gear > Settings > Search > Manage Search Engines):
    • Blog (b): https://www.google.ca/search?q=site%3Asachachua.com+%s
    • Blog category (bc): http://sachachua.com/blog/category/%s
    • Blog tag (bt): http://sachachua.com/blog/tag/%s
  2. I create pages with additional notes and lists of content. I use either Display Posts Shortcode or WP Views, depending on what I need. See the Emacs page as an example.
  3. I’ve started using Organize Series to set up trails through my content. It’s more convenient than manually defining links, and it allows people to page through the posts in order too. Read my notes to find examples. I’m also working on maps, outlines, and overviews.
  4. I’ve also started packaging resources into PDFs and e-books. It makes sense to organize things in a more convenient form.
  5. I converted all the categories with fewer than ten entries to tags. Categories can get unwieldy when you create them organically, so I use categories for main topics and tags for other keywords that might graduate to become categories someday. I think I used Categories to Tags Converter or Taxonomy Converter for this. Hah! Similar Posts reminded me that I used Term Management Tools. Awesome.
  6. I manually maintain a more detailed categorical index at sach.ac/index. This makes it easier for me to see when many blog posts are piling up in a category, and to organize them more logically.
  7. I set up short URLs for frequently-mentioned posts. The Redirection plugin does a decent job at this. For example, people often ask me about the tools I use to draw, and it’s great to just be able to type in http://sach.ac/sketchtools as an answer.
  8. I post weekly and monthly reviews. The weekly review includes links to that week’s blog posts, and the monthly review includes a categorized list. I’ve also set up daily, weekly, and monthly subscriptions based on the RSS feeds. This is probably overkill (more choices = lower subscriptions), but I want to give people options for how frequently they want updates. The weekly and monthly reviews are also helpful for me in terms of quickly getting a sense of the passage of time.
  9. I use Similar Posts to recommend other things people might be interested in. There are a number of similar plugins, so try different ones to see which one you like the most. I tried nRelate and the one from Zemanta, but I wasn’t happy with the way those looked, so I’m back to plain text.
  10. I show recent comments. People often comment on really old posts, and this is a great way for other people to discover them.
  11. I use post titles in my next/previous navigation, and I labelled them “Older” and “Newer”. I think they’re more interesting than
  12. I customized my theme pages to make it easier to skim through posts or get them in bulk. For example, http://sachachua.com/blog/2014/02 lists all the posts for February. http://sachachua.com/blog/2014/?bulk=1 puts all the posts together so that I can copy and paste it into a Microsoft Word file. http://sachachua.com/blog/2014/?org=1 puts it in a special list form so that I can paste it into Org Mode in Emacs. You can also pass the number of posts to a category page: http://sachachua.com/blog/category/drawing/?posts_per_page=-1 displays all the posts instead of paginating them. These tweaks make it easier for me to copy information, too.
  13. I give people the option to browse oldest posts first. Sometimes people prefer starting from the beginning, so I’ve added a link that switches the current view around.
  14. I have an “On this day” widget. Sometimes I notice interesting things in it. I used to put it at the end of a post, but I moved it to the sidebar to make the main column cleaner.
  15. For fun, I have a link that goes to a random post. I used to display random post titles in the sidebar, which might be an interesting approach to return to.
  16. I back up to many different places. I mirror my site as a development environment. I back up the database and the files to another web server and to my computer, and I duplicate the disk image with Linode too. I should set up incremental backups so that it’s easier to go back in time, just in case.
  17. I rated my posts and archived my favourite ones as a PDF so that I’ll still have them even if I mess up my database. Besides, it was a good excuse to read ten years of posts again.

Hope that gives you some ideas for things to experiment with! I’m working on organizing more blog posts into trails and e-books. I’m also getting better at planning what I want to write about and learn. If you’re curious about any of the techniques I use or you want to bounce around ideas, feel free to e-mail me at sacha@sachachua.com or set up a chat.

Do you have a large blog? How do you manage it?

Delegation update

March 5, 2014 - Categories: delegation

Since February 17, 2012 (the beginning of my experiment with self-directed work):

I was at a 1 hour managed : 4 hours worked ratio when I started, but I’ve been spending a lot more time documenting processes and training people. It’s now at about 1:3.5. I think it will be worth it later on.

One of the questions I ask in order to push myself to delegate more is:

If I had spent the last two years focused on making my own things happen instead of working on interesting client projects part-time, what should I have accomplished already?

Similarly: What outcomes do I want to work on? If I work on other things, how can I fill in the gaps? For example, a visual guide to Emacs is eminently doable in two years of focused work. Ditto a more organized blog posts, lots of packaged PDFs and e-books, maybe even a paper book or two – and there are projects beyond those, and even more beyond those. I can’t do much to affect my lifespan, but I can learn how to make up for those hours.

Things I’m learning

I like this system of adding lots of tasks to my Trello board and leaving it up to my assistants to choose the tasks and workload they want. That way, I don’t have to feel guilty about underloading or overloading people, and they can choose things they’re interested in. I’m experimenting with different ways to share resources, too – Dropbox, Google Drive, Trello attachments…

I’m building up a respectable process library. There are, of course, small bugs in the instructions I write (sigh!), but every run makes things better. Feel free to build on what I’ve shared.

This week, I trusted someone with my Google account, and the world did not end. This is promising.

Things to improve

I want to make sure there are plenty of tasks in the pipeline so that people can build up their skills and fill up their workload. It’s a little challenging because I have to think and plan. The more types of tasks I identify and document, the easier it is to recognize delegation opportunities.

This probably means I need to make sure my assistants know how to read the due dates and filter Trello for tasks they’re interested in (task assigned!). Maybe at some point I’ll consider moving to something more structured. I remember liking Redmine. Hmm, it might be interesting to get stats on the kinds of tasks that end up languishing in the list and why. If I get this working smoothly, I should have just enough backlog to accommodate bursts of work, so I shouldn’t have a really long list. Hmm…

I want to fill in more process gaps so that things move towards completion. I don’t want to be the bottleneck. There’s little point in delegating a task if I’m going to sit on the results. I want to prioritize tasks whose deliverables don’t require a lot of extra work from me. It may mean writing tasks so that their outcomes can be published and shared easily (working out loud), and keeping track of what additional work can be done to push it forward. I really like the way that the podcast process has gotten condensed to just “Post show notes,” although transcripts are still a separate step at the moment. I’d like to get to that level of abstraction with other processes, while still being able to break it down into lower levels of abstraction in case I’m training an assistant with less experience.

On a related note, I want to show the big pictures for skill building. I want my assistants to be able to confidently justify higher rates for me and other employers. Oh! Maybe I can draw those process maps and find out where my assistants are in terms of skills. They can tell me what they’re interested in, and we can map out sequences of tasks to help them grow. This helps me grow, too.

2014-02-27 Thinking of tasks I can assign to J- to help her build her skills #delegation

2014-02-27 Thinking of tasks I can assign to J- to help her build her skills #delegation

2014-02-26 Thinking about delegation and projects #delegation

2014-02-26 Thinking about delegation and projects #delegation


So, what’s next for me?

Getting the hang of this!

New free/pay what you want resource: Sketchnotes 2013; also, Emacs Dired rocks

March 6, 2014 - Categories: drawing, emacs

cover

Get your copy of the Sketchnotes 2013 collection

Since people found my collection of sketchnotes from 2012 handy, I’ve put together a categorized collection of sketchnotes from 2013 as well. Enjoy! =)

Behind the scenes

This was how I made the 2012 collection:

  1. Create a Microsoft Powerpoint presentation. Fill it with high-res images. Resize and position all the images. Use AutoHotkey to save myself time and avoid going crazy.
  2. Create a spreadsheet with titles and page numbers. Add captions with liberal use of AutoHotkey.
  3. Create a manual table of contents and link to all the images. Mostly use AutoHotkey, except for the part where if you create a link to a slide number that consists of repeated numbers (ex: 55 or 66), you have to select it a different way, because typing “55” gets you #51 (and “555” gets you #52, etc).
  4. Save as PDF.

There was a lot of manual fiddling around involved in making that collection, so I’m experimenting with a different approach that may be useful. For Sketchnotes 2013, I wanted to see if there were ways I could simplify the packaging process while enabling people to do other things with the files.

Here’s what I did:

  1. I used Emacs dired-mode’s C-x C-q (dired-toggle-read-only) to go into editable mode, which allowed me to easily edit all the filenames to include #keywords. I used C-x C-q to save the changes.
  2. Then I used Emacs dired’s % m to select multiple files by regular expressions and R to move the files into a specified directory.
  3. Tada! Neatly organized files. I packaged it up as a ZIP and put it on Gumroad.
  4. Since Dropbox also allows you to share folders, I created a public link to the folder that had my organized sketches. That way, people can download a single directory if they want to, instead of downloading all 250+ MB.

It still might be interesting to make a PDF, especially if I can make one that can be published through something like CreateSpace. More packaging… =)

How I animate sketches with Autodesk Sketchbook Pro and Camtasia Studio

March 7, 2014 - Categories: drawing, process

Spoken words can be much more effective when accompanied with animation, so my clients have been asking me to put together short animations for them. Here’s my workflow in case you’re interested in doing this too.

Step 1: Draw the images and get them approved.

Make your canvas roughly the same size as your final image so that you can save frames if needed. The bottom layer should be your background colour (ex: white). You can use a grid to line things up, then hide the grid when you’re ready to export. Use one layer per scene in your animation.

Step 1: Draw the image - get it approved if necessary

Draw the image – get it approved if necessary

Step 2: Prepare for animation.

Hide everything but the first scene and your background layer. Add a white layer at 90% opacity above your sketch. This allows you to trace over your sketch while making it easy to remove the pre-sketch in Camtasia Studio. Using a translucent white layer allows you to fade your other scenes without adjusting the opacity for each of them.

Step 2: Prepare for animation

Prepare for animation

Step 3: Lay out your screen.

Zoom in as close to 100% as possible. Use TAB to hide the Autodesk Sketchbook interface and position your sketch so that the important parts are not obscured by the little lagoon controller on the left side. You can turn the title bar off, too. Set Camtasia Recorder to record your screen without that little controller – you can either record only part of your screen, or add a white callout afterwards.

Lay out your screen

Lay out your screen

If you need to create HD video, a high-resolution monitor will give you the space you need. My Cintiq 12WX has a resolution of 1280×800, and my laptop has a resolution of 1366×768. When I need to record at 1920×1080, I use my Cintiq as a graphics tablet for an external monitor instead.

It’s probably a good idea to turn audio off so that you don’t have to split it out and remove it later.

Cintiq buttons

Cintiq buttons

This is also a good time to set up convenient keyboard shortcuts or buttons. The Cintiq 12WX has some programmable buttons, so here’s how I set mine up:

This makes it easier for me to pause (bottom), show the interface (middle right), change colours or brushes, hide the interface (middle right), and resume (bottom). That reduces the editing I need to do afterwards.

Step 4: Record!

Because the pre-sketch shows you where things should go and you’ve already fiddled with the layout to make sure things fit, it’s easy to draw quickly and confidently. Use TAB to hide or show the interface. When you’re starting out, you may find it easier to record in one go and then edit out the segments when you’re switching brushes or colours. As you become more comfortable with switching back and forth between full-screen drawing and using the Autodesk Sketchbook Pro interface, try the workflow that involves pausing the screen, showing the interface, hiding the interface, and then resuming the recording.

Step 5: Edit and synchronize in Camtasia Studio.

Save and edit the video. Set it to the recording dimensions of your final output, and set the background colour to white.

Use Visual Effects > Remove a Color to remove the pre-sketch. Now it looks like you’re drawing on a blank canvas. See my previous notes for a demo.

Now synchronize the video with the audio. You may want to add markers to your audio so that you can easily tell where the significant points are. Use the timeline to find out the duration between markers. Split your video at the appropriate points by selecting the video and typing s. Use clip speed (right-click on the segment) to adjust the speed until the video duration matches what you need.

Note that at high clip speeds, Camtasia drops a lot of frames. If this bothers you, you can render the sketch at 400% speed using Camtasia or Movie Maker, produce that as an AVI or MP4, re-import that media, and continue compressing it at a maximum of 400% speed each time until you get the speed you want.

If you need to cover up a mistake, a simple white rectangular callout can hide that effectively. If you need to make something longer, extend the frame. Because you can’t extend frames into video that’s already there, you may want to drag the segment onto a different track, and then split or cut the excess.

Produce the synchronized video in your required output format (ex: MP4, MOV…) and you’re done!

Hope this workflow helps you get into doing more animated sketches with Autodesk Sketchbook Pro and Camtasia Studio on a laptop or desktop computer. Do you use other tools or other workflows? Please share!

Weekly review: Week ending March 7, 2014

March 8, 2014 - Categories: weekly

Started working on our taxes. Also visited J-‘s school to find out more about course selection and the coop program. Fascinating. =) Fiddling about with LaTeX, too.

Lots of podcasting and presenting next week. Let’s see how this goes!

Blog posts

Sketches

  1. 2014.03.03 How I work with knowledge – seek, sense, share #pkm
  2. 2014.03.04 A path for learning AutoHotkey #path #autohotkey #automation
  3. 2014.03.04 Do I want to accept more work – Under what conditions #experiment
  4. 2014.03.04 Paths for web design #learning #path
  5. 2014.03.05 About me – Sacha Chua #bio
  6. 2014.03.05 How can I make my active plans and experiments more visible #review
  7. 2014.03.05 My paths to learning #my-learning
  8. 2014.03.05 Start, stop, more, less #plans
  9. 2014.03.06 Our frugal life #finance #frugality
  10. 2014.03.07 Maps versus tables of contents #information #organization

Link round-up

Focus areas and time review

Monthly review: February 2014

March 9, 2014 - Categories: monthly, review

Experiment/plan updates

2014-03-05 experiment outcomes

2014-03-05 experiment outcomes

Experiment update: Focusing on more packaging/publishing this year. Also ramping up experiments with delegation.

2014-03-05 Goals for 31

2014-03-05 Goals for 31

Life as a 31-year-old: Need to work on more exercise. Maybe take my bike out again, despite the snow and ice?

Blog posts

Good enough, good, awesome: Thinking about what I want to get to

March 10, 2014 - Categories: learning, plans

You don’t have to be awesome in everything. I’m not even sure you can. Time spent one thing is time not spent doing everything else.

I like deliberately deciding that I’m going to be okay but not stellar in a particular field. Then I don’t beat myself up about the gap between what I can see and what I can do.

2014-02-27 Art #goals #drawing

2014-02-27 Art #goals #drawing

Drawing / Art
Goal: Good enough
Currently: Mediocre / good enough

I don’t need to draw realistic, impressive drawings. In fact, simplicity helps me make things less intimidating. As I tell people, I want to draw just good enough so that people think, “Hah! I can do better than this!”

Some ways I can improve are:

  • Practise lettering and playing with letter forms
  • Get better at showing visual hierarchy through space, size, weight, and decorations
  • Practise drawing everyday objects
2014-02-27 Automation #goals #automation

2014-02-27 Automation #goals #automation

Automation
Goal: Awesome
Currently: Good enough; better than people around me

Life is too short to waste time on boring, repetitive actions. Besides, it’s fun turning a task into a program or process. If I can’t eliminate time-consuming tasks, I may as well figure out how to automate them.

Some ways I can improve are:

  • Really dig into AutoHotkey and other tools
  • Learn more about Python for scripting
  • Explore Ruby gems for dealing with various APIs
  • Look into using Selenium to automate more browser actions
2014-02-27 Delegation #goals #delegation

2014-02-27 Delegation #goals #delegation

Delegation 
Goal: Awesome
Currently: Good enough; better than people around me

I also want to get really good at working with other people to make stuff happen. I think this involves having a great process library, building a team, breaking through my hang-ups and excuses, and setting up systems that require less attention. I’m particularly curious about using delegation to improve my skills by exposing and experimenting with differences.

2014-02-27 Design #goals #design

2014-02-27 Design #goals #design

Design
Goal: Good
Currently: Mediocre / good enough

I don’t want to be awesome at design, but being good at it would be nice. I want people to feel like I’ve thought about them and taken their needs or interests into account. I want people to feel at home here.

There are lots of things I can experiment with in terms of improving my blog, so that’s one way I can learn more about design.

2014-02-27 Development #goals #coding

2014-02-27 Development #goals #coding

Development
Goal: Good
Currently: Good enough; possibly falling behind to mediocre

I probably won’t be one of those rockstar build-worldchanging-framework-from-scratch developers, but good development skills can save me a lot of time and frustration. I like making tools, and I want to get better at that. Being more organized and professional about development will also pay off.

Ways to improve:

  • Do more documentation and testing.
  • Learn new frameworks or go deeper into the ones I know.
2014-02-27 Learning from people #goals #my-learning

2014-02-27 Learning from people #goals #my-learning

Learning from people
Goal: Good / Awesome
Hmm. Actually, I might downgrade this to “Goal: Good enough”…
Currently: Mediocre

If I want to learn more than I can fit into my own lifetime, I’ve got to learn from other people. Besides, other people know lots of interesting things, but they struggle to share those things with other people. Since I’m comfortable with writing, trying ideas out, and now podcasting, maybe I can help people get good ideas out into a form other people can learn from.

2014-02-27 Writing #goals #writing

2014-02-27 Writing #goals #writing

Writing
Goal: Awesome
Currently: Good enough

I want to help people learn faster and do more effective stuff. Writing is a good time-saver. If I get the hang of organizing and editing my writing, people can learn without wading through all the text.

Describing my personal knowledge management routines with Harold Jarche’s Seek-Sense-Share framework

March 11, 2014 - Categories: learning, podcast, process, sharing

I spend much of my time learning, making sense of things, and sharing what I’ve learned. I like connecting with other people who think about how they do this. I chatted with Harold Jarche about how he manages his 10-year blog archive. We thought it might be good to describe our knowledge management processes in more detail. Here are more details on mine!

2014-03-03 How I work with knowledge - seek, sense, share #pkm

2014-03-03 How I work with knowledge – seek, sense, share #pkm

Seek

One of the things I’m working on as part of this 5-year experiment is to be more proactive about learning. It’s easy to fall into relying on client requests or a serendipitous stream of updates to teach me interesting things. It takes more work to observe what’s going on and come up with my own questions, ideas, and experiments. I think learning how to do that will be more interesting.

I used to get most of my information through reading. I love being able to slurp a book and take advantage of someone else’s experience. I turn to the Web for more current or on-the-ground information. I read social network updates and blog posts to find out about things I didn’t even think of searching for.

I’m learning more about asking people. There’s a lot written down, but there’s also a lot of knowledge still stuck in people’s heads. Asking helps me pull that out into a form other people can learn from.

Trying things myself helps me test knowledge to see if it makes sense to my life. I learn how to adapt things, too, and I might even come up with my own ideas along the way.

Sometimes I get interesting questions through e-mail, comments, or other requests. Those are worth exploring too, since explaining helps me understand something better. I fill in gaps in my understanding, too.

(Make) Sense

Many of my blog posts are reflective. I think out loud because that helps me test whether I make sense. Sometimes other people help me learn or think my way through complex topics. A public archive is helpful, too. I can search my thoughts, and I’m relatively confident that things will continue to be around.

Chunking

The main challenge I’m working on is getting better at “chunking” ideas so that I can think bigger thoughts. I’m comfortable writing my way through small questions: one question, one blog post. As I accumulate these posts, I can build more complex thoughts by linking to previous ones.

Sketches help me chunk ideas. Like blog posts, each sketch addresses one idea. I can combine many sketches into one blog post, and then use a sketch to map out the relationships between ideas.

I’m learning how to organize my posts into series. A better writer would plan ahead. Me, I usually work backwards instead, organizing existing posts and tweaking them to flow better. When I get the hang of series, I’ll be able to start thinking in chunks of short books.

Reviews

I have a regular review process. I do weekly reviews of my blog posts, sketches, reading, and time. I do monthly reviews and yearly reviews, rolling the summaries upward.

I’ve written some scripts to simplify this process. For example, I read blog posts with the Feedly reader. If This Then That imports my Feedly saved items into Evernote. I have an Emacs Lisp function that reads Evernote exports and formats them for my blog, and then I annotate that list with my thoughts.

Archive hacks

Even with this review process, I can’t remember everything I have in my archive. Fortunately, I’m a geek. I like building and tweaking tools. I’ve written about the different things I do to make it easier to go through my archive. I can find things faster thanks to little things like having a browser search keyword for my blog. Recommendations for similar posts help me find connections that I might not have thought about myself.

Delegation

One of the unusual things I’ve been experimenting with is delegation to a team of virtual assistants. I ask people to research information, summarize what they find, and draft posts. I can find things faster myself, and I can write pretty quickly. Still, it’s a useful way to learn about things from other people’s perspectives, and I hope it pays off.

Share

My website is the base for all my sharing. Having seen so many services come and go, I don’t trust anything I can’t back up and control. I keep most things in a self-hosted WordPress blog. I also use Google Drive for easy, granular sharing (such as my delegation process folder), and Dropbox for other features.

I keep a copy of my sketchnotes in Evernote for convenience, and I share those notebooks as well. See my sketchnotes, sketchbook, and visual vocabulary.

Google Hangout on Air is great for recording podcasts and video conversations. The broadcast is available as a live stream, and it’s automatically recorded too. I’ve been moving more of my conversations to Hangouts on Air so that other people can learn from them.

I don’t want to clutter my main Twitter account with automated posts. I use @sachac_blog for blog post announcements. On occasion, I’ll post links or sneak previews with my main Twitter account, @sachac.

For free/pay-what-you-want resources, I use Gumroad. I like the way that it lets me offer digital resources while giving people a way to show their appreciation.

I’m also experimenting with paper books using CreateSpace. I’m looking forward to releasing some sketchnote collections through that.

How about you? How do you work with what you know?

Check out Harold Jarche’s post, too: What is your PKM routine?. Want to watch our conversation about large blog archives? See Youtube video below.

How much does it cost to start with virtual assistance?

March 12, 2014 - Categories: delegation

If you’re not used to delegation, hiring a virtual assistant can be daunting. It’s a concept that’s hard to grasp. How can I outsource my tasks? What kind of assistant should I hire? Where can I set up my virtual workplace? And this big question: Does it cost a lot to get started?

2014-02-13 How much does it cost to start with virtual assistance

2014-02-13 How much does it cost to start with virtual assistance

1. It takes less money than you think.

Hiring a virtual assistant will cost you money, but it’s not as expensive as you think.

How can hiring another living, breathing, employee to do tasks that you could have done yourself be cheaper? Let’s look at an economic concept called comparative advantage.

Comparative advantage refers to any entity’s ability to produce services or goods at a much lower cost. Imagine that you’re a blogger with several hours of interviews to transcribe. Yes, you may be a fast typist. Still, this task can eat up a lot of your precious time. You could spend that time writing or consulting instead. Hire an assistant. Even if he or she works slower than you, it can mean that you’ll be able to focus on tasks that have more value to you. Besides, with the right tools and a lot of experience, your assistant might even be faster.

You don’t have to make a full-time commitment or even a part-time commitment. You’ll find many freelancers open to one-off projects. For example, you can try data entry, editing, or basic bookkeeping. Take a look at Fiverr for ideas. For $5, you can get customized logo, proofreading for over 3,000 words of text, or a one-minute voiceover. I’ve used Fiverr to find people who can summarize my blog posts in tweets, type the text in my sketches,

If you want more supervision, you can hire your own assistant through a marketplace like oDesk. These sites have work trackers where you can check on your assistants’ progress. Whether you’re looking for the best skills or the best rates, you can work with people from all over the world. I outsource the most through oDesk. I like the management tools there, and I’m happy with the people I’ve found. There are many places to find freelancers, so look around.

2. It takes less training than you think.

You don’t have to spend hours on training. Most of the people that you’ll find on Fiverr or oDesk are already experienced freelancers. Just think about it – would they succeed selling their services if they weren’t?

Start with something simple, such as transcription and data entry. These kinds of tasks are pretty straightforward and simple enough to do with minimal instruction. Make sure that your instructions are clear and easy to follow. You don’t have to write detailed training manuals, either. You might start by demonstrating a task, and then have your assistant document the process along the way.

2014-02-02 A path for learning to delegate or outsource

2014-02-02 A path for learning to delegate or outsource

2014-02-10 Delegation as programming

2014-02-10 Delegation as programming – also mentioned at What the LEGO Movie and programming are helping me learn about delegation

If you want to get a head start, check out my process library and my delegation board for examples. I’d love to hear what you do with this!

3. It takes less risk than you think.

Trust takes time to develop. I can understand why you might hesitate at the idea of hiring an unseen assistant (a complete stranger!) to do work for you. No matter how small the task may be, it’s still your money and your time at stake here. Goodness knows I’ve had some interviewees and even virtual team members who gave me the heebie-jeebies. You can limit your risk by starting with tasks that don’t require a lot of access, and you can share more as you get to know your team.

2013-11-27 Trust and assistants

2013-11-27 Trust and assistants

Many job marketplaces have safety systems and guarantees. For example, on Fiverr, you can dispute orders or get a credit refund if it doesn’t work out. One time, I paid for a Fiverr gig for transcription, and then the provider stopped communicating. Since the transcript was very late, Fiverr reminded me that I could cancel the order, and I did. oDesk gives you tools to resolve issues too. I hired a web developer and it turned out that he didn’t have the skills I needed. Because he was one of the contractors covered by the new oDesk guarantee, it was easy to get a refund.

Delegation is something you learn through constant practice. Like anything else, you’re going to make mistakes along the way. Protect yourself from big mistakes and learn from small ones. It’s all part of the learning process. Start small. Let your virtual assistants work with small tasks first before trying bigger ones.

If worrying about the cost was getting in your way, I hope this helps you get started!

I wrote this post with a little help from Marie Alexis Miravite, who spent maybe 2 hours on this. (See the task in Trello.) I spent half an hour editing it and adding more stories, sketches, and links. =) What do you think?

Drafting a baby-steps guide to managing your tasks with Org Mode for Emacs

March 13, 2014 - Categories: emacs, org

Org mode for Emacs is powerful and flexible, which can make it intimidating for newcomers. After helping several people with essentially the same problem–an unmanageably large heap of tasks–I thought about what might help people get the hang of the key features of Org Mode slowly.

Here are some general ideas. Start by writing your tasks down. Group them into projects. Once you get the hang of that, schedule your tasks. You might find yourself overestimating what you can do in a day, so reschedule or get rid of tasks as needed.

2014-02-08 A path toward taming your TODO list

2014-02-08 A path toward taming your TODO list

Here’s a visual overview of how you can apply that to Org, starting with simple outlines and moving on to scheduling.

2014-02-16 Org TODO basics

2014-02-16 Org TODO basics

I’ve started to put together an outline/draft for A Baby Steps Guide to Managing Your Tasks with Org Mode, which you can find at sach.ac/baby-steps-org-todo. Comments and questions welcome!

Frugal Fire 001: Introductions

March 13, 2014 - Categories: Frugal FIRE, podcast

In this episode, Jordan Read and I talk about our plans for a new Google Hangout on Air / podcast show around financial independence and retiring early. Check out the Mustachians community on Google+ for upcoming events. The next show is tonight (March 13, Thursday) at 8 PM EDT. We’ll be talking to Justin from Root of Good, who’s six months into early retirement. =) To subscribe to this podcast, add this feed to your reader: http://sachachua.com/blog/category/frugal-fire/podcast Download the MP3

Going fishing for three years

March 14, 2014 - Categories: experiment

People often ask me if I could draw for them, or write for them, or code for them. I refer all that business to other people. Here’s why.

2014-02-19 Teaching people to fish, selling fish, fishing for yourself #experiment #sharing #my-learning #teaching #confederates #community

2014-02-19 Teaching people to fish, selling fish, fishing for yourself #experiment #sharing #my-learning #teaching #confederates #community

You see, some people want to learn how to fish. These are the people who want to learn more about sketchnoting or Emacs or other things I’m interested in.

Many people want to buy fish. They don’t want to learn things themselves, but they can build on what they buy.

Most people just want to buy sushi. (Or fish and chips, or whatever.) Already prepared, no work needed, yum. They’re too busy to cook. They don’t want to know the details. They just want good stuff.

I want to learn how to fish for rare fish. The kind of fish few people bother with because you have to go into uncharted waters. Interesting, elusive fish, almost too smart to get caught. I want to learn how to ask good questions and share what I’m learning.

I want to be part of a community of enthusiasts who swap tips and stories. I want to find other people who have gotten bitten by that bug, and I want to help other people discover the joy of exploration. That’s why I’m not selling any fish. I’m focusing on learning how to fish rare fish, and teaching what I’m learning. My top priority is to learn how to fish. But I’ll take the time to teach you to fish because I want to be able to learn from you someday.

Sure, I might be able to learn a little while catching fish for other people. I know from experience, though–both mine and others–that it’s too easy to get used to that. You forget there’s a world beyond the fishponds. Better to force myself out there, while I can.

At least for the next three years (the rest of this 5-year experiment), I’ll be out fishing. That is, drawing, writing, learning, playing – somewhere out there, where few people get to go. What would wild success be like? Plenty of stories, maybe a few mementos, and a great community to keep exploring with.

2014-02-19 Imagining wild success for this experiment #experiment.png

2014-02-19 Imagining wild success for this experiment #experiment.png

Thanks to Evan Smith for the nudge to explore this metaphor!

(Note: I don’t know anything about fishing, and I’m not planning to add it as a hobby. But I do like cooking, though, which might explain some things.)

Tell me what you think!

Frugal Fire 002: Justin McCurry (RootOfGood)

March 14, 2014 - Categories: Frugal FIRE, podcast
Update 2014-03-24: Transcript now available!

In this episode, we interviewed Justin McCurry (RootOfGood) about retiring at 33. He’s been learning how to relax and enjoy life as a stay-at-home dad, and has mostly gotten the hang of it six months in. =) You can download the MP3 from archive.org

2014-03-13 Frugal Fire 002 - Justin - Root of Good

2014-03-13 Frugal Fire 002 – Justin – Root of Good

Other resources we mentioned:

Join the community on Google+: http://gplus.to/mustachians. For more information about the Frugal Fire show (including how to subscribe to the podcast), check out the Frugal FIRE page. (more…)

Weekly review: Week ending March 14, 2014

March 15, 2014 - Categories: weekly

Lots of talking to people last week. I think I’ll keep this week fairly loose and unstructured, aside from the stuff that’s already on the list…

Blog posts

Sketches

  1. 2014.03.07 Maps versus tables of contents #information #organization
  2. 2014.03.10 Making more use of delegation #delegation
  3. 2014.03.10 Trying out goal factoring #goals #factoring #rationality
  4. 2014.03.10 Trying out goal factoring part 2 #goals #factoring #rationality #delegation
  5. 2014.03.11 Deciding how to spend time #time
  6. 2014.03.11 Imagining a weekly Emacs course #weekly
  7. 2014.03.11 Reflecting on goal factoring #goals #factoring #rationality
  8. 2014.03.11 Trying out goal factoring #goals #factoring #rationality
  9. 2014.03.11 What do I want from financial independence communities #finance #community
  10. 2014.03.12 A buffet of goals #metaphor #goals
  11. 2014.03.12 Visual note-taking – Sacha Chua, Meloney Hall page 1 #sketchnoting #live #interview
  12. 2014.03.12 Visual note-taking – Sacha Chua, Meloney Hall page 2 #sketchnoting #live #interview
  13. 2014.03.13 Frugal Fire 002 – Justin – Root of Good

Link round-up

Focus areas and time review

Replay: Meloney Hall interviewed me about sketchnoting

March 17, 2014 - Categories: drawing, podcast, sketchnotes

Meloney Hall interviewed me about sketchnoting. I managed to listen, talk, and sketch while doing this. Boggle! Although talking interferes a little with writing words, so my notes become more graphical. Hmm, maybe that’s a way for me to experiment with more graphical notes… =)

Transcript

You can download the MP3 from archive.org

2014-03-12 Visual note-taking - Sacha Chua, Meloney Hall page 2 #sketchnoting #live #interview

2014-03-12 Visual note-taking – Sacha Chua, Meloney Hall page 2 #sketchnoting #live #interview

2014-03-12 Visual note-taking - Sacha Chua, Meloney Hall page 1 #sketchnoting #live #interview

2014-03-12 Visual note-taking – Sacha Chua, Meloney Hall page 1 #sketchnoting #live #interview

See the event page for more details

(more…)

Static friction and socializing

March 17, 2014 - Categories: connecting

When it comes to socializing, I have a high coefficient of static friction. I tend to stay in place. If I let too long go between get-togethers, I fall out of the habit of hosting them, the identity of someone who brings people together. I rarely ever want to go out. I drag my feet. I look for excuses to stay at home. I resist when invited, and only manage to make myself go because of social expectations.

When I’m there, though, sometimes it’s all right. Sometimes it’s awkward. But sometimes it’s fun and almost frictionless, and the time speeds by.

I should remember those times so that it’s easier to push myself to go out. The risks are small, anyway.

What makes some get-togethers feel okay? I like board games and card games. They create new situations for us to interact in and result in new in-jokes. They give my hands something to fiddle with. At the same time, there’s still space for conversation between rounds and during breaks. I find background conversations too distracting when I’m trying to work on something, so I prefer to work at home. Pair-hacking might be interesting, though. I like talking through complex things much more than conversations just about catching up. I like having a sense of accomplishment or learning.

The weather’s warming up, so maybe I’ll have a get-together sometime. Gotta ramp up to it again. Maybe I’ll check out Gamfternoon at HackLab.to. Maybe I’ll try going to more HackLab open houses. Maybe I’ll invite people over for a casual get-together. Daylight Savings Time kicked in, so I guess introvert hibernation mode is winding down… We’ll see!

Goal factoring, reflecting on what I can do with my time, and enjoying a buffet of goals

March 18, 2014 - Categories: planning

Lucas Baker came across my Less Wrong meetup notes while looking for more information about goal factoring, a technique for analyzing your actions and goals in order to come up with better alternatives. I hadn’t dug into it in much detail before, but since he was curious, I spent some time trying out goal factoring so that I could share more thoughts. Here are the resources I found useful:

I started by drawing different goals and their connections with each other. For example, I like learning more about tools and programming languages because that helps me build more tools and cool stuff, and that tickles my brain. It also gives me useful things to share, and that helps me make technical topics friendlier. Sharing also helps me connect with other people, which makes it easier for me to learn from different perspectives, which enables me to make better decisions. Many of my actions and goals support more than one goal, so I get a lot of value out of the time I spend.

2014-03-10 Trying out goal factoring #goals #factoring #rationality

2014-03-10 Trying out goal factoring #goals #factoring #rationality

I picked a set of goals and listed the actions that I frequently take towards those goals. I also brainstormed different actions that I could take or delegate. This was great because it helped me come up with more ideas for mini-projects or delegatable tasks. For example, a weekly Emacs tutorial might be fun and useful (and maybe I can even commission some of those). I can look into asking my assistants to interview me as a way of fleshing out particular post ideas, too.

2014-03-10 Trying out goal factoring part 2 #goals #factoring #rationality #delegation

2014-03-10 Trying out goal factoring part 2 #goals #factoring #rationality #delegation

One of the advantages of making a list of productive activities is that it’s easy for me to switch from one good thing to another depending on my interest or energy. Since “Tickle my brain” turns out to be a totally acceptable goal (at least for me), I can give myself permission to spend one or two hours a day on tech learning. That had been neglected because of my focus on other activities. It’s good to get back into tweaking my Emacs or learning more about NodeJS, though. I can get a little carried away doing this (flow can be dangerous!), so I limit my time. After about two hours each time (or maybe four, if I’m pushing it), I should resurface and check on the other activities I may need or want to do.

It’s good to decide how much time I want to spend on other activities, too. For example, I want to work on delegation daily so that my assistants get prompt feedback and so that I keep filling the pipeline with more task ideas. I want to work on consulting enough so that projects and tasks keep moving, but I don’t want it to take over peak creativity/attention time, so I move it off-peak whenever possible. Packaging (making PDFs and e-books, organizing and revising posts, recording and processing podcasts) takes time and isn’t as engaging as the other activities, but it helps me connect with people, so I should do that weekly. I’ll also see if I can delegate more packaging so that it gets done.

2014-03-11 Deciding how to spend time #time

2014-03-11 Deciding how to spend time #time

To make it easier to brainstorm delegation-related tasks, I pulled some out into a separate drawing. There’s a lot of room for growth. =) I’m slowly getting used to having assistants do web research, and it turns out to be surprisingly useful. I probably read much faster than they do, but I benefit from the different perspectives and search words they use, and it’s nice to ignore the fluff.

2014-03-10 Making more use of delegation #delegation

2014-03-10 Making more use of delegation #delegation

One of the templates for goal factoring encouraged you to analyze your current actions instead of getting lost in goals you think you should have. For my third attempt, I picked a few frequent actions and traced the connections to the goals they support. I brainstormed alternatives and compared the costs. The goals looked pretty similar to the first set, but a different perspective helped me identify other alternatives I can explore. For example, it might be a good idea for me to create a Trello board or update my public Org file with the things I’m curious about so that people can help me out.

2014-03-11 Trying out goal factoring #goals #factoring #rationality

2014-03-11 Trying out goal factoring #goals #factoring #rationality

What am I learning from this goal factoring exercise? It’s a good excuse to brainstorm and examine alternative approaches for reaching my goals, especially in terms of identifying low-hanging fruit. I’m already used to explaining how my actions contribute to multiple goals and how my goals are related to each other. I occasionally talk to people about my big picture (or as I like to call them, my Evil Plans). The way I define my goals seems to be a little different from the way most people define theirs. Instead of having big goals and strong commitments, I have a lot of small goals with hardly any commitment aside from curiosity. This approach seems to fit me better, although I’m probably missing out on extra productivity. I like making lists of lots of little goals or possible actions, because that makes the low-hanging fruit easier to pick.

2014-03-11 Reflecting on goal factoring #goals #factoring #rationality

2014-03-11 Reflecting on goal factoring #goals #factoring #rationality

Reflecting on this led to exploring this metaphor of a buffet of goals. Influenced by Jim Collins’ Good to Great, I set myself Big, Hairy, Audacious Goals (BHAGs) in 2005. “S.M.A.R.T.” was an even more common acronym for goal setting, and I tried those too. The meaning of S.M.A.R.T. varied. My mom’s version was that goals should be Specific, Measurable, Ardently-desired, Realistic, and Timebound. (Specific, Measurable, Attainable, Relevant, and Timebound makes sense too.)

Time-boundedness was something that never quite caught fire with me, though. I think it’s because I’d demonstrated “potential” at an early age (of the computer-whiz-kid sort), grown up with praise along the lines of “Wow, she can do all of this stuff and she’s only ___ years old,” and nearly got caught up in the insecurities of looking over my shoulder or ahead of me at people who were doing even more awesome things at even younger ages.  I remember consciously deciding, sometime in my teens, that I didn’t want age or speed to be special. People made a lot of fuss over precocity — but at the same time, it seemed that age became an excuse for them to not learn or try. I pushed back at that. I preferred looking up to late bloomers like Grandma Moses rather than the “30 under 30″ lists.

Self-imposed time-based deadlines–“I will do ____ before I turn 35″–echoed that old conflict for me. If a goal was intrinsically valuable, I would do it already motivated by the knowledge that life is short (memento mori!); and if I wasn’t motivated enough to do it, I didn’t want to set myself up to feel like a failure just because I accomplished it at an older age instead of the goal I’d optimistically set.

So I’ve been moving away from goals with deadlines. I wrote a blog post about that in 2012, but I’ve been thinking that way for a while now, and I’m coming to a clearer understanding. I want to embrace my goals and move towards them as a whole, motivated person, not split myself into taskmaster versus slave. I want to move towards my goals out of interest and curiosity and wonder. Dates might work for other people, but not quite for me.

What do I replace that metaphor with, then? I think of having a buffet of goals stretching infinitely before me. I can choose the portions I want. I can enjoy a variety of tastes, textures, and cuisines. I don’t have to overload my plate or stuff my stomach. I can graze. I can go back for more. As I nibble, I can think about what else I want to try, or how I want to tweak things, or if I want to rearrange the dishes for greater convenience. I like it. It’s a fun metaphor. =)

2014-03-12 A buffet of goals #metaphor #goals

2014-03-12 A buffet of goals #metaphor #goals

So, coming back to goal factoring… What’s next? More goal analysis! As it turns out, it’s easy to combine Emacs Org Mode and GraphViz. I’ve started documenting my actions and goals in Org Mode. I hope org-babel will make it easy to slice the goals into different sets and produce intelligible graphs. You can check out the first attempt. It’s very rough, but it will get better over time. =)

Contemplating co-op: How can I get to the point of being able to offer a good high school co-op placement?

March 19, 2014 - Categories: delegation

J-‘s been looking into the co-op program at her high school. In preparation, I’ve been planning tasks that she can work on during weekends so that she can flesh out her resume and portfolio with useful skills. 

I think co-ops might be good for me to look into it too. J- can’t work for me because of rules against working directly for family members, but maybe I can give someone like her an opportunity to develop skills.

A high school co-op placement is about 4 months of afternoon work, or roughly 220 hours. It turns out that you can offer a co-op position even without an office environment. I would like to be able to give the right candidate a structured way to gain skills and apply them towards useful stuff. It’s generally unpaid, so it’s mostly low risk (although I like rewarding good work). Still, I want to make sure I have the kind of work that will attract good candidates, and I want them to be able to get a lot out of it.

What could wild success look like? Maybe I’d look for reflective self-directed learners who are interested in developing writing, tech, and design skills. I’d talk to students about their career goals and what skills they’d like to be able to demonstrate as part of their portfolio. I’d have a well-documented process library and a steady flow of tasks so that they always have something to work on. They would own a larger project, too. During the afternoons that they’re working, I’d be available in person or over Google Hangout / Skype so that they can ask quick questions. Every week, we’d discuss our progress and make a plan for what to do next.

We could work on open source or community contributions together, or I might go and look for client work so that students get the experience of working with other businesses.

I want them to feel great about the diversity of experiences they get to try, to work on things that have value, and to feel supported and guided (versus being left to their own devices, or being exploited for cheap labour, or feeling lost).

It would be an investment of time and attention on my part. I’m at about 1 hour management : 3.5 hours of delegation for my virtual team, and supervising a high school student will probably require even more attention and thought. What would I want to get out of it? I’d make more progress on projects I want to support. We’d flesh out more documents, tutorials and blog posts along the way, too. Anyway, if things shape up well and I get better at managing other people, it might be worth looking into.

Do you offer a high school co-op position (or did you have one)? What has your experience been like?

Emacs, Evernote (through enscript.exe), and Org links

March 20, 2014 - Categories: emacs, org

I’ve given myself permission to spend an hour or two tickling my brain with various technical ideas and prototypes every day. This means Emacs geekery is going to turn up on my blog more often. =) Here’s a recent hack that I put together to make my weekly reviews a little easier.

I skim a lot of blog posts on my phone using the Feedly app. (See: How to read blogs efficiently with a feed reader.) I save the posts I want to follow up on or include in my weekly round-up. I have an If This Then That recipe that monitors my saved items and stashes them in Evernote with the roundup tag. If I come across other interesting pages while browsing on my computer, I use the Evernote Web Clipper to save those pages with the roundup tag as well.

In the past, I selected a range of notes to export from Evernote, saved them to a file, and used my sacha/evernote-extract-links-for-review function to extract the titles and URLs. I opened each of the pages with C-c C-o (org-open-at-point) to refresh my memory and follow up. I deleted lines that were no longer relevant. Since IFTTT had changed to rewriting the URLs instead of leaving the source URLs alone, I copied the original URLs and replaced the links that were in Org.

This is Emacs, though, and even that can be smoothened with a little scripting. Now I can use the code below to expand URLs and to open all the URLs in the region.

Link-related convenience functions

I picked this up from http://www.emacswiki.org/emacs/AlexSchroederConfigOrientalibombus .

(defun kensanata/resolve-redirect (url)
  "Resolve shortened URL by launching `curl --head' and parsing the result."
  (let* ((curl (shell-command-to-string
                (format "curl --silent --head %s" url)))
         (location (when (and (string-match "\\`HTTP/1\.1 301" curl)
                              (string-match "^Location: \\(.*\\)" curl))
                     (match-string 1 curl))))
    (or location url)))

(defun sacha/resolve-urls-in-region (beg end)
  "Expand URLs between BEG and END."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (while (re-search-forward org-bracket-link-regexp nil t)
        (replace-match (save-match-data (kensanata/resolve-redirect
                                         (match-string 1))) t t nil 1))
      (goto-char (point-min))
      (while (re-search-forward org-link-re-with-space nil t)
        (replace-match (save-match-data (kensanata/resolve-redirect
                                         (match-string 0))) t t nil)))))

(defun sacha/open-urls-in-region (beg end)
  "Open URLs between BEG and END."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (while (re-search-forward org-plain-link-re nil t)
        (org-open-at-point)))))

Evernote-related extract

Evernote on Windows doesn’t have the same kind of scripting capabilities that Evernote on the Mac has, but it turns out you can still do a fair bit of scripting with the enscript tool.

(defun sacha/evernote-export-and-extract (start-date end-date)
  "Extract notes created on or after START-DATE and before END-DATE."
  (let ((filename "c:/sacha/tmp/Evernote.enex"))
    (call-process 
     "c:/Program Files (x86)/Evernote/Evernote/enscript.exe"
     nil t t
     "exportNotes"
     "/q" (concat
           " tag:roundup"
           " created:" (replace-regexp-in-string "-" "" start-date)
           " -created:" (replace-regexp-in-string "-" "" end-date))
     "/f" filename)
    (sacha/evernote-extract-links-for-review filename)))

(defun sacha/evernote-extract-links-for-review (filename)
  "Extract note names and URLs from FILENAME.
     The file should be an ENEX export."
  (interactive (list (read-file-name "File: ")
                     (org-read-date)
                     (org-read-date)))
  (let (list)
    (with-temp-buffer
      (insert-file-contents filename)
      (goto-char (point-min))
      (while (re-search-forward "<title>\\(.+?\\)</title>\\(.*?\n\\)*?.*?href=\"\\(.*?\\)\"" nil t)
        (setq list
              (cons
               (cons
                (match-string-no-properties 1)
                (match-string-no-properties 3)) list))))
    (setq list
          (mapconcat (lambda (x)
                       (concat "- [["
                               (kensanata/resolve-redirect (cdr x))
                               "][" (car x) "]]: ")) list "\n"))
          (if (called-interactively-p 'any)
              (insert list)
            list)))

Let’s see how this new workflow goes. =) If you’re curious, you can check out the rest of my weekly-review-related code in my Emacs configuration.

Living your dream

March 21, 2014 - Categories: life, reflection

It’s really easy to get caught up living someone else’s dream. It makes sense to want what other people want. You see the visions that other people paint for you and say, “Yes, that looks pretty good.” Sometimes being influenced by other people can be very useful. We surprise ourselves by reaching goals that we didn’t even know that we could try. Other times, we drift away from what matters to us. This is why it’s important to check in with yourself once in a while to make sure that you’re still going towards your dream.

I’m a person of small and simple dreams. I want to have enough, to know that I have enough, and to know that whatever I have is always enough. Of these three things, I think the last is the most important. After all, people do well with more and with less, and people do badly with more with less. Reading all these books about stoicism reminded me that having enough is one power that we always have, no matter what our situation is.

2014-02-09 Living your dream

2014-02-09 Living your dream

I’ve been thinking a lot about the motivations and values that underlie my questions. Safety is surprisingly important to me. I plan for different scenarios, and I look at other people’s lives to get ideas for mine. I want to make good decisions: decisions that consider the true range of choices, take potential consequences into account, and leave me with enough space for both mistakes and opportunities. With the basics taken care of, I can focus on doing well. Knowing my tools helps me make the most of them. Learning from other people and sharing what I know helps me grow. I like taking advantage of low hanging fruit, the little things that I can do to move things forward.

2014-02-07 What are my motivations for questions

2014-02-07 What are my motivations for questions

Just as motivations are behind questions, values are behind motivations. What do I value? When does my life feel like it’s consistent with who I am, and when does it feel inconsistent? I really like exploring the things that make me curious, especially if they lead off the well-worn paths. I like helping people learn. I like building things: a good home life, tools, processes, knowledge.

2014-02-11 Reflecting on building a value-filled life

2014-02-11 Reflecting on building a value-filled life

What kinds of questions can you ask yourself to check if you’re following your dream, not some dream that other people have given you?

Weekly review: Week ending March 21, 2014

March 23, 2014 - Categories: weekly

This week was about Emacs tweaking, screencasts/podcasts, delegating, and talking to people. Next week will be pretty busy too, but maybe I can come up with a better system to keep track of what’s going on day by day… =)

Blog posts

Sketches

Hmm. I didn’t post any sketches to Flickr this week. I think it’s because my drawing time in the evenings got replaced by Emacs hacking and delegation instead.

Link round-up

Focus areas and time review

[[id:o2b:3642edeb-2e4d-4528-9ca2-a4f3f6d3459f][

Emacs Basics: Using the mouse

March 24, 2014 - Categories: emacs, emacs-basics, podcast
This entry is part 1 of 3 in the series Emacs Basics

You can download the MP3 from archive.org.

Transcript:

I’m Sacha Chua and this is an Emacs Basics episode on using the mouse. The best way to use Emacs is to master the keyboard shortcuts, but when you’re starting out, don’t worry about them yet. You might find yourself using the mouse a whole lot more than you used to, but over time, you will learn more and more keyboard shortcuts as you get used to Emacs. So let’s say that you’re just starting out. What are some of the things that you can do right away to get the hang of using Emacs?

The Emacs tutorial is a great place to start. You can get to that by clicking on the Emacs tutorial link on the splash screen. If you’ve done the tutorial before, it will offer to let you resume at that point. If you don’t have the splash screen handy, you can also get to the tutorial from Help > Emacs tutorial. Go through this and you’ll learn a lot of the common keyboard shortcuts that will come in handy.

The toolbar and the menu will also give you quick access to a lot of common commands. If you’d like to create a new file or open an existing file, you can click on the New file icon located in the top left. You can specify the file, and if the file doesn’t exist yet, it will create it. To save the file, click on the Save icon. If you’d like to close a file, just click on the X mark. You can open the file again using the toolbar icon.

To copy and paste, use your mouse to select a region of text, then copy or cut it. Then you can paste it wherever you want. You could also search for text. Click on that search button and start typing what you’re looking for. It will highlight the search results. Press Ctrl+s to search for the next instance. Press Enter to stop searching.

The menus also offer a lot of other commands. For example, you can insert a file. You can save the current buffer with another file name. You can split your windows so you can see more than one file at the same time. If you’d like to close a window and go back to having one file across your entire screen, you just have to use File > Remove other windows. To switch between the files you have open, use the Buffers menu. Explore the menus for other options.

One of the interesting things in Emacs is that you can copy or cut multiple things and then paste them without having to keep copying or cutting each time. For example, if I copy this, then Paste will paste that. But you could also access the things that you copied or cut previously. Just click on Edit > Paste from kill menu, then select the item you want to paste.

There are lots of other tools that are available in Emacs. The availability of these tools may depend on what else you’ve installed. Again, for more information, check out the Emacs tutorial or read the Emacs manual.

Have fun!

 

Sketchnotes 2013 in print, yay!

March 25, 2014 - Categories: publishing, writing

Summary: You can now grab a print copy of Sketchnotes 2013 for $30 + shipping from CreateSpace.

2014-03-24 Sketchnotes 2013 in print, yay #publishing #packaging #createspace

2014-03-24 Sketchnotes 2013 in print, yay #publishing #packaging #createspace

I like organizing my sketches into collections so that people can flip through them easily. It’s a good archive too, just in case I lose files. I put together a PDF of my sketchnotes from 2012, and I recently put together one for my sketchnotes from 2013. For added flexibility, I started with a ZIP and shared Dropbox folder for Sketchnotes 2013.

Paul Klipp suggested that I look into CreateSpace as a way of making a paper version. CreateSpace is a print-on-demand publisher, so we can order copies one by one instead of stashing inventory. Paper is easier to flip through during casual moments, and it might be a good alternative. Besides, it’s handy as a personal backup, too. A lot of the sketchnotes are me thinking through stuff, so I’m not sure how useful they’ll be to other people, but you can check it out online for free to see anything is useful. =)

2014-03-24 17.15.56 2014-03-24 17.16.12

It turns out that CreateSpace’s pricing–even considering the cost of shipping–is cheaper than what it would take for me to get color prints at the local print shops, and the results are neatly bound and professional. My proof arrived today, and it looks decent. I had reduced my landscape sketches to a little less than half their size so that I could fit them two to a page. That makes reading easier because you don’t have to turn the page sideways. I was worried that the letters wouldn’t be readable, but they turned out fine. =D

End result: I can “back up” my sketches in a much more compact space, and you can get your own copy if you want. For comparison, here’s the stack of sketchbook pages I drew on and scanned.

2014-03-24 18.22.06

Sketchnotes 2013 ($30 + shipping)

Geekier details: LaTeX

I wanted to make a PDF collection, but I didn’t want to work with a gigantic Microsoft Word or Powerpoint file. I’d done that before with Stories From My Twenties and Sketchnotes 2012, and that was not fun. Anyway, I had folders of images to combine. At first, I tried using ImageMagick to tile the images into pairs and pad them with margins. That was pretty cool. Adobe Acrobat Standard allowed me to import the images and add page numbers. I created my own table of contents using Microsoft Excel, pasted that into Microsoft Word, and tweaked the numbers until they were correct. It was a tedious and error-prone process.

Marcin Borkowski suggested using LaTeX instead. It’s been years since I used LaTeX. I remember doing some of my papers in it, and they always looked so much better than anything I put together in Microsoft Word or OpenOffice. I didn’t want to deal with the potential hassle of setting up LaTeX under Windows or Cygwin. I’d gotten more used to using Vagrant and VirtualBox to run Linux-based virtual machines that shared folders with my Windows installation, and upgrading to a 1 TB drive meant that I had plenty of space.

One of the advantages of working with LaTeX is that it’s text-based and therefore easy to work with in Emacs. I wanted to break up the different sections into their own files. I started with a small category. That way, I could easily recompile a section of the PDF in order to figure out the right approach.

Because I was using Windows to look at the PDF, I often got annoyed by the preview pane file-locking that prevented me from deleting the file. I turned the preview pane off in Explorer and opened the PDF whenever I wanted to check it.

After looking up how to include images in LaTeX, I listed all the image files, redirected the output into a file, and used a keyboard macro to set up \includegraphics commands.

It’s a good thing I did that, because some of the files were facing the wrong way, and many of them were the wrong size. So I learned how to resize and rotate images like this:

\includegraphics[height=\textwidth,angle=90]{Business/2013-02-26 Creating value with social collaboration platforms}

A couple of notes:

Since I had a lot of these commands, I figured it would be worth learning how to define my own command for them. LaTeX is like Emacs. You can define your own commands or override existing ones. This is great for making your code more manageable. For example, if I include the following definitions in my document preamble:

\newcommand{\sketch}[3][height=4.5in,width=\textwidth,keepaspectratio]{
  \addcontentsline{toc}{section}{#3}
  \includegraphics[#1]{#2/#3}\\
}
\newcommand{\sketchcw}[2]{
  \sketch[height=\textwidth,angle=270]{#1}{#2}
}
\newcommand{\sketchccw}[2]{
  \sketch[height=\textwidth,angle=90]{#1}{#2}
}

… that gave me new commands that I can use like this:

\sketchcw{Business}{2013-02-26 Creating value with social collaboration platforms}
\sketchccw{Business}{2013-03-04 New opportunities}
\sketch{Business}{2013-03-04 Sketchnotes of events}

I also wanted to include a table of contents that listed all the images, but I didn’t want to display captions since they would duplicate the title that’s already in the sketchnotes. At first, I tried to use captions and labels, but I found out that you can use \addcontentsline to adds lines to the table of contents without displaying anything in the text.

After I set up and successfully compiled a few files, I worked on creating a main document that combined everything. The subfiles package was straightforward to use.

The trickiest part was getting the chapter table of contents sorted out. In addition to having a main table of contents, I like having chapter-based tables of contents because that way, the list is closer to what you’re looking up. I eventually figured out how to use minitoc after much confusion with left-over minitoc data and chapters that were out of order. I ended up creating a Makefile to clean out all the auxiliary files and run pdflatex three or four times.

Here’s one of my early sketches trying to figure this out, back when I was using ImageMagick and Adobe Acrobat…

2014-02-27 How can I make it easy to print collections of my sketches #packaging #sharing

2014-02-27 How can I make it easy to print collections of my sketches #packaging #sharing

It’s great to be a geek!

Thinking about how virtual assistants can help me with learning and writing

March 26, 2014 - Categories: blogging, delegation

I’ve been challenging my assumptions about what I have to do myself and what could be better with help. It would be a waste of time and talent to limit virtual assistants to just data entry or transcription. People can do so much, and they can learn even more.

2014-02-26 Thinking about delegation and projects

2014-02-26 Thinking about delegation and projects

Writing is one of those tricky tasks. I can’t stand generic link-building, keyword-stuffing articles. You know, the ones bashed out by SEO robots or humans doing a reasonable simulation thereof. Hasty writers hodgepodge snippets from various places. They may change words just enough to avoid plagiarism, but how can they add anything to the conversation? They don’t have the experience you have. They can’t tell the stories you can. They have a surface understanding of your field.

Still, I’m curious. Can I outsource part of my writing without feeling like I’m breaking the promises of my blog? Can I use people’s strengths instead of bumping into the weaknesses of outsourcing?

I have a personal blog, not a corporate one. I have no problems filling every day with things I’m learning. People find my writing readable. I don’t need help… but maybe I can learn how to make the most of it anyway.

For example, I’ve started making myself delegate web research tasks. This is tough. I keep thinking, “It’ll take me five to fifteen minutes to do this research myself.” I read at a blistering speed, and the research process helps me reformulate questions. It’s faster. I don’t have to wait.

But it turns out that delegating research means I have to be clear about what I’m looking for and how important it is to me. I can learn from other people’s search keywords and summaries. And each little bit of knowledge leaves its traces on two people: the assistant and me. Before, I was the only one who learned from any research I didn’t capture as blog posts. With delegation, the two of us learn, and the summary becomes something I can share.

Example web research tasks:

So web research is one thing that might be worth delegating, even if I think I can do it faster myself.

What about drafting and writing? One of the challenges of writing is empathizing with people who are new. When I write while I’m learning, this is easy. I struggle with the same things people struggle with. But what about the things that people ask me about, the things that I already take for granted? This is where other people’s questions and words can help.

I’ve assigned people to write about a topic I’ve outlined or sketched. I like the way that my outline becomes something both recognizable and different. Here are a couple of examples:

I really like the way people go beyond what I might think of doing or asking on my own. For example, this Trello tutorial is funnier than I probably would have made, and I like it.

What’s beyond that? Maybe more conversation. Speaking can be faster than writing. I struggle with speaking because it feels so unstructured. I’m not used to dictation yet. Maybe I’ll grow into that, in time.

I’ve been practising through interviews and transcripts, but not a lot of people host shows. Maybe I can ask my assistants to interview me about topics. That way, we’ll get a recording out of it as well (for people who prefer to listen or watch). They may ask follow-up questions that I wouldn’t have come up with.

Writing through other people also helps me learn more about my individual style. When I edit their work and give them feedback, I get a better sense of how I say or organize things. Maybe the differences will inspire me to pick up tips from them, too.

$20-30 seems a lot for a blog post that I can write myself, especially if I also invest time to outline and revise it. Still, I’m intrigued by the possibilities of learning from other people’s perspectives. I like the way that I can assign topics of mutual interest, so that both my assistant and I grow through writing. It’s worth exploring.

What would wild success look like? During this delegation experiment, I think it would be great to get to the point where I can make a list of questions I’m curious about. Assistants dig into those questions further. They interview me and other people along the way. I review their drafts, experiment with the ideas, and enrich the drafts with stories and results. We all learn.

I think some of the promises of my blog are: I will post things that I care about. I hope some of them will be useful for you. I won’t clutter your feed reader or inbox with bland, impersonal articles that you could find everywhere else. I won’t resort to clickbait headlines. I’ll share what I’m learning.

Maybe delegation is compatible with those promises. We’ll see. Here are two posts I’ve written with some help:

What do you think? Can there be an authentic way of blogging with other people’s help?

Emacs tweaks: Export Org checkboxes using UTF-8 symbols

March 27, 2014 - Categories: emacs, org, tips
UPDATE 2014-03-28: Newer versions of org have the org-html-checkbox-type variable, which you can set to unicode. Use M-x customize-variable org-html-checkbox-type to see if you have it.

This snippet turns - [X] into ☑ and - [ ] into ☐.

(defun sacha/org-html-checkbox (checkbox)
  "Format CHECKBOX into HTML."
  (case checkbox (on "<span class=\"check\">&#x2611;</span>") ; checkbox (checked)
        (off "<span class=\"checkbox\">&#x2610;</span>")
        (trans "<code>[-]</code>")
        (t "")))
(defadvice org-html-checkbox (around sacha activate)
  (setq ad-return-value (sacha/org-html-checkbox (ad-get-arg 0))))

To find this code, I searched ox-html.el for [. Eventually I found org-html-checkbox, which is directly called by org-html-format-list-item instead of being a function variable that you can change. So that meant I needed to override the behaviour of org-html-checkbox through defadvice. You can see above how I wrap advice around org-html-checkbox and replace the return value with my own function. For more about advice, read the Emacs Lisp Intro manual.

To find the hex codes for the UTF-8 characters, I searched Google for UTF-8 checkbox and found BALLOT BOX WITH CHECK. I used the hex code so that I didn’t have to worry about encoding issues. I tested it by updating one of my weekly reviews. Tada!

Inspired by Grant from Wisdom and Wonder.

Visual book review: Conscious Millionaire: Grow your business by making a difference (JV Crum III)

March 28, 2014 - Categories: entrepreneurship, visual-book-notes

I don’t sketchnote every book I read or receive, but sometimes it’s good to take some time to think about a book even if I don’t agree with everything in it.

2014-03-26 Book - Conscious Millionaire - JV Crum III

2014-03-26 Book – Conscious Millionaire – JV Crum III

This sketch (like practically everything else on my blog) is available under the Creative Commons Attribution License, so feel free to download, share, remix or reuse it. =)

From the title (“Conscious” and “Millionaire,” oh dear), to the name-dropping of quantum physics as a way of justifying a “Law of Attraction,” to the membership site that will be $97/month ($9.97/month if you sign up early), this book clearly belongs to a genre of books I tend to avoid. Those kinds of books are great for a lot of people who need inspiration and push. I’m happy for them. Me, I prefer my business advice delivered with a different approach. But I agree with many things in this book, and I’m looking forward to going through the reflection exercises in depth.

I like how Conscious Millionaire focuses on building a business for profit and purpose. I’ve been thinking about this because of my experiment with semi-retirement. People want to pay me for things like sketchnotes, book notes, visual coaching, consulting, programming, writing, sharing, illustration… It would be easy to say yes, but that often distracts me from the things I want to explore. One way I compromise is through buying back all the time that I spend earning. My experiments with delegation are paying off. In many cases, these systems let me do more than I could do on my own. And in the rest of my discretionary time, I really like this casual, minimal-commitment, flow-based life. I work on whatever I want to whenever I want to, and I still get stuff done.

My expenses are covered by savings and investments, and I live generally unambitious sort of life. Or a differently-ambitious one, at least–I wanted freedom, so I got it. I actively avoid the hedonic treadmill of consumption. I’m not particularly interested in business for the sake of earning more. I am, however, interested in building systems for leverage so that I can make the world a little better. I think of building businesses as taking the kinds of results that people want from me and packaging the processes so that other people can benefit: customers, team members, other stakeholders, and so on. That would be worth spending time on.

So that’s what I’m getting out of this book: thinking about building businesses like those would be like, visualizing larger scales, and moving towards those visions with conscious, focused actions.

Before I dig into those reflections, there’s a section in here about people who don’t charge enough for their services. I want to explore that a little further.

Unfortunately, some amazingly talented and good-hearted people erroneously think they should not charge when they use their passion, purpose, and strengths to help others. … It results from thinking or believing that it is wrong to charge money whenever your actions express your purpose.

I have no qualms about charging high rates for my consulting. For everything else–especially things that can scale up over years, like books–I like using a free/pay-what-you-want strategy. It always pleasantly boggles me when people happily pay $15 for something they could get for free. Don’t worry, it’s all part of my evil plan. Mwahahaha. It means ideas spread and tribes grow. I figure that if people like all the free awesomeness, we can harness that good karma for something. In the meantime, I’m learning a lot from people in the process of sharing, and I love the feeling of interacting based on abundance instead of transactions.

Besides, the bottleneck for my scaling up isn’t time, or even money. If I earned a hundred times as much from online publishing, or scaled up my consulting to have a higher rate or more hours, what would change? I would probably delegate more so that I could help more people create opportunities for themselves. I can already do that with what I have. So I think the real bottleneck is understanding: learning more about what people need, learning more about what I want to share. You can’t throw money at that bottleneck. You can only get through by paying attention.

And that, I guess, is why Conscious Millionare might be worth reading. It’s peppered with lots of reflection topics and practical advice. If the community and the coaching takes off, that might be worthwhile as a way to compare notes with other people. Like all self-help books, you gotta get out and push. The one-page summary I put together (see the top of this post) might be handy for remembering key points, but you’ll get even further if you do the work. I’m looking forward to starting with those three-year visualizations, and then we’ll see where this goes from there. If you pick this up, tell me what you think too.

Disclaimer: I received a review copy from the author, who is an actual millionaire from things that are not books about how to become a millionaire. He started with a trucking company, so that’s a point in his favour.

Weekly review: Week ending March 28, 2014

March 30, 2014 - Categories: weekly

I got my printed proof for Sketchnotes 2013 from CreateSpace, yay! I’d already started scribbling in the margins, and then Martina insisted on buying it from me because she wanted to go through it during her trip to China. So I’ve ordered two more copies (one for myself, and a spare), and I’m looking forward to getting them soon.

Lots of talking to people this week: Visual Thinkers Toronto, the Frugal FIRE show, assorted other conversations at HackLab and online. Ooh, and some forays into Python and image processing with simplecv… Next week, I’m sketchnoting a conference, so my schedule is going to be slightly off routine. Should be interesting, though!

Blog posts

Sketches

  1. 2014.03.24 Connecting – Do I want to become more gregarious #connecting
  2. 2014.03.24 Determining a fair price for outsourced work #delegation #outsourcing
  3. 2014.03.24 How do I want to keep track of my goals #goal-factoring #planning #org
  4. 2014.03.24 Litter Box Cam with Raspberry Pi #raspberry #cats
  5. 2014.03.24 Sketchnotes 2013 in print, yay #publishing #packaging #createspace
  6. 2014.03.25 TED – Bran Ferren – To create for the ages, let’s combine art and engineering #visualtoronto
  7. 2014.03.25 TED – Jamie Oliver – Teach every child about food #visualtoronto
  8. 2014.03.26 Book – Conscious Millionaire – JV Crum III
  9. 2014.03.26 Reflections on akrasia – acting against my better judgment #rationality
  10. 2014.03.27 Frugal Fire 003 – Dealing with Pushback – Jordan Read, Sacha Chua
  11. 2014.03.27 What got me started #my-learning

Link round-up

Focus areas and time review

Emacs Basics: Call commands by name with M-x (with tips for better completion using ido or helm)

March 31, 2014 - Categories: emacs, emacs-basics, podcast
This entry is part 2 of 3 in the series Emacs Basics

Emacs has way too many keyboard shortcuts to memorize. Fortunately, you can call commands by name by typing M-x and the name of the command. M- stands for the Meta key. If your keyboard does not have a Meta key (and most don’t, these days), use Alt or Option. For example, on a PC keyboard, you can type Alt-x. Alternatively, you can replace Meta with ESC. M-x then becomes ESC x.

If you know the name of the command to execute, you can type it after M-x, and then press RET (the Return key, which is the same as the Enter key). For example, M-x find-file opens a file. M-x save-buffer saves the current file. You can use TAB to complete words. Use <up> and <down> to go through your command history.

What if you don’t know the name of the command to execute? You can use M-x apropos-command to search for the command using keywords. If you know the keyboard shortcut or you can find the command on a menu, you can also use M-x describe-key and then do the keyboard shortcut or select it from the menu.

If a command you execute has a keyboard shortcut, it will flash briefly at the bottom of your screen. For example:

You can run the command `find-file' with C-x C-f

Using TAB for completion can be a little slow. Here are two ways to make that and a whole lot of other things faster: ido and helm. To explore these approaches, you will need to add the MELPA package repository to your configuration. To set that up, add the following to the beginning of your ~/.emacs.d/init.el file.

(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)

Then use M-x eval-buffer to load the changes into your current Emacs, and use M-x package-refresh-contents to reload the list of packages.

Helm mode

This is what completion with Helm looks like:

2014-03-17 13_06_54-c__sacha_personal_organizer.org.png

Figure 2: Helm

Use M-x package-install to install the helm package. Then you can try it out with M-x helm-mode . After you start Helm mode, try M-x again. You can type in multiple words to search for a command, and you can use <up> and <down> to go through completions. Use M-p and M-n to go through your command history.

If you like it, here’s some code that you can add to your ~/.emacs.d/init.el file to load it automatically next time, and to tweak it for more convenience.

(require 'helm-config) 
(helm-mode 1)

Use M-x eval-buffer to load your changes.

If you change your mind and want to disable helm-mode, you can toggle it off with M-x helm-mode .

If you like how that works, you may want to (global-set-key (kbd "M-x") 'helm-M-x). If you do, you’ll be able to see keybindings when you call commands with M-x. Note that if you want to use a prefix argument (ex: C-u), you will need to do that after calling M-x instead of before.

Ido, ido-hacks, smex, ido-vertical-mode, and flx-ido

Ido is like Helm, but it takes a different approach. Here’s what this combination will get you:

2014-03-17 12_40_40-MELPA.png

Figure 1: ido, smex, ido-vertical-mode, and flx-ido

If you want to give this a try, remove or comment out (helm-mode 1) from your ~/.emacs.d/init.el (if you added it), and disable helm-mode if you still have it active from the previous section.

To set Ido up, use M-x package-install to install ido, smex, ido-vertical-mode, ido-hacks, and flx-ido.

After the packages are installed, add the following code to your ~/.emacs.d/init.el .

(ido-mode 1)
(require 'ido-hacks nil t)
(if (commandp 'ido-vertical-mode) 
    (progn
      (ido-vertical-mode 1)
      (setq ido-vertical-define-keys 'C-n-C-p-up-down-left-right)))
(if (commandp 'smex)
    (global-set-key (kbd "M-x") 'smex))
(if (commandp 'flx-ido-mode)
    (flx-ido-mode 1))

Use M-x eval-buffer to load your changes, then try M-x again. You should now have much better completion. You’ll be able to call commands by typing in part of their names. Use <up> and <down> to go through the completion options, and use <left> and <right> to go through your history.

Try it for a week. If you like it, keep it. If you don’t like it, try the Helm approach.

Other tips

When you learn keyboard shortcuts, try to remember the names of the commands as well. You can do that with C-h k (describe-key). For example, M-x calls the command execute-extended-command. That way, even if you forget the keyboard shortcut, you can call the command by name.

If you forget the name of the command and you don’t know the keyboard shortcut for it, you can look for it in the menus or in the help file. You can open the help file with C-h i (info). You can also use M-x apropos-command to search through the commands that you can call with M-x.

Make your own cheat sheet with frequently-used keyboard shortcuts and commands to help you learn more about Emacs. Good luck!

Emacs Basics: M-x

Emacs Basics: M-x

You can download the MP3 from archive.org.