Category Archives: kaizen

How I can improve how I organize notes with Org Mode

Let me think about how I organize my Org Mode files, and how I might improve that. =)

Separate files

You can put different things in different files, of course. I use a few large Org files instead of lots of small ones because I prefer searching within files rather than searching within directories. Separate files make sense when I want to define org-custom-agenda-commands that summarize a subset of my tasks. No sense in going through all my files if I only want the cooking-related ones.

What would help me make better use of lots of files? I can practise on my book notes, which I’ve split up into one file per book. It’s easy enough to open files based on their titles (which I put in my filenames). But I don’t have that overall sense of it yet. Maybe #+INDEX: entries, if I can get them to generate multiple hyperlinks and I have a shortcut to quickly grep across multiple files (maybe with a few lines of context)? Maybe a manual outline, an index like the one I’ve been building for my blog posts? I can work with that as a starter, I think.

Okay. So, coming at it from several directions here:

  • A manual map based on an outline with lots of links, with some links between topics as well – similar to my blog outline or to my evil plans document
  • Quick way to grep? helm-do-grep works, but my long filenames are hard to read.
  • Links between notes and to blog posts
  • TODOs, agenda views

Outlines

Within each file, outlines work really well. You can create any number of headings by using *, and you can use TAB to collapse or expand headings. You can promote or demote subtrees, move them around, or even sort them.

I generally have a few high-level headings, like this:

* Projects
** One heading per current project
*** TODO Project task
* Reference
Information I need to keep track of
* Other notes
* Tasks
** TODO Lots of miscellaneous tasks go here
** TODO Lots of miscellaneous tasks go here
** TODO Lots of miscellaneous tasks go here

Every so often, I do some clean-up on my Org files, refiling or archiving headings as needed. This makes it easier to review my current list of projects. I keep this list separate from the grab-bag of miscellaneous tasks and notes that might not yet be related to particular projects.

I use org-refile with the C-u argument (so, C-u C-c C-w) to quickly jump to headings by typing in part of them. To make it easy to jump to the main headings in any of my agenda files, I set my org-refile-targets like this:

