Categories: geek » quantified

RSS - Atom - Subscribe via email

Update on time tracking with Quantified Awesome and with Emacs

Posted: - Modified: | quantified

With another Quantified Self Toronto meetup in a few weeks and a conversation with fellow self-trackers, it's time for me to think about time again.

I've been fixing bugs and adding small pieces of functionality to Quantified Awesome, and I spent some time improving the integration with Emacs. Now I can type ! to clock in on a task and update Quantified Awesome. Completing the task clocks me out in Emacs and updates Beeminder if appropriate. (I don't update Quantified Awesome when finishing a task, because I just clock into the next activity.) This allows me to take advantage of Org's clock reports for project and task-level time, at least for discretionary projects that involve my computer. I'm not going to get full coverage, but that's what Quantified Awesome's web interface is for. It takes very little effort to track things now, if I'm working off my to-do list. Even if I'm not, it still takes just a few taps on my phone to switch activities.

Most of my data is still medium-level, since I'm still getting the hang of sorting out my time in Emacs. Looking at data from 2014 so far, dropping partial weeks, and doing the analysis on April 14 (which is when I'm drafting this), here's what I've been finding.

  • I sleep a little more than I used to: an average of 8.9 hours a day, or 37% of the time. This is up from 8.3 hours last year.
  • It takes me about an hour to get ready in the mornings. If I have a quick breakfast instead of having rice and fried egg, I can get out the door in 30-45 minutes.
  • It takes me 50-60 minutes to get downtown, whether this is by transit or bicycle. Commuting takes 3% of my time.

Little surprises:

  • I've spent almost twice as much time on business building or discretionary productive activities (19%) as I have earning (11%) – good to see decisions in action!
  • I've spent more time drawing than writing this year (5% vs 3%). Next to writing, Emacs is the productive discretionary activity I spend most of my time on (2%).
  • I've spent 10% of my time this year on connecting with people, a surprisingly high number for me. E-mail takes 1% of my overall time.
  • It turns out that yes, coding and drawing are negatively correlated (-0.63 considering all coding-related activities). But writing and drawing are positively correlated (0.44), which makes sense – I draw, and then I write a blog post to glue sketches together and give context. Earning is slightly negatively correlated with building business/skills (-0.15), but connecting is even more negatively correlated with time spent building business/skills (-0.35). So it's probably not that consulting takes me away from building skills. Sleep is slightly negatively correlated with all records related to socializing (-0.14), but strongly negatively correlated with productive discretionary activities (-0.55). Hmm. Something to tinker with.

Some things I'm learning from tracking time on specific tasks:

  • Outlining doubles the time I take to write (and drops me from about ~30wpm to about 9wpm), but I feel that it makes things more structured.
  • Drawing takes longer too, but it makes blog posts more interesting.
  • Trying to dictate posts takes me way more time than outlining or typing it, since I'm not as used to organizing my thoughts that way.
  • Encoding litter box data takes me about a minute per data point. So spending a lot of time trying to figure out computer vision and image processing in order to partially automate the process doesn't strictly make sense, but I'm doing it out of curiosity.
  • I generally overestimate the time I need for programming-related tasks, which is surprising. That could just be me padding my estimates to account for distractions or to make myself feel great, though.
  • I generally underestimate the time I need to write, especially if I'm figuring things out along the way.

This post took me 1:20 to draft (including data analysis), although to be fair, part of that involved a detour checking electricity use for an unrelated question. =)

Getting R and ggplot2 to work in Emacs Org Mode Babel blocks; also, tracking the number of TODOs

Posted: - Modified: | emacs, org, quantified

I started tracking the number of tasks I had in Org Mode so that I could find out if my TODO list tended to shrink or grow. It was easy to write a function in Emacs Lisp to count the number of tasks in different states and summarize them in a table.

