We're hiring!

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

Inspiration: The Water Clocks of Bernard Gitton

Not long ago, I had an interesting lunchtime discussion with Job Vranish. I don’t recall exactly how we got on the topic, but we were discussing how mesmerizing siphons are. As the discussion progressed to imagining a fluid-based computer (that’s another story…), I remembered something I had seen as a child at the Indianapolis Children’s museum: an immense clock that kept time with the flow of water through glass tubes.

Read More »
Posted in Culture | Tagged , , , , , , , , , , , , , , , , | 1 Comment

Dangerous Liaisons

A project that I’m currently testing is a management system that has things like resources, timelines and tasks. There are different types of tasks; one such type is a ‘liaison’ task.

I wanted to test the performance of the system to see how well it handled hundreds of items so I created a couple of hundred tasks, all of which happened to be ‘liaison’ type.

Read More »

Posted in Testing | Tagged | 5 Comments

Safe Usage of /bin/rm

Those of you out there familiar with UNIX/Linux systems know that operating system tools and utilities that you have at your disposal are incredibly powerful. Arguably, this is one of the great strengths of UNIX/Linux systems. Basically, these systems give you unlimited control, and you can do anything you want without being bothered by pop-up windows, dialogs, etc.


Read More »

Posted in Unix, Linux, and Bash | Tagged , , , , | Leave a comment

User Experience for Lean Startups: A workshop that will help you create the right product

IMG_5825

On Saturday, May 19, Lane Halley of LUXr will teach a 1-day workshop on User Experience for Lean Startups. The event will be held right here at AO’s offices. User Experience is one of the most challenging and least understood aspects of creating a product…and yet it will make or break your product. During this workshop, Lane will teach you Lean Startup methods that help you make the right product, and make your product right.
Read More »

Posted in Events, User Experience | Leave a comment

Raspberry Pi: Prototyping Potential

Recently, the Raspberry Pi Foundation started shipping its Raspberry Pi boards. (And I got one!) They’re tiny, low-power computers, originally designed so that schoolkids could afford a personal Linux computer for learning programming. Despite selling at the same price point as an Arduino ($25), they have almost as much processing power as a netbook.

Once you have the main board, most of the other peripherals are cheap and readily available. It uses 5v micro-USB for power (from a spare cell phone charger), and SD cards for storage. They gave it both HDMI and RCA video output, so it could use the old TV in the attic as a display. It has a USB port for keyboards, mice, network adapters, and the like. (The “B” Pi, $10 more than the standard “A”, includes a second USB port and built-in ethernet.)
Read More »

Posted in Design & Development, Embedded Software, Hardware Design, Prototyping, Tools, Uncategorized, Unix, Linux, and Bash | Leave a comment

Clueless Leadership

Carl has written about the good, the bad and the ugly of transparency, but he has always stood by his conviction that a culture of openness is essential to sustainable business success.

I believe in transparency as a philosophical basis from which to run a company. The resulting trust, loyalty, buy-in and contributions of your employees more than make up for the downsides. But there are indeed some downsides.

I regularly read Mark Henson’s newsletter. Some of his articles resonate more than others, but I’ve come to appreciate the clarity and truth shared in all of his writing, regardless of topic. Mark’s recent post lays out a perhaps counter-intuitive, yet spot-on perspective on the challenges of leadership and growth. He argues for transparency:
Read More »

Posted in Company, Culture, Reviews | Tagged , , , , | 2 Comments

Bias in Computer Systems, and beyond

I enjoy reading a good academic paper every now and then. Recently, I was prompted by an email from a former Atomic Object coworker, Mike Karlesky, to read through “Bias in Computer Systems” by Friedman & Nissenbaum. I recommend reading it for yourself (PDF available here).

Bias isn’t always negative, but the focus of the research presented in this paper is bias of the decidedly unfair variety:

… we use the term bias to refer to computer systems that systematically and unfairly discriminate against certain individuals or groups of individuals in favor of others. A system discriminates unfairly if it denies an opportunity or a good or if it assigns an undesirable outcome to an individual or group of individuals on grounds that are unreasonable or inappropriate.

They outline three classifications for unfair bias in computer systems: Preexisting Bias, Technical Bias, and Emergent Bias.

Read More »

Posted in Design & Development, User Experience | Tagged , , | 2 Comments

Measuring CPU Utilization


Understanding processor load in an embedded system is important, yet often overlooked. It’s a step toward analyzing your processor’s ability to meet system deadlines. I have provided a sample arduino sketch to show how you can add real-time CPU utilization measurements to your embedded project.

Read More »

Posted in Embedded Software, Tools, Uncategorized | Tagged , | Leave a comment

Conject – Modern Dependency Injection in Ruby

Dependency Injection is relevant in Ruby. I say this because solving problems with highly decomposed systems of collaborating, narrow-purpose objects is still the best way I know, if I want to drive my code with tests and be able to change it later. DI tools help enable this type of design by carrying the burden of object instantiation and locking it outside our actual domain code.

(There’s a strange history of opinions revolving around DI in Ruby, and they’re worth discussing… sometime soon.)

I’ve been having a hard time finding a good DI tool for Ruby. I’m ready to move forward from DIY and enjoy some of the great conveniences that tools like Guice provide, such as automatic instantiation of object trees based on constructor and type info. So I wrote Conject, and though it’s still young, it’s working and showing promise.

  • gem install conject

Read More »

Posted in Design & Development, Tools | Tagged , | Leave a comment

Research the extremes of a user community

Atomic is currently collaborating with IDEO on a consumer-facing web app. The integration of IDEO’s user-centered design practices with Atomic’s software design and build practices is a powerful combination for our client. Working with an old friend and getting to know some more of the smart, talented people at IDEO have been great. We’re learning new things and refining our own UX practices.

Studying potential users of the app we’re creating is an important part of the project. The research being done is a clear example of IDEO’s “start with people”, design thinking process, as described by Tom Kelley at a recent Design West Michigan meeting. At our project kickoff, I had one of those delightful moments of finding my intuition entirely at odds with what was being presented, when our IDEO colleagues described how they selected research subjects.

Read More »

Posted in User Experience | Leave a comment