Category Archives: pkm

Mapping knowledge

I chatted with someone about maps and personal knowledge management, so I thought I’d write an extended reflection.

2015-05-13e Mapping knowledge for yourself and others -- index card #mapping #pkm #sharing

2015-05-13e Mapping knowledge for yourself and others – index card #mapping #pkm #sharing

Mapping is useful for myself and for others. For managing my own learning:

  • Scope: What’s included, and what’s not? How does this relate to other things I’ve learned or I’m learning?
  • Landmarks and destinations: Role models, motivation, tracking progress…
  • Main path, detours: How do you get from A to B? Are there interesting places in the neighbourhood?
  • Here there be dragons, places under construction: Managing appropriate difficulty; tracking areas to explore or revisit

When helping other people learn, mapping lets me:

  • Define scope: Define a manageable chunk, and link to related maps: zooming in, zooming out, going to other places
  • Provide landmarks
  • Main path, detours: Organize a reasonable path (particularly based on someone’s interests) and nice detours
  • Here there be dragons / construction: Warn newbies, encourage intermediate/advanced exploration

So here’s my current workflow:

2015-05-13f Mapping what I know -- index card #workflow #blogging #index-cards #mapping #pkm

2015-05-13f Mapping what I know – index card #workflow #blogging #index-cards #mapping #pkm

2015-05-08c Managing my structured information -- index card #pkm #knowledge #sharing

2015-05-08c Managing my structured information – index card #pkm #knowledge #sharing

Using index cards, outlines, and chunks seems to be working well for me in terms of current thinking, although I haven’t been turning my attention to organizing, fleshing out knowledge, and filling in gaps.

Here are some notes from 2013 on mapping forwards (plans) and backwards (guides for other people). I’ve figured out ways around some of the challenges I encountered before:

  • Rough categorization of blog posts: I’ve written some Emacs Lisp code to help me update my blog post index monthly.
  • Hundreds of sketches with few links: Now I have more than a thousand sketches! But that’s okay, I have metadata in the filename, integration in my outline, and eventual chunking into blog posts.
  • Duplicate metadata entry, no synchronization: Tags in the filename and a NodeJS script that sets the same tags on Flickr upload, yay
  • No clear picture of follow-up questions, ideas, or actions: Outline still needs work; maybe also a quick way to review open sketches?
  • No clear role models: Found historical and contemporary ones, yay!

Mostly I’ve been focusing on little explorations rather than map-making. It’s like collecting nature specimens so that I can start to classify them, since you don’t see that order until later. Sometimes I look back and retrace my path. That’s when I can try to figure out where things are and how people might go a little faster or in a better order. Other times, when I’m looking forward, I’m trying to see what’s close by and how to get there. I remind myself of the landmarks in the distance, too, and what progress might look like. But I can only walk the routes until I reach a height that lets me review the paths ahead, so sometimes it’s just the accumulation of steps…

2015-05-12d What do I want to get from my blog archive, looking back twenty years from now -- index card #blogging #pkm #archive

2015-05-12d What do I want to get from my blog archive, looking back twenty years from now – index card #blogging #pkm #archive

2015-05-12e What do I want from my archive of index cards -- index card #pkm #archive #drawing #index-cards

2015-05-12e What do I want from my archive of index cards – index card #pkm #archive #drawing #index-cards

Thoughts in context: Connecting posts to my blog post index

I’ve been thinking about how to improve the inter-post organization of my blog so that I can write more effectively and so that other people can find things faster. I often link to posts I’ve previously written, but I rarely update old posts to link forward to other related posts. There are quite a few internal linking plugins for WordPress, but they seem more slanted towards SEO and keywords than I’d like.

I wanted to come up with another approach that could take advantage of the big outline of my blog posts at that I update every month. I’ve found this to be pretty handy for organizing things into finer categories instead of going back and updating lots of posts in WordPress. I can search this easily on my computer by using helm-swoop, and I can move things around using Org Mode.

It got me thinking: Is there a way I can make it easier to connect posts to the index so that if people find an old post useful, they can explore related posts?

So here’s what I came up with: a small See in index link at the end of the post.

2014-12-08 16_45_13-sacha chua __ living an awesome life - Page 2 of 1159 - learn - share - scale

Index link on old posts

Not all the posts are indexed yet, but for those that are, clicking on that link will open up the blog index and scroll it to the right post, highlighting the match, so people can see what else is in the neighbourhood.

2014-12-08 16_45_33-sacha chua __ blog

