rubycoloredglasses


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


  1. 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.


  2. 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.


  3. Customize your IRB

    Stephen Ball of RakeRoutes.com has a cool post on how to customize your IRB environment.

    Customize your IRB


  4. htaccess tester

    I’m not sure how one would use this, but it looks like it’s supposed to be useful.

    [http://htaccess.madewithlove.be/]


  5. Using Find Each to Process Batches

    I just found out that there is a find_each method provided by ActiveRecord which loops through an array of models that are retrieved in batches of 1000 at a time.

    The find is performed by find_in_batches with a batch size of 1000 (or as specified by the :batch_size option).

    User.find_each(:start => 2000, :batch_size => 5000) do |user|
      user.do_something
    end
    

  6. Development Time

    It seems common that development tasks or projects take much more time than expected. My manager recently pointed these out to me:

    The 90/90 Rule - “The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.” — Tom Cargill, Bell Labs

    Hofstadter’s Law - “Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.” — Douglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid


  7. Minecraft Mods

    I’ve been playing Minecraft for a little while now. Want to see what else this thing can do, so I want to get access to console commands. This is a challenge it seems, so I’m going to document how it’s done here.

    I’m currently using Minecraft version 1.4.7. I just downloaded the latest build/snapshot (possibly unstable yet likely compatible) from Minecraft-Console by simo415 on Github. A prerequisite to this mod running is modloader, which states that it’s only for version 1.4.7.


  8. Obtain MySQL Query Statistics using Explain

    Sometimes it really counts to restructure the queries made to your MySQL database, especially so that they do make use of indexes which are present on the table.

    You can obtain information on which keys are being used with a query by using the EXPLAIN statement before your SELECT statement. Here are some examples of it’s output.


  9. Git Branching Model

    I just want to put this here for future reference.

    There is a version control branching model known as Git-Flow, which is very similar to the model used on the team I work with. See A Successful Git Branching Model. This seems to work well for teams that make several separate commits to the ‘develop’ branch, with different versioned releases provided to the ‘release branch’ that may or may not have been tested and put through a quality assurance process, and finally only major updates (not releases) merged into the ‘master’ branch and tagged with the appropriate version number.


  10. Referencing Gem Source Code

    It’s often difficult to work with Ruby Gems that your Rails application depends on because the source code for the gem itself is packed away in a gem directory. I’ve often found myself using the command ‘rvm gemdir’ to output the path to the gem directory that my application is using, changing to that directory, and opening the source using Textmate. This is a time consuming process.

    Instead, it’s useful to simply unpack a gem into your Rails application so that it loads from the vendor/gems directory. I’m currently using the following command to unpack the RefineryCMS gems into my Rails app for reference.