I'm Jason, a web applications developer in the Denver, Colorado area.

  1. Unbricking TP-Link TL-WDR4300

    I tried to flash the TP-Link TL-WDR4300 router with a custom OpenWRT image recently, and after doing so I was unable to connect to the device like I expected.

    Here is how you can recover / un-brick the device.

  2. Getting Started with IRSSI

    Often open source projects or organizations use an IRC channel on FreeNode to provide support to users and/or developers. I’m trying to retain familiarity with the command line, rather than become completely dependent on GUI applications, so I’ve decided to use IRSSI instead of Pidgin or Adium (Mac OS X).

  3. Recommended Gems

    Here are some Gems we recommend that you checkout.

  4. Looping through dictionaries in jinja2 templates

    I am adding a script to our server using Ansible. The roles are all setup to support multiple Wordpress websites based on the dictionary defined in ansible/group_vars/wordpress_sites.yml, as my Ansible configuration is based on Trellis.

    I don’t want to use the Ansible template module to create a script for every website, because really I only have one website configured. Sure I might have configuration files for each site under Nginx, so that makes sense. So I decided that instead of creating multiple scripts, I’ll just have Ansible generate scripting for each of the sites inside of my shell script.

    Well it turns out that this isn’t do easy for someone not very familiar with Jinja2 templates or Python objects.

  5. Vagrant SSH Failure - Connection closed by remote host

    I recently was running into issues with Vagrant where I’d start the virtual machine using the ‘vagrant up’ command, but I’d receive an error when trying to use vagrant ssh.

    $ vagrant ssh
    ssh_exchange_identification: Connection closed by remote host

  6. Error when building PhantomJS 2.0

    I was tasked with installing PhantomJS 2.0 on an Ubuntu 14.04 VPS running with 2 GB of RAM. Online discussions on Github and Google Groups seemed to have pointed to the build process requiring much RAM to complete without error.

    g++: internal compiler error: Killed (program cc1plus)
    Please submit a full bug report, with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
    make[2]: *** [.obj/inspector/InspectorAllInOne.o] Error 4
    make[2]: *** Waiting for unfinished jobs....
    make[2]: Leaving directory `/home/app/src/phantomjs-2.0.0/src/qt/qtwebkit/Source/WebCore'
    make[1]: *** [sub-Target-pri-make_first-ordered] Error 2
    make[1]: Leaving directory `/home/app/src/phantomjs-2.0.0/src/qt/qtwebkit/Source/WebCore'
    make: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2

  7. Setup Environment for Django Development

    Although this website is primarily devoted to Ruby / Rails development, I’ve found it necessary to learn Python for a new position I might take in the upcoming year. Here is my guide for setting up your local workstation for Python / Django development on a Mac OS X workstation.

  8. Issues with RVM after upgrade to OS X Mavericks

    So I just upgraded to OS X Mavericks (10.9.5). I also upgraded to X Code 6, and also installed the command line tools via the xcode-select --install command. I also have the ‘apple-gcc42’ Homebrew package installed to provide GCC 4.2.

    Still however, when I would try to install a version of Ruby via RVM, I would get this error:

  9. Bypassing the AngularJS router for anchor tags

    I’m working with a Rails application that is using an AngularJS front-end. We are using routing to override the behavior of anchor tags to ensure that they load other templates with controllers, as defined in our routeConfiguration.js. This works out great most of the time, unless you need to override the routing so that your anchor tag can point to an end-point served by your Rails back-end. In my case, I’m linking to an end-point that serves a named CSV file. Without any sort of over-ride, I was finding that the default fallback behavior defined by the otherwise() method was occurring. In my case this was a 404 page template that loaded.

  10. Sharing Administrative Rights with Homebrew

    I installed Homebrew on my work computer, and have installed many ports using Homebrew from an account on my machine. This has resulted in all of the files and folders managed by Homebrew being owned by the user account I installed the ports from, with ‘admin’ group ownership.

    Recently I created another account on my machine, logged into it, and ran ‘brew doctor’ just to make sure everything was in excellent order, and I ran into these errors: