August 2015

Weekly review: Week ending July 31, 2015

August 3, 2015 - Categories: review, weekly

It was a great week for personal milestones. As it turns out, living one day at a time eventually adds up. Whee!

Also, I made a few nifty prototypes for work. It was fun playing around with different ideas and seeing what was possible. I’m looking forward to seeing what the team does with the new tools, and modifying the tools based on their feedback.

A bit of thinking and writing about time, too. And lots of Borderlands 2 with W-, of course. We’re near the end of the first playthrough. Looking forward to this last mission!

2015-08-03a Week ending 2015-07-31 -- index card #journal #weekly output

Blog posts

Sketches

Link round-up

Focus areas and time review

  • Business (17.7h – 10%)
    • Earn (9.8h – 55% of Business)
      • Earn: E1: 1-2 days of consulting
      • Prepare invoice
      • Earn: E1: 1-2 days of consulting
    • Build (8.0h – 44% of Business)
      • Drawing (8.0h)
      • Paperwork (0.0h)
    • Connect (0.0h – 0% of Business)
  • Relationships (8.0h – 4%)
  • Discretionary – Productive (7.5h – 4%)
    • Emacs (0.0h – 0% of all)
    • Writing (5.3h)
  • Discretionary – Play (37.4h – 22%)
  • Personal routines (29.9h – 17%)
  • Unpaid work (5.5h – 3%)
  • Sleep (62.0h – 36% – average of 8.9 per day)

Monthly review: July 2015

August 4, 2015 - Categories: monthly, review

Last month, I wrote that in July, I wanted to:

  • Continue to take things easy: Yep, definitely did that. Lots of sleep and video games.
  • Enjoy hermit mode: It’s wonderful.
  • Focus on coding, cooking, and reading: My team won third place at an internal hackathon, yay!
  • Walk as often as possible: Yup, did a fair bit of walking
  • Water the grass and do some more gardening: The boulevard grass is a little brown, but the backyard is flourishing nicely.

My weekly reviews tell me I actually got a fair bit of programming in, which surprises me because I mostly remember July as sleep, Borderlands, and very little writing. It turns out that I worked a lot more because of the hackathon. I also did a little bit of Javascript and Emacs Lisp for personal projects, too. Neat.

This turned out to be a month of experimenting with posting twice a week: a weekly review, and another post. I prefer more frequent writing, and I’m looking forward to getting back into the groove of that as my brain returns. The daily and weekly drawings have been a great way to make sure the days don’t go by in a blur.

I think August will be a good month for working on household projects and getting things ready. Maybe more writing and drawing, too!

2015-08-03b July 2015 -- index card #monthly #review output

Blog posts

Sketches

Time

Category Last month (%) This month Avg h per week Delta (h/wk)
Discretionary – Play 13.7 22.4 38 14.6
Business – Earn 4.6 9.2 15 7.7
Business – Connect 0.6 1.1 2 0.8
Personal 15.9 15.6 26 -0.5
Discretionary – Social 0.9 0.0 0 -1.5
Discretionary – Productive 4.9 3.4 6 -2.5
Discretionary – Family 4.5 2.6 4 -3.2
Unpaid work 7.5 4.8 8 -4.5
Sleep 39.7 36.9 62 -4.7
Business – Build 7.8 3.9 7 -6.6

Thoughts about time

August 5, 2015 - Categories: philosophy, reflection, time

A friend sent me a link to “Your Life in Weeks”, which got me thinking about my changing attitude towards time and ambition. Here were the key points I picked up from the blog post:

  • It’s good to be aware of the passage of time and how limited it is.
  • Measuring your life against famous people’s accomplishments or lifetimes can be eye-opening.
  • You should ideally spend your time doing things that improve your future or the lives of others and that you enjoy. Utility without pleasure or pleasure without utility is okay but not great. Don’t waste your time doing things that are neither useful nor pleasant.
  • Every week can be a fresh start.

I agree with some aspects of these points. I can remember being the sort of person who agreed more, and that’s interesting for me – tracking the changes in my attitude towards time.

2015-07-27a Thinking about time and role models -- index card #time

2015-07-27a Thinking about time and role models – index card #time

I can remember a time when I kept an eye out for the milestones by which other people had achieved a lot: the youngest people who did X/Y/Z, the lists of thirty under thirty, the stats in math and physics of early achievement and momentum.

I moved on from that in my late teens or so, when I realized people used stories like that to beat themselves up, give up, or push themselves to an unhealthy pace. I wanted to find something to tell people who told me, “Wow, you’re so young and you’re already good at computers! I could never do something like that.” For myself, I saw the kinds of lives people sketched out for people who had “high potential,” and I wasn’t sure if I really wanted them. Instead of those stories of young CEOs and world-changers, I resonated more with attention to those who continued achieving later in life, or even started late, like Grandma Moses taking up painting at 78. I liked the stories those lives could help me tell to people who felt they missed the boat. I liked the stories of deep interest, like Isaac Asimov’s decades of writing, and how those stories illuminated the possibilities. I liked examples of older people continuing to engage, like Benjamin Zander.

The books and magazines and newspapers I read were filled with stories of mainstream success, but I found myself more curious about people who had thoughtfully explored alternatives. I liked discussions of frugality and deliberate consumption more than luxury and excess. I liked communities around lifelong learning, experimentation, and early retirement.

2015-07-24a How do I want to feel about time -- index card #time #pace

2015-07-24a How do I want to feel about time – index card #time #pace

One of the things I picked up from looking at other people’s lives was the possibility that you could feel time as abundant instead of scarce – not so plentiful as to be wasted, but enough for the important things in life. Life didn’t have to be a rat race or a hurried rush from one thing or another. I didn’t have to do everything. I didn’t have to have it all. I could do what I can and enjoy where I was.

Still, I was curious about acceleration. I periodically experimented with the productivity techniques that other people liked: making lists of goals, plotting out timelines, looking for ways to accelerate. I found that committing to an artificial deadline or target date to a goal didn’t really resonate with me. I decided not to be my own taskmaster, trusting instead in my shifting evaluations and priorities. I’m nowhere near where my far-past self might have guessed I’d be, but I like where I am. I’m somewhere my far-past self couldn’t even have imagined.

I hadn’t come across Seneca’s On the Shortness of Life until a few years ago, but when I did, I found it in things that I had come to believe about my own life. “It is not that we have a short space of time, but that we waste much of it. Life is long enough, and it has been given in sufficiently generous measure to allow the accomplishment of the very greatest things if the whole of it is well invested.”

What does it mean to invest it well, though? I remember occasionally measuring my life against the estimate of my remaining days, tallying up what I had done and what I wanted to do. I felt the passing of time in the days and the months. I remember observing the differences in familiar people and in the world around me: my parents’ graying hair, my friends’ lifestages, the shifts in technologies. Back to the tick-tock. I think one of the reasons I’ve found it so easy to keep a weekly/monthly/yearly review (and now a daily journal) is that I don’t want to wake up one day and wonder where all those years went, as people often do.

Something has shifted in my perspective, though. I’m not sure what caused it. Maybe philosophy has helped me let go of the worry about making sure I live a life of great significance. I don’t need to be in history books. I can focus on living life well, and other people can decide how much they want to take from it. Maybe this equanimity had something to do with the day-to-day focus of my current phase. These days, I’m mostly focused on being when I am – not trying to fast-forward or rewind, but rather seeing and making the most of now.

I still want to make something of my life. I want to leave behind notes, tools, and ideas that will make it easier for other people to go a little farther or a little faster. I’ve felt that way for as long as I can remember. It feels a little different now, though. Instead of worrying that I’ll fail or that I’ll choose the wrong path, I know I can keep building and exploring, and that the benefits will grow and grow.

Org Mode date arithmetic

August 6, 2015 - Categories: emacs, org

