latest posts

  • How I'm Learning Machine Learning

    My learning goal for this Summer and Fall is to gain some exposure to Machine Learning. Therefore I've enrolled in CS 7646 Machine Learning for Trading for this upcoming Summer semester and Charles Isbell's CS 7641 Machine Learningfor the Fall. Keeping a study log of techniques, resources, and general course notes ended up working well for me in the CS 6200 GIOS, so I will continue this practice for these two courses in here.

  • Hack Mini - Linux Workstation Build Log

    Recently I've found myself wanting a dedicated desktop machine just for coding. Although I do most of my development at work on iMacs and at home on an aging MacBook Air, I decided against buying another Mac -- the price and performance I wanted just wasn't there. "Linux is close enough", I thought, so I decided to build this small, discrete machine just for development.

  • Learning Operating Systems and Rediscovering C

    One of my goals this year is to learn more of the underlying concepts and theory of operating systems and improve my systems programming skills. Consequentially, I've enrolled in Graduate Introduction to Operating Systems through Georgia Tech this semester to help meet this goal. However, it's been a few years since I've written any C and I never had the opportunity to take an Operating Systems course in undergrad so I've got some ground to cover. This post is currently a work in progress, but I'll add to it over time to document my learning journey and include links to any resources that proved helpful along the way.

    , updated
  • How to Write Custom Rubocop Linters for Database Migrations

    Active Record and Sequel migrations provide an easy way for Ruby developers to alter their database schemas without having to write SQL by hand. This abstraction means that the same migration file could work against both a Postgres and MySQL database by simply changing the underlying database adapter. For large projects with many developers, however, it can be difficult to keep migration style consistent and enforce best practices without additional tooling. In this post we'll write our own custom Rubocop cop for linting migration files.

  • Securing Rails Secrets with Cloud Foundry CredHub

    Over the years, secret management in Rails has greatly improved. Gone are the days of the version-controlled secret_token.rb and now providing secrets through environment variables is encouraged. Environment variables can come with their own problems, however. Luckily with Cloud Foundry and CredHub, there's another way.