April 2014

Frugal Fire 003: Dealing with Pushback

April 1, 2014 - Categories: Frugal FIRE, podcast

Getting your family and friends on board; frugal versus cheap!

Also visit the Q&A page!

Transcript

Frugal Fire 003 - Dealing with Pushback

Join the community on Google+: http://gplus.to/mustachians.

For more information about the Frugal Fire show (including how to subscribe to the podcast), check out the Frugal FIRE page.

Figuring out a fair price for outsourcing work

April 2, 2014 - Categories: delegation

How can you figure out a fair budget for delegating work? If you set your budget too low, you might get frustrated by lack of response or by the kinds of results you get. If you set your budget too high, you might waste effort and talent. I can’t give you a price sheet. Besides, your needs will evolve over time. However, I can share some of the things I’ve been learning about budgeting for outsourcing or checking if people’s times are reasonable.

If you’re working with hourly assistance, you can ask people to track their times for specific tasks so that you can get a sense of how much something costs. You can also give a time limit and ask them to send you what they have at the end of that time. This will help you get a sense of their speed and the cost of the task. If you’re working with fixed-cost services, you can translate things back into hourly estimates and compare that with your own experience. Pick one system of measurement so that you can compare your chioces.

2014-03-24 Determining a fair price for outsourced work #delegation #outsourcing

2014-03-24 Determining a fair price for outsourced work #delegation #outsourcing

Instead of trying to nail down a single price, try to figure out a range that you’re comfortable with. You can start by looking for flat-rate fees from companies or people who post fixed prices online. For example, Transcript Diva lists transcript rates and timelines for some of their competitors as well. For general tasks, services like Fiverr and Fancy Hands help establish a range of $5-15 for common tasks.

Another way to establish a limit for what you’re willing to spend is to consider how long it takes you to do things yourself, and what else you would do with that time. Adjust based on people’s experience. Beginners will take longer to do things than you will, while experienced people may do this just as fast as you can. Specialists who have invested in tools or training may do things even faster. Sometimes it makes sense to delegate a task to someone who isn’t the optimal choice in terms of speed or cost, if they’re more integrated with the way you work or if you want to help them grow. (Sketch: delegation and task efficiency; blog post)

Then experiment. Try delegating a small task to a lower-cost service to see if that will meet your needs. Try delegating a similar task to a premium service to see if it’s worth the price. Try a mid-range service.

Think about the value you can get from the different types of results you have. If a service is expensive but it leads to a lot more income, it may be worth it.

Think of when you’d prefer to do things yourself, too. For example, even though it’s easy to find inexpensive data entry assistance, I prefer to automate straightforward tasks because I get to learn more about automation along the way.

As you delegate, think about what was worth it, and adjust accordingly. Make your experiments a little bit bigger as you get used to the idea. Find your sweet spot, and then keep experimenting. Good luck!

More Emacs drawings: Dired, moving around

April 3, 2014 - Categories: emacs
This entry is part 4 of 4 in the series A Visual Guide to Emacs

Dired is the Emacs directory editor. You can get to it with C-x C-f (find-file) if you specify a directory. C-x d (dired) works too. Dired makes it easy to do batch operations on files. One of the niftiest features that you might not even think of looking for, though, is the ability to make a Dired buffer editable using C-x C-q (dired-toggle-read-only). Then you can use replace-regexp, keyboard macros, and all sorts of other ways to change filenames. When you switch back out of editing mode with C-x C-q, the files will be updated.

Here’s a cheat sheet for working with Dired.

2014-02-24 Emacs tips - use Dired to manage files #dired #emacs

2014-02-24 Emacs tips – use Dired to manage files #dired #emacs

Also, bjonnh suggested making a cheat sheet for movement commands. I use the M-b, M-f, C-M-b, and C-M-f shortcuts a lot when working with Emacs Lisp. C-a and C-e are great too.

2014-02-27 Map for getting the hang of Emacs movement #emacs #map #guide

2014-02-27 Map for getting the hang of Emacs movement #emacs #map #guide

If you use evil-mode because you’re used to Vim shortcuts, this cheat sheet won’t be useful to you, but maybe I can make an evil-mode cheat sheet someday.

In other news, I’m slowly becoming the kind of person who can understand SmartParens. I’m getting the hang of slurp and barf, but the rest of it still boggles me. Someday!

Experiment update: Mid-term pre-mortem check

April 4, 2014 - Categories: experiment

In the early days of my 5-year experiment with semi-retirement, I brainstormed ways it could fail. I worried that I might end up too distracted to make useful stuff, or that I’d end up being incapable of pursuing my ideas, or that I’d mess up somewhere–paperwork, people, products–and botch the whole thing. I worried that I’d finish the experiment with nothing to show and no compelling story for the gap I’d have in my resume. I worried that W- would get tired of this exploration.

20121210-business-planning-experiment-premortem.png

20121210-business-planning-experiment-premortem.png

I feel less worried now. Part of it was realizing that I can plan for only so much safety. Part of it was learning how to choose what I’m going to focus on, how to select my projects without managers and track my progress without annual performance reviews. (Well, I still have annual reviews, but they’re self-driven.) Part of it was trusting that I can handle things, a confidence which grew after each small step.

Looking back, I can see the things I found mentally challenging in the beginning, and how I worked around them.

  • The career gap doesn’t look all that scary now. I know lots of other people who have managed it. They’re fine, and I’ll be fine too.
  • Self-direction turned out to be good to learn, and it seems like I can come up with useful projects.
  • Paperwork? There were a few stressful hours as I learned more about the tax code – I amended my first corporate tax return a number of times – but I think that doing my own books was worth it. Besides, Canada Revenue Agency is surprisingly approachable. Hmm.
  • Opportunity cost? “Wasted potential” only
2014-02-21 What did I find challenging when I started #experiment

2014-02-21 What did I find challenging when I started #experiment

If you’re starting your own experiment or you’re well into one, I’d love to hear about some of the challenges you faced and how you worked around them!

Weekly review: Week ending April 4, 2014

April 6, 2014 - Categories: weekly

Blog posts

Sketches

  1. 2014.03.29 Litterbox analysis #quantified
  2. 2014.04.01 01 – Why is it that people don’t vote – Findings from Samara’s Democracy Talks – Alison Loat
  3. 2014.04.01 02 – Who doesn’t vote – Findings from the 2010 municipal election – Myer Siemiatycki
  4. 2014.04.01 03 – What systems can we change – Municipal electoral reform – Desmond Cole, Dave Meslin
  5. 2014.04.01 04 – Mobilize to Vote 2(tpse)
  6. 2014.04.01 05 – Mobilizing Mount Dennis tenants to vote for landlord licensing – Judy Duncan
  7. 2014.04.01 06 – Voter contact workshop – Graham Mitchell, Michal Hay, Jesse Boateng
  8. 2014.04.01 07 – Election day planning and pulling the vote workshop – Graham Mitchell, Michal Hay, Jesse Boateng
  9. 2014.04.01 Figuring out more about what I want to do #planning
  10. 2014.04.01 How do I feel about snippets versus longer podcasts #podcasting #decision
  11. 2014.04.02 Evaluating my sharing #sharing #decision
  12. 2014.04.02 Imagining learning sprints #my-learning
  13. 2014.04.02 On thinking about a variety of topics – a mesh of learning #my-learning
  14. 2014.04.03 Dealing with the fog of work #experiment #fire
  15. 2014.04.03 How can I delegate even more effectively #delegation

Link round-up

Focus areas and time review

  • Business (57.9h – 34%)
    • Earn (28.2h – 48% of Business)
      • E1: Load people into comm
      • Earn – E2: Re-render video 3 if necessary
      • Earn – M: Set up M templates
      • Earn – M: Set up and print invoice
      • Earn – M: Sketchnote conference
      • Earn: E1: 2.5-3.5 days of consulting
      • Earn – E2: Set up video 3?
      • Earn: E1: 2.5-3.5 days of consulting
    • Build (22.0h – 37% of Business)
      • Build – Learn: Explore ManyCam
      • Build – Packaging: Review new cover for Sketchnotes 2013
      • Build – Quantified Awesome: Always default to creating a note field
      • Build – Quantified Awesome: Fix 24h goals and range goals
      • Build – Quantified Awesome: Fix display of totals in daily summary
      • Upgrade Linode Ubuntu install
      • Make it easier to cross-link Org
      • Stop loading d3js
      • Record session on learning keyboard shortcuts
      • Drawing (5.1h)
        • Draw “A” page for Emacs ABCs
      • Delegation (1.8h)
        • Get web development delegation off the ground
      • Packaging (4.6h)
        • Check on print copy of Sketchnotes 2013
        • Fix spine for Sketchnotes 2013
        • Put together print for Sketchnotes 2012
        • Review Sketchnotes 2012 digital proof
      • Paperwork (4.6h)
        • File payroll return
    • Connect (7.7h – 13% of Business)
      • Emacs chat prep: Iannis
      • Reach out regarding Emacs Google Hangout?
      • Emacs chat: Iannis Zannos – music
      • Invite bbatsov for an Emacs Chat
      • Talk to Tom Marble about Emacs
  • Relationships (3.6h – 2%)
    • Attend W-‘s family thing
    • Cook something during the week
    • File taxes
    • Go to Gamfternoon at Hacklab
    • Help Eric with focus
    • Raspberry Pi: Learn how to do image analysis to detect changed areas
    • Write blog post about Raspberry Pi litter box cam
    • install the libraries I need for simplecv
    • Check results for project F
  • Discretionary – Productive (7.7h – 4%)
    • Encode litter box data
    • Go for an hour-long walk
    • Reflect on fog of work
    • Reflect on learning sprints
    • Update evil plans so that it has a little bit of margin
    • Writing (1.0h)
      • Write about discretionary speed
  • Discretionary – Play (3.2h – 1%)
  • Personal routines (19.9h – 11%)
  • Unpaid work (16.6h – 9%)
  • Sleep (61.6h – 36% – average of 8.8 per day)

Emacs Basics: Customizing Emacs

April 7, 2014 - Categories: emacs, emacs-basics, podcast
This entry is part 3 of 3 in the series Emacs Basics

Hello, I’m Sacha Chua, and this is an Emacs Basics video on customizing Emacs. Emacs is incredibly flexible. You can tweak it to do much more than you might expect from a text editor. This week, we’re going to focus on learning how to tweak Emacs with M-x customize and by editing ~/.emacs.d/init.el.


You can download the MP3 from Archive.org

Customize

You can change tons of options through the built-in customization interface. Explore the options by typing M-x customize. Remember, that’s Alt-x if you’re using a PC keyboard and Option-x if you’re on a Mac. So for me, that’s Alt-x customize <Enter>. In the future, I’ll just refer to this as the Meta key, so remember which key is equivalent to Meta on your keyboard. (Review – Emacs Basics: Call commands by name with M-x)

After you run M-x customize, you’ll see different groups of options. Click on the links to explore a group.

For example, people often want to change the backup directory setting. This is the setting that controls where the backup files (the files ending in ~) are created. You’ve probably noticed that they clutter your current directory by default. To change this setting, select the Files > Backup group. Look for the entry that says Backup Directory Alist. Click on the arrow, or move your point to the arrow and press <Enter>. Click on INS, or move your point to INS and press <Enter>. Fill it in as follows:

  • Regexp matching filename: .
  • Backup directory name: ~/.emacs.d/backups

Click on State and choose Save for future sessions. This will save your changes to ~/.emacs.d/init.el. When you’re done, type q to close the screen.

