We're hiring!

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

Prototyping

Making Diagrams with graphviz

graphviz-ab2

graphviz is a great tool for creating quick diagrams. While it does not have a particularly polished WYSIWYG editor such as omnigraffle, it can automatically create diagrams from its simple markup language, DOT. After reading in the DOT markup, it uses various layout algorithms to automatically arrange the diagram. The DOT language is pretty flexible…

Read More »

Also posted in Tools | Tagged | Leave a comment

Cheap Checks for Validation of Hardware Designs

embedded

Recently, we ran into a problem with a new revision of hardware we received for an embedded product. It cost the project 2 days of sleuthing before we found the problem, which ended up being a mixup in the schematic that the PCB was laid out and manufactured according to. It turned out to be…

Read More »

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

Storyboarding with Inkscape and OmniGraffle

daves-document-normal

I don’t always draw storyboards, but when I do, I prefer sketching with pen and paper. But recently I wanted to produce a clean, shareable artifact that would look nice in PDF and printed form. My usual trick of sketching on paper and uploading photos to Dropbox wasn’t going to cut it this time. I…

Read More »

Also posted in Visual Design | Tagged , , , , | Comments closed

Live Coding Is Evolving

It’s an exciting time for programmers. There’s a call for everyone to learn to program, and there’s a recent notion that software is eating the world, or that every industry will become an information industry eventually. Meanwhile for those of us who already know the skill, pressure is building to push our tools farther. The…

Read More »

Also posted in Languages, Tools, Web | Comments closed

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…

Read More »

Also posted in Design & Development, Embedded Software, Hardware Design, Tools, Unix, Linux, and Bash | Tagged | Comments closed

Designing Around an Experience

When designing an app it’s easy to think about the thing I’m building. When sitting down to design, I usually start outlining the areas of the app I think should be there. I then draw sketches depicting the screens around that architecture. This doesn’t always work because what I think might be good for the…

Read More »

Also posted in Design & Development, User Experience | Tagged , , , | Comments closed

iOS Mirroring and Programmatic Airplay Selection

Currently, Apple limits access to AirPlay and mirroring capabilities in their public APIs. Developers are given a great deal of latitude in terms of what content to display but are limited in how and where that content is displayed. On a recent project we needed more control over how and when content is displayed via…

Read More »

Also posted in Languages, Mobile | Tagged , , , | Comments closed

Simple Network Prototyping in Objective-C

I find that when writing applications for Mac OS and especially iOS, it’s quite common to need to interface with a simple REST web service that delivers JSON payloads. Unfortunately, Cocoa’s networking APIs can be a bit cumbersome. To address this for my own needs, I wrote a simple asynchronous wrapper around NSURLConnection a few…

Read More »

Also posted in Tools | Tagged , | Comments closed

Continuous Integration for Design Concepts

I recently enjoyed being a panel speaker at a Michigan Agile Enthusiasts event about big visible charts. During the event, I spoke about the UX display boards we have been using at Atomic and how they complement some of the developer-centric data radiators in the office. While preparing for the MAE event, I had the…

Read More »

Also posted in Iterative Development, Process & Practices, Testing, Tools, Usability, Visual Design | Tagged , , , , | Comments closed

Putting a Stop to WebSockets and Winstone

Recently I’ve been working on a project combining an HTTP server and a WebSockets server. Traffic from both HTTP and WebSocket clients can affect server state and consequently an HTTP client can affect a WebSockets client and vice-versa. We are prototyping this in JRuby as a single .war file using warble. The HTTP server is…

Read More »

Also posted in Languages, Testing, Tools, Web | Tagged , , | Comments closed