Vim Tips - Helpful Leader Key Mappings

Date Tags vim

The leader key is a useful way of creating custom mappings in Vim. While browsing code in normal mode, it can be useful to quickly toggle settings on and off or execute other commands. By defining mappings with the leader key, a short sequence of keys can be used to quickly execute commands. Check out :help <Leader> for more information on the leader key and defining mappings.

This post contains some examples from my vimrc …

more ...

Automate Stdin For Python Tests (Updated)

Date Tags python

NOTE: This is an update to a previous post.

The following can be used to programmatically set stdin for testing under Python 3.x:

import sys
from io import StringIO
sys.stdin = StringIO()
setinput = lambda x: [,

Here is a quick example of using setinput() in Python 3.x:

name = input("Enter name:")
more ...

Vim/Python Compatibility Issue

Date Tags python / vim

Found out the hard way that certain versions of Vim are not compatible with certain versions of Python. I keep my installation of Vim 7.3.712 on Dropbox so I can use it across multiple computers. While trying to run gVim on a new PC with Python 2.7.11 installed, gVim would close without warning or an error message when trying to open files.

Found out the cause was the one plugin I …

more ...

Weekly Picks - Systems

Some system related picks this week.


  • System Smarts - New podcast focusing on all aspects of systems.


  • Graphviz - Diagramming and visualization tool that uses a text-based markup. Works well for documenting system design.
  • Mscgen - Message diagramming tool that uses a text-based markup. Great for documenting any system that has intercommunicating components.
more ...

Automate Stdin For Python Tests

Date Tags python

NOTE: The information in this post applies to Python 2.x only. See this post for Python 3.x support.

While working on Qprompt (a Python CLI based user input libary), I wanted to write some tests to check for regressions. The following lambda function allows stdin to be programmatically set:

import StringIO, sys
sys.stdin = StringIO.StringIO()
setinput = lambda x: [sys.stdin.truncate(0), sys.stdin.write(x),]

The following …

more ...

Python Pattern Matching, Sorta

Date Tags python

This trick is neat and potentially useful although maybe not very Pythonic:

txt = "two"
val = (
        1 if txt == "one" else
        2 if txt == "two" else
        3 if txt == "three" else
print val

The following form can be used instead:

txt = "three"
val = \
        1 if txt == "one" else \
        2 if txt == "two" else \
        3 if txt == "three" else \
print val
more ...

Resolutions That Work

Date Tags misc

Last January, I made a resolution to walk 3 million steps during the year. With the help of a cheap step counter and a spreadsheet, I am happy to say it may have been the first New Years resolution that I actually completed! While preparing a list of resolutions for 2016, the following criteria will help guarantee success:

  • Progress must be measurable! - Keep track of your progress periodically to make sure you will hit your …
more ...

Wordless - A Better Document Toolchain

Date Tags docs

I was raised during a generation where writing on a computer was virtually synonymous with using Microsoft Word (little has changed since). However, as I grew versed in the landscape of software development utilities, I knew there had to be a better way to write. For me, the perfect writing toolchain needed the following qualities:

  • Content should be portable.
  • Content should play nice with version control and diff tools.
  • Content should be grep-able.
  • Structure emphasized …
more ...

Hi, I am Jeff Rimko!
A computer engineer and software developer in the greater Pittsburgh, Pennsylvania area.