You can also jump straight to customizing a specific variable. For example, if you want to change the way Emacs handles case-sensitive search, you can use M-x customize-variable to set the case-fold-search variable. By default, case fold search is on, which means that searching for a lower-case “hello” will match an upper-case “HELLO” as well. If you would like to change this so that lowercase only matches lowercase and uppercase matches only uppercase, you can toggle this variable. I like leaving case fold search on because it’s more convenient for me. If you make lots of changes, you can use the Apply and Save button to save all the changes on your current screen.

Not sure what to customize? You can learn about options by browsing through M-x customize or reading the manual (Help > Read the Emacs Manual or M-x info-emacs-manual). You can also search for keywords using M-x customize-apropos.

~/.emacs.d/init.el

The Customize interface lets you change lots of options, but not everything can be changed through Customize. That’s where your Emacs configuration file comes in. This used to be a file called ~/.emacs in your home directory, and you’ll still come across lots of pages that refer to a .emacs file (or “dot emacs”). The new standard is to put configuration code in your ~/.emacs.d/init.el file, which you can create if it does not yet exist.

What goes into your ~/.emacs.d/init.el file? If you open it now, you’ll probably find the settings you saved using M-x customize. You can also call functions, set variables, and even override the way Emacs works. As you learn more about Emacs, you’ll probably find Emacs Lisp snippets on web pages and in manuals. For example, the Org manual includes the following lines:

(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)

This code sets C-c l (that’s Control-c l) to run org-store-link, C-c c to run org-capture, C-c a to run org-agenda, and C-c b to run org-iswitchb. You can add those to the end of your ~/.emacs.d/init.el file. They’ll be loaded the next time you start Emacs. If you want to reload your ~/.emacs.d/init.el without restarting, use M-x eval-buffer.

Emacs Lisp may look strange. Don’t worry, you can get the hang of it even if you don’t think of yourself as a programmer. You can start by copying interesting snippets from other people’s configuration files. Start with small chunks instead of large ones, so you can test if things work the way you want them to. If you need help, StackOverflow and other Q&A resources may be useful.

As you experiment with configuring Emacs, you may run into mistakes or errors. You can find out whether it’s a problem with Emacs or with your configuration by loading Emacs with emacs -Q, which skips your configuration. If Emacs works fine with your configuration, check your ~/.emacs.d/init.el to see which code messed things up. You can comment out regions by selecting them and using M-x comment-region. That way, they won’t be evaluated when you start Emacs. You can uncomment them with M-x uncomment-region.

Emacs gets even awesomer when you tailor it to the way you want to work. Enjoy customizing it!

Emacs Chat: Iannis Zannos – Emacs and SuperCollider

April 7, 2014 - Categories: emacs, Emacs Chat, podcast

Emacs! Music! Iannis Zannos shares how Emacs can be used for all sorts of awesomeness with Org Mode and SuperCollider.

Check this event page for details and comments =)

Transcript available here!

Notes from Visual Thinkers Toronto: Sketchnoting with others

April 8, 2014 - Categories: drawing, meetup, sketchnotes

In March’s meetup for Visual Thinkers Toronto, we listened to TED talks, practised sketchnoting/graphic recording, and compared our notes. Here’s how I drew the talks:

2014-03-25 TED - Bran Ferren - To create for the ages, let's combine art and engineering #visualtoronto

2014-03-25 TED – Bran Ferren – To create for the ages, let’s combine art and engineering #visualtoronto

From Bran Ferren – To create for the ages, let’s combine art and engineering

2014-03-25 TED - Jamie Oliver - Teach every child about food #visualtoronto

2014-03-25 TED – Jamie Oliver – Teach every child about food #visualtoronto

From Jamie Oliver – Teach every child about food

I liked how one of the participants added extra pizzazz to the visual metaphors from the talks, exaggerating the words to make them even more memorable. For example, with Jamie Oliver’s talk, he turned the part about labels into a quick sketch of a Can of Death. Other people drew with more colours

It was interesting to see different levels of abstraction for the same topic. Someone made a poster that focused on the key message of the talk. Most people captured 5-10 points or so. I drew with the most detail in our group, I think. I like it; that lets me retrieve more of the talk from memory. I liked how other people switched between different colours of markers. Someday I’ll get the hang of doing that. In the meantime, highlighting seems to be fine.

Try sketchnoting those talks or other presentations you find online. I’d love to compare notes!

Raspberry Pi LitterBox Cam and quantified cats

April 9, 2014 - Categories: cat, geek, quantified

We have three cats. One of our cats occasionally poops outside the litter box. We had our suspicions, but we couldn’t pin down who or why. Territorial issues? Finickiness about box hygiene? Sickness? Fear or surprise? What could we do to reduce the frequency of incidents?

We decided that a litter box webcam was an excellent first project for the Raspberry Pi computer that W- just bought. The Pi is a tiny, quiet, inexpensive Linux server. My webcam worked without hassles, and Motion was easy to set up for motion detection. We set it up to capture videos when the computer detected motion. I watched the videos and encoded the data, tracking which cat and which litter box. I figured that exploring this would be a good excuse to work with the Pi and learn a little more about computer vision.

2014-03-24 Litter Box Cam with Raspberry Pi #raspberry #cats

2014-03-24 Litter Box Cam with Raspberry Pi #raspberry #cats

You might think that watching litter box videos would be boring and somewhat icky. It was surprisingly informative. I had no idea that Luke sniffed so many litter boxes before settling on one. Leia usually checked out one or two boxes before doing her thing, but if all the other boxes were used (even if one of them was used only by her), she sniffed everything and then circled around in indecision before finally pooping in the middle of the basement floor. (Watching her try everything made me feel somewhat better.) The two cats cover, but Neko never does. (Territorial dominance marker by the smallest cat?)

We collected a week of baseline data, which showed that box 1 was twice as popular as box 4 and 5. W- hypothesized that it was because box 4 and box 5 were near the furnace, and the strange noises from the furnace might startle the cats occasionally. Leia pooped outside the box twice, both times sniffing all the boxes before going in the middle.

We took to calling Leia our little data-generator.

2014-03-29 Litterbox analysis #quantified

2014-03-29 Litterbox analysis #quantified

Since the cats often left a little bit of extra food in their bowls and the vet had suggested they needed less food or more exercise, we decided to try reducing the amount of food we gave them. That change seems to be going well.

We also moved box 5 closer to box 1. That led to box 5 being much more popular than it used to be, which was a pleasant surprise. If Leia likes box 5 a lot more now that it’s away from the furnace, maybe it’ll be easier for her to find a clean box to poop in.

Preliminary cat litter box results

Preliminary cat litter box results

We set the camera up to capture 2 frames per second in order to save space. Watching it in real-time eventually lost its novelty, so I looked up how to speed up the AVIs.

for FILE in video-*.avi; do
  if [ ! -f "fast-$FILE" ]; then
    ffmpeg -i $FILE -vf "setpts=0.10*PTS" -r 30 fast-$FILE
  fi
done

I also started looking into how to use SimpleCV for computer vision and image processing. I had a hard time getting SimpleCV set up in my Ubuntu virtual machine, but the Windows version worked fine after a lengthy install process on my computer. After much learning, I figured out how to identify changed areas, get the largest share over a certain area threshold, find the centroid of that shape, and plot it back on the image. The real challenge is figuring out some kind of visual output that makes sense to me when I look at it. The image below is a step in the right direction, but it’s still not quite what I need.

summary-113-20140329224621-00

The Raspberry Pi camera module arrived, so we swapped that in and eventually got everything working again after some SD/power-related grumbling.

It would be great if I could get Python to automatically figure out which cat is in the video, distinguishing between multiple cats and flagging it for manual review if the motion detection got confused. Even better if it can track the path that the cats take!

On the other hand, the speeded-up AVIs are now fast enough that the bottleneck isn’t waiting for the video to play, it’s me typing in the description of the path (since I track not only the litter box they use, but any other litter boxes they check along the way). Maybe this is fine.

While watching me encode data, W- said, “Isn’t this something you can have your assistants do?” It’s data entry, sure, but I feel embarrassed about assigning people to watch our cats poop. <laugh> Besides, I’m learning a lot from the encoding process. We’ll probably treat it as a time-limited experiment.

Pretty cool! =) Next steps: Collect more data, try more experimental changes, learn more about image processing…

Anticipated questions/responses:

  • That’s so geeky. You’re weird. Yup.
  • You have too much time on your hands. I like spending my time learning things, and getting better at computer vision and data analysis will come in handy. =) Better than watching TV or reading forgettable things. (See also: Too much time on her hands)
  • Just get a self-cleaning litter box. We got a Litter Robot because that was the best-reviewed of the self-cleaning litter boxes, but only Neko likes using it. We’re not into fancy litter boxes that require cartridges or special litter. It’s hard to tell if Leia will take to a new automated litter box, and returns/refunds for used litter boxes would be a bit weird. We can probably figure out something that works with our current setup, or maybe with an additional regular litter box. We still need to clean daily anyway, so it makes sense to try low-cost approaches first.
  • How about tracking both input and output? Too much work at the moment, and not enough interest in the data. (Weigh the food bowls? Weigh the boxes? Distinguish between cats?)
  • What about rigging up an automated water sprayer / Nerf gun to fire when cats poo outside the litter box? That will just make them poop outside the furnace room. It’s much easier to clean the furnace room than the carpet, so if they’re going to poop outside the litter box, that’s as good a place as any. We don’t want them to get any negative associations.

Digging into my limiting factors when it comes to interviewing people for podcasts

April 10, 2014 - Categories: kaizen, podcasting

The world is full of interesting people, the vast majority of whom don’t share nearly as often as I do. If I interview people, I give people a more natural way to share what they’ve learned in a way that other people can easily learn from. I also get to learn about things I can’t find on Google. Win all around.

I am better-suited to interviewing than many people are. I’m comfortable with the tech. I have a decent Internet connection. I have a flexible schedule, so I can adapt to guests. I use scheduling systems and can deal with timezones. I’ve got a workflow that involves posting show notes and even transcripts. I am reasonably good at asking questions and shutting up so that other people talk. I often stutter, but no one seems to mind. I usually take visual notes, which people appreciate. I’m part of communities that can get more value from the resources I share.

So, what’s getting in the way of doing way more interviews?

interview

I feel somewhat self-conscious about questions and conversations. The Emacs Chats have settled into a comfortable rhythm, so I’m okay with those: introduction, history, nifty demo, configuration walkthrough, other tidbits. Frugal FIRE has a co-host who’s actively driving the content of the show, so I can pitch in with the occasional question and spend the rest of the time taking notes. It’s good for me to talk to other people out of the blue, but I don’t fully trust in my ability to be curious and ask interesting questions.

