• Secured blog using Let's Encrypt

    I finally did it! I joined the secure web. Thanks to Let’s Encrypt and Caddy, this blog is now served via HTTPS. Caddy makes using Let’s Encrypt a single line change in a config file. It could not get simpler than that. Here is how I converted from static hosting on Amazon’s S3 to a Digital Ocean instance running Caddy in a Docker container.

  • Go Challenge 2 Review Response

    My entry to the Go Challenge 2 was reviewed and commented on by the challenge runner. I provide some feedback on his comments.

  • Waiting for Ctrl+C in Golang

    How to wait for the interrupt signal using Golang and command line programs

  • Will work for Bitcoin

    I’m a big fan of Bitcoin and its backing Blockchain protocol. I really do think it has the potential to allow for much broader uses of distributed control. Wish me luck finding a job in the Bitcoin world.

  • Consider using the tap method for code organization

    The tap method intruduces a new indention block. Consider using the tap method for code organization.

  • Avahi helps hosts connect to VMs

    How to setup Bonjour broadcast to connect your Linux servers to your Macs for easy access while developing. Safari automatically adds the web servers that are broadcasting on your local network. Linux servers will broadcast once the Avahi server is installed.

  • Trying out Emacs Again

    I'm a Vim user, but i'm not 100% sold on it. I keep wanting to find an even better editor. I've tried just about everything but nothing sticks. I'm starting a new book on Lisp programming so it is time to try Emacs again. May this time it will stick.

  • Sinatra Settings for Nested Apps

    Getting settings to work in a Sinatra app that includes other Sinatra apps can be done a lot easier than you think using the Rack::Config middleware. I show how I created a Sinatra app with several nested Sinatra apps. And how I solved the issue with using a shared settings value from outer apps to the inner apps.

  • Vagrant Going from old and busted, to new hotness

    Vagrant is an amazing application for helping you manage your virtual machines. Renewed development effort by it's creators has brought us many new features. Unfortunately this forced a change in the semantics of the Vagrantfile. Here is how to do the most basic upgrades to remove the warning messages Vagrant creates from using the older file type.

  • Switching from attr_encrypted gem to attr_encryptor for better security

    At work we are using the attr_encrypted gem to encrypt some PII on our data before it hits the database. The gem supports using a strong key but this turns out to not be enough. A Github issue was created to address leaking of data caused by using the same initialization vector (IV) and salt for every value. The method used by the attr_encrypted gem to create the IV and salt values is vulnerable. Additionally the IV should also be processed with the CBC-MAC method. The attr_encryptor was created to fix these issues.

  • Setting up a new Mac for Ruby development

    I recently switched how I was using one of my laptops. I wanted to make a clean break from what it was doing before, so I erased the hard drive and started from scratch. I've done this a few times already and I always seem to forget a step. So this time I wrote down the steps so I could repeat them later. These are the steps I take to setup a Mac for Ruby development using Vim as the editor and MySql as the database. Of course there are a few other programs that I use while developing. The whole group, in my opinion, make for the most basic setup.

  • Searching a Git repository using VIM

    Searching Git repositories is very simple using the Fugitive and Unimpaired plug-ins. They allow you to jump to each file and line in the result set with default keybindings.

  • Rails partial views and locals variables

    Partial views get used in most web frameworks. In Rails and most other frameworks you can pass local variables to your partials. This is how I learned that in Rails these locals are instance methods and not instance variables.

  • Update DNSimple to point to your home router

    The API at DNSimple allows easy updates. You can use them to add a subdomain to point to your home router. I make extensive use of this for remote pair programming.

  • Update your software

    Don't forget to update your software every once in a while

  • Remote pairing with SSH and Tmux on a Mac

    How to setup a Mac for remote pairing via Tmux. Including some scripts to help automate the process.

  • Changing Xcode versions

    I recently needed to switch from developing for Rails 3.2.5 on Ruby 1.9.3 to working with Rails 2.3.5 on Ruby 1.8.7. The Rails version change wasn't that big of a deal, but the Ruby change was. Sometime between the release of 1.8.7 and 1.9.3 the supported GCC compiler changed. The newer compiler, the one I was on, had a breaking change making it not compatible with the older Ruby version. This meant that if I wanted to use Ruby 1.8.7 I was going to have to uninstall my current copy of Xcode and install an older version.

  • Installing Node.js on Ubuntu 10.04 server

    Most of the guides I find on how to install [Node.js][1] on Ubuntu are not about installing the currently released version, instead they focus on installing the latest development release. I think this is the case because they assume the reader is familiar with doing software installs on unix from source. I'm coming from a Windows word were installing from the source is almost never done. This guide is for someone relatively new to unix installation or to Ubuntu server setup.

  • How to setup Node.js and Npm behind a corporate web proxy

    For those who, like me, are behind a corporate web proxy, setting up Node.js and using `npm` can be a real pain. I thought that the web proxy settings would be like the rest of the unix world and require me to set the `HTTP_PROXY` and `HTTPS_PROXY` environment variables. Although I just cloned the Node repository from [Github]( so they are already setup. What gives?

  • Install Cloudstack 3.0.0 on Ubuntu 10.04 Server

    Cloudstack 3.0.0 was release on Febrary 28th 2012. At the time I was trying to install version 2.2 on a VM. I was having a lot of trouble so seeing a new version was wonderful. The following is what I had to do in order to get the system setup. Hopfully this post will help you get Cloudstack running in your environment.

  • Setting up NFS on Ubuntu 10.04 Server

    I'm currently working on improving my knowledge of UNIX networking. One of the common tasks for a server is acting as an NFS server. These are the steps I take on an Ubuntu 10.04 server to setup NFS.

  • Virtualization on the Mac

    The Mac makes a great platform to run virtual machines especially with VMware Fusion.

  • Switched from PC to Mac

  • Fizz-buzz rehash

    An implementation of fizz-buzz that is overly complex. Something you want to avoid in an interview.

  • Code navigation with Resharper

    Great screencast on using Resharper to navigate code efficiently in Visual Studio

  • Finished the Ruby Koans

    I finished the Ruby Koans today. It is a set of test cases designed to help you learn Ruby by making all the tests pass.

  • Any() is your friend

    The Any() extension method helps make much more efficient SQL queries. Use it and love it!

  • How to fix patching problems with TortoiseSVN and TortoiseMerge

    TortoiseMerge occasionally fails to work. I don't know the cause, but I did figure out how correct the issue so you can do another merge.

  • SQLExpress and ASP.Net membership provider

    Using the ASP.Net membership provider in an application using SQLExpress database

  • Learning Ruby

    Learning Ruby via testing. Trying to also learn the Rails server enivronment as well.

  • FizzBuzz test in C#

    An overly complex fizz-buzz implementation

  • Alt.Net Seattle mini con report

    I went to my first Alt.Net Seattle meeting on Saturday. It was a mini conference created so the Microsoft MVPs could meet while they were already in Seattle for the MVP global summit. I have to say I really liked it.

  • Linqpad usage video

    A video of Linqpad by the creator on how to use it best.

  • Converting a Sourceforge project to Github

    I was looking for a reason to play with Git more so I thought a good exercise would be to convert an open source project not already using Git. At the same time I put it on Github for easy access.

  • Replicating SQL's in operator in Linq

    SQL has a range variable search keyword called 'in' that is a not exposed by default in Linq.

  • Solve Sudoku in 1 line of Linq

    Using linq to solve Sudoku

  • Deploying a website with MSBuild and TFS 2008

    how I used msbuild to get a web server running

  • Started working with Silverlight

    I started playing with Silverlight 2.0. I learned a lot about the data modeling classes and what is supported. Going to have to spend much more time with Silverlight if I'm going to make anything useful

subscribe via RSS