The 40-Hour Work Weekend

I’ve experimented with focus blocks before, where I’m working a large percentage of the time and when I’m not working I’m only engaging in distractions that are centering, rather than divergent. Following in the footsteps of some other entrepreneurs that I admire, I decided to make this entire weekend a focus block. I closed out my email inbox friday afternoon, and didn’t open it again until sunday. And I got a lot done.

The video!

Like the others, I made a timelapse video. I’m kicking myself now, because I didn’t confirm that I had a functional system on Linux for recording my webcam and then turning it into a timelapse. Meaning it took me way longer (read: several hours today pulling my hair out while staring at my screen) to create this video than would have been reasonable, and it’s not even sync’d the whole time. But I know how to do it better next time, and can probably push out a video with 30mins at most of post-processing, provided I set things up well at the start. I learned a bunch about the ffmpeg and sed tools though, which was helpful. I’ll post my scripts once I fix the aforementioned problem.

The stats!

TagTime

An app that pings you at totally random intervals and gets you to tag what you’re doing. The pings are on average every 45 minutes, but sometimes will be within seconds, or hours apart, so you never know. tagti.me »

  • 46 complice development pings
  • 6 other complice pings
  • 12 sleep pings
  • 3 pings not related to the weekend project
    • one during my minute of stretching before bed
    • journalling
    • clicking on a link in twitter

This third one is the only one I’m upset about. I had the Complice User Visible Improvements twitter window open (this was okay). Then, I saw that one of my users, who I’m following, had posted a blog post. I clicked on the header just to glance at the post and see if it meant what I thought the header implied, and at that moment—TAG. The TagTime window popped up. And as far as I recall, that was my only moment of clear divergent distraction, tagged or otherwise. On one hand, I could be annoyed that it tagged me right then, because it saddens my data. On the other hand, I could be pleased because it likely served as a perfectly-timed reminder of what my focus was.

WhatPulse

I ran into this app a day before things started, and on a whim decided to install it. It does stats on your computer activity. whatpulse.org »

Heatmap of my keyboard this weekend. My use of backspace scares me a little.

Heatmap of my keyboard this weekend. My use of backspace scares me a little.

  • 128500 keystrokes
    • 87500 keystrokes in sublime
    • 10800 keystrokes in terminal
  • 20500 clicks
    • 12700 clicks in sublime
    • 1100 clicks in terminal (not sure why lol)

Run

My wireless mouse batteries ran out midday Saturday, but I was super into the coding I was doing, so I went to a convenience store to get more. Even though the trip ended up being shorter than some of my bathroom breaks, I felt somehow that I had to prove to those watching me that I wasn’t slacking. So I took a video of myself sprinting. It’s here. Most of what I say in the video is pretty incoherent.

  • 900m roundtrip
  • 250s spent running (1m52s there, 2m18s back)
  • Running speed (while talking to the camera) = 3.6 m/s = 13 km/h = 8mph
  • That’s 1/3 of Usain Bolt’s average 100m dash speed, according to Wolfram Alpha. Not sure how I feel about that ratio, tbh.

The learning

TagTime is an awesome way to stimulate conscious attention to Gambler’s Fallacy. Gambler’s Fallacy is the tendency to misunderstand true randomness. People tend to assume that if a fair coin just had 4 heads in a row, it is more likely to be tails the next time. Or that if a ping-you-at-random-intervals app like TagTime has just pinged you, then it won’t do it again for at least a few minutes. And vice versa: that if it hasn’t pinged you in a few hours, you’re “due”. With many things, including probably some other apps, that might be true. But TagTime has no such property. I had observed this before, but I usually take a more passive role with respect to TagTime, so I didn’t feel it so strongly until this weekend, when I was measuring my success by how many dev pings I could get.

If something will make me 1% more productive, it’s worth ~12 minutes to do. When I first started, I had an issue where when I switched workspaces, my browser wouldn’t focus. This slowed me down for testing my changes, because before I could refresh the page I needed to click to focus. I figured restarting my computer would fix this, and it did—what I’m noting is that I might’ve let it go on a lot longer if I weren’t in maniac mode. Since I was, it was obvious that I would want to fix it rather than continue with the annoyance. Relevant: this chart by xkcd.

Don’t let silly things stand in your way for lethargy’s sake. The batteries were a great example. Last time my mouse ran out of batteries, I wandered around the house asking my housemates if they had any, and it took awhile and I ended up with only one half-used one, meaning that it died again weeks later. It took me 6 minutes to get new batteries. Six minutes. And it came from a certain single-mindedness. My mouse isn’t working? Well, I can’t develop as fast without it, and I need to be at top speed. Better make it work again. This is related to the point above too.

The Devil is in the details. I had what appeared to be the bulk of the reports→entries refactoring done within the first 3 hours of starting it on Saturday morning. It took me another 16 hours of work before I actually shipped it. Some of this was spent coding other stuff, but still. It probably could have benefited from a bit more planning how-to-approach too.

The accomplishments

Overview: I refactored the terrible old database format that stored all of users’ intentions and outcomes for all of their goals, into a new format. The new format speeds up both development and server response times. I improved a bunch of the latter by adding some caching and other tweaks. I also fixed a few bugs and made a few other improvements.

I feel like I could have been a lot more productive than I was, but was stymied in some cases by trying to find solutions that were more elegant than they needed to be. Or… yeah. Next time I do this, I’m going to track my focus much more rigorously.

As measured by Complice itself:

  1. push timer to prod
  2. footer
  3. about page
  4. don’t hide things on /today refocus
  5. today page saving notification
  6. count notdone todos and display in navbar
  7. system to ping inactive users
  8. store streaks on user
  9. make postoutcome intentions go on next day
  10. draft new entry schema
  11. refactor displayPage to use entries not reports
  12. fix today page
  13. get overview working with entries
  14. clean up overview.json
  15. make events work with new dashboard
  16. events in overview again
  17. refactor storage/users
  18. display.separateEntriesByGoal
  19. rewrite sendprompts to use entries (with raw)
  20. rewrite weekly review to use entries
  21. rewrite monthly review to use entries
  22. convert all users’ reports to entries
  23. refactor reports into entries
  24. ship entries
  25. refactor streaks to use entries
  26. cache streaks
  27. fix goal summary pre save
  28. make group sync emails work with entries
  29. clear out old reports code
  30. fix sendprompts streaks
  31. fix stats code
If you found this thought-provoking, I invite you to subscribe:    
About Malcolm

Constantly consciously expanding the boundaries of thoughtspace and actionspace. Creator of Complice, a system for achieving your important goals.

Personal Website



3 Comments

Raymon Johstone » 22 Jul 2014 » Reply

Very nice Malcolm the video is super amusing to watch too. 🙂

Moritz » 13 Dec 2015 » Reply

are you standing while programming? I have this impression from the video

    Malcolm » 13 Dec 2015 » Reply

    Yep! I work at a standing desk nearly all of the time. It took a few weeks to get used to, but now it’s sitting for long periods of time that makes me sore 😛

Have your say!

Have your say!

Message

Name *

Email *