Hmm. What’s behind this self-consciousness? I think it could be that:

  • I don’t want to ask questions that have been thoroughly covered elsewhere. — But I know from my own blog that going over something again helps me understand it better, so I should worry less about repeating things. Judgment: IRRATIONAL, no big deal
  • I worry about awkward questions and making questions that are really more like statements. What are awkward questions? Closed-ended questions or ones that lead to conversational cul-de-sacs. — But the people I talk to also want to keep the conversation going, so between the two (or three) of us, we should be able to figure something out. And really, once we get going, it’s easy enough to ask more. So I’m anxious about being curious enough, but once we’re there, it’s easy. Judgment: IRRATIONAL, just get in there.
  • I worry about not being prepared enough, or being too forgetful. — But when did I ever claim to have an excellent memory or to be great at doing all the research? Maybe it’s enough to have the conviction that people have something interesting to share, and help them have the opportunity to share it. (And possibly warn interviewees about my sieve-of-a-brain in advance, so they’re not offended if I confuse them with someone else.) Judgment: IRRATIONAL
  • I’m not as used to the flow of an interview as I could be. It’s similar to but not quite the same as a regular conversation, which is something I’m not as used to as I should be. Oddly, it’s easier when I’m occupied with taking visual notes, because I can use my notes to remember interesting things to ask about (and the other person can watch it develop too). So maybe I should just always do that, and then the drawing is a super-neat bonus.
  • I hesitate to ask questions unless I have an idea of what I’m going to do with the answers. Why are the questions interesting? What do we want to explore? Who am I going to share this with, and why? I’ve gotten a lot of good feedback on Emacs Chats, so that makes it easy to keep going, but the one-offs can be harder to plan. Maybe I should just become more comfortable with asking in order to explore. Besides, I’m good at rationalization, so I can make sense of it during or after the conversation. And the kinds of interviews I do are also about letting people share what they think would be useful for other people, so I can follow their lead.

Really, what’s the point of being self-conscious when interviewing people? After all, I’m doing this so that the spotlight is on other people, and listeners can survive inexpertly-asked questions. Hey, if folks have the courage to get interviewed, that’s something. Like the way that it’s easier to focus on helping other people feel more comfortable at parties, I can try focusing on helping guests feel more comfortable during interviews.

And it’s pretty cool once we get into it. I end up learning about fascinating Emacs geekery, connecting with great people, and exploring interesting ideas along the way. Well worth my time, and people find the videos helpful.

So I think I can deal with some of  those tangled emotions that were getting in the way of my interviews. (Look, I’m even getting the hang of calling them interviews instead of chats!)

What’s getting in the way of reaching out and inviting people on? I should be able to reach out easily and ask people to be, say, a guest for an Emacs Chat episode. I have good karma in the community, and there are lots of examples now of how such a conversation could go. How about Quantified Self? I’ve been thinking about virtual meetups or presentations for a while, since there are lots of people out there who aren’t close to a QS meetup. What’s stopping me?

  • I generally don’t think in terms of people when it comes to cool stuff or ideas: This makes it difficult for me to identify people behind clusters of interesting ideas, or recognize names when they come up in conversation. Still, it shouldn’t stop me from identifying one particular idea and then looking for the person or people behind that. If I discover other things about those people afterwards, that’s icing on the cake. Hmm… So maybe I should update my confederate map (time to Graphviz-ify it!), interview those people, and then branch out to a role model map. Oh! And I can apply Timothy Kenny’s idea of modeling people’s behaviours beforehand as a way to prepare for the interview, too. Judgment: CAN FIX
  • It would be easier to reach out if I’ve already written pre-psyched-up snippets I can add to my e-mail. Aha, maybe I should write myself an Org file with the reasons why this is a good thing and with snippets that I can copy and paste into e-mail. There are a lot of blog posts and podcast episodes on how to get better at requesting podcast interviews, and there are also resources for getting better at interviewing itself. I can change my process to include psyching myself up and sending a bunch of invitations. Judgment: CAN FIX
  • I’m slightly worried about pre-committing to a time – but really, Google+ events make it pretty easy to reschedule, and I haven’t needed to reschedule most things for my part. Judgment: IRRATIONAL.

All right. So, if I want to learn from people and share useful stuff, I can work on being more actively curious about people, and at inviting them to share what they know. I don’t have to ask brilliant New York Times-y questions. I just have to start from the assumption that they know something interesting, and give them an opportunity to share it with other people.

Why would people take the time to do interviews? Maybe they find themselves explaining things to people a lot, so a recording (plus visual notes! plus transcript!) can save them time and give them something to build more resources on. Maybe they’re looking for other people to bounce ideas off. Maybe it helps them understand things better themselves. I shouldn’t say no on their behalf. I can ask, and they can decide whether it makes sense for their schedule. Right. People are grown-ups.

Okay. What changes can I make?

  • Write an Org file psyching myself up with a condensed version of the reasoning above, and include snippets to copy and paste into e-mail invitations.
  • Map topics/questions I’m curious about, and start identifying people. Identify the tactics I think they use, and model those.
  • Trust that the future Sacha will sort out the questions and the flow of the conversation. And hey, even if it’s super awkward, you don’t get to “interesting” without passing through “meh” first. So just book it, and be super-nice to guests for helping out.

Hmm. That actually looks doable.

Have you gone through this kind of mental tweaking before? Any tips?

Thanks to Daniel Reeves and Bethany Soule for the nudge to write about this! Yes, I should totally pick their brain about Quantified Self, applied rationality, and other good things. Check out their blog at Messy Matters for awesome stuff. Oh, and Beeminder, of course. (Look, I’m even using Messy Matters as a nudge to play around with more colours and brushes! =) )

Emacs Chat: Tom Marble

April 10, 2014 - Categories: emacs, Emacs Chat, podcast

Emacs Chat: Tom Marble – Invoicing with Org and LaTeX; Clojure

Guest: Tom Marble

Tom Marble’s doing this pretty nifty thing with Org Mode, time tracking, LaTeX, and invoice generation. Also, Clojure + Emacs, and other good things. Enjoy!

For the event page, you may click here.

For the transcript, you may click here.

Want just the audio? Get it from archive.org: MP3

Check out Emacs Chat for more interviews like this. Got a story to tell about how you learned about or how you use Emacs? Get in touch!

Working fast and slow

April 11, 2014 - Categories: experiment

When it comes to personal projects, when does it make sense to work quickly and when does it make sense to work slowly? I’ve been talking to people about how they balance client work with personal projects. It can be tempting to focus on client work because that comes with clear tasks and feedback. People’s requests set a quick pace. For personal projects, though, the pace is up to you.

It’s easy to adopt the same kinds of productivity structures used in the workplace. You can make to-do lists and project plans. You can set your own deadlines. I want to make sure that I explore different approaches, though. I don’t want to just settle into familiar patterns.

2014-04-07 Working fast and slow #experiment

2014-04-07 Working fast and slow #experiment

I work on personal projects more slowly than I work on client projects. When I work on client tasks, I search and code and tweak at a rapid speed, and it feels great to get a lot of things done. My personal projects tend to be a bit more meandering. I juggle different interests. I reflect and take more notes.

Probably the biggest difference between client work and personal projects is that I tend to focus on one or two client tasks at a time, and I let myself spread out over more personal projects. I cope with that by publishing lots of little notes along the way. The notes make it easier for me to pick up where I left off. They also let other people learn from intermediate steps, which is great for not feeling guilty about moving on. (Related post: Planning my learning; it’s okay to learn in a spiral)

Still, it’s good to examine assumptions. I assume that:

  • doing this lets me work in a way that’s natural to me: what if it’s just a matter of habit or skill?
  • it’s okay to be less focused or driven in my learning, because forcing focus takes effort: it’s probably just the initial effort, though, and after that, momentum can be useful
  • combinations of topics can be surprisingly interesting or useful: are they really? Is this switching approach more effective than a serial one or one with larger chunks?
  • a breadth-first approach is more useful to me than a depth-first one: would it help to tweak the depth for each chunk?
2014-04-02 On thinking about a variety of topics - a mesh of learning #my-learning

2014-04-02 On thinking about a variety of topics – a mesh of learning #my-learning

One of my assumptions is that combining topics leads to more than the sum of the parts. I took a closer look at what I write about and why. What do I want from learning and sharing? How can I make things even better?

2014-04-02 Evaluating my sharing #sharing #decision

2014-04-02 Evaluating my sharing #sharing #decision

Emacs tinkering is both intellectually stimulating and useful to other people. It also works well with applied rationality, Quantified Self, and other geekery. I can align sketchnoting by focusing on technical topics and  on making it easier to package things I’ve learned. Blogging and packaging happen to be things I’ve been learning about along the way. Personal finance is a little disconnected from other topics, but we’ll see how this experiment with the Frugal FIRE show works out.

If I had to choose one cluster of topics, though, it would be the geek stuff. I have the most fun exploring it, and I am most interested in the conversations around it.

What does that mean, then? Maybe I’ll try the idea of a learning sprint: to focus all (or almost all) my energies on one topic or project each week. I can work up to it gradually, starting with 2-4 hour blocks of time.

2014-04-02 Imagining learning sprints #my-learning

2014-04-02 Imagining learning sprints #my-learning

Because really, the rate-limiting factor for my personal projects is attention more than anything else. If I experiment with reducing my choices (so: Emacs basics, Emacs chats, open source, Quantified Self), that will probably make it easier to get the ball rolling.

2014-03-28 Identifying rate-limiting factors in my work #kaizen

2014-03-28 Identifying rate-limiting factors in my work #kaizen

So I’m still not adopting the taskmaster approach, but I’m reminding myself of a specific set of areas that I want to explore, gently guiding the butterflies of my interest down that way.

We’ll see how it works out!

Monthly review: March 2014

April 12, 2014 - Categories: monthly, review

Last month, I:

  • had fun with Emacs
    • coded numerous little Emacs conveniences
    • learned how to make graphs in Org Mode: see http:sachachua.com/evil-plans
    • integrated Emacs Org Mode with Quantified Awesome
    • helped lots of people with Emacs
    • started the Emacs Basics video series
    • set up more Emacs chats
  • and geeked around with other things
    • started playing around with the Raspberry Pi, motion detection, and image processing with simplecv
    • learned more about NodeJS
    • upgraded to Ubuntu Precise, Ruby 2.0
    • went to Gamfternoon at Hacklab
  • drew a little
    • finally updated my Twitter background
    • lined up another sketchnoting gig
    • put together the print version of Sketchnotes 2013, yay LaTeX!
  • and took care of other stuff
    • filed our taxes
    • delegated more writing

In other news, I really like the new monthly review code I’ve added to Emacs: http:sachachua.com/dotemacs#monthly-reviews

Here’s the snippet:

