Mike's Blog

Passing on knowledge about software development and other related technologies.

What is git?

Git photo 52608

The most used version control system in programming today is Git. Git is an actively maintained open source project originally developed in 2005 by Linus Torvalds, the creator of the Linux operating system kernel. Git has been designed with performance, security, and flexibility in mind. Git is well known for being a standard tool in most programmers toolbox. Git works well on a wide range of operating systems, editors and IDE's. Rather than have only one single place for the full version history of the software as is common in once-popular version control systems like Subversion (al... Continue reading

A Great Markdown Editor


In today's open-source communities (and more in the corperate environments every day) markdown languages are becoming the mainstream for blogs, web content, presentation tools, and documentation. What is markdown? Basically it is a formatting language that is very simple allowing content creators to focus on the content, not the programming. Most modern blogplatformssupport markdown in some shape or form and most template engines use markdown also.

Markdown Editors

There are many choices when it comes to markdown editors. There are web based editors, ... Continue reading

What is Foreman and when should I use it?

George foreman 525485

Many times when writing complex ruby applications or using frameworks (like Rails, Sinatra, or others) you end up having several processes that have to be running during development to allow it to run such as web services, message queues, or some other type of process. Foreman allows you to manage these different processes under one management gem. Foreman uses a file called Procfile.

Getting Started

First, let's setup the Procfile. A Procfile is a list that contains a name to identify the process and the command used by the system to run it. Foreman ... Continue reading

Speak Up!

Speaker photo 157534

My favorite projects are when I get to find solution to small problems for clients and solve them quickly for them. This week I had a client that needed some Text To Speech (TTS) capabilities on a small Linux system in their shipping department. Easy enough right? After a little research I found some really simple code example of TTS on Rosetta Code that someone had contributed that would work on Windows, Linux, and a Mac.

After updating the example code to work with Ruby 2.3, I did a bit of re-factoring and customizing ended up with a pretty cool little command-line utility that... Continue reading

Ruby and the Traveling Salesman Problem (Help me Neural Net!)

Delivery photo 93398

On a recent project we had the task of solving a physical routing problem in a large warehouse, also know as The Traveling Salesman Problem (TSP). The TSP in a nutshell is this: Given a list of physical locations (cities,addresses, etc) and the distances between each pair of them, what is the shortest possible route that visits each location exactly once and returns to the starting location?

Sounds simple for our complex brains to plot this out, but not so simple for a computer program. Enter Artificial Intelligence, specifically Genetics Algorithms in Ruby using the AI4R gem wri... Continue reading