Alternatives to sitting meditation: How I clear my mind

The Lifehacker article “Try a Writing Meditation If Sitting Still Isn’t Working For You” reminded me of how I’ve never quite resonated with the popular advice to clear your mind, meditate, and be mindful. When people ask me if I meditate, the word makes me think of doing yoga or sitting zazen or taking deep breaths – none of which I do. Maybe I’ll come around to those ways eventually, but in the meantime, let me share a few of the ways that work for me just in case they might help you too. =)

2015-01-16 Thinking about why I don't meditate -- index card #reason #meditation

2015-01-16 Thinking about why I don’t meditate – index card #reason #meditation

I generally keep my life low-stress. Frugality gives me a buffer from most of life’s financial stressors. Low expectations and personal responsibility make happiness easier. Stoicism helps me focus on what I can control.

I do like relaxing and being more appreciative. Everyday activities like doing the dishes, cuddling cats, spending time with W-, and following my curiosity give me that sense of abundance and fortune. They also help me slow down my thoughts and bump into interesting ideas. This reminds me of the relaxing side of meditation.

As for becoming aware of and addressing my self-talk or my thoughts, writing and drawing do a great job of bringing those thoughts out there so that I can acknowledge them or do something with them. I think this is like the self-awareness side of meditation.

Still, sometimes something perturbs my calm more than I’d like. When I’m miffed at something, that’s really more about me than about something else. It’s a good opportunity to take a look at my thoughts to see where I was lax or mistaken. This is like the clarifying side of meditation.

So I guess I do meditate, but I don’t do it in the stock-photography-meditation sort of way. Here are some other tools I use to shift my mental state:

2015-01-27 Resetting my mental state -- index card #emotions

2015-01-27 Resetting my mental state – index card #emotions

Activities that move my body or my mind make it easy for me to move my thoughts, too. For example, walking gets me breathing fresh air and looking around. Cooking immerses me in tastes and lets me enjoy doing something tangibly productive. Reading takes me inside someone else’s experiences. Helping someone shifts my focus from myself to someone else.

2015-01-25 Walking in High Park -- index card #relax

2015-01-25 Walking in High Park – index card #relax

(In particular, walking to a nearby park will almost certainly result in seeing lots of really happy dogs. There’s something about seeing a dog with a big grin and an even bigger stick.)

What is it that I’m really doing when I choose these activities? I think I’m quieting my brain enough so that I can think with less distraction. Then I can pay attention to the thoughts that I find odd or that I’d like to address, to see if I can resolve them.

In addition to responding to life as it comes, I sometimes think ahead about the way I’d like to respond to life. This is because my life has so far been pretty awesome. I don’t want to take it for granted, and I also don’t want to be blindsided by challenges. From time to time, I think about more difficult situations that I could find myself in so that I can try out different responses. This is the contemplative side of meditation, I think.

2015-01-29 Being okay with unfair -- index card #stoicism

2015-01-29 Being okay with unfair – index card #stoicism

So that’s how I “meditate,” I guess. No relaxing music, no super-deep thoughts. Mostly just everyday activities and the occasional bit of reflection. Seems to be working for me so far. =)

If you don’t meditate with a capital M, what do you enjoy doing instead? =)

Cultivate memories deliberately

How much can we influence the memories that come upon us unexpectedly or the ones that we bring up when we reflect?

Sometimes, in the middle of washing the dishes, I remember standing on a footstool in my mother’s kitchen and washing the dishes there; she’d taught the three of us sisters to handle different stages of the dish-washing assembly line. I can see what prompted that memory. The connection is easy to understand. Other times, I’m not sure what drew me back to a time or place I’d forgotten. Some memories make me smile. Others remind me where I could’ve done better.

I’ve been thinking about long-term happiness, experiences, and memory. I imagine that at eighty or ninety years old, you’d want to have plenty of good memories. What’s worth paying attention to? What’s worth creating experiences for? How can you smooth the edges of rough memories and intensify good ones?

Here are some of my thoughts about the memories I want to cultivate through attention and understanding.

2015-01-31 What's worth remembering -- index card #memory