(defun sacha/org-review-month (start-date)
  "Review the month's clocked tasks and time."
  (interactive (list (org-read-date)))
  ;; Set to the beginning of the month
  (setq start-date (concat (substring start-date 0 8) "01"))
  (let ((org-agenda-show-log t)
        (org-agenda-start-with-log-mode t)
        (org-agenda-start-with-clockreport-mode t)
        (org-agenda-clockreport-parameter-plist '(:link t :maxlevel 3)))
    (org-agenda-list nil start-date 'month)))

In April, I want to:

  • Record and set up more Emacs chats
  • Make open source contribution part of my routine (mailing lists, patches, sharing)

Blog posts

Weekly review: Week ending April 11, 2014

April 13, 2014 - Categories: weekly

Updated: Fixed links, thanks furansui!

A lot of coding this past week – moving stuff to Github, fixing bugs, making things a little more convenient… Two Emacs chats, too.

Started gardening again. =D Yay weather warming up!

Next week:

Blog posts

Sketches

I think my focus on sketches is inversely proportional to my focus on code. They probably tickle the same part of my brain…

  1. 2014.04.07 Working fast and slow #experiment

Link round-up

Focus areas and time review

  • Business (40.7h – 24%)
    • [ ] Build: Find a user-friendly RSS plugin for WordPress
    • [ ] Earn: E1: 2.5-3.5 days of consulting
    • [ ] Explore converting ClojureBridge tutorial to Org
    • [ ] Explore membership plugins / course plugins
    • [ ] Record session on learning keyboard shortcuts
    • [ ] Write about planning for reasonable safety
    • Earn (16.7h – 41% of Business)
      • [X] E1 Unpinkify
      • [X] E1: Check for subscribers
      • [X] E1: Load people into comm
      • [X] Earn – E2: Re-render video 3 if necessary
      • [X] Earn – E2: Set up video 3?
      • [X] Earn: E1: 2.5-3.5 days of consulting
    • Build (20.8h – 51% of Business)
      • [X] Check that all my WordPress installations are up to date
      • [X] Get Emacs to show me a month of completed tasks, organized by project
      • [X] Improve Emacs Beeminder
      • [X] Make it easier to cross-link Org
      • [X] Package miniedit for MELPA?
      • [X] Run Hello World in Clojure from Emacs
      • [X] Sort out cache slam
      • [X] Sort out task templates and captures so that refiling, jumping, and clocking is easy
      • [X] Stop loading d3js
      • Drawing (1.5h)
      • Delegation (1.2h)
        • [X] Post Emacs tutorials links
      • Packaging (7.4h)
        • [X] Fix cover for Sketchnotes 2012
        • [X] Annotate my Emacs configuration
        • [X] Draw “A” page for Emacs ABCs
        • [X] Draft guide to getting started with Emacs Lisp
        • [X] Learn about bitbooks
        • [X] Review Sketchnotes 2012 digital proof
      • Paperwork (0.5h)
        • [X] File payroll return
        • [X] Plan my business and personal finances
    • Connect (3.2h – 7% of Business)
      • [X] Emacs Chat: Tom Marble
      • [X] Emacs chat prep: Iannis
      • [X] Emacs chat: Iannis Zannos – music
      • [X] Invite technomancy for an Emacs Chat
  • Relationships (12.9h – 7%)
    • [X] Attend W-‘s family thing
    • [X] Check results for project F
    • [X] Get the Raspberry Pi camera working and get a top-down view
    • [X] Go to RJ White’s semi-retirement party
    • [X] Set up the Pi camera again
    • [ ] Raspberry Pi: Use bounding rectangle to guess litterbox use
    • [ ] Raspberry Pi: Extract blob pixels and try to classify cats
  • Discretionary – Productive (18.0h – 10%)
    • [X] Flesh out story
    • [X] Write monthly report taking advantage of Org tasks
    • [ ] Blog about user-visible improvements, Beeminder commit goal
    • [ ] Experiment with calculating ve
    • [ ] Plant beets, spinach, lettuce
    • [ ] Ask neighbours if anyone wants to split a bulk order of compost with us
    • Writing (5.9h)
      • [X] Write about discretionary speed
  • Discretionary – Play (2.8h – 1%)
  • Personal routines (21.5h – 12%)
  • Unpaid work (11.7h – 6%)
  • Sleep (61.2h – 36% – average of 8.7 per day)

Emacs beginner resources

April 14, 2014 - Categories: -Uncategorized, emacs
Sometimes it’s hard to remember what it’s like to be a beginner, so I’m experimenting with asking other people to help me with this. =) I asked one of my assistants to look for beginner tutorials for Emacs and evaluate them based on whether they were interesting and easy to understand. Here’s what she put together! – Sacha

Emacs #1 – Getting Started and Playing Games by jekor
Probably the most helpful Emacs tutorial series on YouTube. Goes beyond the “what to type” how-tos that other tutorials seem bent on explaining over and over. Emphasizes games and how they help users familiarize themselves with the all-keyboard controls. 5/5 stars

Org-mode beginning at the basics
What it says on the tin. Essential resource for those who are new to Emacs and org-mode. Provides steps on how to organize workflow using org-mode written in a simple, nontechnical, writing style. 5/5 stars

Xah Emacs Tutorial
Though the landing page says that the tutorial is for scientists and programmers, beginners need not be intimidated! Xah Emacs Tutorial is very noob-friendly. Topics are grouped under categories (e.g. Quick Tips, Productivity, Editing Tricks, etc.) Presentation is a bit wonky though. 4.5/5 stars

RT 2011: Screencast 01 – emacs keyboard introduction by Kurt Scwehr
Keyboard instruction on Emacs from the University of New Hampshire. Very informative and also presents some of the essential keystrokes that beginners need to memorize to make the most out of the program. But at 25 mins, I think that the video might be too long for some people. 4/5 stars

Emacs Wiki
Nothing beats the original- or in this case, the official- wiki. Covers all aspects of Emacs operation. My only gripe with this wiki is that the groupings and presentation are not exactly user-friendly (links are all over the place!), and it might take a bit of time for visitors to find what they are looking for. 4/5 stars

Mastering Emacs: Beginner’s Guide to Emacs
The whole website itself is one big tutorial. Topics can be wide-ranging but it has a specific category for beginners.
whole website itself is one big tutorial. Looks, feels, and reads more like a personal blog rather than a straightforward wiki/tutorial. 4/5 stars

Jessica Hamrick’s Absolute Beginner’s Guide to Emacs
Clear and concise. Primarily focused on providing knowledge to people who are not used to text-based coding environments. It covers a lot of basic stuff, but does not really go in-depth into the topics. Perfect for “absolute beginners” but not much else. 3/5 stars

Jim Menard’s Emacs Tips and Tricks
Personal tips and tricks from a dedicated Emacs user since 1981. Not exactly beginner level, but there’s a helpful trove of knowledge here. Some chapters are incomplete. 3/5 stars

Emacs Redux
Not a tutorial, but still an excellent resource for those who want to be on the Emacs update loop. Constantly updated and maintained by an Emacs buff who is currently working on a few Emacs related projects. 3/5 stars

Jeremy Zawodny’s Emacs Beginner’s HOWTO
Lots of helpful information, but is woefully not updated for the past decade or so. 2/5 stars

This list was put together by Marie Alexis Miravite. In addition, you might want to check out how Bernt Hansen uses Org, which is also pretty cool.

Lion cut

April 15, 2014 - Categories: cat

From Sunday: We’d neglected brushing Leia’s coat until there were mats that were difficult to work out. I tried to comb them out with a dematter or snip them out with scissors, but there was only so much Leia would tolerate. So plan B: shave it all off!

2014-04-13 Lion cut

2014-04-13 Lion cut

We had been thinking about it for a few months, but we figured she probably wanted to keep her fur during winter. With warm weather on the horizon and the mats getting thicker, it was time. W- and I didn’t know what to expect. We looked up pictures of lion cuts on cats (hilarious!), watched videos (of which there are plenty on the Internet, which exists primarily for the dissemination of all things cat-related), and read forum posts (for example: my cat is shaved & depressed).

Then we took Leia to her first appointment with a cat groomer. Leia wasn’t too happy during the process. The groomer had to use the Cone of Don’t Bite Me. There was a lot of… err… expressiveness.

She cheered up all right afterwards, though. We made sure to reassure her with lots of cuddles, although it took us a good few hours before we could resist the urge to chortle whenever we looked at her.

Actually, no, still happens. <giggle> She’s tinier than I expected! I always thought she was the same size as Luke, but it turns out that was all hair. She’s actually the same size as Neko. Maybe even smaller. Boggle. And her head is so big! And she’s wearing boots!

Yep, should totally do this every year.

Reflecting on goal factoring and akrasia

April 16, 2014 - Categories: productivity, reflection

Following up on sketching my goals: I’ve been thinking a bit more about goal factoring. What do I want to be able to do with an overview of my projects and goals?

  • I want to make regular progress towards important goals, especially since I tend to move from topic to topic.
  • I want to translate abstract goals into measurable projects, and I want to translate those projects into actions.
  • I want to brainstorm alternative approaches that may get me to my goals faster, cheaper, or more effectively.
  • I want to see which actions or projects can support multiple goals.
  • I want to prioritize my projects and goals, putting things on the backburner as needed.
2014-03-24 How do I want to keep track of my goals #goal-factoring #planning #org

2014-03-24 How do I want to keep track of my goals #goal-factoring #planning #org

One of the benefits of writing down my goals is that I can look at the gap between plans and reality. An e-mail conversation with Daniel Reeves (Beeminder and the awesomely geeky Messy Matters) pointed me to the concept of akrasia, which is when you act against your better judgment (Wikipedia: akrasia; LessWrong: akrasia). In general, this happens because we value the present much more than the future. Short-term gains are more compelling than future ones. Immediate pains matter more than far-off sacrifices.

I haven’t thought a lot about akrasia yet. If I can understand the concept and identify my akratic actions, then I can change my systems or try other tactics to live better.

2014-03-26 Reflections on akrasia - acting against my better judgment #rationality

2014-03-26 Reflections on akrasia – acting against my better judgment #rationality

  • Sleeping: I could probably get away with sleeping less. That said, it’s good (and uncommon) to get plenty of sleep, so this might not be too bad. I averaged about 8.9 hours a night over the past year. If I manage to tweak this to get, say, 0.5 hours more core time per day, that would be amazing. On the other hand, I could be the sort of person who really does need that much time, and it’s still within the normal range. We’ll see how sleep works out with my changing routines.
  • Reading fanfiction during my commute when I could be reading nonfiction, learning Morse code, writing, or listening to podcasts… Actually, I’ve been doing more Morse code lately, so maybe this is not an issue. And I should probably have more mental downtime anyway.
  • Being glued to my phone: On a related note, W- has teased me about my being occasionally glued to my phone. (It’s funny when I’m trying to tidy up or make the bed one-handed.) This is more of an awareness issue.
  • Not doing enough strength/flexibility/endurance: Biking helps me with lower-body strength, but my arms are weak. If I don’t exercise to maintain my flexibility, I’ll lose it over time. I have plenty of energy throughout the day, although I suppose it’s good to build that up so that I have even more energy for bigger tasks. If I determine that mornings are the best time to exercise, then my lack of exercise is a combination of my desire to spend that time reading or writing (even though I already do this to the point of possible diminishing returns) and my dislike of how it initially feels to exercise.
  • Socializing: I often don’t feel like going out, although I conceptually know that connecting with people is a good thing. I suspect it’s because I feel more connected with people around ideas instead of history or circumstance, and connecting to people over the Internet tends to more reliably result in good conversations like that compared to going to events or get-togethers in person.
  • Crossing my legs: This is an awareness thing. I just have to notice it, and then I can gradually untrain myself. If I’m seated correctly, I’m fine. I tend to cross when I need a higher, slanted surface to draw on. More observations – maybe stochastic?

There are lots of other possibly akratic actions in my life. These came to mind first when I thought about things that I often do and that I can change when I pay attention to them. Still, looking at this set… I don’t have a strong desire to eliminate akrasia while the suboptimal results aren’t major hindrances. I’m fine with having a little slack in my life. Even when my actions diverge from my stated goals, I still learn a lot.

That’s an interesting meta-thing to explore, though. Am I too comfortable? I’ve experimenting with moving away from carrot-and-stick approaches to personal productivity (or taskmaster and slave) and more towards appreciative inquiry (let’s observe what’s working well, and do more of that). Most people want to become more machine-like in their productivity, reliably following their plans. The contrarian in me is curious about alternatives. I don’t know that life would be better if I worked with more focus or commitment. I know that it would be different, and there’s a possibility that following the butterflies of my curiosity also creates value.

So let’s say that akrasia (or at least how I understand it so far) tends to be effectively addressed with self-imposed deadlines, commitment devices, constrained environments, and so on. Writers sign up for NaNoWriMo. Entrepreneurs bet each other that they’ll complete their tasks. Dieters remove junk food from their cupboards. These constraints support progress (by adding enough incentive to get people started or to convert downtime into productive time) or prevent backsliding (by removing temptations and distractions).

What are the trade-offs I make for not using these tools against akrasia? Are there ways I can turn weaknesses into strengths for those approaches?

Commitment devices are good for keeping you focused. If I let myself follow my interests, then I don’t get to take advantage of momentum or compounding results. However, my habit of sharing along the way means that people can get value even from intermediate steps. Cross-pollination is valuable, too. On my personal blog, it’s probably a good idea to have variety instead of focus, so that people can find what they’re interested in.

Commitment devices are good for preventing backsliding. When you make undesired actions more costly (ex: eating junk food), you make desired actions cheaper in comparison (ex: nibbling on carrots). If I don’t tinker with incentives that way, then I’ll be more influenced by short-term effects rather than long-term effects. I am generally future-oriented anyway (ex: retirement savings, batch cooking) and I have fun connecting actions with long-term plans, so the disadvantages may be somewhat mitigated. I don’t have a sense of urgency around this, either. Perhaps I need to exaggerate long-term costs in order to make this more compelling.

Things to think about…

Have you reflected on akrasia? Can you share your insights?

Rethinking my time categories: the blurring of business and discretionary activities

April 17, 2014 - Categories: business, experiment, quantified, time

I track my time with medium-level categories (not detailed enough that I’m tracking individual tasks, but not so high level that it’s hard to make sense of the data). From time to time, I notice categories drift, or they stop fitting. Consulting is definitely business, but does working on Emacs really belong there? Why is coding classified under business but writing is classified as discretionary time? Most of my categories still make sense a year or two later, but some of them could use more thinking about.

What is business, anyway? I suppose it can include anything related to the earning of money, including support such as paperwork or delegation. Packaging (by which I mean creating e-books and other resources) is part of business, since I earn a small income from that (and pay taxes on it, too!). So is responding to e-mail. Technically, Emacs is related to money, because people have actually booked and paid me for help sessions online (http://sachachua.com/help). I consider programming-related activities to be part of maintaining my technical skills and network. In that sense, coding, web development, system administration, and other geek things are business-related. I distinguish between sketchnoting for client engagements and drawing on my own. Many of my drawings are more along the lines of personal or business planning. Perhaps I should track more under those categories now that I’ve established drawing as a way of thinking, and shift to using “Business – Drawing” when I’m specifically working on illustrations or improving skills.

Discretionary time includes the stuff I do just for fun and the things I learn about just because (Latin and Morse, for example). Probably the only weird thing in here is that I classify writing as discretionary time. It’s fun. Coding is fun too. Coding is more obviously valued, though, so I guess that’s why I consider it business time. And also, if I classify writing as coding time, I’ll tip over way too often into the “working too many hours a week” zone, when I’m not really doing so.

Maybe a better approach is to classify coding, drawing, and other fun things as discretionary time instead, even if they occasionally result in money. Benefit: I get to celebrate having more discretionary time and a lighter workload. (Yeah, it’s all mental anyway…)

Or maybe I need to take a step back and ask myself what kinds of questions I want to be able to answer with my categorical data.

In general, I want to make sure I don’t spend too much time working, because I want to force myself to work on my own projects. That’s why I track the time spent consulting, doing paperwork, and connecting with people (including responding to e-mail). I usually keep a close eye on my Business – Earn subcategory, since that’s the one that can creep up on me unawares. That’s fine with my current categories.

I also want to look for patterns in time use. How does spending more time on one activity (and less time on other activities) influence what I do and how I feel? How bursty am I when it comes to different discretionary projects? As long as I’m tracking at the subcategory level, it doesn’t really matter what the root category is.

Hmm. Since I’m not actually using the distinction between discretionary and business for reports or visualizations that nudge my behaviour, I can probably leave my categories alone if I remind myself that those ones have fuzzy boundaries. It would matter more if I wanted to set goals for investing X hours a week on business things (or, conversely, spending Y hours on discretionary non-business related things, which is oddly harder). Since I don’t care about that at the moment, I’m fine. Also, it’s easy enough to reassign the parent categories, so I still leave the door open for analyses at a later date.

As long as I can keep things clear enough in my head so that I feel confident that I can explain to any auditors that yes, my  business expenses make sense, I should be fine. I feel a little weird about not having a proper business plan for lots of things I’m working on. I mean, I can write them (or draw business model canvasses, more likely), but I prefer this pay-what-you-want model. Oh, hey, there’s an assumption there that I can dig into. People can (and do!) build metrics around freemium or pay-what-you-want models. Maybe I can figure out how to approach this in a business-like-but-still-generous way.

What would a more business-y way look like? I would float an idea to see if it’s useful. Then I would make stuff (and sometimes I’d make it anyway, just because). I might actually track conversions, and try things out, and reach out to people and communities. I’d publish little guides and videos, and maybe add a tip jar for smaller pieces of content so that people can “vote” for things they like more.

All things to do in due course. In the meantime, knowing that the path is there means I can leave all of this stuff still filed under the Business category, because it is. Even if it’s fun. Writing still feels more discretionary than business-y (even posts like this, for example), so I’ll leave that where it is. So no change, but I understand things better.

Do you track your time and have fuzzy boundaries between categories? How do you deal with it?

 

 

Started gardening – April 2014

April 18, 2014 - Categories: gardening

The weather finally warmed up last weekend. W- and I raked the back yard, and I started planting seeds that would likely survive just in case we get another frost. Spinach, peas, lettuce… I don’t know how well the seeds will do, but I want to get things growing again. I can’t grow anything indoors because the cats love nibbling on greens, so I’ll just have to buy my tomato and basil starts from the garden centres. In the meantime, though, I can experiment with seeds.

The soil feels better now than the sandy mix we started with, although there’s always room for improvement. We’ve added lots of compost to it over the years – mostly manure, but there was a year that our compost heap was active enough to steam. Toronto gives away leaf compost every Saturday, so we might check that out too. We’re thinking about ordering compost in bulk this year instead of getting bagged manure from the store. I’ll probably put in the compost around the time that we clear out the peas and get started with tomatoes, so I can get some sprouts going while waiting to sort all of that out.

What am I going to change this year? Here are my notes from October 2013:

Gardening notes

I changed my mind about irrigation. I think I’ll start by hand-watering the plants. It’s not that hard to do, and I’ve marked the rows a little more clearly now so I know what to expect. I probably won’t pay for a landscaping or gardening company. Maybe I can share more notes on our garden and ask folks for tips. I’m looking forward to growing more greens and herbs, and giving bitter melon yet another shot.

I planted the first batch of seeds this weekend, going through many of the leftover seeds from 1-2 years ago. After all, the seeds aren’t going to get any fresher, so I may as well plant them and see what sticks. Some of them germinate in a week, so let’s see if there’ll be any progress.

Yay growing things! (Well, eventually. =) )

Weekly review: Week ending April 18, 2014

April 20, 2014 - Categories: weekly

More coding, yay! Next week, I’m going to focus on writing more tutorials for Emacs. Also, lots of Emacs conversations. Emacs Emacs Emacs Emacs… =)

Blog posts

Sketches

  1. 2014.04.13 Lion cut
  2. 2014.04.16 Book – Mastery – Robert Greene

Link round-up

Focus areas and time review

  • Business (24.6h – 14%)
    • Earn (14.7h – 59% of Business)
      • [ ] Earn: E1: 2.5-3.5 days of consulting
      • [X] E1: Rename groups
      • [X] Earn: E1: 2.5-3.5 days of consulting
      • [X] Earn – M: Revise sketch
    • Build (5.9h – 24% of Business)
      • [X] Make sure all of my blogs are updated to WordPress 3.9
      • [X] Upgrade Linode
      • Drawing (3.5h)
        • [X] Sketchnote a book – Mastery – Robert Greene
      • Delegation (0.6h)
        • [ ] Brainstorm more tasks
      • Packaging (0.1h)
      • Paperwork (0.6h)
      • Emacs
        • [ ] Add more sections to Emacs Lisp tutorial
        • [ ] Invite bbatsov for an Emacs Chat
        • [ ] Record session on learning keyboard shortcuts
        • [X] Emacs: Get beeminder code to support time-today
        • [X] Emacs: Figure out why todo list does not filter by statu
        • [X] Talk to JJW about Emacs and Org
        • [X] Set up project view
        • [X] List TODOs by project
        • [X] Hook Beeminder into Gnus to track sent messages
        • [X] Figure out Org publishing
        • [X] Figure out why column view is hard to read
        • [X] Fix keymap in beeminder.el
        • [X] Get beeminder code to prompt for value
        • [X] Emacs: Track the number of tasks I have and what states they’re in
        • [X] Chat with splintercdo (Janis) about literate programming
        • [X] Add colour coding to 2048 game for Emacs
    • Connect (4.0h – 16% of Business)
  • Relationships (6.1h – 3%)
    • [X] Go to RJ White’s semi-retirement party
    • [ ] Raspberry Pi: Extract blob pixels and try to classify cats
    • [ ] Raspberry Pi: Use bounding rectangle to guess litterbox use
  • Discretionary – Productive (27.6h – 16%)
    • [X] Ask neighbours if anyone wants to split a bulk order of compost with us
    • [X] Update my unscheduled tasks and add time estimates
    • [ ] Prepare litter box analysis presentation
    • Writing (11.7h)
  • Discretionary – Play (7.3h – 4%)
  • Personal routines (26.0h – 15%)
  • Unpaid work (12.8h – 7%)
  • Sleep (64.0h – 38% – average of 9.1 per day)

Emacs ABCs: A is for Apropos

April 21, 2014 - Categories: emacs

Sometimes one gets the strangest ideas. I’ve had this kicking around in my brain for a few weeks. Since you read and re-read books to kids endless times anyway, why not learn more yourself along the way? For example, Emacs is something that is worth repeated learning. You forget commands, you rediscover them, you dig into them more. I think it might be interesting to have kid’s books with technical subtext. While you’re saying the letters and helping kids learn to read, you can silently (or not-so-silently!) read the notes, and pick one command to try later. In this case: M-x apropos?

A is for apropos

A is for apropos

Here’s a list of interesting possibilities:

  • apropos
  • browse-kill-ring
  • customize / compile / calc
  • dired, debug-on-entry
  • edebug-defun, eshell
  • fastnav, ffap, fixup-whitespace
  • grep-find, gnus
  • help-with-help, helm
  • ielm
  • just-one-space
  • keyboard macros, kmacro-start-macro, kbd-macro-query
  • load-library, locate-library, list-packages
  • magit, make-indirect-buffer
  • name-last-kbd-macro
  • occur (and occur-edit-mode); org
  • package-list-packages, picture-mode
  • quick-url, query-replace-regexp-eval
  • regexp-builder, recursive-edit, recover-this-file,
  • savehist-mode, server-start, smartparens
  • tags-search, term, thumbs, tmm-menubar, type-break
  • undo-tree-visualize
  • vc-next-action, view-lossage, visual-line-mode
  • where-is, winner-mode, windmove, window-configuration-to-register
  • M-x (execute-extended-command)
  • yank-pop
  • zap-to-char

Crazy? Neat? =) What do you think?

Emacs Chat: Jānis Mancēvičs

April 21, 2014 - Categories: emacs, Emacs Chat, podcast

Chatted with Janis Mancevics about literate programming and video game development =)

Want just the audio? Get it from archive.org: MP3

Find more Emacs Chats

Transcript

How I use Google Chrome custom search engines for quick access

April 22, 2014 - Categories: geek, productivity, tips

I move as much as I can of what I know to the Web so that other people can use what I share. Added benefit: I can find things quickly! I use custom search engine shortcuts to help me quickly look up stuff. For example, I frequently refer to blog posts. I can type “b search terms” into my Chrome address bar to search my blog. Neat, huh? Here are the search engines I’ve defined.

Blog b https://www.google.ca/search?q=site%3Asachachua.com+%s
Blog category bc http://sachachua.com/blog/category/%s
Blog tag bt http://sachachua.com/blog/tag/%s
Flickr – mine f http://www.flickr.com/search/[email protected]&q=%s
Flickr tag ft ~http://flickr.com/photos/sachac/tags/%25s
Google Drive d https://drive.google.com/a/sachachua.com/#search/%s
Google Calendar c https://www.google.com/calendar/render?q=TERM
GMail m https://mail.google.com/mail/u/0/?pli=1#search/%s
Google Contacts p https://www.google.com/contacts/?q=%s
Trello t https://trello.com/search?q=%s

Here’s how you can define your own search engines:

  1. Click on the menu button.
  2. Choose Settings > Manage Search Engines.
  3. Scroll to the bottom of the Other search engines list.
  4. Add your own, one at a time.

%s will be replaced by the search terms from the command line.

Super handy!

Try setting up search engines for yourself. It takes a few minutes to set up one, and it makes searching so much easier.

Reinvesting time and money into Emacs

April 23, 2014 - Categories: emacs, experiment

I received a wonderful token of appreciation from someone who found my Emacs posts useful. It got me thinking: what would it be like if I made Emacs a large part of my life’s work, and how can I invest even more into it?

Emacs is already a big part of my life. I like the community. I get a lot of positive feedback indicating I might be doing useful things. It’s not like much would change, except perhaps that I’d give myself permission to focus on this, to put more eggs in this basket. I might write about Emacs more often, even if it makes other people boggle. I might tweak the design of my blog to simplify browsing through Emacs-related resources, and maybe come up with an easier-to-spell domain name for that part of my site. Focusing on Emacs is probably low-risk, since my savings give me a decent runway if I need to build up more marketable skills like WordPress or Rails. (Or I could be, like, one of the few Emacs coaches/consultants in the world. ;) )