Whenever I need to get Emacs to prompt me for a date or time (even for non-Org things), I use org-read-date. I love its flexibility. It’s great to be able to say things like +3 for three days from now, fri for next Friday, +2tue for two Tuesdays from now, +1w for next week, and +1m for next month. It’s easy to use org-read-date in Emacs Lisp. Calling it with (org-read-date) (usually as an interactive argument, like so: (interactive (list (org-read-date)))) gives me a date like 2015-08-06 depending on what I type in.

I use org-read-date for non-interactive date calculations, too. For example, if I want to quickly get the Org-style date for tomorrow, I can use org-read-date‘s third parameter (from-string) like this:

(org-read-date nil nil "+1")

Here’s how to calculate relative dates based on a specified date. You can hard-code the base date or use another org-read-date to get it. In this example, I’m getting the Monday after 2015-08-31. Note the use of two + signs instead of just one.

(org-read-date nil nil "++mon" nil (org-time-string-to-time "2015-08-31"))

org-time-string-to-time converts a date or time string into the internal representation for time. You can then extract individual components (ex: month) with decode-time, or convert it to the number of seconds since the epoch with time-to-seconds. Alternatively, you can convert Org time strings directly to seconds with org-time-to-seconds.

If you’re working with days, you can convert time strings with org-time-string-to-absolute. For example, you can use this to calculate the number of days between two dates (including the first day but excluding the last day), like this:

(let ((start-date (org-read-date))
      (end-date (org-read-date)))
  (- (org-time-string-to-absolute end-date)
     (org-time-string-to-absolute start-date)))

To get the month, day, and year, you can use org-time-string-to-time and decode-time, or you can use org-time-string-to-seconds and calendar-gregorian-from-absolute.

To convert internal time representations into Org-style dates, I tend to use (format-time-string "%Y-%m-%d" ...). encode-time is useful for converting something to the internal time representation. If you’re working with absolute days, you can convert them to Gregorian, and then format the string.

So, to loop over all the days between the start and end date, you could use a pattern like this:

(let* ((start-date (org-read-date))
       (end-date (org-read-date))
       (current (org-time-string-to-absolute start-date))
       (end (org-time-string-to-absolute end-date))
       gregorian-date
       formatted-date)
  (while (< current end)
    (setq gregorian-date (calendar-gregorian-from-absolute current))
    (setq formatted-date
          (format "%04d-%02d-%02d"
                  (elt gregorian-date 2) ; month
                  (elt gregorian-date 0) ; day
                  (elt gregorian-date 1))) ; year
    ;; Do something here; ex:
    (message "%s" formatted-date)
    ;; Move to the next date
    (setq current (1+ current))))

Alternatively, you could use org-read-date with a default date, like this:

(let* ((start-date (org-read-date))
       (end-date (org-read-date))
       (current start-date))
  (while (string< current end-date)
    ;; Do something here; ex:
    (message "%s" current)
    ;; Move to the next date
    (setq current (org-read-date nil nil "++1" nil (org-time-string-to-time current)))))

There are probably more elegant ways to write this code, so if you can think of improvements, please feel free to share.

Anyway, hope that helps!

Weekly review: Week ending August 7, 2015

August 11, 2015 - Categories: review, weekly

This week was a very bleah week, but I pulled through with help from W-. On the plus side, I got a bit of writing done. Still very bleah, though. Lots of sleep.

2015-08-11a Week ending 2015-08-07 -- index card #journal #weekly output

Blog posts

Sketches

Focus areas and time review

  • Business (11.8h – 7%)
    • Earn (8.7h – 73% of Business)
      • Earn: E1: 1-2 days of consulting
      • Prepare invoice
    • Build (2.7h – 22% of Business)
      • Drawing (2.7h)
      • Paperwork (0.0h)
    • Connect (0.4h – 3% of Business)
  • Relationships (12.7h – 7%)
  • Discretionary – Productive (12.8h – 7%)
    • Emacs (0.0h – 0% of all)
    • Writing (7.8h)
  • Discretionary – Play (36.9h – 21%)
  • Personal routines (19.7h – 11%)
  • Unpaid work (6.4h – 3%)
  • Sleep (67.6h – 40% – average of 9.7 per day)

