We're hiring!

We're actively seeking developers for our new Detroit location. Learn more

Design & Development

Tools, tips and tech for software makers.

Hosting Provider ‘Upgrade’ Changes Stolen CPU

Change in CPU Steal Time

Recently, a hosting provider’s ‘upgrade’ dramatically changed the stolen CPU time on one of our systems. I investigated and found that our virtual machine’s CPU allocation had been deprioritized. The rest of the post describes “stolen CPU” and the behavior that we experienced on our virtual machine. Anyone who runs operating systems (especially UNIX or…

Read More »

Also posted in Tools, Unix, Linux, and Bash | Tagged | Leave a comment

ReactiveCocoa: The Future of Cocoa Programming

Last year at around this time, Github announced ReactiveCocoa. I was excited to see a Functional Reactive Programming framework made for Objective-C and found an immediate use for it in an iOS project. Since its release, there’s been a tremendous amount of activity, documentation, and blog posts around it. The point being, there isn’t an…

Read More »

Also posted in Languages | Tagged , , | Leave a comment

“I Ain’t Afraid of No Code” – Learning To Be Fearless as a Developer

Occasionally I reflect on the ways I’ve changed as a developer since coming to Atomic. Recently I was struck by how much more comfortable I’ve gotten jumping into new technologies. I’ve come to realization that the only right way to approach new challenges is with gusto (and googling).

Also posted in Languages | Tagged , | Leave a comment

Exploring Lua Coroutines in ComputerCraft

minecraft-computercraft

A fellow Atom recently introduced me to the Minecraft mod ComputerCraft. ComputerCraft extends the game to include virtual computers that are programmable in Lua and capable of interacting with the game world. Needless to say, I found myself rather preoccupied with Lua that weekend.

Also posted in Languages, Tools | Tagged , , | Leave a comment

Using Bundler with JRuby Complete

I am currently working on a project using JRuby for a server-side component. One of the team’s deployment goals has been to avoid relying on the production environment having JRuby installed in it (either globally or with RVM). Instead we have been using the jruby-complete.jar to bundle the entire JRuby runtime with our application. This…

Read More »

Also posted in Tools | Tagged , , , , | Leave a comment

Wireless Communication Between Raspberry Pi and Your Computer

Imagine for a moment that you want to develop a product that uses a Raspberry Pi. Let’s say that this product requires the ability to connect up to a wireless network. Maybe it’s a device that streams music from an online web-service, or maybe it hosts some type of webpage. This functionality should be easy to accomplish…

Read More »

Also posted in Embedded Software, Unix, Linux, and Bash | Tagged | 2 Comments

Script Away Your Annoyances – Testing a Data Import Process

An annoying import process

As I wrote in my previous post, Script Away your Annoyances – Patching a Gem: Automation is good. Performing tasks manually is bad. Performing tasks manually is especially bad when the tasks are annoying. Let’s use a Ruby script to alleviate the pain of an annoying task. Today’s annoyance: testing and working through the kinks…

Read More »

Also posted in Tools | Tagged , | Leave a comment

Using Vagrant AWS with Capistrano

Vagrant 1.1 was recently released, adding support for virtualization providers other than VirtualBox. Among the providers now available is one for AWS. In switching my Vagrant workflow from VirtualBox to AWS, I ran into a problem; and in solving it, I discovered a better way to integrate Vagrant with Capistrano. 1. Vagrant Setup Vagrant 1.1…

Read More »

Also posted in Tools | Tagged , | Leave a comment

Adventures in Undefined Behavior

I recently had to write my own malloc. While replacing important bits of the C standard library would normally be serious over-engineering, it turned out to be the only option. The Backstory We had taken over an embedded project with known stability issues, and I quickly determined that thread race conditions were involved. After fixing…

Read More »

Also posted in Embedded Software | Tagged | 1 Comment

Working with Custom Return Values in GoogleMock

When working with the GoogleMock C++ mocking library, you can get pretty far using only default expectation return values or explicitly specifying expectation return values. There are some additional options that can save you a lot of effort in some circumstances though. Let’s take a look at a few of them. Standard Values Consider an…

Read More »

Also posted in Embedded Software, Testing, Tools | Tagged , | Leave a comment