To make the decision clearer to myself, here’s what would go on the backburner: specializing in a more popular platform (WordPress, Rails, etc.), Quantified Self, helping people with blogging, helping people with sketchnoting, helping people with freelancing/semi-retirement, delegation, and so on. I could probably build up a reputation in those communities later on, but I like Emacs the most right now.

I like focusing on helping people discover the joys of exploring and customizing Emacs: blog posts, tutorials, suggestions, screencasts, maps, and maybe someday those guides and books I’ve been talking about writing. I like helping make Emacs learning slightly more manageable – “if you know about this, you might want to check out that.” I enjoy coding, but I haven’t gotten deeply into the big improvements people are working on for Emacs 24 and later. I’ll probably continue to focus on filling in the gaps instead of pushing Emacs forward.

I’ve been thinking about how I can reinvest money into the Emacs community. There was a recent thread on the Orgmode mailing list about donations – trying to figure out how to put people’s donations to the best use. Sometimes I receive donations too. Since I keep my expenses low and there’s only so much safety you can save up for, how can I put small amounts of money to good use in open source?

Domain name, hosting, etc.: I use a Linode VPS – I switched from Rackspace in 2011. A virtual private server is more expensive than shared hosting providers. I like how I can ssh to it to try different things. I’ve thought about lowering my costs by using DigitalOcean, but I don’t know enough yet about server optimization to properly configure my web server setup so that I’m confident I’d fit into a smaller plan. (Hmm, this might be worth experimenting with someday, especially since I could set up a snapshot and save it…) I’ve budgeted for this and for domain naimes since this is such a big part of what I do, so I don’t mind covering this myself and using donations/unexpected income for other things.

