Better Environment, Better Team – 5 Ways Changing Conditions Can Solve Problems

Fish discover water last. — Anonymous

When Atomic Object was searching for a new office space, it made me think about what makes a good work environment and if there were any research studies that supported my personal experiences. I did some research, and what I found changed the way I view how people work together.

I realized an “environment” is composed of much more than just the obvious physical objects—though they are important too. Things like the layout of your office space, the people you are interacting with, the information you are exposed to, and even the processes you engage in—they’re all parts that make up the larger picture of your unique work environment. Read more on Better Environment, Better Team – 5 Ways Changing Conditions Can Solve Problems…

Programming Exercises to Stretch your Noodle

Now and then I work on small programming puzzles. I do this mostly because I enjoy it, but it’s also a great way to try out new languages, tools, and techniques, or to to maintain familiarity with those you haven’t used in a while.

Below are three of my favorite sources of programming exercises.
Read more on Programming Exercises to Stretch your Noodle…

5 Articles that Changed my Perspective on Design

The amount of content available on the internet is mind blowing. But sometimes, you find something that is incredibly relevant to you, content that can change your perspective, content that will get your blood pumping. When you do, it’s so satisfying: “YES! This is it!”

Read more on 5 Articles that Changed my Perspective on Design…

Generating Rust Bindings for Embedded Libraries

As I talked about in my last post, Embedded Rust Right Now!, you can call C functions directly from Rust without much difficulty. However, you normally still need to provide Rust types and prototypes for the corresponding C types and functions you want to use. This can be a time-consuming and error-prone process.

Fortunately there is a tool call rust-bindgen that can generate bindings automatically directly from C header files! It’s a little trickier when you’re cross compiling to target embedded systems, but you just need to pass some extra clang flags to bindgen. Read more on Generating Rust Bindings for Embedded Libraries…

Consulting and the Four Stages of Competence

Recently I read an article that referenced The Four Stages of Competence, a learning model developed in the 1970’s by Noel Burch of Gordon Training International. The model is helpful for understanding the progression of learning as it applies to any skill–music, math, language, woodworking, skydiving, and yes, software. Read more on Consulting and the Four Stages of Competence…

Domain-Specific Languages vs. Notation

Programming languages often advertise themselves as being well-suited for writing domain-specific languages (DSLs), languages within the programming language that express the concepts rather than the mechanics of the code. Ruby is probably the most popular such language, but many others—such as Scala, CoffeeScript, and Io—also try to make it easy to write code that’s human-readable.

Read more on Domain-Specific Languages vs. Notation…

Improving Ember-CLI Testing with Sinon.js

When I first started developing single page web apps using Ember-CLI, I was very impressed with the testing tools they provide out of the box. However, after I spent more time in an Ember-based tech stack, I found myself wanting a better way to mock objects and write expectations.

In this blog post I’ll explain how an Ember developer using Ember-CLI can install and use the popular testing testing tool Sinon.js to write better tests and ensure a more correct Ember app. Read more on Improving Ember-CLI Testing with Sinon.js…

Google Sheets’ Query Language

Many of us at Atomic Object leverage spreadsheets for various purposes (estimates, hours tracking, finances, etc.), and since we have strong technical backgrounds, we tend to leverage a lot the functions that spreadsheets provide (avg, max, min, ceiling, sum, etc.). We also tend to push the boundaries of spreadsheets by leveraging multiple functions in one cell and doing some complex filtering. Read more on Google Sheets’ Query Language…

Rapid Prototypes for Devices with Raspberry Pi

Since joining Atomic, I’ve worked on quite a few web projects, where rapid prototypes are common and quite easy to produce. Unfortunately, not all domains we deal in have such luxuries.

My latest project is a lightweight embedded linux device with a GUI and physical buttons. In such a stack, it can be hard to get rapid feedback cycles on your UI and UX. To try and alleviate this problem, I came up with a method for scripting interaction with rapid prototypes using a display attached to a Raspberry Pi. Read more on Rapid Prototypes for Devices with Raspberry Pi…

loading…