Mike's Blog

Passing on knowledge about software development and other related technologies.

Ruby Posts

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