Life as a 31-year-old

August 12, 2015 - Categories: review, yearly

I used to host get-togethers as a way of thanking friends, catching up with folks, and seeing what interesting conversations come out of mixing people together. I was always stressed out right up to when people started arriving and mingling, though. It turns out that it’s totally all right to celebrate one’s birthday however you want. For W- and me, quiet days at home win out over noisy celebrations. =) Besides, I’m still in hermit mode these days.

I like looking back at the past year. I’m always surprised by the things that managed to fit in a single year. Was that memory really that recent? Has it really been that long since that other memory? Here are a few of those highlights for me:

2015-08-11b Life as a 31-year-old -- index card #review #yearly

  • Business
    • Helping my client through a major upgrade
    • Enjoying an intense and wonderful sprint of prototyping for a high-profile event
    • Having fun at an internal hackathon
    • Improving my skills: Javascript, SQL (SQL Server and PostgreSQL), Tableau
    • Filing quick method HST on my own
    • Managing my own health plan
  • Connecting
    • Hacklab’s move from Kensington Market to Queen Street West – kitting out the kitchen so that it’s a pleasure to cook in, and spending hours cooking at open houses
    • Spending more time at Hacklab
    • Talking about talking
    • Becoming closer to friends and talking about deeper topics
    • Figuring out the space I need, too
  • Hobbies and interests
    • Picking up sewing again
    • Combining sewing with laser cutting, whee: post
    • Reading lots of science fiction
    • Reflecting on philosophy, leisure, applying Stoicism, and so on
    • Digging into coding and visualizations, especially for my future self
    • Helping the Emacs community through hangouts and posts
  • Family and life
    • Working on projects around the house and other things
    • Reaching personal milestones (10 years in Canada, among other things)
    • Becoming a Canadian citizen (no longer worrying about getting stuck on the wrong side of a border!)
    • Making my peace with fuzzy brain and other things

There’s been a lot of wrapping things up this year, closing long-running open loops. It feels good to reap the benefits of things planned and started by long-ago selves. I wonder what I can prepare for my future self. I think philosophy and reading will be handy, and maybe the skills and tools I build. Who knows, maybe sewing will be useful too. We’ll see!

Last year, I wrote that when I do my “Life as a 31-year-old” review, I’d like to be able to say that:

  • I have excellent health-related habits: I enjoyed the biking while it lasted. For now, this is temporarily limited to walking. Oh well!
  • Our home life is wonderful: So much for yummy food, but yay for projects, decluttering, simple lives, great relationships, and so on.
  • I helped my consulting client make successful transitions: Yup!
  • I’ve broadened my business a little bit more. I’ve made it smaller, actually, but I’m happy with the outcome and with my reasons for doing so.

Here are some other differences:

  • Compared to 30-year-old me, I’ve been both a lot more social (November to April or so) and a lot less social (these past few months). Hermit mode is surprisingly comfortable.
  • I’ve dialed consulting back to one day a week, although I’ve also worked more intensely when needed. My current life is very relaxed and laid-back.
  • Enough of a stock market downturn to make it onto my radar. Still not panicking, though, which is a good sign. Seems to be recovering. I’m in it for the long haul, anyway.
  • I really like this practice of drawing digital index cards to record my day and build up thoughts. They’re more granular and manageable than the 8.5×11″ sheets I used to draw.
  • I used to draw with more colours. I’ve been mostly black-and-white these days, but I think I’ll get back to colours when I start feeling more playful about thinking.
  • I learned how to play first-person shooter games. They’re actually quite fun. W- and I have been playing Borderlands 2.
  • I’m more comfortable with fuzziness and uncertainty and experimentation (yay philosophy), which could be good for growing older and taking on more challenges. Life so far is already enough, and anything more than this is a bonus. I wonder: what’s beyond getting things done?
  • I’ve gotten to the point of being able to wear something I made every day, if I want to. I don’t always do so, but I like having the option. It was surprisingly easy and a good opportunity to geek out more. =)

