Optimize EEPROM Writes Across Pages

Because I’m an embedded developer, I often work on projects where I need to store some data on an extern EEPROM or Flash chip. The internal memory of these chips is usually divided up into fixed sized pages. It’s often the case that you’re not allowed to write more than a page at a time. This makes things complicated if you want to do a write that spans multiple pages. It’s even more tricky if you want to support wrap-around, which turns out to be very handy in certain situations.

Read more on Optimize EEPROM Writes Across Pages…

Orangizing an Ember.js App with the Awesome {{component}} Helper

In the past year, I’ve spent a lot of time developing a large, complex single-page app using Ember.js. One of the challenges when dealing with a complex SPA is organizing the many views and components within the app, especially when dealing with naturally “typed” data.

In this situation we often found we wanted a different view or component based on the type of the data being presented. The advantage to this is it keeps our templates, controllers, and components from growing out of control. Read more on Orangizing an Ember.js App with the Awesome {{component}} Helper…

Evaluating Expressions in iOS with Objective-C and Swift

Recently, I have been researching ways to evaluate string expressions such as "(1 + 3) * 5 / 2" in iOS. I have found that there is fantastic support to do this using the built in NSExpression and NSPredicate classes. In this post I will detail how these two classes can be utilized to evaluate expressions. Read more on Evaluating Expressions in iOS with Objective-C and Swift…

Why I Still Like Ember.js

I’ve been using Ember.js on and off on a variety of projects for nearly two years now. Ember has proven to be quite unique. Even after getting very, very familiar with it, I still quite like it. As with all things I’ve found in programming, it has caused me pain at times, but far less than expected based on how much I’ve used it.

Here are some of the things that keep me coming back to Ember for new projects.
Read more on Why I Still Like Ember.js…

ReactiveCocoa Concepts for Asynchronous Libraries

One of the many useful things I’ve found in ReactiveCocoa (a functional reactive programming library for iOS) is the way that it can abstract away the asynchronous callback nature of some iOS core frameworks. And, by making use of RACDisposables, it’s easy to take care of cleanup work like closing connections or stopping a service.

Read more on ReactiveCocoa Concepts for Asynchronous Libraries…

Elixir Native Interoperability – Ports vs. NIFs

Lately I’ve been working on a personal project of creating a wireless sensor network across my home. Elixir is a perfect fit for this project, but I quickly hit a road block: serial device access. While there are Erlang serial libraries that I could use, I wasn’t ultimately comfortable doing so, due to many forks and adding yet another layer of complexity. Read more on Elixir Native Interoperability – Ports vs. NIFs…

Multiplatform C (with Networking)

I’ve been working on a project with a diverse set of software components that must all work together and communicate over the network. There are separate Mac and Windows clients that must communicate with the same unix server. And while there’s already a well-defined protocol for their network communication and message passing, we also need to transmit a large stream of somewhat time-sensitive data. Read more on Multiplatform C (with Networking)…

Testing mOxie File Upload with PhantomJS

I was recently working on a feature that allowed users to upload images to a web app. The front end was written in Ember.js and the server was Rails with paperclip for image storage. For the best user experience, we decided to try to read the file locally, display it, and send the data URI up to Rails for storage.

Unfortunately, our target platform included Internet Explorer 9. Read more on Testing mOxie File Upload with PhantomJS…

Is Presenter First Still Valuable to Modern App Architecture?

Thijs van Dien wrote to us in early 2015 with some great questions about Presenter First’s place in application architecture in the post-MVC era. His well-researched questions were a joy to respond to; while there’ve been many advances in desktop and mobile programming patterns since we first wrote about PF back in 2007, we still find value in the core aspects of Presenter First. I’ve captured our email conversation here for broader sharing and posterity. Read more on Is Presenter First Still Valuable to Modern App Architecture?…

Protecting the Root Filesystem on Ubuntu with Overlayroot

In certain situations, it is desirable to have a read-only root filesystem. This prevents any changes from occurring on the root filesystem that may alter system behavior, and it allows a simple reboot to restore a system to its pristine state. Examples of such applications include kiosks and embedded devices. Using overlayroot on Ubuntu makes creating a read-only root filesystem quick and easy. Read more on Protecting the Root Filesystem on Ubuntu with Overlayroot…