Tags: tip

RSS - Atom - Subscribe via email

Help your readers discover more posts by organizing your content with a reverse outline

Posted: - Modified: | blogging, writing

You've written lots of blog posts, and maybe you've even organized them using categories and tags. But your readers are still getting lost. They like the posts they've found using search engines, but they don't know where to go next. If they click on your categories or tags, they see your newest posts, but they might not find your most useful ones or figure out a good order to read posts in. Sure, if you wrote all your posts according to a well-planned editorial calendar, people can follow that sequence. (If only we could all be so organized!)

I know what that's like. I've got thousands of posts in my archive, and even I find it hard to navigate through them. I've tried all sorts of plugins for suggesting related posts, but I didn't find any that could suggest good relevant content quickly.

How can we help people find the posts they need? Adding a "Popular Posts" widget to the sidebar is one way to help people discover your posts, but it only shows a handful of entries. A better way to help lost readers is to put together a page with links to your recommended posts. You can call it Resources, Start Here, or a similar title, and add a prominent link to your menu or sidebar. Off the top of your mind, you can probably think of a few blog posts to include on a resources page. Add those to the page and start helping your readers.

When you have a little more time, gradually incorporate more links into that page. You'll still want to highlight the key posts people should begin with, but after that (short) list, you can add more lists of recommended posts by topic. Choose your most important category and review the posts within it. Copy the titles and links from your blog posts and arrange them in a logical order, using either a list or an outline. For example, you might go from a list like:

  • Post 1
  • Post 2
  • Post 3
  • Post 4
  • Post 5

to an outline like:

  • Subtopic 1
    • Post 1
    • Post 3
  • Subtopic 2
    • Post 2
    • Post 4
    • Post 5

As you get an overview of your posting history, you might find opportunities to summarize several posts into a longer guide, update and improve previous posts, and fill in the gaps with additional posts. Add these ideas to your editorial calendar or idea notebook, and use those ideas the next time you sit down to write.

2015-01-12 Reverse outlining -- index card #writing #organization #outlining

For example, when I looked at what I'd written in my blogging category, I realized that I could organize these posts by the excuses they addressed. Then it was easy to turn those excuses into a short guide, which became something I could offer on my resources page. In fact, I've been working on organizing all of my recent posts into a massive reverse outline or blog index.

Building this kind of a "reverse outline" from your existing posts helps you reuse what you've already published instead of starting from scratch. Good luck!

View or add comments (Disqus), or e-mail me at sacha@sachachua.com

Getting started with Emacs? Empty your cup

Posted: - Modified: | emacs

Frustrated with Emacs because you're just not as productive as you are with your old editor? Copying configuration snippets from the Web in order to force it to work like what you're used to, but running into problems with conflicting code or obscure error messages?

Here's something I've realized. To learn Emacs well, try emptying your cup. This is the story as told on the C2 wiki:

A master was trying to explain something to a student. Now this student was not a brand new student, but a senior student who had learned many things. He had knowledge and experience aplenty to draw upon. But each time the master tried to explain something new to the student, the student kept trying to hold it up against his own notions of the way the world is and how it ought be, and he was unable to see the lessons in what the master was trying to teach him.

Finally, the master poured a full serving of tea into his own cup, and into the cup of the student. Then he told the student he wanted to give to him some of the tea from his own cup. He began pouring tea from his cup into the student's cup, but the student's cup was already full, and all the tea from the master's cup spilled out over the cup onto the surface below.

The student said, "Master, you can't pour anything into my cup until I empty it to make room for what you are trying to give me.", and the master replied "Yes I know." "And I can't give you any new thoughts or ideas or perspectives on life's lessons until you clear out some thoughts that are already teeming in your mind to make room for what I have to teach you." Then the master paused for a brief moment, meeting the student's eyes with his own knowing look and calmly but sternly said: " If you truly seek understanding, then first, empty your cup!"

The student pondered for a moment with a look of absolute bewilderment. Then a look of enlightenment came over him, followed by a smile, and a look of receptiveness. The master started to explain again, and this time the student saw what the master was trying to say.

2015-01-13 Emacs and the beginner's mind -- index card #emacs #beginner