(setq org-refile-targets '((org-agenda-files . (:maxlevel . 6))))

How can I get better at organizing things with outlines? My writing workflow is a natural place to practise. I’ve accumulated lots of small ideas in my writing file, so if I work on fleshing those out even when I don’t have a lot of energy–breaking things down into points, and organizing several notes into larger chunks–that should help me become more used to outlines.

Tags

In addition to organizing notes in outlines, you can also use tags. Tags go on the ends of headings, like this:

** Heading title     :tag:another-tag:

You can filter headings by tags using M-x org-match-sparse-tree (C-c \) or M-x org-tags-view (C-c a m).

Tags are interesting as a way to search for or filter out combinations. I used tags a lot more before, when I was using them for GTD contexts. I don’t use them as much now, although I’ve started tagging recipes by main ingredient and cooking method. (Hmm, maybe I should try visualizing things as a table…) I also use tags to post entries under WordPress blog categories.

How can I get better at using tags? I can look for things that don’t lend themselves well to outlines, but have several dimensions that I may want to browse or search by. That’s probably going to be recipe management for now. If I figure out a neat way to add tags to my datetree journal notes and then visualize them, that might be cool too.

Links

Org Mode links allow me to refer not only to web pages, files, headings, and text searches, but to things like documentation or even executable code. When I find myself jumping between places a lot, I tend to build links so that I don’t have to remember what to jump to. My evil plans Org Mode file uses links to create and visualize structure, so that’s pretty cool, too. But there’s still a lot more that I could probably do with this.

How can I use links more effectively? I can link to more types of things, such as Lisp code. I can go back over my book notes and fill in the citation graph out of curiosity. Come to think of it, I could do that with my writing as well. My writing ideas rarely fit in neat outlines. I often feel like I’m combining multiple threads, and links could help me see those connections.

In addition to explicit links, I can also define “radio targets” that turn any instance of that text into a hyperlink back to that location. Only seems to work within a single file, though, and I’ve never actually used this feature for something yet.

Properties

You can set various properties for your Org Mode subtrees and then display those properties in columns or filter your subtrees by those properties. I’ve used Effort to keep track of effort estimates and I have some agenda commands that use that. I also use a custom Quantified property to make it easier to clock into tasks using my Quantified Awesome system.

I could track energy level as either tags or properties. Properties allow for easier sorting, I think. Can I define a custom sort order, or do I have to stick with numeric codes? Yeah, I can sort by a custom function, so I can come up with my own thing. Okay. That suggests a way I can learn to use properties more effectively.

There are even more ways to organize Org Mode notes in Emacs (agenda views, exports, etc.), but the ones above look like good things to focus on. So much to try and learn!

Figuring out how my temporary sleep schedule interacts with programming, writing, and drawing

I was thinking about how I can use these snippets of time to improve in programming, writing, and drawing. I realized that although I can easily imagine how other people can write or draw using fragmented time (writers scribbling in notebooks on top of washing machines, artists doodling on the subway), programming seems a lot less tractable. It doesn’t feel like you can break it up and squeeze it into different parts of your day as much.

It is generally accepted that context switching is evil when it comes to programming. So I’ve been carrying around this idea that Real Programmers are people who can pull all-nighters hacking on tough problems, holding elaborate structures in their heads. Your standard hero programmer stereotype, with the pinnacle being someone either building complex, cool stuff, possibly maintaining large and useful open source software.

Hence this little mental disconnect. I’m pretty certain I can get there someday if I really want to, but probably not if I extrapolate from current circumstances. Even maintaining a tiny piece of software sounds like more commitment than I want at the moment. (Heck, I might go a few weeks without responding to e-mail.)

Fortunately, I spent my first few working years in a corporate environment, where mentors showed me that it’s totally possible to be an Awesome Geek while still working a roughly 9-to-5 job, having families and hobbies, and getting plenty of sleep. Thank goodness. So I have this alternate model in my head, not of a Hero Programmer, but rather of solid contributors who keep making gradual progress, help teams of people become more productive, and who enjoy solving interesting challenges and expanding their skills.

So let’s say that I want to play with my assumption that programming is the sort of thing that’s hard to squeeze into the nooks and crannies of one’s day, at least not the way writing and drawing can. I know that I can go through technical documentation and design resources even if my mind isn’t completely awake, and I can still pick up useful things.

What is it about writing and drawing that make them suitable even in small doses, and how can I tweak programming? Writers can think about stuff during other activities. I can reflect on ideas while walking or cooking, for example. When I program, I still need more of that back-and-forth with a computer and an Internet connection, but maybe I’ll need less of that as I develop more experience. I can set pen to paper during any spare moment, sketching a quick line and seeing where it takes me from there. I might not be able to do that with implementation, but I can use that same playfulness to explore design. Behavior-driven development makes it easier to break projects down into tiny, clear steps, and have a way of verifying progress (without too much backsliding!). Getting deeper into frameworks and tools will help me do more with less effort when I do sit down at a computer.

Okay. I can do this. Worst-case scenario, I just move slowly until I get past this particular phase. I’ve seen role models who’ve pulled that off well, so that’s totally cool. Best-case scenario, I figure out how to hack around some of my current cognitive limitations, and maybe that might help other people who find themselves in the same situation too.

This could work.

Planning little improvements

I like re-planning when things are a little bit clearer and when things change. It’s nice to take a look at where I am, where I might get to, and maybe what I can do with more reinvestment.

wpid-2014-11-01-Baselines-and-possible-improvements-part-1.png wpid-2014-11-01-Baselines-and-possible-improvements-part-2.png

A year still feels a little abstract. A 12-week span might be interesting for concrete goal-setting and momentum; maybe something to experiment. In any case, here’s a small achievement list I can work towards…

  1. Development
    • Propose a calendar of prototypes with business-value descriptions
    • Design prototype and help team members write it instead of coding it myself
    • Think syntactically
  2. Reporting
    • Make Tableau reports snappy
    • Identify business questions for a valuable regular report
    • Analyze my own data in R
  3. Writing: Put together the intermediate Emacs config guide
  4. Drawing: Sketch people quickly
  5. Cooking: Map the families of recipes I want to try, and try them
  6. Learning: Map the things I know and what I want to learn, and maybe find a coach
  7. Tracking: Do grocery tracking in Quantified Awesome
  8. Making: Sew those box cushion covers
  9. Organizing house stuff
    • Simplify wardrobe
    • Tile floor
  10. Biking: Maybe bike in winter
  11. Pet care: Get Luke used to the toothbrush
  12. Exercise: Do the exercise ladder for twelve weeks
  13. Relationship: Work on more projects together
  14. Community:
    • Set up Emacs hangout experiment
    • Hang out at Hacklab during winter

Avoiding spoilage with bulk cooking

We’d been letting some vegetables and cooked food go to waste, so I’ve been tinkering with how we prepare our meals in order to reduce spoilage. Here’s how we now cook in bulk.

During the weekend, we review the past week’s leftovers and freeze them as individual meals. We packaging food in individual lunch-sized containers (~500g, including rice) until the freezer is full or the fridge leftovers are done. I label the containers using painter’s tape and a marker, writing down the initials of the recipe and a number for the month. For example, chicken curry prepared in July is labeled CC7.

I prepare one or two types of dinners. I usually pick bulk recipes based on what’s on sale at the supermarket. If there are unused groceries from the previous week (sometimes I end up not cooking things), I prepare a recipe that can use those up: curry, soup, etc. I start a large pot of rice, too, since I’m likely to use that up when packing individual meals and we go through a lot of rice during the week. We’re more likely to enjoy the variety if it’s spread out over the coming weeks. Freezing the leftovers means we can avoid spoiling food out of procrastination.

After the food is cooked, I put portions into our large glass containers. That way, we have a little room to cook fresh dinners during the week (which W- likes to do), but we also have some backups in case things get busy. We alternate the prepared dinners for variety. For some meals that are inefficient to portion out, I just keep the entire pot in the fridge. If there’s more, I’ll freeze the rest as individual portions. If the freezer is full, I’ll keep the extras in the fridge.

When it comes to the freezer, individual portions are much more convenient than larger portions. You can take one to work and microwave it for lunch. Sometimes I pack larger portions (ex: pizza, pasta sauce), so we need to plan for that when defrosting them. If a dinner portion is thawed in the fridge, it has to get eaten since it can’t be refrozen (unless we re-cook it, which we rarely do).

Our costs tend to be between $1.50 and $3 per portion. For example, the Thai curry I made last time resulted in 20 portions out of $22.39 of groceries. Even if you account for the spices and rice in our pantry, it still comes to a pretty frugal (and yummy!) meal. Sure, there’s labour and electricity, but I enjoy cooking and we schedule it for the lower electricity rates of the weekend. Well worth it for us, and we’re working on getting even better at it.

Aside from reducing spoilage, I’m also working on increasing variety, maybe cooking smaller batches and cooking more often during the week. I’d still like to use the freezer to spread out meals over an even longer period of time so that we can enjoy different tastes. Getting the hang of spices, ingredient combinations, and cooking techniques will help me with variety, too. So much to learn! =)

