Programmer Interrupted

Slashdot runs a thread on “Are Remote Software Teams More Productive?“.  The original post links to a few research references that, unsurprisingly, show how expensive interruptions are to programmers, and how unprepared we are, as an industry, to deal with this problem.  I particularly liked a rather in-depth look at the issue in “Programmer Interrupted” article.

Like you, I am programmer, interrupted. Unfortunately, our understanding of interruption and remedies for them are not too far from homeopathic cures and bloodletting leeches.

Here are a few points, if the article is too long for you to handle:

Based on a analysis of 10,000 programming sessions recorded from 86 programmers using Eclipse and Visual Studio and a survey of 414 programmers (Parnin:10), we found:

  • A programmer takes between 10-15 minutes to start editing code after resuming work from an interruption.
  • When interrupted during an edit of a method, only 10% of times did a programmer resume work in less than a minute.
  • A programmer is likely to get just one uninterrupted 2-hour session in a day

And also this bit on the worst time to interrupt a programmer:

If an interrupted person is allowed to suspend their working state or reach a “good breakpoint”, then the impact of the interruption can be reduced (Trafton:03). However, programmers often need at least 7 minutes before they transition from a high memory state to low memory state (Iqbal:07). An experiment evaluating which state a programmer less desired an interruption found these states to be especially problematic (Fogarty:05):

  • During an edit, especially with concurrent edits in multiple locations.
  • Navigation and search activities.
  • Comprehending data flow and control flow in code.
  • IDE window is out of focus.

Overall, not surprising at all, but it’s nice to have some numbers and research papers to point to…

WallpapersCraft – high quality desktop backgrounds

WallpapersCraft is a collection of high quality desktop wallpapers / backgrounds.  There are quite a few categories and tags.  The search works.  Tonnes of high quality wallpapers, available in a variety of resolutions.  And the site is very fast.  If you are in the mood for a new desktop background, I strong suggest you check it out.  Here is my new choice:

i3 window manager – a week later

A week ago I blogged about i3 window manager and my attempt to use it instead of MATE.  So, how am I am doing so far?

The long story short: I love i3.  It’s awesome.  But I still switch back to MATE once in a while.

What’s good about i3?  It’s super fast.  Even faster than a pretty fast MATE.  It’s keyboard navigated, and it only takes about a day to get used to enough keyboard shortcuts to feel comfortable and productive.  It’s super efficient.  Until I tried i3 I didn’t recognize how much time I spend moving windows around.  It is unexcusable amount of time spent needlessly.

What’s bad about i3?  It’s low level.  In order to make it work right with multiple screens, one need to get really familiar with xrandr, the tool I last used years ago.  If you are on a laptop, with a dynamic setup for the second screen (one monitor at the office, one at home, and an occasionally different project at client’s premises), you’ll need a bunch of helper scripts to assist you in quick change between these setups.

And then there is an issue of flickering desktop.  The web is full of questions about how to solve a variety of flickering issues when using i3.  The one that I see most often is the screen going black once in a while.  Sometimes it takes a second to come back, sometimes a few seconds, and sometimes and it doesn’t come back at all.  The more windows I have, spread across more workspaces, with more connected monitors – the more often I see the issues.  It’s annoying, and it’s difficult to troubleshoot or even report, as I haven’t found a pattern yet, or how to reproduce the problem.

With that said though, I am now about 80% time using i3.  I like the simplicity and efficiency of it.  It’s so good, that I work better even without a second monitor.  But when I do need a second monitor (paired programming, demos, etc), or when I have a projector connected, I switch to MATE.  That’s about 20% of my time.

WordPress.vim – Vim Plugin for WordPress Development

If Vim is your editor of choice, and WordPress is something you work with on a regular basis, then check out WordPress.vim – a Vim plugin for WordPress development.

Some of the features are:

  • Auto-Completion for the WordPress API
  • WordPress Hooks Integration
  • WP-CLI Integration
  • Jump to Definition in WordPress Core
  • UltiSnips Snippets
  • Syntax Highlighting for WordPress PHP files.
  • Markdown Syntax Highlighting for readme.txt
  • PHPCS Syntax Checker integrated with WordPress Coding Standards
  • Search in Codex
  • Integration with WpSeek API.
  • Readme.txt Auto Validation.