Matching link

To make this work, I added the following HTML code to my blog index:

<script type="text/javascript">
// from
function getURLParameter(sParam)
    var sPageURL =;
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++)
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam)
            return sParameterName[1];

function sachaScrollToBlog() {
  if (getURLParameter("url")) {
    var link = $('a[href="' + getURLParameter("url") + '"]');
    if (link.length > 0) { 
      $('html, body').scrollTop(link.offset().top - 100);
    } else {
      alert("Sorry, could not find post in index.");

<style type="text/css">
a.highlighted { background-color: yellow; padding: 10px }

Then I added this to the post.php and single.php for my WordPress theme:

if (get_the_date('Y') >= '2008' && get_the_date('Y-m') < date('Y-m', time() - 60 * 60 * 24 * 7 * 2)) {
  print '<a href="' . get_permalink() . '">See in index</a>';

The date condition is there to minimize frustration. I’ve indexed posts published 2008 or later, and I usually post an updated index within the first half of the month. I might spend some time indexing older posts; if I do, I’ll update the starting position.

It would be interesting to refine my writing workflow so that my blog index is always up to date. That way, even new posts will have this magic indexing power. It might be difficult to get that squared up with my scheduling, though, since I sometimes write a few weeks in advance. Anyway, neat, huh? This should make the archives marginally more useful. =) Good for me too!

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

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


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.


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.


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.


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.


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.

New note-taking workflow with Emacs Org-mode

The new workflow looks like it works better for me. Or rather, it’s an old workflow with new tools. Now, instead of using Windows Live Writer or ScribeFire to post my notes directly to my blog, I’m back to using M-x remember and Emacs, keeping a superset of my notes in text files and publishing selected parts of it.

  • The new workflow
    • M-x remember saves quick notes into a large text file (~/personal/, possibly with tags, with diagrams inserted later.
    • I regularly review and file items into the appropriate sections of ~/personal/
    • I post selected items to my blog using C-u M-x org2blog-post-subtree, scheduling them by adding a timestamp or using the C-c C-s (org-schedule) command.

    I sometimes use Microsoft OneNote on my new tablet to take notes during meetings, but it’s easy enough to convert my handwriting to text and paste it into my Org-mode file. I still have to think of a better way to refer to images while keeping my file manageable, but a filename is probably okay.

  • A worked example

    This is being composed in a M-x remember window. (Well, remember is bound to C-c r on my system, so it’s easy to invoke).

    After I finish braindumping, I’ll use C-c C-c to save it somewhere.

    I may schedule the post immediately (C-c s (org-schedule) and then C-u M-x org2blog-post-subtree), or tag it for later review. (:toblog: – ready to go, but not scheduled? :rough: – needs more thinking?)

    When I review the items, I’ll copy this into the Geek – Emacs section of my

    It feels nice having my notes in plain text, and being able to organize it in more than just chronological order…

  • The history

    From 2001 to about 2006, I kept an Emacs Planner wiki with all of my notes in it. Emacs Remember let me write notes that were automatically hyperlinked to whatever I was looking at, and I added code to Planner that made it easy for me to file the notes both chronologically and topically. Planner rocked. I loved being able to easily hyperlink between topics, and the wiki structure kept pages a mostly manageable size. (My public Planner files are still on the Net, but I need to regenerate the index or enable directory lists so that they’re usable.)

    When I moved to WordPress as a blogging platform in order to make it easier for people to leave comments, I hacked around with RSS to import my posts from Planner into WordPress (ex: Moving to WordPress meant a change in my workflow. I now had two places to store my notes: Planner and my blog.

    I tried Emacs Org because I liked the way it organized information. In Planner, we’d been struggling with elegant ways to manage tasks and notes that needed to be accessed in multiple contexts. The approach we had taken in Planner was to make copies of the information, but Org had a cleaner way to do it using different views. It was intriguing.

    When I started working at IBM, however, my information workflow diverged. I shifted to using a web-based to-do list and Lotus Notes, posting on an internal blog and an external one, and managing multiple sources and repositories of information.

    I wanted to go back to keeping my notes in plain text, encrypted if necessary, and to have a place where I could keep notes that might not be publishable. I still had to manage multiple computers, but synchronizing systems like Dropbox or SpiderOak got rid of some of the hassles I’d encountered with git. When I found out about org2blog thanks to a test link from punchagan, I modified the code to work with subtrees instead of new buffers, and that solved the blog publishing part of it.