Routines

Routines are like solidified learning, the habits shaped by little pay-offs. You make all these decisions one at a time, and as you find things that work, they get absorbed into your routines.

I love having fairly stable routines. They minimize thinking and allow me to estimate time well. For example, my regular breakfast is rice and one fried egg, so it’s easy to make sure I’ve got both in stock. My morning routine takes me about an hour from the time I wake up to the time I head out on my bicycle or go to the subway station, although I can compress it by skipping blogs and having cereal instead of rice and egg. It takes me about fifty minutes to get downtown. My evening routine involves an early dinner (heating up stuff from the fridge), some exercise, cleaning up, and some writing or drawing. My weekends are a little more flexible. As long as groceries, cooking, laundry, and tidying up happen, we’ll be set for the next week.

2014-08-20 Routines

2014-08-20 Routines

I have a lot of routines, but I don’t want them to ossify. I like turning my attention on one routine at a time, being mindful during it, looking for little ways to tweak it. For example, there are lots of ways I could tweak my evening routine, especially during jogging days. If I make the sequence dinner-tidy-read-jog-exercise-litterbox-shower-snack-draw, I think that would work out better in terms of winding down – less waiting for my hair to dry. I If I can juggle the timing so that the jog happens before the library closes, bonus!

2014-08-20 Evening routines