It's natural to get frustrated when you expect something should work a particular way and it doesn't, or you're used to working quickly and you have to slow down. "Why can't I use Ctrl-X to cut? Why is it called 'killing text'? Why doesn't it work like __?" I know what that's like; even after years of using Emacs, I sometimes still struggle to configure things that people who use other editors take for granted.

Some differences seem easy to address with code you can get on the Net. But if you do that – if you give in to your initial discomfort – you may find yourself fighting more and more of Emacs as you go along, without the skills to properly understand or integrate your changes.

It's better, I think, to approach Emacs as a beginner. Empty your cup and let go of your expectations. Pretend this is your first editor. Go through the tutorial. Start with the basics. Try doing things the Emacs way.

In the beginning, you might feel agonizingly slow. You may need to do this after hours instead of when everyone is counting on you to deliver a time-sensitive project. It's okay to open up Vim or your previous editor so that you can get something done, while you keep learning Emacs in the background. It's okay to use the menu and the toolbar while you get the hang of the most common keyboard shortcuts.

As you become familiar with the system, you learn how to work within it. Slowly configure things. Get used to the changes before you introduce more. Eventually, you'll understand the configuration snippets that other people post. Reading Emacs Lisp is the first step to being able to modify Emacs Lisp, and from there you can learn how to write Emacs Lisp. But you don't have to start knowing that right away. Many people use Emacs for years before writing Emacs Lisp, and many people use it without customizing it.

But if you start learning Emacs by getting frustrated with it and trying to force it to be what you want, you might never get to the point where you can enjoy it and work with it. Be a beginner. Give yourself time and space to learn, even if you feel you're learning slowly. Then, as you improve your understanding and skills, you'll learn how to coax Emacs to fit you even better.

View or add comments (Disqus), or e-mail me at sacha@sachachua.com

Emacs microhabit: Switching windows with windmove, ace-window, and ace-jump

Posted: - Modified: | emacs

When I work with a large monitor, I often divide my Emacs frame (what most people call a window) into two or more windows (divisions within a frame). I like this more than dealing with multiple Emacs frames, even if I could spread those frames across multiple monitors. I find it easier to manage the windows using keyboard shortcuts than to manage the tiling and display of frames.

One of the Emacs micro-habits I'm working on is getting better at switching between windows. When there are only two windows, C-x o (other-window) works just fine. However, when there are three or more, it can take a few repetitions of C-x o to get to where I want. I could get around that by binding other-window to M-o instead, replacing the default keymap for that. Or I could try to get the hang of other ways to move around.

Here's an 8-minute video showing windmove, ace-window, and ace-jump:

https://www.youtube.com/watch?v=nKCKuRuvAOw&list=UUlT2UAbC6j7TqOWurVhkuHQ

Windmove lets you move around with cursor keys, if you set up the appropriate keyboard shortcuts. Ace-window works like ace-jump. In addition, you can use C-u to swap windows and C-u C-u to delete windows. Ace-jump works across windows, so that's handy too.

Here's my relevant code snippet for Windmove. I changed this to use define-key instead of bind-key.

