Unified Style Guide Thoughts - Doctrine And Archiver

The Unified Style Guide (USG) is a project that I have been slowly piecing together to better organize files and directories. The premise of the project (and all style guide projects) is to provide a straightforward guide that is well thought-out and takes the guesswork out of most use-cases. I will anguish over all the trivial, mundane details so you don't have too!

The two utilities that support the USG are Doctrine and Archiver. While …

more ...

Weekly Picks - Unusual Drinks

Date Tags picks

Been trying out a few unusual drinks (for me at least).

Food:

  • Coffee with butter - After listening to Dave Asprey on the James Altucher Show, I had to try this. Not because of the potentially over-hyped medicinal benefits, but for two simple facts: coffee is delicious, butter is delicious. Turns out a mug of coffee with about 1 tablespoon of butter blended into it is pretty delicious! While still nutritionally skeptical of this combination, I …
more ...

QuickWin 0.3.0 Preview And Thoughts

Been working on some updates to QuickWin recently. QuickWin was ultimately developed to scratch a productivity itch that had been bugging me for a while. There are some similar projects available such as GoToWindow and AltTabAHK but nothing quite hit the feature set I wanted. Overall, I am happy with how functional QuickWin has proven to be; it has quickly integrated into my workflow over the past few months of usage.

New Feature Examples

The …

more ...

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: [
        sys.stdin.seek(0),
        sys.stdin.truncate(0),
        sys.stdin.write(x),
        sys.stdin.seek(0)]

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

setinput("Jeff")
name = input("Enter name:")
print(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.

Podcasts:

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

Software:

  • 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), sys.stdin.seek(0)]

The following …

more ...

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