2015-01-31 What’s worth remembering – index card #memory

I’d like to remember, clearly and distinctly, the things that contribute to happiness: connection, mastery, triumph, little moments of joy. How can we get better at things like that? Paying close attention, and creating the situations where these memories can arise.

I’d like to remember the storms – not to dwell on them, not to feel a victim, but to remember that they’re temporary and that we’ve weathered them in the past. (No Eternal Sunshine of the Spotless Mind for me!) I don’t write as much about these (in public, or even in my journals), but that doesn’t mean I don’t think of them from time to time. By not writing about them, though, I miss out on the opportunity to make sense of them, to fit them into a coherent narrative that helps me move forward.

I’d like to remember the things that will help me make better decisions: ideas, assumptions, consequences, lessons learned. Since it can be hard to remember details and one’s mind is often tempted to rewrite things more favourably, writing about these things is a good way to extend my understanding over time.

I have a lot of mental clutter. The time in school I wanted to experiment with fixing a memory with intense clarity, choosing (of all things!) the speckled ceiling to focus on. Many embarrassing moments, like the time a friend teased me for having mispronounced “adolescent” in a moment of inattention. Every moment contains a lesson, but I’m not sure that these lessons are worth the attention my mind gives them. I don’t dwell on these thoughts, but they skitter across my brain from time to time. It would be good to be able to acknowledge them and their underlying thoughts, and then put them on a mental shelf. Then, when they escape, I can say, “Oh, hello again! Do you have anything to add? No? Back you go.”

2015-01-18 Narratives -- index card #storytelling #perspective

2015-01-18 Narratives – index card #storytelling #perspective

By thinking about memories on my own terms, I can make sense of them my way. The narratives we tell ourselves have such power. If your story is “Everyone’s against me!”, it’s easy to find memories that fit that pattern, and you’ll feel worse and worse. If your story is “Actually, things are pretty awesome,” it will likewise be easy to find memories that fit. By thinking about the general types of memories that come up and connecting them to a positive story, it’ll be easier to respond to them positively when they come up at other times.

In addition to cultivating your existing memories, it’s also good to deliberately create good ones. The impression I get from how other people do this is that people plan Big Memories. The awesome vacation. The ascetic pilgrimage. The conquered marathon.

My life tends to be about small memories. The in-joke picked up from the movie W- and I watched a few years ago, blended with the pun of the moment. The amusing situations our cats get themselves into. Cooking with friends. There are big memories mixed in there too (family trips, graduations, weddings), but the small ones… How can I explain this? The small ones seem as richly flavoured as the big ones are. Big memories are easier to tell other people about, but the small ones are more plentiful.

(Unless you’re like my dad, generating big memories by the bucket-load because you’re always on interesting adventures.)

What would it be like to be a big-memory-full person, a bucket-list-crosser-outer, a grand adventurer? Maybe I’d go refresh my memory of a night sky so clear you feel the dimensions of space. Maybe I’d splurge on eating interesting food at wonderful restaurants. Maybe I’d go to more parties (some of my friends throw themed ones, even). Maybe I’d bike around more in the city, or take the train and try biking near Niagara. Maybe I’d get back into the habit of having birthday parties.

In “Memories Make Your Life Meaningful – Here’s How to Have More of Them, Ben Casnocha writes:

  • Prize novelty. Novelty leads to memories.
  • Take on challenges; endure struggle; feel intense lows and highs.
  • Do things with people. And use people as a key variable.
  • Seek novelty, yes, except when novelty itself becomes routine.
  • Review and re-live memories soon after the fact.
  • If you consciously focus on creating a great memory in the moment, it sticks.

More novelty, more randomness, more challenges, more people, more review, more attention. This slows life down, makes it denser with memories, and expands joy.

Cultivate memories more deliberately: make sense of your existing memories, and consciously build new ones. What would you like to remember in twenty years?

Getting Helm and org-refile to clock in or create tasks