(defvar sacha/windmove-map (make-sparse-keymap))
(define-key sacha/windmove-map "h" 'windmove-left)
(define-key sacha/windmove-map "t" 'windmove-up)
(define-key sacha/windmove-map "n" 'windmove-down)
(define-key sacha/windmove-map "s" 'windmove-right)
(define-key sacha/windmove-map "[left]" 'windmove-left)
(define-key sacha/windmove-map "[up]" 'windmove-up)
(define-key sacha/windmove-map "[down]" 'windmove-down)
(define-key sacha/windmove-map "[right]" 'windmove-right)
(key-chord-define-global "yy"     sacha/windmove-map)

Here's the cheat sheet I made for myself:

2015-01-12 Emacs microhabit - window management -- index card #emacs

2015-01-12 Emacs microhabit – window management – index card #emacs

And here's a simpler reference that you can personalize with your own shortcuts:

2015-01-18 Emacs microhabit - Switching windows -- index card #emacs #microhabit

2015-01-18 Emacs microhabit – Switching windows – index card #emacs #microhabit

Naturally, after recording the video, I thought of a better way to manage my windows. I took advantage of the def-repeat-command that abo-abo posted on (or emacs so that I could repeat keybindings easily. I modified the function to accept nil as the first value if you don't want the keymap to run a command by default, and to use kbd for the keybinding definitions.

  (defun sacha/def-rep-command (alist)
    "Return a lambda that calls the first function of ALIST.
It sets the transient map to all functions of ALIST,
allowing you to repeat those functions as needed."
    (lexical-let ((keymap (make-sparse-keymap))
                  (func (cdar alist)))
      (mapc (lambda (x)
              (when x
                (define-key keymap (kbd (car x)) (cdr x))))
            alist)
      (lambda (arg)
        (interactive "p")
        (when func
          (funcall func arg))
        (set-transient-map keymap t))))

Here's my new binding for yy. It lets me bounce on y to use other-window as normal, use the arrow keys to move between windows thanks to windmove, and use ace-window as well: h is the regular ace-window, s swaps, and d deletes.

(key-chord-define-global "yy"   
      (sacha/def-rep-command
       '(nil
         ("<left>" . windmove-left)
         ("<right>" . windmove-right)
         ("<down>" . windmove-down)
         ("<up>" . windmove-up)
         ("y" . other-window)
         ("h" . ace-window)
         ("s" . (lambda () (interactive) (ace-window 4)))
         ("d" . (lambda () (interactive) (ace-window 16)))
         )))

Neat, eh?

View or add comments (Disqus), or e-mail me at sacha@sachachua.com

Move your goalposts to get around an inability to finish projects

Posted: - Modified: | productivity

I hardly ever finish projects. I start them with a burst of enthusiasm, and then I trail off when something else catches my attention. I’ve learned to work with this instead of beating myself up about it. On some days, I might even consider it a good thing. Here’s one of the things I’ve learned:

You can trick your brain by moving the goalposts.

Let’s say that you’re working on a project. Toward the end of the project, you catch yourself losing steam. You’ve gotten 80% of the way there, and the remaining 20% of the work will take four times as much time. The itch to start a different project is pulling you away.

Don’t think of yourself as nearly done. Think of yourself as getting started on another new project that just happens to overlap with the previous one.

 

In fact, mentally set the beginning of that project to include some of the work you’ve just completed, to take advantage of the Endowed Progress effect (research PDF).

moving-the-goalposts

Tada! Goalposts moved. You might find that the newly-reframed project is now novel enough to be included in the list of new projects you enjoy working on, and it might even tempt you away from other distractions.

Moving the goalposts is usually a bad thing. It’s why many people never feel rich, because whenever they reach what used to be unimaginable wealth, they find that the amount of money needed for them to feel happy has gone up. (Solution: don’t anchor happiness to amounts of money.) Moving the goalposts has led to many a logical fallacy in heated arguments. But if you don’t like playing a close-quarters game, moving the goalposts further away can help.

I often use this technique for life-long learning, especially for things that you can’t really declare finished. Can one ever finish learning how to write or draw or program? No, but you can keep moving your targets a little forward as you learn.

You might think, “I won’t be able to celebrate achieving my original goal!” You can still celebrate milestones. Better yet, celebrate even the tiny, tiny steps that you take towards your (constantly-moving) goal. Look behind you once in a while and celebrate the progress you’ve made.

It can be hard to see progress if you don’t have anything tangible. Invest time in looking for useful chunks that you can extract even from work in progress. It’s surprising how few projects are truly all or nothing. If you can share drafts, prototypes, alpha or beta versions, or even blog posts about the journey, you don’t have to worry about the whole thing being a complete waste of time if you get distracted from the project before you finish it. If you always wait until you’ve finished something, you might end up leaving a mess of incomplete projects around.

Worried that your mind will see through this technique and lose interest even earlier in the process? Try being playful about it instead of being too serious. Yes, it’s a mental trick (and not even a particularly complex one), but if your mind likes novelty and beginnings, it can hardly fault you for giving it what it likes.

This technique doesn’t solve everything – I haven’t been able to write a 200-page Emacs book yet, and our couch still doesn’t have a slipcover. But it helps me from time to time, and maybe it will help you too!

View or add comments (Disqus), or e-mail me at sacha@sachachua.com

When you feel like you're spending a lot of time on low-impact activities

Posted: - Modified: | experiment, productivity, purpose, quantified, time

Alan Lin asked:

One issue I have is prioritization. I sometimes find myself spending a lot of time on low-impact activities. How do you tackle this in your life? What's the most important thing you're working on right now?

It's easy to feel that most of your time is taken up with trivial things. There's taking care of yourself and the household. There are endless tasks to check off to-do lists. There's paperwork and overhead. Sometimes it feels like you're making very little progress.

Here are some things I've learned that help me with that feeling:

  1. Understand and embrace your constraints.
  2. Lay the groundwork for action by understanding yourself.
  3. Act in tune with yourself.
  4. Accumulate gradual progress.

1. UNDERSTAND AND EMBRACE YOUR CONSTRAINTS

Many productivity and time management books seem to have the mindset where your Real Work is what matters and the rest of your life is what gets in the way. Sometimes it feels like the goal is to be able to work a clear, focused 60-hour or 120-hour week, to squeeze out every last bit of productivity from every last moment.

For me, the unproductive time that I spend snuggling with W- or the cats – that's Real Life right there, for me, and I'm often all too aware of how short life is. The low-impact stuff is what grounds me and makes me human. As Richard Styrman points out in this comment, if other people can focus for longer, it's because the rest of their lives don't pull on them as much. I like the things that pull on me.

Instead of fighting your constraints, understand and embrace them. You can tweak them later, but when you make plans or evaluate yourself, do so with a realistic acceptance of the different things that pull on you. Know where you're starting from. Then you can review commitments, get rid of ones that you've been keeping by default, and reaffirm the ones that you do care about. You might even find creative ways to meet your commitments with less time or effort. In any case, knowing your constraints and connecting them to the commitments behind them will make it it easier to remember and appreciate the reason why you spend time on these things.

One of my favourite ways of understanding constraints is to actually track them. Let's look at time, for example. I know I spend a lot of my time on the general running of things. A quick summary from my time-tracking gives me this breakdown of the 744 hours in Oct 2014, a fairly typical month:

Hours Activity
255.0 sleep
126.3 consulting, because it helps me make a difference and build skills
91.9 doing other business-related things
80.5 chores and other unpaid work
86.2 taking care of myself
38.3 playing, relaxing
30.4 family-related stuff
12.6 socializing
10.3 writing, because it helps me learn and connect with great people
7.4 working on Emacs, because it helps me learn and connect with great people
1.5 gardening
1.0 reading
0.5 tracking
1.7 woodworking

Assuming that my consulting, writing, and working on Emacs are the activities that have some impact on the wider world, that's 144 hours out of 744, or about 19% of all the time I have. This is roughly 4.5 hours a day. (And that's a generous assumption – many of the things I write are personal reflections of uncertain value to other people.)

Even with tons of control over my schedule, I also spend lots of time on low-impact activities. And this is okay. I'm fine with that. I don't need to turn into a value-creating machine entirely devoted to the pursuit of one clear goal. I don't think I even can. It works for other people, but not for me. I like the time I spend cooking and helping out around the house. I like the time I spend playing with interesting ideas. I like the pace I keep.

So I'm going to start with the assumption that this is the time that I can work with instead of being frustrated with the other things that fill my life.

An average of 4.5 hours a day is a lot, even if it's broken up into bits and pieces. It's enough time for me to write a deep reflection, sketch one or two books, work on some code… And day after day, if I add those hours up, that can become something interesting. Of course, it would probably add up to something more impressive if I picked one thing and focused on that. But I tend to enjoy a variety of interests, so I might as well work with that instead of against it, and sometimes the combinations can be fascinating.

Accepting your constraints doesn't mean being locked into them. You can still tweak things. For example, I experiment with time-saving techniques like bulk-cooking. But starting from the perspective of accepting your limits lets you plan more realistically and minimize frustration, which means you don't have to waste energy on beating yourself up for not being superhuman. Know what you can work with, and work with that.

You might consider tracking your time for a week to see where your time really goes. You can track your time with pen and paper, a spreadsheet, or freely-available tools for smartphones. The important part is to track your time as you use it instead of relying on memory or perception. Our minds lie to us about constraints, often exaggerating what we're dealing with. Collect data and find out.

2. LAY THE GROUNDWORK FOR ACTION BY UNDERSTANDING YOURSELF

When I review my constraints and commitments, I often ask myself: “Why did I commit to this? Why is this my choice?” This understanding helps me appreciate those constraints and come up with good ways to work within them.

My ideal is to almost always work on whatever I feel like working on. This sounds like a recipe for procrastination, an easy way for near-term pleasurable tasks to crowd out important but tedious ones. That's where preparing my mind can make a big difference. If I can prepare a list of good things to do that's in tune with my values, then I can easily choose from that list.

Here are some questions that help me prepare:

I think a lot about why I want to do something, because there are often many different paths that can lead to the same results. If I catch myself procrastinating a task again and again, I ask myself if I can get rid of the task or if I can get someone else to do it. If I really need to do it myself, maybe I can transform the task into something more enjoyable. If I find myself drawn to some other task instead, I ask myself why, and I learn a little more about myself in the process.

I plan for small steps, not big leaps. Small steps sneak under my threshold for intimidation – it's easier to find time and energy for a 15-minute task than for a 5-day slog.

I don't worry about whether I'm working on Important things. Instead, I try to keep a list full of small, good things that take me a little bit forward. Even if I proceed at my current pace–for example, accumulating a blog post a day–in twenty years, I'll probably be somewhere interesting.

In addition to the mental work of understanding yourself and shifting your perceptions by paying deliberate attention, it's also good to prepare other things that can help you make the most of high-energy, high-concentration times. For example, even when I don't feel very creative, I can still read books and outline ideas in preparation for writing. I sketch screens and plan features when I don't feel like programming. You can probably find lots of ways you can prepare so that you can work more effectively when you want to.

2014-12-03 Motivation and understanding 3. ACT IN TUNE WITH YOURSELF

For many people, motivation seems to be about forcing yourself to do something that you had previously decided was important.

If you've laid the groundwork from step 2, however, you probably have a list of many good things that you can work on, so you can work on whatever you feel like working on now.

Encountering resistance? Have a little conversation with yourself. Find out what the core of it is, and see if you can find a creative way around that or work on some other small thing that moves you forward.

4. ACCUMULATE GRADUAL PROGRESS.

So now you're doing what you want to be doing, after having prepared so that you want to do good things. But there's still that shadow of doubt in you: “Is this going to be enough?”

It might not seem like you're making a lot of progress, especially if you're taking small steps on many different trails. This is where keeping track of your progress becomes really important. Celebrate those small accomplishments. Take notes. Your memory is fuzzy and will lie to you. It's hard to see growth when you look at it day by day. If you could use your notes (or a journal, or a blog) to look back over six months or a year, though, chances are you'll see that you've come a long way. And if you haven't, don't get frustrated; again, embrace your constraints, deepen your understanding, and keep nibbling away at what you want to do.

For me, I usually use my time to learn something, writing and drawing along the way. I've been blogging for the past twelve years or so. It's incredible how those notes have helped me remember things, and how even the little things I learn can turn out to be surprisingly useful. Step by step.

So, if you're feeling frustrated because you don't seem to be making any progress and yet you can't force yourself to work on the things that you've decided are important, try a different approach:

  1. Understand and embrace your constraints. Don't stress out about not being 100% productive or dedicated. Accept that there will be times when you're distracted or sick, and there will be times when you're focused and you can do lots of good stuff. Accepting this still lets you tweak your limits, but you can do that with a spirit of loving kindness instead of frustration.
  2. Lay the groundwork for action. Mentally prepare so that it's easier for you to want what's good for you, and prepare other things so that when you want to work on something, you can work more effectively.
  3. Act in tune with yourself. Don't waste energy forcing yourself through resistance. Use your preparation time to find creative ways around your blocks and come up with lots of ways you can move forward. That way, you can always choose something that's in line with how you feel.
  4. Accumulate gradual progress. Sometimes you only feel like you're not making any progress because you don't see how far you've come. Take notes. Better yet, share those notes. Then you can see how your journey of a thousand miles is made up of all those little steps you've been taking – and you might even be able to help out or connect with other people along the way.

Alan has a much better summary of it, though. =)

To paraphrase, you start by examining your desires because that's the only way to know if they're worthwhile pursuits. This thinking prepares you and gives you with a set of things to spend time on immediately whenever you have time, and because you understand your goals & desires and the value they add to your life, you are usually satisfied with the time you do spend.

Hope that helps!

Related posts:

Thanks to Alan for nudging me to write and revise this post!

View or add comments (Disqus), or e-mail me at sacha@sachachua.com

Emacs kaizen: ace-jump-zap lets you use C-u to zap to any character

Posted: - Modified: | emacs

I'm perpetually using M-z to zap-to-char and then typing the character back in, because I really should be using zap-up-to-char instead. But if I'm going to get the hang of fiddling with my muscle memory so that I do things the Right Way, I might as well use this opportunity to practise using ace-jump-zap instead. The ace-jump-zap-up-to-char-dwim and ace-jump-zap-to-char-dwim functions behave like their normal equivalents, but if you C-u them, you get ace-jump type behaviour allowing you to quickly zap to any character you see. And since I mentally think of M-z as not including the character, I may as well map it so that M-z behaves that way.

Now I just have to remember that C-u does cool stuff…

(use-package ace-jump-zap
  :ensure ace-jump-zap
  :bind
  (("M-z" . ace-jump-zap-up-to-char-dwim)
   ("C-M-z" . ace-jump-zap-to-char-dwim)))
View or add comments (Disqus), or e-mail me at sacha@sachachua.com

Making personal blogs useful for other people too

Posted: - Modified: | blogging, writing

When people ask my advice on starting a blog, I encourage them to start a personal one. I don't mean that they should focus on writing about what they had for lunch or ranting about something that frustrates them, although they can, if they want to. I mean that it's okay to let their blog reflect them – the quirks of their interests and personality, the little things about them that make them different. I think it's because I hate reading those generic articles of passed-on advice that could have been written by anyone (and indeed, are often churned out a dozen at a time by low-paid freelancers). Our biases show in our advice.

On this blog, I tend to lean very firmly on the side of personal reflections – things I haven't quite figured out enough to clearly explain. When you know something, you can explain it in a way that makes sense, and people see that logic and immediately get that you get it. This is why a well-structured course or book is a thing of beauty. It straightens out the path of learning and helps you get to your goal faster.

When you're still making sense of something, you go in stops and starts. You wander down cul-de-sacs and dawdle along trails. You circle around something, trying to see it from different angles. This is me when I write, following the butterfly of a question somewhere. Perhaps with more editing and more planning, I can hide all of it and present you with just the polished end. But that goes against what I want to encourage.

When someone writes a tutorial with the reader in mind – like drawing a map for someone else to follow – you need to do very little to adapt it to your situation. You can see yourself in it, and you can see how to apply what you want to learn. On the other hand, personal reflections require more translation. It's like the difference between reading a guidebook that someone has written for tourists and a travel journal with observations that sometimes slip into shorthand. You take the guidebook when you go places; you read the journal if you want the feel of someone else's feel of a place.

There's a middle ground here between guidebook and travel journal: a travelogue, written for yourself but also with an eye to other people reading it. In a travelogue, you might take a little more time to explain why a place matters to you instead of simply jotting down a few cryptic references to things that only you know. You might try a little harder to capture the local flavour. You might point out things that perhaps you're not personally interested in but that other people might find interesting.

I think that's what I'd like this blog to grow into over the years and years ahead. I'd like to write a travelogue of life. Far away from the “Top 10 Things to See in __“-type lists, but more than just a photo album of snapshots or a scrapbook of tickets and brochures. Something in the middle.

And I think that feeling one gets when you read a good account–not “Oh, that sounds exotic,” or “I wish I could go,” but rather something that hovers between a new appreciation for unfamiliar things and the familiarity of recognizing home in a strange place–that might be something good to learn how to evoke in readers (you and my future, forgetful self).

Coming back from this extended metaphor – on this blog, the kinds of things that seem to have evoked that kind of a response are:

So here are some things I might try in order to help this personal blog be more useful to other people (not just me):

If you have a personal blog, would any of these ideas work for you as well? Tell me how it's going!

View or add comments (Disqus), or e-mail me at sacha@sachachua.com