walls.corpus

By Nathan L. Walls

Articles tagged “improvement”

Tool Sharpening: June 1, 2014

For some background on what’s going on here, see the first tool sharpening post

This week was slower than previous weeks. I’ve been sick the second half of the week and just being moderately productive Thursday and Friday was a challenge. Excuses aside, here’s what’s new, this week:

OmniFocus

OmniFocus 2 was officially released. The new release has presented an opportunity to make some adjustments.

  • Created some new custom perspectives
    • “Fast Actions” for items that I can complete in 15 minutes or less
    • “Oldest” shows items by order of creation. This will be useful for looking at items that have been lingering for weeks, months or longer and make a call about whether I’m ever going to carry those actions out and, if not, delete them
  • Set custom icons for all of my custom perspectives from Josh Hughes’ set

Instapaper

Not a developer thing, but bear with me.

  • Updated token so favorited articles will post to my Pinboard account. I’d like to do some link blog mining using this workflow as a starting point
  • Renewed my Instapaper subscription to gain access to full-text search

Tool Sharpening: May 25, 2014

For some background on what’s going on here, see the first tool sharpening post

This past week’s refinements started with more BBEdit adjustments. I’ve been spending a lot of time in the text editor. Thinking through it, it’s overdue. There are several actions in my daily workflow that feel inefficient to me, ones that I know an editor like Emacs or vi(m) has readily available. And, as it turns out, as I have been looking for solutions, I have been finding them.

In my previous entry, I mentioned the BBEdit 10.x release notes containing a lot of information about existing features of which I was taking insufficient advantage of. I alluded to some keyboard binding changes I made in favor of built-in shortcuts. Those are pretty great. What’s also great is that several Mac OS X applications support using a number of Emacs key bindings because there’s a whole range of default shortcuts for text manipulation that work in Mac OS X applications that make use of the Cocoa Text System. What’s very nice about that is effort I put into learning more of the these shortcuts in BBEdit are likely to pay off in other OS X applications I use.

One of these Emacs shortcuts I learned about from BBEdit’s version 10.x release notes is about C-u (Control-u if you’re not versed in how Emacs documentation refers to this). C-u takes a number and then a character to repeat that number of times.

A sample case is this: I will use a series of #‘s in a source code file as a header or section separater. I’ve tried approaches from create a clipping for that to typing four or five of them then cut-and-repetitive-pasting. This, instead, gives me something more flexible.

By example:

1
C-u 20 #

will yield:

1
####################

There are several other immediately helpful shortcuts, too, such as C-t, which will transpose two selected characters, as such: ab becomes ba. In BBEdit, if the selection range is larger than two characters, the first and last characters in the selection are transposed, so abcd becomes dbca.

Functionality for transposing words also works, but transposing lines does not. If I end up needing that, I’ll just need to use slightly longer shortcuts around line manipulation. If I need it more consistently, I can write a text filter.

Finding these shortcuts have helped to alleviate the low-grade sensation that I was working too hard to edit text. The rest of this week’s changes are below. Enjoy.

Other BBEdit changes

  • Added a shortcut for prefix/suffix line
  • Added a shortcut for reapplying the last text filter used
  • Updated a text filter I’ve been using for a long while that queries a JIRA instance and provides me with the case title and a link in a Markdown list

TextExpander changes

  • I keep a food journal in a text document, so there are a few items I type repetitively. To that end, I want less typing and correct spelling.
    • Replace “Worchester” with “Worcestershire”
    • Expand “CAJ” to “Cup-a-Joe”, a local coffeehouse
    • Expand ;cs to “chicken salad”
    • Expand ;tm to “trail mix”
  • Added a shortcut for “stand-up”
  • Reviewed how to chain shortcuts in TextExpander
  • Created a shortcut that allows me to pre-fill “.webassign.net” for SSH and moves the cursor to right before the first dot in order to

Other misc changes

  • Created a TextExpander perspective in OmniFocus in order to quickly focus on pending adjustments
  • Created new search profiles for Ruby, JavaSCript, HTML + CSS, datastores and “DevOps” tools in Dash

Tool Sharpening: May 17, 2014

For some background on what’s going on here, see the first tool sharpening post

In the past week, I’ve put a heavy focus on tuning up BBEdit. As part of this, I reread the BBEdit 10.x release documentation to get a better sense of features I was overlooking. I found number things to identify and tweak.

  • Installed new-to-me BBEdit language modules
  • Installed two new BBEdit packages
    • Better Tongs for improving text selection and manipulation with some helper scripts
    • Email for working with email composition through BBEdit. This is built for Mutt, but I’m going to see if I can make it useful anyhow
  • Created a BBEdit project with /etc/hosts, ~/.ssh/config and ~/.ssh/known_hosts, files I typically need to touch or update frequently as I work with local Vagrant virtual machines
  • Created a Text Expander shortcut to set-up Jinja2 if blocks for Ansible templates
  • Created a BBEdit project for working with BBEdit packages, scripts and settings
  • Updated BBEdit keyboard shortcuts to:
    • Copy the url of a given file. That ends up looking like file://localhost/foo/bar/baz/bippy/2014-05-18-tool-sharpening.html.md
  • Set-up a Git commit message template
  • Removed some OS X system-level keyboard shortcuts that were interfering with BBEdit-specific shortcuts for manipulating text
    • Unbeknownst to me before reading the 10.x documentation, BBEdit has shortcuts for moving lines up and down and deleting lines without needing to invoke the clipboard or select the whole line. No, this isn’t different than what vi(m) or Emacs provide for, but a particularly good reason for me to review what the capabilities of my editor are.