2014-08-20 Evening routines

I’m tweaking my thinking/drawing/writing routines too, so I expect some growing pains – things might get a little weirder before they become smoother. It’s good to anticipate this, because otherwise you get stuck at a local maximum instead of being able to explore. In particular, I’m experimenting with drawing more reflections during the week, and then using them as springboards for writing during the weekend. This should spread out my computer use a little bit, encourage me to practise drawing, and possibly lead to interesting places.

It’s fun to be deliberate about your habits. You get to ask yourself, “Why do I do things that way, and in that sequence? How can I experiment with this?”

Tweaking the way I write

Through writing, I want to:

  • Learn more effectively and efficiently by taking notes and chunking my thoughts
  • Understand and be able to articulate what I’m thinking
  • Keep notes for future reflection and time travel
  • Connect with people who have similar interests
  • Help other people save time

I’m pretty happy with how I’m doing this so far, although it would be even better if I could write more efficiently and effectively. What would that look like, and how could I move towards that?

I pick up a lot of information from reading and from trying things out. If I spend more time reviewing notes and experimenting with concepts, that will help me get more out of the time that I spend reading. Wouldn’t be neat if my personal stash of quotes (my digital commonplace books) linked each note with a blog post reflecting on what I found interesting about it, how I’ve applied it, and what it’s related to? I think that would be handy.

Sometimes I find myself particularly interested in an idea, and writing is easy. Other times, the spark isn’t quite there, or the kindling is scattered. I have a massive outline/list of things to write about. Sometimes it seems a little odd writing about stuff, though. Lackluster? But maybe giving myself different recipes for blog posts can help (a personal story, a book quote, etc.). I can also look at it as practice. I have years and years to write, and I can learn a lot when I practise deliberately and dispassionately.

For reflection and review, I can write regular snapshots of what’s going on in my life and what I’m trying to figure out. These usually give me enough anchors to remember more.

To make it easier to connect with other people, I can ask people if they blog, and I can post more of my personal stories on my blog.

I’ve been writing more selfishly rather than focusing on saving people time, but I’m sure that balance will shift at some point too. I tend to find it easy to blog helpful things when I’m immersed in projects or in answering people’s questions, so it’s probably just a matter of focusing on open source again.

As I write more, I’ll get faster, and I might even get clearer. :) I can build on what I’ve previously written. I’ll get a better sense of what I like and don’t like in writing, and I’ll experiment with the influences of other writers.

So let’s say that it takes me about an hour or two to follow a thought and write it down. I’m not really looking for speed here. I don’t need to be able to crank one out in fifteen minutes. It might be good to be able to work in small chunks (headline, outline, snippets) to take advantage of the moments that come up during a day. It would also be good to be able to work coherently – to build up to more complex thoughts, to untangle harder questions. That’s probably what better writing looks like for me. As for beauty form and flow, I can probably pick that up through analysis and practice, but it’s somewhat reassuring to know that people can think (and share) complex thoughts despite being inelegant writers. (Almost impenetrable, even!)

How do I want to change how I write? Well, I can use my phone more, writing instead of reading when I have a free moment on the go. If I feel a little blah when writing at my computer, I can open my book notes and expound on a passage. I can also pick something from my outline and sketch out the next level, tell a story, or look for ways to test it in life (and add a reminder to come back and write about the results). I can embrace the way that many of my blog posts are more like “here’s where I am, there’s where I’d like to go, here’s what I’m going to try” rather than fonts of wisdom. Hey, maybe it will be amusing (or even useful) looking back, forty years from now. We’ll see!