I'm Jason, a web applications developer in East Tennessee.

  1. Über-Securing Ubuntu 12.04 LTS with Mod-Security + Ruby on Rails 3.2.13

    By Marshall Sontag

    I recently setup a linode server for a new client who wanted the best security practices installed.

    Most linux security guides instruct you to disable password authentication and enable SSH key authentication for SSH and use iptables to allow or block certain ports. But I found this incredible guide that takes it several steps further to prevent IP spoofing, DDOS attacks and much more.

    How to secure an Ubuntu 12.04 LTS server - Part 1 The Basics

    It also incorporates mod-security rules from the Open Web Application Security Project, which I just learned about through this tutorial.

  2. Downloadable Documentation

    Some people want to download the documentation for the languages they’re using. This is needed when an internet connection isn’t available (like using a laptop on a plane), or even for the sake of speed.

    Here are two sources of downloadable documentation.

  3. History of Internationalization in Software

  4. Mobile Application Performance Monitoring and Management

    It seems like the industry is all astir about mobile these days. I’m thinking of jumping into such interests.

    Heard about this today. It’s like New Relic for mobile apps.

  5. Use Ruby to Develop iOS or Mac OSX

    I haven’t evaluated this yet, but another developer at my local Ruby meetup group said that this has been used in production and fairs pretty well.

    “RubyMotion is a revolutionary toolchain that lets you quickly develop and test native iOS and OS X applications for iPhone, iPad and Mac, all using the awesome Ruby language you know and love.”

    Ruby Motion icon

  6. Uninstalling Command Line Tools for Xcode

    I ran into a problem trying to install Ruby 2.0.0 via RVM over the weekend. When I got to work the next day and needed to do work using Ruby 1.8.7, I ran into issues. This led to updating RVM using ‘rvm get stable’, and then trying to reinstall Ruby 1.8.7.

    I was then prompted that the version of Xcode I’m using is older, and thus needs to be updated. I tried to look for the command to uninstall it, just to ensure that the new installation (possibly via the App Store) is clean. I found this command to work for Mac OSX 10.8.3 (Mountain Lion).

    sudo /Library/Developer/4.1/uninstall-devtools -mode=all

  7. Setting Rspec as the Default

    When setting up a new Rails application you’ll likely want to make Rspec the default test framework for new models that are generated with scaffolding. This is usually handled by default by the Rspec gem after you install it. It’s possible to explicitly set this however, as well as other configurations for generators.

    This is explained in more details in the Customizing Your Workflow section of the Rails generator documentation. You even have the option of turning off the generation of stylesheets if preferred.

  8. Remote Pair Programming

    I really find pair programming to be annoying. It seems like a waste of time as compared to doing peer code review over a Git branch that has been squashed. But I really can’t knock something totally unless I’ve tried it for a while.

    Some people shared these resources today which I wanted to archive here. At least with remote pair programming you still get to have control of your computer, instead of sitting aside and watching idly. Here are some remote collaborative coding tools. These could also be useful for people wanting to remotely teach others how to code certain things.

  9. Languages Supported by Github Flavored Markdown

    NOTE: This post updated on 12/08/2020

    I’m currently configuring the Yard documentation tool for use with Ruby/Rails projects. I could see that it’s possible to create a .yardopts file in the main directory for your Rails application, and simply add command line arguments to the file.

    I just discovered that you can add a list of files, likely placed under the ‘doc’ directory, to your .yardopts file, and those files will be included in your generated documentation set. This is perfect for changelogs, readme files, and other high level documentation. After installing the Redcarpet gem, you can name these files with the ‘.md’ extension to use Markdown formatting on your documentation.

  10. Coding Games

    A few weeks ago I heard about this FightCode website that lets you program robots that compete against other coders who code their own robots. It uses Javascript, so it should be accessible to many web developers. They even have a Facebook page you can like.

    Fight Code logo

    Recently a co-worker also mentioned a new programming game called NodeWar. It appears to be under development still, but could prove to be awesome.