A snapshot of everyday life, so that I can remember what it was like at this time:

I’m home most of the time, although sometimes I go for a walk to the supermarket or the library. It’s a little frustrating feeling fuzzy or bleah, but at the same time, it’s good philosophy practice. It’s hard to write, but if I keep collecting fragments of thoughts, I know they’ll add up. Voluntary discomfort, momentary annoyances, and all that. With any luck, I’ll probably shift out of hermit mode sometime over the next few weeks. In the meantime, W- and I play Borderlands 2 in the evening. It’s fun coordinating our attacks and swapping loot.

The blueberries and the strawberries in our garden have been extra-yummy this summer. Yay! The drip irrigation system that W- and I put in has been paying off, too. The garden’s a lot more lively now than it was last year.

I have no idea what next year will be like, but I look forward to handling it with equanimity.

If you’re curious, here are some other yearly reviews I’ve written (both birthday-related and calendar-related). It’s fun having an archive. =)

August 2015 Emacs Hangout

August 14, 2015 - Categories: emacs

Thanks to Philip Stark for hosting this one!

Text chat:

Paul Harper 2:08 PM Evan’s Links: http://www.misshula.org/category/tutorials.html Dart Throwing Chimp: https://dartthrowingchimp.wordpress.com/
Philip Stark 2:15 PM https://www.vagrantup.com/ http://stevelosh.com/blog/2012/10/the-homely-mutt/
Paul Harper 2:19 PM mu4e: http://www.macs.hw.ac.uk/~rs46/posts/2014-01-13-mu4e-email-client.html Zawinski’s Law “Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.” Law of Software Envelopment, Jamie Zawinski. Mutt with Org-Mode: https://upsilon.cc/~zack/blog/posts/2010/02/integrating_Mutt_with_Org-mode/
me 2:23 PM Maybe http://emacswiki.org/emacs/MultipleSMTPAccounts ?
Magnus Henoch 2:24 PM I mashed some of those together into this monster: link (github.com)
Mond Beton 2:25 PM org mode is new
Rogelio Zarate 2:26 PM Just started with emacs
Paul Harper 2:27 PM Emacs and Vim started in 1976 link (slate.com)
me 2:28 PM Was it this Err, link (sachachua.com)
http://endlessparentheses.com/ ?
Paul Harper 2:41 PM Not sure if this might help. Setting up Emacs key mappings on Windows Outlook link (blogs.adobe.com)
me 2:42 PM http://emacsblog.org/2007/05/10/emacs-key-bindings-in-windows/ suggests XKeymacs, but I don’t know if it will work with recent versions of Windows. http://www.cam.hi-ho.ne.jp/oishi/indexen.html
Mond Beton 2:44 PM thank you
Rogelio Zarate 2:48 PM Too many opinions on how to do things, example keybing on emacs/os x
me 2:50 PM link (emacs.stackexchange.com) may be helpful if you want it to reuse an existing Emacs if possible
Daniel Gopar 2:58 PM https://github.com/gopar/.emacs.d/blob/master/init.el#L442
Paul Harper 2:59 PM Something for beginners like me. A course in research tools which includes some clear videos on using Emacs. Kurt Schwehr put the course on YouTube (linked in note) and the course is in org mode. The Course itself is GIS focused. You can download the whole thing with Mercurial. Instructions on the page. I found it very helpful when I started. http://vislab-ccom.unh.edu/~schwehr/rt/
Philip Stark 3:02 PM What’s GIS?
me 3:03 PM Phil: Hmm, something like http://emacs.stackexchange.com/questions/608/evil-map-keybindings-the-vim-way using tags?
Philip Stark 3:05 PM https://www.gnu.org/software/global/
Philip Stark 3:07 PM http://elpa.gnu.org/packages/ggtags.html
Daniel Gopar 3:09 PM so im learning elisp. Does elisp have any ways of creating private/public variables? or is everything exposed once you run the require command on the file?
Philip Stark 3:09 PM https://github.com/skeeto/skewer-mode
Rogelio Zarate 3:14 PM How do you handle projects, like in Sublime, do you use Projectile or Perspective?
Philip Stark 3:14 PM http://exercism.io/
me 3:16 PM https://github.com/losingkeys/4clojure.el and http://endlessparentheses.com/be-a-4clojure-hero-with-emacs.html
Philip Stark 3:18 PM https://www.bestpractical.com/rt/
Rogelio Zarate 3:19 PM Keeping just one list sounds like the correct approach. Great tip.
me 3:19 PM link (saintaardvarkthecarpeted.com)
Paul Harper 3:21 PM Notmuch https://www.youtube.com/watch?v=PK5rOT6k8rw
me 3:29 PM Want to get notified about upcoming hangouts? You can sign up for notifications at http://eepurl.com/bbi-Ir