Transcripts for Emacs Chats and other videos: I’ve been outsourcing this instead of doing it myself because transcription is a well-specified chunk of work that I can pass to other people (who can learn a little more along the way). It takes about $35-$60 for a transcript, and then I often edit it a little. The assistant who does my Emacs Chat transcripts is interested in programming, but hasn’t gotten into Emacs specifically. It might be interesting to find someone who’s interested in Emacs and who will get even more out of transcribing videos. (If this describes you, e-mail me!)

Emacs/Org conference? Meeting folks in person was super-awesome. If last year’s conference happened because someone found a venue willing to host us for free, it makes sense for me to pay for a venue. Even if it’s over a thousand dollars, that’s cheaper than a flight and visas and all sorts of other things.

Emacs meetups? Quantified Self Labs supports QS meetups by sponsoring Meetup.com fees ($144 per year), pitching in for video cameras, and paying someone to process videos. They also have people working on blog posts and other community-related projects. Would a similar model make a big difference? Maybe it makes sense to get a few of them off the ground. What’s in the way of my hosting an Emacs meetup here?

Editors / information organizers: I try to make my writing easy to understand, but it can be good to have other people review something to see if it makes sense and to spot the gaps. Volunteers and blog readers help a lot. Still, it might be a good idea to pay people to help me with this. I’m not looking for surface-level editing, but more developmental editing: helping me organize ideas so that they make sense and they’re in a logical order. I’m not sure if looking on the usual freelance writer sites will help me find someone who can do this, but maybe if I can offer a good enough incentive, then maybe a freelance developer/writer will be able to spend some time helping me with this. (Or I can just take longer and I can get better at asking for feedback…)

Bounties? https://www.bountysource.com does not seem very popular for Emacs or Org. I’m still not sure how bounties interact with intrinsic motivation and unequal valuing of work, or how to even value a fix.

There’s still so much beyond money that I haven’t yet fully delved into. Aside from re-investing money, I can invest time – and that’s probably more important, more useful.

How can I invest more time into the Emacs community? What do I want to work towards? How can I improve how I learn and share?

Continue what I’m doing, and do more of it: Tweak Emacs and write about it. Be that friendly co-worker or friend you chat with because you know she’s always coming up with the weirdest things to try, and sometimes that leads to surprisingly useful things. Post more screenshots and screencasts, since we could really use those.

Fill in more gaps: Answer newbie questions. Map topics to learn. Write tutorials. Link to resources. Make screencasts. Organize information. Read EmacsWiki and other resources, and organize/edit/fill in as I come across opportunities to improve things.

Guide more people towards Emacs Lisp: Help people make that jump to writing their first custom bit of Emacs Lisp. Learn more about Emacs Lisp style and functionality, and help people improve their packages.

Help inspire and connect people. Bring the community together: Interview people for Emacs Chats, so that other people can get a sense of people like them who are enthusiastic about Emacs and who use Emacs to do interesting things. Set up a regular Emacs show-and-tell series?

On a related note: what would it take to figure out how to do Emacs coaching properly? I’d want to keep track of people’s progress and set up recurring calls, so probably Org, maybe in Google Drive or Git… I have a little bit of an impostor syndrome around this because I don’t know enough about setting up Emacs as a modern IDE, but I can learn. Clojure, Rails are probably good starting points, and there’s Emacs Lisp itself. On the other hand, if I answer questions in newsgroups and mailing lists, I help more people, and it’s easier (and more reliable) to turn those into blog posts. Plus they’re searchable. But sometimes one-on-one real-time helping is what helps me map or understand things better, and it can really make a difference in someone’s confidence or comfort level. So yes, continue to do these, and continue to nudge people to share.

Do these decisions make sense even considering a scenario where, say, Emacs becomes irrelevant? I’ll have learned more about related programming tools and topics. I’ll be a better writer and teacher. I’ll probably know a whole bunch of people who are happy about what I’ve shared and who can help me make the transition to other things as needed, maybe by sharing information or by taking a chance on me. And then there are all the other skills I’ll build on the way: making sense of technical things, learning more about how things learn, and playing with all sorts of other things along the way.

Payoffs? Tickled brain, happy mastery. Besides, you meet the nicest people using Emacs. =)

Planning ahead for the stories

April 24, 2014 - Categories: experiment

Sometimes, when you take risks or make decisions, it helps to think about how your choices affect your story. We all tell stories. Stories are how we make sense of things. The same set of facts can support many different kinds of stories. The story you choose to tell–the perspective you pick–affects how other people see you or make sense of your life.

stories

When I was planning this experiment with semi-retirement, thinking about the stories that I could tell helped me make that jump. How would I explain that gap in my career if I decided to work someplace where that could matter? After all, most employers want commitment, not gaps.

It helps that I’ve been able to plan ahead. Having enough savings to cover five years of expenses lets me tell a different story compared to someone who quit a job without having anything else lined up. Leaving my job on a happy note is different from leaving because I was burned out. Structuring this break as a time-limited experiment helps me make sense of it. I incorporated right away, and eventually came up with a company name that was general enough to cover a lot of different things I was interested in exploring. If I tell the story in the right way, then the five years that I’ll spend outside the easily understandable structures of work will give me a different but possibly useful perspective. If I don’t have a story to tell, it will just look like drifting.

The human brain is really good at rationalization, so you can come up with multiple stories to fit your facts. You don’t even need to make things up. You can choose the parts you want to emphasize, the reasons you want to explain. Also quite handily, there are lots of stories you can pattern yours on. For example, I might be framing this as an experiment now, but I can also talk about it in terms of freelancing. People shift to freelancing, and some shift back. If we have kids, then my story could be as simple as those of many other parents who’ve taken breaks from traditional careers. The on ramp might be tricky, but it’s there. And even if I started my break a few years before having kids, people probably won’t dig into that.

Imagining one possible Sacha of five years after the experiment (with subtext or notes in parentheses), pitching a business:

Yeah! I was doing well at IBM (evidence: performance ratings, recommendation letters, testimonials), but I knew that I wanted to learn more about business, technology, and other topics. Besides, I’d saved up a lot, so I could take more risks. I gave my manager plenty of notice and transitioned all my projects neatly. (See, I’m responsible.) I experimented with different kinds of business models and found that I really enjoy helping people understand complex ideas through simple visuals, tutorials, videos, and consulting. I learned about what I can do on my own, and now I want to scale up by working with a good team. (So that’s why you don’t have to worry about me being all flighty.) With the skills I polished (NodeJS, more Ruby, even Emacs geekery) and the network I developed, I think I can help you make even awesomer things happen.

Another Sacha, talking about choosing alternative paths:

I had a great time in the corporate world, so I wanted to see what the other types of work were like. I have a lot of role models who have small businesses, and I was excited about learning how to build one myself. I experimented with different business models and was lucky to find immediate profitability with consulting, sketchnoting, and publishing. I re-invested those profits, and the investments grew enough to cover my needs. Since I have the time and space to explore things just because, I’ve decided to focus on the things I like to do: helping people learn more about Emacs or visual thinking. It’s pretty cool what you can do when you challenge your assumptions.

And yet another Sacha, blending in with the crowd (assuming we have kids):

I took some time off to raise a family. Since I knew I wanted to get back into technology afterwards, I kept my skills up to date by working on open source projects and building sites. You can see my portfolio at ____. Why don’t we set up a trial project so that we can find out if this is a good fit?

I think a lot about what’s going to be part of my story. I want to be able to put enough into that box, and I want it to make sense. Time moves so quickly. I’m already almost halfway through these five years. What I want to be able to say at the end of it? How am I different now compared to when I started, and how much more different do I want to become?