(defun sacha/org-count-tasks-by-status ()
  (interactive)
  (let ((counts (make-hash-table :test 'equal))
        (today (format-time-string "%Y-%m-%d" (current-time)))
        values output)
    (org-map-entries
     (lambda ()
       (let* ((status (elt (org-heading-components) 2)))
         (when status
           (puthash status (1+ (or (gethash status counts) 0)) counts))))
     nil
     'agenda)
    (setq values (mapcar (lambda (x)
                           (or (gethash x counts) 0))
                         '("DONE" "STARTED" "TODO" "WAITING" "DELEGATED" "CANCELLED" "SOMEDAY")))
    (setq output
          (concat "| " today " | "
                  (mapconcat 'number-to-string values " | ")
                  " | "
                  (number-to-string (apply '+ values))
                  " | "
                  (number-to-string
                   (round (/ (* 100.0 (car values)) (apply '+ values))))
                  "% |"))
    (if (called-interactively-p 'any)
        (insert output)
      output)))
(sacha/org-count-tasks-by-status)

I ran this code over several days. Here are my results as of 2014-05-01:

Date DONE START. TODO WAIT. DELEG. CANC. SOMEDAY Total % done + done +canc. + total + t – d – c Note
2014-04-16 1104 1 403 3 1 104 35 1651 67%
2014-04-17 1257 0 114 4 1 171 107 1654 76% 153 67 3 -217 Lots of trimming
2014-04-18 1292 0 74 4 5 183 100 1658 78% 35 12 4 -43 A little bit more trimming
2014-04-20 1305 0 80 4 5 183 100 1677 78% 13 0 19 6
2014-04-21 1311 1 78 4 4 184 99 1681 78% 6 1 4 -3
2014-04-22 1313 2 75 4 4 184 99 1681 78% 2 0 0 -2
2014-04-23 1369 4 66 4 5 186 101 1735 79% 56 2 54 -4 Added sharing/index.org
2014-04-24 1371 3 69 4 5 186 101 1739 79% 2 0 4 2
2014-04-25 1379 3 60 3 5 189 103 1742 79% 8 3 3 -8
2014-04-26 1384 3 65 3 5 192 103 1755 79% 5 3 13 5
2014-04-27 1389 2 66 3 5 192 103 1760 79% 5 0 5 0
2014-04-28 1396 3 67 3 5 192 103 1769 79% 7 0 9 2
2014-04-29 1396 3 67 3 5 192 103 1769 79% 0 0 0 0
2014-04-30 1404 4 70 4 5 192 103 1782 79% 8 0 13 5
2014-05-01 1413 4 80 3 4 193 103 1800 79% 9 1 18 8

Here's the source for that table:

#+NAME: burndown
#+RESULTS:
|       Date | DONE | START. | TODO | WAIT. | DELEG. | CANC. | SOMEDAY | Total | % done | + done | +canc. | + total | + t - d - c | Note                       |
|------------+------+--------+------+-------+--------+-------+---------+-------+--------+--------+--------+---------+-------------+----------------------------|
| 2014-04-16 | 1104 |      1 |  403 |     3 |      1 |   104 |      35 |  1651 |    67% |        |        |         |             |                            |
| 2014-04-17 | 1257 |      0 |  114 |     4 |      1 |   171 |     107 |  1654 |    76% |    153 |     67 |       3 |        -217 | Lots of trimming           |
| 2014-04-18 | 1292 |      0 |   74 |     4 |      5 |   183 |     100 |  1658 |    78% |     35 |     12 |       4 |         -43 | A little bit more trimming |
| 2014-04-20 | 1305 |      0 |   80 |     4 |      5 |   183 |     100 |  1677 |    78% |     13 |      0 |      19 |           6 |                            |
| 2014-04-21 | 1311 |      1 |   78 |     4 |      4 |   184 |      99 |  1681 |    78% |      6 |      1 |       4 |          -3 |                            |
| 2014-04-22 | 1313 |      2 |   75 |     4 |      4 |   184 |      99 |  1681 |    78% |      2 |      0 |       0 |          -2 |                            |
| 2014-04-23 | 1369 |      4 |   66 |     4 |      5 |   186 |     101 |  1735 |    79% |     56 |      2 |      54 |          -4 | Added sharing/index.org    |
| 2014-04-24 | 1371 |      3 |   69 |     4 |      5 |   186 |     101 |  1739 |    79% |      2 |      0 |       4 |           2 |                            |
| 2014-04-25 | 1379 |      3 |   60 |     3 |      5 |   189 |     103 |  1742 |    79% |      8 |      3 |       3 |          -8 |                            |
| 2014-04-26 | 1384 |      3 |   65 |     3 |      5 |   192 |     103 |  1755 |    79% |      5 |      3 |      13 |           5 |                            |
| 2014-04-27 | 1389 |      2 |   66 |     3 |      5 |   192 |     103 |  1760 |    79% |      5 |      0 |       5 |           0 |                            |
| 2014-04-28 | 1396 |      3 |   67 |     3 |      5 |   192 |     103 |  1769 |    79% |      7 |      0 |       9 |           2 |                            |
| 2014-04-29 | 1396 |      3 |   67 |     3 |      5 |   192 |     103 |  1769 |    79% |      0 |      0 |       0 |           0 |                            |
| 2014-04-30 | 1404 |      4 |   70 |     4 |      5 |   192 |     103 |  1782 |    79% |      8 |      0 |      13 |           5 |                            |
| 2014-05-01 | 1413 |      4 |   80 |     3 |      4 |   193 |     103 |  1800 |    79% |      9 |      1 |      18 |           8 |                            |
#+TBLFM: @3$11..@>$11=$2-@-1$2::@3$13..@>$13=$9-@-1$9::@3$14..@>$14=$13-$11-($7-@-1$7)::@3$12..@>$12=$7-@-1$7

I wanted to graph this with Gnuplot, but it turns out that Gnuplot is difficult to integrate with Emacs on Microsoft Windows. I gave up after a half an hour of poking at it, since search results indicated there were long-standing problems with how Gnuplot got input from Emacs. Besides, I'd been meaning to learn more R anyway, and R is more powerful when it comes to statistics and data visualization.

Getting R to work with Org Mode babel blocks in Emacs on Windows was a challenge. Here are some of the things I ran into.

The first step was easy: Add R to the list of languages I could evaluate in a source block (I already had dot and ditaa from previous experiments).

(org-babel-do-load-languages
 'org-babel-load-languages
 '((dot . t)
   (ditaa . t) 
   (R . t)))

But my code didn't execute at all, even when I was trying something that printed out results instead of drawing images. I got a little lost trying to dig into org-babel-execute:R with edebug, eventually ending up in comint.el. The real solution was even easier. I had incorrectly set inferior-R-program-name to the path of R in my configuration, which made M-x R work but which meant that Emacs was looking in the wrong place for the options to pass to R (which Org Babel relied on). The correct way to do this is to leave inferior-R-program-name with the default value (Rterm) and make sure that my system path included both the bin directory and the bin\x64 directory.

Then I had to pick up the basics of R again. It took me a little time to figure out that I needed to parse the columns I pulled in from Org, using strptime to convert the date column and as.numeric to convert the numbers. Eventually, I got it to plot some results with the regular plot command.

dates <- strptime(as.character(data$Date), "%Y-%m-%d")
tasks_done <- as.numeric(data$DONE)
tasks_uncancelled <- as.numeric(data$Total) - as.numeric(data$CANC.)
df <- data.frame(dates, tasks_done, tasks_uncancelled)
plot(x=dates, y=tasks_uncancelled, ylim=c(0,max(tasks_uncancelled)))
lines(x=dates, y=tasks_uncancelled, col="blue", type="o")
lines(x=dates, y=tasks_done, col="green", type="o")

r-plot

I wanted prettier graphs, though. I installed the ggplot2 package and started figuring it out. No matter what I did, though, I ended up with a blank white image instead of my graph. If I used M-x R instead of evaluating the src block, the code worked. Weird! Eventually I found out that adding print(...) around my ggplot made it display the image correctly. Yay! Now I had what I wanted.

library(ggplot2)
dates <- strptime(as.character(data$Date), "%Y-%m-%d")
tasks_done <- as.numeric(data$DONE)
tasks_uncancelled <- as.numeric(data$Total) - as.numeric(data$CANC.)
df <- data.frame(dates, tasks_done, tasks_uncancelled)
plot = ggplot(data=df, aes(x=dates, y=tasks_done, ymin=0)) + geom_line(color="#009900") + geom_point() + geom_line(aes(y=tasks_uncancelled), color="blue") + geom_point(aes(y=tasks_uncancelled))
print(plot)

 r-graph

The blue line represents the total number of tasks (except for the cancelled ones), and the green line represents tasks that are done.

Here's something that looks a little more like a burn down chart, since it shows just the number of things to be done:

library(ggplot2)
dates <- strptime(as.character(data$Date), "%Y-%m-%d")
tasks_remaining <- as.numeric(data$Total) - as.numeric(data$CANC.) - as.numeric(data$DONE)
df <- data.frame(dates, tasks_remaining)
plot = ggplot(data=df, aes(x=dates, y=tasks_remaining, ymin=0)) + geom_line(color="#009900") + geom_point()
print(plot)

r-graph-2

The drastic decline there is me realizing that I had lots of tasks that were no longer relevant, not me being super-productive. =)

As it turns out, I tend to add new tasks at about the rate that I finish them (or slightly more). I think this is okay. It means I'm working on things that have next steps, and next steps, and steps beyond that. If I add more tasks, that gives me more variety to choose from. Besides, I have a lot of repetitive tasks, so those never get marked as DONE over here.

Anyway, cool! Now that I've gotten R to work on my system, you'll probably see it in even more of these blog posts. =D Hooray for Org Babel and R!

Update 2014-05-09: Stephen suggested http://blogs.neuwirth.priv.at/software/2012/03/28/r-and-emacs-with-org-mode/ for more tips on setting up Org Mode with R and Emacs Speaks Statistics (ESS).

Quantified Self: Analyzing 32 months of clothing data

Posted: - Modified: | 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…

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

Posted: - Modified: | 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 (https://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?

 

 

Raspberry Pi LitterBox Cam and quantified cats

Posted: - Modified: | cat, geek, quantified, ffmpeg

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.

Becoming my own client; also, delegation

Posted: - Modified: | delegation, experiment, plans, quantified

When I started this 5-year experiment with semi-retirement, I fully intended it to be a learning experience in entrepreneurship. I wanted to learn how to create value. I wanted to learn how to sell, how to build systems. Mission accomplished. I have the confidence that if I need to work, I can help people and earn money in return. I can deal with the paperwork required by the government. I can negotiate and make deals.

The more I learn about freedom and space and creating my own things, though, the more I think that this should be my real experiment, not freelancing or entrepreneurship. It is not difficult to freelance. Millions of people do it. There's plenty of information about entrepreneurship too; no end to aspirational books encouraging people to break out of their cubicles and follow their dreams. But far fewer people have the space to simply create and share things for the sheer joy of it. Even the authors of those books on freedom work for their rewards.

It's an interesting experiment to try. I could focus on working on my own things, going forward. I've been winding up my commitments and avoiding new ones. I still have a little bit of consulting to wrap up eventually. I've been telling myself that the money I earn increases my safety net so that I can take those future risks. Besides, I like the people I work with. I like the feeling that I am helping them out and making a difference. (And there, taking a step back, I can see that the desire for a clear sense of accomplishment may be distracting me from more difficult self-directed work.)

Really, nothing can buy time. Probably even if I stopped consulting now — or if I had stopped a while back, or never started — I could still spend an appreciable amount of time making things happen. Postponing this doesn't make me live any longer. It doesn't mean that I have more core time, those hours when I'm alert and creative and happy.

I hadn't noticed for a long time because I had set too low standards for myself. I set trip-wires to trigger reflection: if I missed a commitment or started misplacing things, I knew I was overscheduled, and I cut back. The rest of the time, it was enough that family life was happy, blog posts were written, sketches shared. It was too easy to meet these conditions, so I didn't notice.

2014-01-12 Being my own client - part 1 of 4

What would I work on? Visual guides to complex topics look like the most unique contribution I can make, and there have been quite a few updates for my blog (both technical and written) that I've been postponing for lack of attention.

2014-01-12 Being my own client part 2 - Projects

Details help me visualize what that might actually mean:

2014-01-12 Being my own client part 3 - Emacs, blog

I should treat myself as a client and as a contractor. If I were delegating this work to other people, would I be happy with vague specifications and without milestones? I wouldn't hire someone to maybe possibly think about something that could help people learn. I would spend the time to come up with a clear vision and the steps to make it happen, and then I would make regular progress that I would report on. The high-energy hours I have are best used for this long-term work; everything else can go into the non-core hours.

So I'll keep my existing consulting commitment to Tuesdays and Thursdays, plus whatever non-core time I can spare to help them get over this hump, and then we'll see if we'll continue or not. In the meantime, any consulting of mine will be with the commitment to replace all the hours I spend earning with at least the same amount of time in delegated work (plus whatever time I need to manage the delegation). The end result won't be as awesome as having the same amount of core time (and to be fair, my consulting involves non-core time too), but it should:

  • build up a good library of procedures so that I can either delegate tasks to other people or work more consistently when I'm on my own (plus the benefits of process improvement and sharing)
  • help me learn how to take advantage of other people's time — and better yet, how their skills and experiences differ from mine
  • allow me to support people as they build up their own businesses and the local economy

In fact, just for kicks, I'm going to backdate the experiment–to replace my original 5-year experiment with it instead of starting just from this point onwards. Since I don't actually have a time machine, an easy way to make that commitment is to calculate all the time that I have spent earning so far. Fortunately, this is yet another question that time-tracking allows me to answer. The numbers in the sketches below are a little bit out of date now; the current ones are:

  • 1874.4 hours spent earning since 2012-02-19
  • 208.1 hours delegated through oDesk so far
  • 55.1 hours spent managing the delegation (including documenting processes, interviewing, etc.)

So my ratio is about 1 hour of management to 4 hours of other people's work. A ratio of 1.3 hours should be enough to account for delegating the work, managing the delegation, delegating the time to cover my management, etc. That means that if I want to replace about 1874 hours, my goal is to delegate a total of 2437 hours. So far, I've delegated 208, so I have 2,229 to go. (Ignore the math in the sketch; this is the updated version.) That's a little more than a full-time employee. I'm not quite at the point of having streamlined, documented processes that can take full-time assistance over a year (or enough faith in my hiring abilities!), but I'll work up to it. (My first goal: delegate as much as I can of this podcasting process.)

2014-01-12 Being my own client part 4 - buying back time

It's a little scary delegating so much, especially since I'm normally quite careful about costs – but I think it will be worth it. In fact, I've been giving some virtual assistants raises to challenge them to think of themselves as people who can earn that. It's a little scary projecting the expenses, but if I commit to it and then focus on making the most of it, I'll gain more than I would if I kept waffling on the commitment. The work can start by replacing the routine, but it would be interesting to use it to support new projects someday.

2014-01-17 How can I assign 30 hours of work a week

As always, it helps to keep the end in mind.2014-01-17 Thinking about delegation goals

I've been ramping up my delegation through oDesk, and I've also experimented with micro-task-outsourcing through Fiverr (with quite good results!). We'll see how it goes.

2014-01-14 Ways to increase my delegation-fu

It would be great to share processes with other people. Timothy Kenny gave me a glimpse of his growing process library. I've posted a number of my processes at https://sachachua.com/business, but haven't updated it in a while. I'll share more as I hammer them out. I wonder what my end-state would look like. Maybe I'd just share this Google Drive folder, and people can copy from it into their own libraries.

Anyway, plenty of stuff to figure out. =)

Planning a time-tracking workshop for Quantified Self Toronto

Posted: - Modified: | quantified

Quantified Self Toronto is organizing a conference on self-tracking in February. Whee! I’ve promised to put together a small workshop on time-tracking, since a number of people are interested in collecting and analyzing their time data.

Here are some rough plans for the time-tracking workshop:

2013-12-21 Plans for time-tracking workshop

I need to figure out what pieces people need to learn and what I can fit into the workshop time. Some of the pieces may have to be for follow-up or individually-paced study. Here are the pieces I probably need to put together. It still feels too large for a two-hour course, so I’ll need to trim it even more – maybe make iOS, Android, and RescueTime/ManicTime more cursory mentions than in-depth explorations.2013-12-21 Pieces wanted for time-tracking course

Here are some thoughts on one of the pieces, transforming your time data.

2013-12-21 Transforming your time data

 

More pieces: Easy ways to track time

2014-01-03 Easy ways to track time

Staying on the time-tracking wagon

2014-01-03 Staying on the time-tracking wagon

I was offline during most of our trip to the Philippines, so it was a good test of how I could track without a Web connection to QuantifiedAwesome.com. I tried writing timestamps and activities in a small notebook that I kept in my beltbag, and I also tried using a timestamping application on my smartphone. (KeepTrack on my Android phone, if you’re curious.) The smartphone was much more convenient and less obtrusive, oddly enough. When I wrote timestamps down on paper, people commented on that as an unusual activity, but people are used to people checking their screens. Since I could easily backdate entries, I could postpone pulling my phone out until I wasn’t worried about safety or distractedness. When I got back online, I simply used the batch entry interface to add several days of entries at once.

I don’t have any iOS devices, so I might have a bit of a challenge putting together recommendations for people with iPhones. I’ve also gotten spoiled by the time-crunching capabilities I built into QuantifiedAwesome, so I’ll work on fleshing out  spreadsheet-focused analyses instead.

I’d like to put together some resources to help people get started during the workshop, with follow-up materials. I’ll also turn the info into an online course (most likely free). Would you like to help me make it happen? I’d love to hear from people who are doing similar things and have workflow tips/observations, and I’m also happy to test the material and do Q&A with people who want to apply the ideas to their life.