Weekly review: Week ending August 14, 2015

August 19, 2015 - Categories: review, weekly

My birthday was last week. I had fun reviewing the past year. So much has happened, and I’ve learned a lot: new skills, deeper interests, and so on. Yay!

I’ve been dealing with a lot of bleahs. W- has taken over cooking and has been wonderfully supportive. With any luck, I should be out of this phase soon.

Still have a hard time with focused thinking, but fortunately, the programming I do for my consulting clients isn’t blocked like that. When I find it difficult to write, I fill my mind with reading instead. I’ve been going through a lot of nonfiction books and science fiction novels from the library, and I’ve started picking up Latin again.

I’ve been playing around with doodling a bit more. It’s fun sketching a few random curves and seeing where my imagination goes, or gradually shaping a drawing into something that resonates with me.

W- and I finished True Vault Hunter Mode (TVHM) in Borderlands 2, hooray! Now we’re going through side missions and occasionally farming loot. I often join him for a few hours of gaming in the evening. Good for in-jokes and shared experiences.

Next week: small steps…

2015-08-19a Week ending 2015-08-14 -- index card #journal #weekly

output

Blog posts

Sketches

Link round-up

  • Business (9.9h – 5%)
    • Earn (4.4h – 44% of Business)
      • Earn: E1: 1-2 days of consulting
    • Build (5.5h – 55% of Business)
      • Drawing (5.5h)
      • Paperwork (0.0h)
    • Connect (0.0h – 0% of Business)
  • Relationships (9.0h – 5%)
  • Discretionary – Productive (8.6h – 5%)
    • Emacs (1.7h – 0% of all)
    • Writing (2.1h)
  • Discretionary – Play (42.6h – 25%)
  • Personal routines (28.7h – 17%)
  • Unpaid work (1.0h – 0%)
  • Sleep (68.1h – 40% – average of 9.7 per day)

Weekly review: Week ending August 21, 2015

August 27, 2015 - Categories: review, weekly

Hardly any writing or drawing this week (beyond my now-usual daily notes). I still feel good about the week, though. I got lots of things done despite extra bleahness. W- has been helping me work on that part. =)

More consulting this week, since my clients asked me to help train a promising intern. I think he would be a great successor. Mwahaha.

2015-08-27b Week ending 2015-08-21 -- index card #journal #weekly output

Blog posts

Sketches

Focus areas and time review

  • Business (20.3h – 12%)
    • Earn (15.5h – 76% of Business)
      • Earn: E1: 1-2 days of consulting
    • Build (2.2h – 10% of Business)
      • Drawing (2.2h)
      • Paperwork (0.0h)
    • Connect (2.6h – 12% of Business)
  • Relationships (11.5h – 6%)
  • Discretionary – Productive (9.0h – 5%)
    • Emacs (0.0h – 0% of all)
    • Plan tile floor
    • Writing (0.5h)
  • Discretionary – Play (32.7h – 19%)
  • Personal routines (23.8h – 14%)
  • Unpaid work (5.5h – 3%)
  • Sleep (65.3h – 38% – average of 9.3 per day)