I’m more comfortable with business and paperwork than I used to be. I was pleasantly delighted to discover that I could create things that other people valued, and that people would buy things even if they could get them for free. I learned how to put together e-books and printed books. I got more comfortable at helping people online, and I learned that was something else that people valued. I learned how to interview people and turn that into additional resources. I got deeper into drawing, and I used that to explain ideas and explore my own reasoning.

I haven’t learned as much as I thought I would about some of the technologies I was curious about. I’m still not a super-leet developer of Emacs, Rails, Node, or Android. I spend more time on the beginner side of things, building resources and filling in gaps. That’s useful too, so I’m not too worried.

What do I want to add to this story? More coherent Emacs evangelism: guides, e-books, then maybe books – more help, more chunks that are part of a story (and that tickle my brain and that result in good karma; it’s icing on the cake that it’s part of a “worked on open source” story). Maybe Org or other Emacs contributions. More modern web development. Writing. Plenty of writing. Someday, more style and humour.

So far, my investment income covers what I need. It is always possible, however, that I’ll need to focus on more active work. Something might happen to W-, or our situation might otherwise change. I’m not entirely sure yet that I have a good plan for that, although I’ve set aside some buffer so that we can ease into it slowly. In those kinds of scenarios, I’d probably post here while I figure out my options, which will likely involve programming of some sort or another. (Then people can be part of the story too!)

Sometimes I think about alternate universe Sachas who travel in parallel along more conventional paths. It’s less about “what if” or “if only” and more about “Hmm…” I can relax a little, knowing that alternate universe Sachas are exploring those trails. I check in with myself from time to time: is the story worth the divergence? Can I scent other interesting story possibilities nearby?

While I give up a little of the power of the story by actually talking about my thought processes, I’m betting that it’ll help more than hinder. At the very least, this will probably help other people think about their stories.  =)

What are the different stories you can tell about the facts of your life, and how are you working towards the stories you would like to be able to tell? Here are some tips I’ve picked up:

  • Look for similar stories that you can pattern yours on–and that you can use to decide where you’ll diverge
  • Brainstorm different aspects you can emphasize about your story
  • Try out the stories you want to be able to tell

How Org Mode helps me deal with an ever-growing backlog

April 25, 2014 - Categories: emacs, org, productivity

If you’re like me, you probably have a to-do list several miles long. I like thinking of this as the backlog from agile programming. It’s a list of tasks that I could choose to work on, but I haven’t committed to doing everything on the list. This means I don’t have to waste energy feeling guilty about not getting everything done. Instead, I can treat it like a buffet of projects to choose from depending on what I feel like working on.

2014-04-28 Dealing with an ever-growing backlog

2014-04-28 Dealing with an ever-growing backlog

I think I add tasks faster than I cross tasks out. (Hmm, I should track this!) It never ends. Most tasks suggest next steps I could take after I finish the first ones. You might think that an ever-growing to-do list is a bad thing. This is okay. In fact, this is good. It means that I’ll always have a variety of tasks to choose from.

People manage tasks in different ways. For my personal tasks, I use several large text files in Org Mode for Emacs. Org Mode is an outline-based tool which makes it easy for me to organize my tasks into projects and projects into themes. It also supports tagging, links, agendas, dynamic views, and all sorts of other great ways to slice-and-dice my task list. Here’s how I deal with some of the common challenges people face with a large task backlog:

  • Making sure important, urgent tasks don’t fall through the cracks
  • Making sure you don’t neglect important but not urgent tasks
  • Keeping track of what you’re waiting for
  • Catching procrastination

Making sure important, urgent tasks don’t fall through the cracks

If something has a deadline, I add the deadline in Org using C-c C-d (org-deadline). This means that reminders will appear on my daily agenda for the 14 days before the deadline, counting down to the deadline itself. (The number of days is controlled by org-deadline-warning-days.) In addition, I usually schedule the task for a day that I want to work on it, so that I can get the task out of the way.

I’m careful about what I commit to, erring on the side of under-committing rather than over-committing. I’m selective about my client work and my volunteering. I keep my schedule as open as I can, and I’m not afraid to reschedule if I need to. Hardly anything I work on could be considered urgent. If an urgent request does come in, I ask questions to determine its true urgency, including potential alternatives and consequences of failure.

You might not have as much choice about what to work on, but you might also be surprised by how much you can push back. Be careful about what you allow to be urgent in your life.

Making sure you don’t neglect important but not urgent tasks

I have plenty of space to work on things that are important but not urgent because I manage my commitments carefully. This means that I can usually finish a few important-but-not-urgent tasks every day.

Which tasks do I consider important? I like thinking in terms of projects. Important tasks tend to be associated with projects instead of standing in isolation. Important tasks move me toward a specific goal. I have many goals and projects, but because they’re fewer than the number of tasks I have, I can prioritize them more easily. I can decide that some projects are in the background and some are in focus. Important tasks are the tasks that help me make more progress on the projects I consider important.

Because I like having two or three projects on the go, it helps to make sure that I make regular progress on those projects instead of getting carried away on just one. Tracking my time helps me stay aware of that balance. I also review my projects every week and schedule specific tasks for each of them, so I can make a little progress at least. Once I switch context and start thinking about a project, it’s easy to pick another couple of tasks in that area and get even more done.

If you’re struggling with creating enough space to work on important but not urgent tasks, you might be able to partner up with someone so that you can block off time to work on non-urgent things. Many teams have a rotating schedule for dealing with customer requests or urgent issues. One person covers the requests for a day, allowing the rest of the team to focus. Then the next person takes on that duty, and so on.

Keeping track of what you’re waiting for

One of the useful tips I picked up from David Allen’s Getting Things Done book was the idea of marking a task as WAITING. I usually add a description of what I’m waiting for, who’s responsible, and when I want to follow up. This makes it easier to follow up. When I’m waiting for a specific date (ex: the library makes a DVD hold-able after a certain date), I schedule the task for then.

I use the Boomerang for Gmail extension when I’m waiting for an e-mail reply. Boomerang lets me pop the message back into my inbox if I haven’t received a reply by a specific date, so I don’t have to keep track of that myself.

Handling less-important but still useful things

There are tasks on my to-do list that have been on that list for years. This is okay.
I’m getting better at noting names and contact information in my tasks so that I can follow up with people even after some time. This is particularly useful for book recommendations. I get a lot of book recommendations and I get most of my books from the library, so there’s usually a delay of a few weeks. Because Org Mode lets me add notes and links to the body of a task, I can look up information easily.

I work on less-important tasks when I don’t feel like working on my major tasks, or when I’m looking for small tasks so I can fill in the gaps of my day. Org Mode gives me plenty of ways to look up tasks. I usually look for tasks by projects, navigating through my outline. I can also look for tasks by effort estimate, so I can see everything that will probably take me less than 15 minutes. Context is useful too – I can search for various tags to find tasks I can do while I’m on the phone, or out on errands, or when I feel like writing or drawing.

I like thinking in terms of low-hanging fruit, so I often choose tasks that require little time or effort and have good impact. It can be overwhelming to look at a long list of tasks and decide which ones have good return. It’s easier to tag these tasks when you create the task, or to think in terms of projects instead.

Some tasks grow in importance or urgency over time. If I want to make sure that I revisit a task on a certain date, I schedule it for then.

Catching procrastination

I still end up rescheduling tasks multiple times. (I’ve been putting off redoing my business cards for a few months now!) I’ve noticed that there are different kinds of procrastination, including:

  • Procrastinating because you don’t have time today: It’s easy to reschedule things a few weeks or a month in advance. In fact, Org has a built-in command for bulk-scattering tasks. From the agenda view, you can type m to mark multiple tasks, then type B and then S to scatter tasks randomly over the next N days. (Call it with a prefix argument as C-u B S to limit it to weekdays.) If I catch myself procrastinating because I don’t have enough time, that’s usually a sign to be more cautious about my estimates and commitments, so I adjust those too.
  • Procrastinating because it’s less important than other tasks: This is related to the time reason. I have no qualms about pushing less-important tasks forward.
  • Procrastinating because you don’t feel like working on it: Is the task actually important? If it’s not, I usually get rid of it without feeling guilty. If it’s still useful, I might unschedule it so that I see it only if I’m looking for tasks in that project or in that context. Alternatively, I can just mark the task as CANCELLED or SOMEDAY. If the task is important, I think about whether I’m likely to feel like working on it at some point in the future. If I’m likely to not feel any different about it, I might delegate it, or I might just sit down and do it since procrastination doesn’t add value. On the other hand, if I’m likely to feel like working on it at some point, then I tag it with that context and push it out to some other date.
  • Procrastinating because you forgot about it: I usually check my agenda every day and Org shows forgotten things in a different colour, so I catch these quickly. If the tasks are more important than the tasks I’ve already scheduled, I might work on those first. Alternatively, I might schedule it for sometime later.

I procrastinate based on my to-do list, not based on my inbox. The inbox is a terribly unstructured way to manage your tasks. I use Boomerang for Gmail to defer some mail to a later date, but that’s usually so that I can pop it back into my inbox the day that I meet someone so that I have context and so that I don’t have to copy the link into the calendar entry or my TO-DO list.

Wrapping up

So that’s how I deal with having a large backlog. I focus first on the stuff that I need to do, and I make sure that shows up on my agenda. Then I make it easy to look for stuff that I want to do using Org’s support for projects, tags, time estimates, and so on. I don’t feel guilty about having lots of tasks to choose from. I view my backlog positively. It lets me do good stuff without worrying too much about how I spend my time.

How do you deal with your backlog? =)

Sneak peek! Writing this post prompted me to start tracking whether my backlog grew or shrank each day. Check out my preliminary results and the code I used to analyze my TODOs.
2014-04-27: Fixed typo in keybinding – thanks, Sujith Abraham!

Weekly review: Week ending April 25, 2014

April 26, 2014 - Categories: weekly

