Overmind logo

Services & Skills

Share on

First, some history

First, there was rails s, and then there was sidekiq, and then gulp, or webpack-dev-server, or whatever else needed to use your app in the development environment. Rarely in the jungle of the modern web can a programmer get away by running one single process in the shell.

Next came the Procfile—a format to specify the types of processes an application provides and the commands to run those services. It became a standard for Heroku and other Platforms-as-a-Service.

After that came Foreman. It allowed developers to launch all these processes with a single command. Everyone rejoiced, and David Dollar, who created it, got over 4k stars at GitHub. More similar tools would soon appear, and with it, a freedom of choice.

Sergey Aleksandrovich noticed something wrong with these options. Here’s how he explains it:

The problem with most of those tools is that the processes you want to manage start to think they are logging their output into a file, and that can lead to all sorts of problems: severe lag, losing or breaking colored output. Tools can also add vanity information (unneeded timestamps in logs).

Hivemind preserving Sidekiq ASCII-art

Sidekiq logging to Terminal on a Mac directly (left), Foreman clipping the output (middle), Hivemind preserving the beauty of ASCII-art (right)

In an attempt to solve this problem (that might have been bugging you, too) Sergey turned his attention towards pseudoterminals.

TLC for the PTY

Pseudoterminals (pseudotty, or PTY) have been around since 1967. They’ve existed in the UNIX world since the 80’s and 2010’s The Linux Programming Interface contains an entire chapter explaining them.


In the same orbit

Explore more open source projects

Contact us

We’d love to hear from you! We’re not really all that evil, and we love discussing potential projects, intriguing ideas, and new opportunities. Complete the form below or drop us a line at surrender@evilmartians.com.

Martians at a glance
years in business

A product development consultancy that works with startups and established businesses, while also creating open source-based products and services