A larger aim I’ve had with this project is finding somewhat like activities and starting to refactor them so they can be automated. For instance, I want to have a standard way of prefacing new OmniFocus entries I make for ideas. Then, I can trigger that same entry with Text Expander. From there, I expect I could script a pass through OmniFocus and either auto-file things or do some other post-processing with them. The goal I have is to use OmniFocus on my desktop, iPad or iPhone as an entry point, but have a desktop-based script go into my OmniFocus inbox and filter those idea items into text files, like the one I keep as a Markdown list for improving my environment set-up.

Tool Sharpening: May 11, 2014

For some background on what’s going on here, see the first tool sharpening post

In the last couple of weeks, I’ve made the following adjustments to my developer environment + closely related computing set-up:

  • Created an initial MiddleMan template to make aggregating my tool sharpening changes easier. I expect this will make it easier to prep tool sharpening blog posts on a regular basis I can go back and review.
  • Tuned my work email rule filtering so most automated/generated messages bypass my in box to their final destination
    • I then use two Smart Folders, one called “New” and the other “Recent” to see unread messages and recent messages regardless of read status
  • Added an OmniFocus perspective called “Recent Additions” based on a Merlin Mann suggestion on a past Back to Work episode. I keep my iPad with me and update OmniFocus during my team’s daily standup and this perspective is a good help to find and further process entries I make when I get back to my desk
  • Added Solarized theme for BBEdit
  • Built a BBEdit text filter in Ruby that takes a column of numbers and adds them
  • Created an initial BBEdit Package for the text filter and posted it to GitHub.
  • Installed Editor Actions for BBEdit
  • Created an “Exploration” BBEdit project so I have a workspace for one-off investigations
  • Created an “Exploration” Tmuxinator profile so I have a workspace for one-off investigations
  • I also made a lot of OmniFocus entries regarding additional BBEdit text filters, shell environment improvements and Text Expander shortcuts to add

Looking over the list, I’m pretty happy. I’m still integrating a few of these changes as habit. A few of these items may not end-up sticking. The key improvement I’d like from here is improving my consistency. The schedule of my work day has shifted around some, so it’s not quite as feasible to pull an desired improvement off the stack for implementation. To that end, I am going to attempt to pull an improvement to implement at the end of the day when everything is winding down. That way, I’m quite likely to have a small accomplishment to bridge into the next work day with.

Tool Sharpening: April 28, 2014

Back in the fall, Ben Orenstein of thoughtbot was on the Ruby Rogues podcast and talked about sharpening tools. Making his vim profile better, interacting with his desktop better. In some way, he’s making his life as a developer better, every day.

He said:

I’m a huge believer in the power of habits. I think the things you can manage to make yourself do regularly can have incredible results. And so, a few years ago, I’d say five years ago, I decided to get kind of serious about making my environment really excellent and improving my efficiency that way. And so, I got in this habit of spending the first ten or 15 minutes of my day on tool sharpening. And so, what I started was I started a little text file that I would add to during the day. So, when I was doing something that felt inefficient or felt like whenever I had that inkling, “There must be a better way of doing this,” I’d add it to the list. And then I’d pull one of them off in the morning.

And so, I started most mornings by just doing something simple like making an alias for a command I use in the shell a lot. Or something like, I finally need to research how the Vim expression register works and go do some diving on a readme or something like that. And I thought of it as sort of slowly sanding down the rough edges of my environment. So, anything that kind of like irked me, I would try to spend a little time on every morning. And what I found was not very long of this, I was noticeably faster at the things I needed to do every day. And it was starting to have a huge impact on my productivity. And so, I started talking about that.

Five years of daily tool sharpening or tool making seems like it would lead to some transformative changes in work habits and flow. To that end, I’ve spent some time recently attempting to make some adjustments to my own environments. I’ll enumerate some of them:

  • Read up on homebrew services
  • Adjusted my tmuxinator set-up
    • Added a profile for a Tech Week project
    • Added tmuxinator invocation shortcut
  • Installed the Silver Searcher
  • Set-up ctags in a project as an experiment
  • Installed + purchased Dash
  • Repaired tools + resources links on my tools page
  • Installed MsgFiler
  • Created a clipping to insert an Emacs-style counterpart comment in BBEdit source files
  • Found a Safari extension that can normalize the size of Safari windows
  • Installed Total Terminal for a keyboard shortcut available terminal window I can use for one-off commands.
  • Updated BBEdit prefs to use Dash for “Find in Reference”

This isn’t an exhaustive list of what I’ve done since my curiosity was piqued by what Orenstein was describing. I wanted to share the list to inspire someone else to try out the practice and prompt myself to reestablish the habit.

I plan to revisit this with new entries occasionally.

Next →