I’m experimenting with spending more time focusing on Emacs. So far, it’s working well. I’ve been moving more resources to Git and github.io (http://github.com/sachac/) to make it easier for people to check out and view the Org files in Emacs. And people have started sending me pull requests, hooray! itsjeyd contributed a section to this Emacs Lisp tutorial. This week, I’m planning to flesh out the reading Emacs Lisp tutorial more.

Blog posts

Sketches

Link round-up

Focus areas and time review

  • Business (32.9h – 19%)
    • [ ] Earn: E1: 2.5-3.5 days of consulting
    • [ ] Go to Quantified Self meetup
    • [ ] Host visual thinkers meetup
    • [ ] Record session on learning keyboard shortcuts
    • Earn (12.9h – 39% of Business)
    • Build (9.7h – 29% of Business)
      • [X] Build – Coding: Tweak post info to appear in sidebar on wide screens (> 1600px)
      • [X] Add batch operation for “Today” and “Yesterday” to clothing view
      • [X] Read Eloquent Ruby
      • [X] Track all the experiments
      • [X] Fix vagrant VM
      • [X] Analyze a year of clothing data
      • Drawing (0.5h)
      • Delegation (2.5h)
        • [X] Brainstorm more tasks
        • [X] Add more tasks to delegation board in Trello
      • Packaging (0.0h)
        • [X] Set up custom domain for git, update redirects
        • [X] Decide on Linode crossgrade to SSD
        • [X] Getting R and ggplot2 to work in Emacs Org Mode Babel blocks; also, tracking the number of TODOs
        • [X] Use the structured debriefing framework for one occasion, then reflect on it
      • Paperwork (0.1h)
      • Emacs
        • [X] Outline a book or the key things that need improved documentation/tutorials
        • [X] Learn how to plot with Org and R
        • [X] Clean up live coding screencast for viewing tasks by project
        • [X] Add more sections to Emacs Lisp tutorial
        • [X] Experiment with exporting orgtbl
        • [X] https://github.com/robtillotson/org-pandoc
        • [X] Reinvesting time and money into Emacs
        • [X] Share picking up workflow tips by reading other people’s configs
    • Connect (10.3h – 31% of Business)
      • [X] Help with gozes’ configuration
      • [X] Help zeltak
      • [X] Invite bbatsov for an Emacs Chat
      • [X] Plan pairing with Tom Marble?
      • [X] Set up interviews with people
      • [X] Talk to David Wolever about Emacs
      • [X] Frugal Fire: Co-host interview with Bakari
      • [X] Frugal Fire: Transition to Jordan
      • [X] Check parts for rice cooker
      • [X] Fix rice cooker
      • [X] Chat with splintercdo (Janis) about literate programming
      • [X] Set up conversations
  • Relationships (5.9h – 3%)
  • Discretionary – Productive (28.5h – 16%)
    • [X] Ask questions in public
    • [X] Download talks as MP3
    • [X] Follow up on missing book? Obliquity
    • [X] Make a list of questions I’m curious about
    • [X] Tidy up desk
    • [X] What’s new in Rails
    • [X] [#C] Track cat data
    • [ ] Deposit USD
    • [ ] [#C] Tracking: Update the number of tasks
    • Writing (9.5h)
  • Discretionary – Play (16.9h – 10%)
  • Personal routines (25.0h – 14%)
  • Unpaid work (6.1h – 3%)
  • Sleep (55.6h – 33% – average of 7.9 per day)

Reflecting on 10 episodes of Emacs Chats

April 28, 2014 - Categories: emacs

I’ve posted ten Emacs Chat episodes so far, and the transcripts for the most recent ones are coming soon. These are hour-long conversations with Emacs geeks about how they got started with Emacs, why they like it, and how they use it. We usually go through people’s config files, too, since that often leads to interesting tips.

janis_mancevics Jānis Mancēvičs

Literate programming, Unity game development, code folding

Emacs-Chat-Tom-Marble Tom Marble

Org Mode, time tracking, LaTeX, and invoice generation. Also, Clojure + Emacs and other good things.

Emacs-Chat-Iannis-Zannos Iannis Zannos

Music and SuperCollider

Emacs-Chat-Magnar-Sveen Magnar Sveen

Hanging out with other Emacs geeks, Emacs Rocks, and board games

Emacs-Chat-Bastien-Guerry Bastien Guerry

Org Mode maintenance, getting started with Emacs, hacking his life with Org

Emacs-Chat-Carsten-Dominik Carsten Dominik

Getting started with Emacs, the joys of Calc, and other cool things

Thomas-Kjeldahl-Nilsson-Emacs-chat Thomas Kjeldahl Nilsson
Thomas shares about Emacs and picking up configuration snippets from EmacsWiki.
Emacs-Chat-with-Avdi-Grimm Avdi Grimm
Org-mode literate programming, Ruby, and how he got started with Emacs.
John-Wiegley John Wiegley
Emacs Lisp development and other good things
and me! =) Sacha Chua
in which Bastien Guerry interviews me

I started this because it was so much fun meeting Emacs geeks in person at the Emacs Conference in London last year. (When are we having another one? I’m happy to sponsor a reasonable venue.) You pick up lots of tips when you watch how someone else uses Emacs, but not everyone has the luck of working near other Emacs geeks. (I don’t!) I also wanted to get to know other Emacs geeks so that I could “hear” their voices when reading mailing list messages and code snippets. I wanted other people to get that feeling of knowing people in the community – other real people who use Emacs.

I was pretty anxious about it in the beginning. Would I be able to ask interesting questions, or would there be dead silence? What if I hadn’t researched people well enough? Would asking people about their beginnings get repetitive after many episodes? I feel a little more relaxed now. It turns out that it’s easy to invite people to be on one of these conversations, and I always find the conversation interesting. People are so enthusiastic about Emacs. Yay!

It’s been great hearing stories from people who’ve been using Emacs for ages (like Iannis Zannos and Tom Marble) and people who’ve gotten into Emacs fairly recently (like the way Magnar Sveen only seriously started using it a few years ago). Org Mode frequently pops up in conversation. I’ve learned about lots of other interesting packages as well, like redshank and erefactor.

People tell me that they enjoy listening to the episodes. The episodes are still on the long side (an hour or so, versus short-and-punchy 15- or 30-minute chats), but they’re good for picking up odd tips.

Of the little podcast experiments I’ve been running, the Emacs Chats series is my favourite. Other experiments were easier to sketchnote (which people also really enjoyed), but I like the Emacs community the most. =)

From these experiments, I’ve learned that Google Hangout on Air is a convenient way to create an audio/video show with guests. With a little bit of work, you can turn these conversations into podcasts that people can download and subscribe to, transcripts that people can read, and so on.

I wanted to learn how to delegate a smoothly-running process. That worked out really well. Now, when I finish an episode, I simply add a card to my Trello board with the URL and my assistants will post the show notes and the transcript for me.

I could probably make this even better by following up. I can spend more time editing the transcripts, adding links, and summarizing key points. Maybe I’ll convert the transcripts to Org Mode and then structure things more from there.

In terms of scheduling, picking times that are a month or two away seems to be working well. I like proposing specific times with Boomerang Calendar. It feels more proactive than asking people to check http://sachachua.com/meet for meeting times, although both ways still involve a bit of work for the other person since they have to check their calendar. If I suggest the times and do the timezone conversions myself, that means we can set the time with fewer clicks required from the other person. It doesn’t feel as stand-offish as cc-ing an assistant who may or may not be able to quickly reply. (Although perhaps I should train my current assistants to do this, since they seem to be fairly responsive…)

I mostly find people through recommendations, so if you want to hear from someone, suggest them or introduce us by e-mail. I’d love to interview more women who use Emacs (maybe Amelia Andersdotter?), but I’m happy to chat with all sorts of folks about Emacs. You don’t have to be famous. =) If you’ve got an interesting demo to share, I’d love to hear from you too.

Onward! With Alex Poslavsky’s help, I’ve been adding more Emacs Chats resources to Github so that people can easily subscribe to it or contribute there. I noticed a few of them were missing transcripts, so we’ll work on that too. What else would make these Emacs Chats better or more useful for you?

Quantified Self: Analyzing 32 months of clothing data

April 29, 2014 - Categories: quantified

I added the ability to analyze clothing use by week, month, or year to Quantified Awesome, where I’ve been tracking my clothes since August 2011. With a little bit of Microsoft Excel formatting, here’s part of the analysis I get:

2014-04-21 12_01_02-Microsoft Excel - Book1

 

(more rows omitted)

You can see how I’ve practically been living in snow pants this past winter, which has been very cold. Unsurprisingly, I don’t wear it at all during warmer months. Sweaters and long-sleeved tops are bursty too, naturally. I bought my two pairs of jeans from a thrift store in April 2012 and have been wearing them fairly regularly since. I also wear my office slacks a lot, since I have fewer of them compared to tops.

Nothing particularly unintuitive about this data, but it’s interesting to see. One of the later rows reminds me, hey, where did my black WPengine shirt go? That was comfy, but I haven’t worn it in 4 months – it might have disappeared into J-‘s closet. Now that we’re almost the same size, sometimes things get misfiled. Also, might be time to donate more clothes…

Thinking about my TODO keywords

April 30, 2014 - Categories: emacs, org, productivity

It’s been twelve years since David Allen published Getting Things Done, with its geek-friendly flowcharts and processes for handling tasks in an interrupt-driven life. The way I manage my tasks is heavily influenced by GTD. I think in terms of next actions, waiting, and someday, and I have weekly reviews. I modified the TODO states a little to reflect what I need. It’s time to think about those states again to see what I can tweak and what reports I could use.

I use Org Mode in Emacs to manage my tasks and my notes. I can customize it to give me different kinds of reports, such as showing me all of my unscheduled tasks, or all tasks with a specific category, or even projects that are “stuck” (no next actions defined). Thinking about my processes will help me figure out what reports I want and how I want to use them.

Here are different types of tasks and how I track them:

  • Things I can work on right now (next actions): TODO
  • Things that I can work on after a different task is finished: currently WAITING, but probably better to implement with org-depend
  • Things I will revisit at a certain date, but I don’t need to think about them until then: TODO, scheduled (I used to use POSTPONED)
  • Things that would be nice to do someday, but maybe are incompletely specified or understood: SOMEDAY
  • Things I have decided not to work on: CANCELLED
  • Things I have asked someone else to do: DELEGATED
  • Things I can ask someone else to do: TODELEGATE
  • Things I am waiting for (usually not based on date) and that I need to follow up on: WAITING
  • Things I can write about: TOBLOG. These are pretty optional, so I don’t want them in my TODO list…
  • If something is a duplicate of something else – remove TODO keyword and add link?

I use the following code for an agenda view of unscheduled tasks:

(defun sacha/org-agenda-skip-scheduled ()
  (org-agenda-skip-entry-if 'scheduled 'deadline 'regexp "\n]+>"))

(add-to-list 'org-agenda-custom-commands
   '("u" "Unscheduled tasks" alltodo ""
     ((org-agenda-skip-function 'sacha/org-agenda-skip-scheduled)
     (org-agenda-overriding-header "Unscheduled TODO entries: "))))

So the to-do process looks like this:

  • Every week, review my evil plans and projects. Check my agenda without the routine tasks to see what new things I’m working on. Schedule a few tasks to encourage me to make regular progress.
  • Every day, go through my Org agenda (C-c a a) and do all the tasks that are scheduled.
  • When I’m done or if I feel like working on something else:
    • What do I feel like doing? If there’s a specific activity that I feel like:
      • Go to the relevant project/section of my TODO list, or check the TODOs by context (drawing, writing, etc.)
      • Clock in on that task.
    • If there’s a specific task I feel like working on:
      • Find the task, maybe with C-u C-c C-w (org-refile) and work on it.
    • If there’s a new idea I want to work on:
      • Use org-capture to create the task, file it in the appropriate project, and then clock in.
  • If I have an idea for a task, use org-capture to create the task and file it in the appropriate project.

How do I want to improve this?

  • Maybe get more used to working with contexts? I have all these Org Agenda commands and I hardly ever use them. I tend to work with projects instead. Actually, working with projects makes sense too, because that minimizes the real context shift.
  • Get better at reviewing existing tasks. I started tracking the number of tasks in each state (DONE, TODO, etc.), which nudged me to review the tasks and cross old tasks off. If I streamline my process for capturing tasks, filing them, and reviewing them by project/context/effort, then I can get better at choosing good tasks to work on from my existing TODO list.
  • Estimate effort for more tasks, and use that more often I have some reports that can filter or sort by estimated effort. I don’t use effort that much, though. Does it makes sense to get into the habit of choosing tasks by estimated time as an alternative approach? I usually have fairly large, flexible blocks of time…
  • Tag things by level of energy required? I want to take advantage of high-energy times. So, when I feel alert and creative, I want to focus on coding and writing. I can save things like paperwork for low-energy times. I can tag some tasks as :lowenergy: and then filter my reports.

Hmm…