I’ve been thinking about how to improve the way that I navigate to, clock in, and create tasks in Org Mode. If the task is one of the ones I’ve planned for today, I use my Org agenda. If I know that the task exists, I use C-u C-c C-w (org-refile) to jump to it, and then ! (one of my org-speed-commands-user options) to clock in and track it on Quantified Awesome. If I want to resume an interrupted task, I use C-u C-c j (my shortcut for org-clock-goto). For new tasks, I go to the appropriate project entry and create it, although I really should be using org-capture instead.

2015-01-30 Org Mode jumping to tasks -- index card #emacs #org

2015-01-30 Org Mode jumping to tasks – index card #emacs #org

I thought about how I can reduce some of these distinctions. For example, what if it didn’t matter whether or not a task already exists? I can modify the org-refile interface to make it easier for me to create tasks if my description doesn’t match anything. To make things simpler, I’ll just reuse one of my org-capture-templates, and I’ll pre-fill it with the candidate from Helm.

(ert-deftest sacha/org-capture-prefill-template ()
  (should
   ;; It should fill things in one field at a time
   (string=
    (sacha/org-capture-prefill-template
     "* TODO %^{Task}\nSCHEDULED: %^t\n:PROPERTIES:\n:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}\n:END:\n%?\n"
     "Hello World")
    "* TODO Hello World\nSCHEDULED: %^t\n:PROPERTIES:\n:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}\n:END:\n%?\n"
    ))
  (should
   (string=
    (sacha/org-capture-prefill-template
     "* TODO %^{Task}\nSCHEDULED: %^t\n:PROPERTIES:\n:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}\n:END:\n%?\n"
     "Hello World" "<2015-01-01>")
    "* TODO Hello World\nSCHEDULED: <2015-01-01>\n:PROPERTIES:\n:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}\n:END:\n%?\n"))
  (should
   (string=
    (sacha/org-capture-prefill-template
     "* TODO %^{Task}\nSCHEDULED: %^t\n:PROPERTIES:\n:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}\n:END:\n%?\n"
     "Hello World" "<2015-01-01>" "0:05")
    "* TODO Hello World\nSCHEDULED: <2015-01-01>\n:PROPERTIES:\n:Effort: 0:05\n:END:\n%?\n")))

(defun sacha/org-capture-prefill-template (template &rest values)
  "Pre-fill TEMPLATE with VALUES."
  (setq template (or template (org-capture-get :template)))
  (with-temp-buffer
    (insert template)
    (goto-char (point-min))
    (while (re-search-forward
            (concat "%\\("
                    "\\[\\(.+\\)\\]\\|"
                    "<\\([^>\n]+\\)>\\|"
                    "\\([tTuUaliAcxkKInfF]\\)\\|"
                    "\\(:[-a-zA-Z]+\\)\\|"
                    "\\^\\({\\([^}]*\\)}\\)"
                    "?\\([gGtTuUCLp]\\)?\\|"
                    "%\\\\\\([1-9][0-9]*\\)"
                    "\\)") nil t)
      (if (car values)
          (replace-match (car values) nil t))
      (setq values (cdr values)))
    (buffer-string)))

