Here are a few tools we’re using on my current project, a non-trivial Ember.js application, to do just that.
Read more on Practical Abstraction in Ember.js…
I recently had the opportunity to travel up to the fall career fair at my alma mater, Michigan Technological University, with fellow MTU alum and Atomic developer Jeanette Head. We had a great visit. It was exciting to be back on campus looking for engaged, smart software developers to join our team, and I left seriously impressed by the number of great connections we made.
If you’re wondering how to get my attention at a job fair, or when applying for a position at Atomic Object in general, here are a few hints. Read more on How to Get My Attention at a Job Fair…
The boundaries between our digital world and physical world blur a little more every day. Our houses and cars are becoming increasingly controlled by computers and connected to the internet at large.
As a software developer and driving enthusiast, I’m particularly interested in the intersection of cars and software. I’m excited by a large number of the improvements in vehicle control and utility these changes have enabled. The stability control system in the Nissan GT-R, for example, is astoundingly robust. Naturally, then, I’m curious about what modern control systems and vehicle communication channels might enable enterprising enthusiasts and makers to accomplish.
But there is a darker side to the connected world as well: people with malicious intent are increasingly able to take advantage of the same systems. Our cars are hackable. The potential impact depends on the vehicle and whether the hacker has physical access to it, but the possibilities range from merely inconvenient to downright dangerous. Read more on Hackable Cars, for Enthusiasts… and Others…
Karlin Fox and I have been using RubyMotion and ReactiveCocoa to build an iPad application for our current project. We’ve enjoyed the different paradigm and the way we’re able to stream data through our application. Adapting TouchDB live queries to ReactiveCocoa signals has been particularly rewarding.
But what about unit testing our iOS app? Unit testing in iOS has matured a lot in the past few years, and RubyMotion brings testing along from the start of a new project. However, development paradigms like FRP have a dramatic effect on how we test, what we test, and what tools we choose to build our tests.
Mocking vs. Real Objects
We’ve been alternating between mocking out signals and creating real signals we can instrument in our unit tests. Each method has its advantages.
Read more on Unit Testing with ReactiveCocoa and RubyMotion…
RubyMotion promises to bring the clarity and concise syntax of Ruby to iOS and OS X development. ReactiveCocoa’s aim is to help reduce complexity by deriving state instead of declaring it. Sounds like a great combination, right?
There are some complications. First, the documentation and examples almost all use the RAC and RACAble macros provided by ReactiveCocoa, something we can’t use from RubyMotion. Bummer. And RubyMotion’s bridgesupport doesn’t allow us to call Objective-C methods that take blocks typed as id. Rats. Fortunately these can be overcome, thanks to some helpful folks on the internet, so let’s get started.
Read more on ReactiveCocoa & RubyMotion: The Setup…
I’m currently working on an Ember.js web application that is a basic CRUD app with a twist — we don’t know all of the form fields or model attributes ahead of time, but rely on a JSON document to specify the names and types of attributes for which we need to render form controls. This presents some interesting challenges, the most significant being that our input elements don’t know what to bind their value to until they are instantiated.
After trying a few different approaches, we settled on using a pair of observers to accomplish what a more direct binding could not in this scenario. One observer watches the input’s
value property and updates the remote property value, and the other observer watches the remote property and updates the input’s
Cut to the chase and check out the jsbin example, or read on for a few more details.
(This example uses Ember.js 1.0.0-RC.1, and we are using the same general solution in 1.0.0-RC.3.)
Read more on Dynamic Binding in Ember.js Using Observers…
Taking notes has been a part of my life since high school, in one form or another, but the tools I’ve used have varied quite a bit. Recently, a couple of my current project teammates and I have been trying out Mou for rapid note-taking during meetings and capturing decisions we make along the way. There are a few things that have made it a really good fit.
I even used it to write this blog post:
Read more on Why Mou Is My New Note-Taking App…
Posted in Tools Tagged markdown, mou, notes
It’s not every day that a new meetup group springs up in Grand Rapids, but it’s not an altogether uncommon occurrence, either. What is uncommon is the start of a group that gets me personally excited and draws a sizable crowd.
It happened with the GR Web Dev group in early 2011, and now it’s happening again with GR Makers.
So, what makes these groups special?
Read more on The Next Great Meetup Group: GR Makers…
A little over a year ago, I was made aware of Scott McCloud’s book Understanding Comics as a source of inspiration and direction for building impactful storyboards during software creation. I acquired a copy of the book shortly after and have read it several times since. It’s good.
If you’ve read the comic that illustrates Google Chrome’s superiority, you’ve seen a sample of Scott’s work and proof that his writing is applicable to effectively telling stories about how an application will improve the future for its users.
Two relatively simple things have stuck with me most:
- There is a range in visual abstraction — from realistic to iconic — and where images fall on that spectrum has a huge effect on the resulting communication.
- In image sequences, distance on the page is roughly equivalent to the passage of time.
Read more on Compelling Storyboards: Learning from Comics…
We have been using OCMock to assist our unit testing in a RubyMotion application for a few months now. It was on our radar from the beginning because we’ve used it in past iOS development projects, and it has served us well. It’s a well-known library, and we know it can do the job, but it does leave some room for improvement. Specifically, it feels unnecessarily verbose against the the relatively concise backdrop of MacBacon and the Ruby language.
Wouldn’t it be nice if there was a more Ruby-like mocking library? Good news — thanks to Francis Chong’s work on motion-stump, there is!
Read more on Mocking in RubyMotion: OCMock, motion-stump…