Design & Development

Tools, tips and tech for software makers.

Given I am signed in using capybara-webkit

Inspired by the blog post Capybara, Cucumber and How the Cookie Crumbles, I wanted to write a Cucumber step that signs a user directly into my application, without the need to navigate to a log-in page and submit a form. I am not thrilled about the stubbing and monkey patching discussed in that post, and...

Read More »
Also posted in Testing, Tools, Web | Tagged , , , , , , | Leave a comment

How to write good requirements

Requirements are pretty ubiquitous in the embedded world. They are used to define tasks, help coordinate large development efforts, and to communicate the behavior of the desired end product between the developers and the customer. When done right, requirements can be very useful. Unfortunately, if you spend much time working in the embedded world you…

Read More »

Also posted in Embedded Software | Tagged , , | 12 Comments

You Should Read: The Visual Language of Dashed Lines

dashes

How heavy should this line be? Should I use weight, value, or dashes to de-emphasize it?

Also posted in Visual Design | Tagged | Leave a comment

Writing a good blog post—An 11-step process

At Atomic Object, we all participate in writing for the company blog. It can be hard to come up with new ideas that feel worthy of being published. However, once the rhythm of writing is established, I find the ideas and writing come easily. In addition, it’s so easy to publish on the web that…

Read More »

Also posted in Web | Tagged , | Leave a comment

Objection is over 1 year old

Objection, the dependency injection library initially written for the iOS application SideReel, is over a year old. Shawn Anderson and I created it when he candidly pointed out how awkward my previous attempts at Dependency Injection were in Objective-C (NIB, manual construction, factory methods). Shawn’s honesty (something we all appreciate here at AO) motivated me…

Read More »

Also posted in Culture, Languages, Mobile, Pairing, Uncategorized | Tagged , , , , , | 2 Comments

Advanced REST/API Resources

I recently wrote a small wrapper for the Flickr API in backbone.js. I found the Flickr API to be a little strange but very consistent in its strangeness. When developing a web-based application, thinking about your API can help demystify design and responsibility of controllers, models, routes etc. Here are a few resources I’ve found…

Read More »

Also posted in Web | Tagged , , | Leave a comment

Higher-order Contextual Functions in Clojure

A lot of functions in Clojure take the form (f args1* f2 args2*), where (f args1) represents a context and (f2 args2) represents a computation to perform in that context. I’m going to call this Clojure’s “contextual function” pattern (since I’ve never seen it named before). This pattern is easy to overlook, but it’s powerful,…

Read More »

Also posted in Languages | Tagged | 3 Comments

CSS3 Transitions – Spicing Up DOM Changes

In one of the web projects I have been working on we have a handful of elements on the page change size when they were “toggled”. This was a simple add and remove of an active class (via jQuery’s addClass() and removeClass()) that caused our elements to snap open and closed. The user experience was…

Read More »

Also posted in Visual Design, Web | Tagged , , , | Leave a comment

Automotive or software, design is design

I love cars. I find inspiration in the design, engineering, and history of cars. For the second year now I’ve attended AutoWeek’s Design Forum with my daughter. This very well-run event is a half day of talks and panels from luminaries in the field of automotive design, followed by guided tours of the North American…

Read More »

Posted in Design & Development | Tagged | Leave a comment

Balancing safety and convenience

In most languages, such as C, C++, Ruby, Python, and Java, if you ever attempt to send a message to nil (or dereference a NULL pointer), one of two things will happen: either your program will crash, or a runtime exception will be thrown, which could also lead to your program crashing.

Also posted in Languages, Tools, Uncategorized | 6 Comments