(defun sacha/helm-org-create-task (candidate)
  (let ((entry (org-capture-select-template "T")))
    (org-capture-set-plist entry)
    (org-capture-get-template)
    (org-capture-set-target-location)
    (condition-case error
        (progn
          (org-capture-put
           :template
           (org-capture-fill-template
            (sacha/org-capture-prefill-template (org-capture-get :template)
                                                candidate)))
          (org-capture-place-template
           (equal (car (org-capture-get :target)) 'function)))
      ((error quit)
       (if (get-buffer "*Capture*") (kill-buffer "*Capture*"))
       (error "Capture abort: %s" error)))) t)

Next, I want to add this to the way that Helm prompts me to refile. That means that my creation task should return something ready for org-refile. Actually, maybe I don’t have to do that if I know I’m always going to call it when I want to jump to something. I might as well add that bit of code that sets up clocking in, too.

(defvar sacha/helm-org-refile-locations nil)

(defun sacha/helm-org-clock-in-and-track-from-refile (candidate)
  (let ((location (org-refile--get-location candidate sacha/helm-org-refile-locations)))
    (save-window-excursion
      (org-refile 4 nil location)
      (sacha/org-clock-in-and-track)
      t)))

(defun sacha/helm-org-refile-read-location (tbl)
  (setq sacha/helm-org-refile-locations tbl)
  (helm
   (list
    (helm-build-sync-source "Refile targets"
      :candidates (mapcar 'car tbl)
      :action '(("Select" . identity)
                ("Clock in and track" . sacha/helm-org-clock-in-and-track-from-refile))
      :history 'org-refile-history)
    (helm-build-dummy-source "Create task"
      :action (helm-make-actions
               "Create task"
               'sacha/helm-org-create-task)))))

(defun sacha/org-refile-get-location (&optional prompt default-buffer new-nodes no-exclude)
  "Prompt the user for a refile location, using PROMPT.
PROMPT should not be suffixed with a colon and a space, because
this function appends the default value from
`org-refile-history' automatically, if that is not empty.
When NO-EXCLUDE is set, do not exclude headlines in the current subtree,
this is used for the GOTO interface."
  (let ((org-refile-targets org-refile-targets)
        (org-refile-use-outline-path org-refile-use-outline-path)
        excluded-entries)
    (when (and (derived-mode-p 'org-mode)
               (not org-refile-use-cache)
               (not no-exclude))
      (org-map-tree
       (lambda()
         (setq excluded-entries
               (append excluded-entries (list (org-get-heading t t)))))))
    (setq org-refile-target-table
          (org-refile-get-targets default-buffer excluded-entries)))
  (unless org-refile-target-table
    (user-error "No refile targets"))
  (let* ((cbuf (current-buffer))
         (partial-completion-mode nil)
         (cfn (buffer-file-name (buffer-base-buffer cbuf)))
         (cfunc (if (and org-refile-use-outline-path
                         org-outline-path-complete-in-steps)
                    'org-olpath-completing-read
                  'org-icompleting-read))
         (extra (if org-refile-use-outline-path "/" ""))
         (cbnex (concat (buffer-name) extra))
         (filename (and cfn (expand-file-name cfn)))
         (tbl (mapcar
               (lambda (x)
                 (if (and (not (member org-refile-use-outline-path
                                       '(file full-file-path)))
                          (not (equal filename (nth 1 x))))
                     (cons (concat (car x) extra " ("
                                   (file-name-nondirectory (nth 1 x)) ")")
                           (cdr x))
                   (cons (concat (car x) extra) (cdr x))))
               org-refile-target-table))
         (completion-ignore-case t)
         cdef
         (prompt (concat prompt
                         (or (and (car org-refile-history)
                                  (concat " (default " (car org-refile-history) ")"))
                             (and (assoc cbnex tbl) (setq cdef cbnex)
                                  (concat " (default " cbnex ")"))) ": "))
         pa answ parent-target child parent old-hist)
    (setq old-hist org-refile-history)
    ;; Use Helm's sources instead
    (setq answ (sacha/helm-org-refile-read-location tbl))
    (if (and (stringp answ)
             (setq pa (org-refile--get-location answ tbl)))
        (progn
          (org-refile-check-position pa)
          (when (or (not org-refile-history)
                    (not (eq old-hist org-refile-history))
                    (not (equal (car pa) (car org-refile-history))))
            (setq org-refile-history
                  (cons (car pa) (if (assoc (car org-refile-history) tbl)
                                     org-refile-history
                                   (cdr org-refile-history))))
            (if (equal (car org-refile-history) (nth 1 org-refile-history))
                (pop org-refile-history)))
          pa)
      (if (and (stringp answ) (string-match "\\`\\(.*\\)/\\([^/]+\\)\\'" answ))
          (progn
            (setq parent (match-string 1 answ)
                  child (match-string 2 answ))
            (setq parent-target (org-refile--get-location parent tbl))
            (when (and parent-target
                       (or (eq new-nodes t)
                           (and (eq new-nodes 'confirm)
                                (y-or-n-p (format "Create new node \"%s\"? "
                                                  child)))))
              (org-refile-new-child parent-target child)))
        (if (not (equal answ t)) (user-error "Invalid target location"))))))

(fset 'org-refile-get-location 'sacha/org-refile-get-location)

Hooray! Now C-u C-c C-w (org-refile) also lets me use TAB or F2 to select the alternative action of quickly clocking in on a task. Mwahaha.

You can check out this code in my config to see if anything has been updated. Want to learn more about modifying Helm? Check out these posts by John Kitchin and Rubikitch.

I think I’m getting the hang of tweaking Helm.  Yay!

Shrinking my learn-do-share-review cycle

Sometimes I read too much without doing anything about what I learn. By the time I get around to applying ideas, my memory is fuzzy and I have to dig up my notes anyway. Sometimes I never get around to applying what I’ve learned.

Sometimes the tasks on my TODO list are too big to fit into a single session of thinking-about or doing, so I end up procrastinating them. Or sometimes I do them, but I feel like I’m wandering around.

Sometimes I let myself focus too much on learning and doing, moving onward. By the time I want to share what I’ve learned, I feel like there’s just so much background I need to cover before people can get to the point of being able to do things. Or I’ve forgotten what those first crucial steps were.

Sometimes I get so caught up in learning, doing, or sharing, that I forget to spend time thinking about how I’m doing things. I’ve been keeping a journal, but the entries are often very short – just keywords that describe what I did, without notes on how I might do it better.

Have you felt like that too? Tell me I’m not the only one who has to think about the balance. =)

I’ve been working on reducing waste by shortening this learn-do-share cycle. Instead of spending a week reading five books about a topic, I might spend a couple of hours reading one book, extracting the key points from it, and identifying one or two actions I can try. Instead of doing an exhaustive search to find the best tool for what I want to do, I’ll do a quick search, pick one, try it out, and then use that experience to help me learn. Instead of waiting until I feel confident about a topic (or even until I’ve worked out all the bugs), I’ll share while I learn. Instead of trying to fill in all the gaps between where a beginner might start and where my post ends up, I write just the part that’s fresh in my memory, and then I might fill in other gaps when people ask.

2015-02-04 Shrinking my Learn-Do-Share cycle -- index card #sharing #learning

2015-02-04 Shrinking my Learn-Do-Share cycle – index card #sharing #learning

In fact, I’ve been moving towards posting more of my rough notes using index cards. That way, I don’t even have to wait until I’ve summarized the cards into a more coherent blog post. They’re out there already, easy to link to or share in conversations. I still suspect it’s a bit of a firehose of incoherence, but I’m pleasantly surprised that some people actually find them interesting. =)

2015-02-03 Benefits of sharing my index cards -- index card #sharing #drawing

2015-02-03 Benefits of sharing my index cards – index card #sharing #drawing

A fast learn-do-share cycle results in a new challenge: What do you do with all these little pieces? This matters for both organizing your own notes and making it easier for other people to learn.

I’ve been refining my workflows for organizing my index cards, snippets, and posts into outlines. Picking descriptive titles definitely helps. Fortunately, other people have given this challenge of personal knowledge management much thought. Zettelkasten looks like an interesting keyword to research, and I’m looking forward to picking up ideas from other people’s techniques.

When it comes to organizing notes for other people, I’m still rather haphazard, but I’m planning to braindump a large outline of questions and use that to create maps for people.

As for the actual division of time, the pomodoro technique isn’t part of my habitual workflow yet, but I’ve heard good things about it. Maybe I’ll experiment with a pomodoro-based schedule: one for learning, one for doing, and one for sharing. But my learning cycle’s actually a lot more intertwined. At its best, I’m learning as I’m doing (flipping between windows as needed), and the notes that I take while I’m learning and doing (thanks to Org Mode and literate programming!) can easily be shared as a blog post. So maybe each chunk of time represents a topic instead, and I can track whether I’m successfully getting things all the way through to the sharing stage.

Sure, some topics require deeper reflection and integration. For instance, you can’t expect instant results from philosophy. But it might be interesting to shorten the distance from learning to action and from action to sharing.

I like the tips in Christian Tietze’s “Use a Short Knowledge Cycle to Keep Your Cool” on how to figure out a good “size” for your research tasks so that you don’t feel overwhelmed by them. It’s a good reminder to iterate: you don’t have to research everything before you start trying things out, you don’t have to know everything before you start writing, and you don’t have to have a perfect process – you can keep improving it.

So we’ll see how this works out. For example, this post took me half an hour to research/think about, and another half-hour to write. It could be more interesting if I researched some more (found similar techniques, contrasting opinions, etc.), and it could be richer with more experiments and experiences, but here it is. I can always add to it in the future, or write another post and link to the previous one.

Sketched Book: Write Faster, Write Better – David A. Fryxell

David A. Fryxell’s Write Faster, Write Better (2004) is a journalist’s collection of tips that might help you write faster. Fryxell focuses on eliminating waste: wasted research, wasted interviews, wasted notes, wasted words, wasted drafts. You can do this by organizing, planning ahead, keeping your focus in mind, and writing a good-enough draft the first time around (instead of revising loose drafts that run too long or circling around a never-finished perfectionist draft).

I’ve sketched the key points of the book to make them easier to remember and share. Click on the image to get a high resolution version that you can print if you want.

2014-12-14 Sketched Book - Write Faster Write Better - David A Fryxell

One of the things that I struggle with is that I often don’t have a clear idea of what I want to write when I start writing it. I don’t have a focused high-concept phrase that explains my angle and the surprise twist. I don’t have a clear outline that tells me what kind of research I need to do, who I should talk to, and how everything fits together. I don’t have an editor who’ll force me to come up with a clear concept.

Maybe I’ll get there with experience. It might be okay to do this kind of exploratory writing – a little like journaling in public – and then apply Fryxell’s techniques to extract and polish a chunk that would be useful to other people.

Curious about the book? You can get it from Amazon or other places if you like. (Affiliate link)

Like the sketch? Find more at sketchedbooks.com. They’re under the Creative Commons Attribution License (like the rest of my blog), so feel free to share it with people who might find this useful. Enjoy!

Weekly review: Week ending February 27, 2015

This week was about sewing. I made three tops, wow! I might go to the fabric store on Tuesday to see if there are other fabrics that I’d like to turn into tops using the same pattern.

Also, I made lemon meringue for the first time in ages. I tried another biscotti recipe, too.

My Samsung Galaxy S3 started power-cycling, so I replaced it with a Moto G. The Moto G is working surprisingly well. I thought I’d have problems with the small, non-expandable storage, but it works just fine. =)

2015-03-01a Week ending 2015-02-27 -- index card #weekly

output

Blog posts

Sketches

Link round-up

Focus areas and time review

  • Business (26.5h – 15%)
    • Earn (10.7h – 40% of Business)
      • Earn: E1: 1-2 days of consulting
      • Prepare invoice
    • Build (3.5h – 13% of Business)
      • Drawing (1.4h)
      • Delegation (0.0h)
      • Packaging (0.0h)
      • Paperwork (0.8h)
        • File payroll return
      • Figure out why library isn’t renewing
      • Fix color detection
    • Connect (12.3h – 46% of Business)
  • Relationships (12.5h – 7%)
    • Help Sean with Emacs
    • Print tickets
    • Hang out with Linda and watch Gabriel perform
  • Discretionary – Productive (24.1h – 14%)
    • Emacs (1.6h – 0% of all)
      • Help Sean with Ruby environment
      • Choose additional fabrics for Sorbetto top
      • Get 1.5 yards of cotton shirting
    • Sewing
      • Print out Colette pattern
    • Phone
      • Figure out what’s going on with my phone
      • Set up new phone
      • Buy Moto G from Staples
      • Upgrade to Lollipop
    • Attend Sketchnote Hangout
    • Read synopsis for Die Walkure
    • Read chapter 4 of Intermediate Japanese
    • Review Createspace
    • Investigate Powershell
    • Writing (2.1h)
  • Discretionary – Play (9.0h – 5%)
  • Personal routines (21.6h – 12%)
  • Unpaid work (16.3h – 9%)
  • Sleep (58.1h – 34% – average of 8.3 per day)