Project/Technology Showcase, April 25th

Carbon Five and Good Eggs are joining up to show off some of the projects they’ve recently worked with an emphasis on the technology that made them possible. We want to share what we think is interesting and what we’ve learned along the way.

Genetic Symphony – A Genentech, IDEO, and Carbon Five collaboration for TED2012. Participants provide a genetic sample via a cheek swab, which is processed overnight and used to generate a unique song and visualization. Tech includes: Backbone, CoffeeScript, Audia, PhoneGap, SoX, RMagick, Rails, Jasmine and Sinon.

Presenters: David Hendee and Sean Durham, Carbon Five

ChatOS – A collaborative UX/programming experiment that allows participants to build a shared real-time web experience. It provides the basic plumbing that makes collaborative programming possible and leaves it up to the participants to build the tools and design the interactions. The talk will provide a live, interactive demonstration, and will briefly cover the technology behind the application including Node.js, Mocha.js, HTML 5, Web Sockets, and Mongo DB.

Presenter: Alex Cruikshank, Carbon Five

Escape from the Pyramid of Doom – If you set out to build real, reliable apps using Node.js you will need to tame the callback-based asynchronous jungle you find yourself in. For the last several months at Good Eggs we have explored solutions that include a combination of third party libraries, homegrown libraries, and convention. For this talk, we use our journey to provide a survey of different techniques for writing asynchronous code in Node.js including fibrous, the library solution that we currently use to support our established conventions.

Presenters: Alon Salant and Randy Puro, Good Eggs

Q & A – We want to continue discussing anything already mentioned, or go over other topics that might be interesting (e.g. js testing, tech stacks, hosting, project management, etc).

Wednesday April 25th. Doors at 6 and talks start around 6:30. Food and drinks will be provided. Huge thanks to CBSi for the venue and sponsoring food/drinks!

Please RSVP on the SF JS meetup event page!

Posted in Process, Web | Tagged , , , , | Leave a comment

Tech Talk: Seth Ladd on Dart

Seth Ladd (Google, @sethladd) joined us last week and presented An Introduction to Dart: The structured web development platform. You should check it out, the folks over at Google are doing some interesting things. Dart is young and has potential.

Learn more about Dart at http://dartlang.org.

Thanks Seth! Looking forward to the next one.

Posted in Web | Tagged , , , | Leave a comment

UX Recipe: Developer Wireframe Walkthrough

This is the first in a series of posts highlighting Lean UX practices at Carbon Five. They are presented as ‘recipes’ for you try out for yourself, then alter them to make them your own.

Wireframe Walkthrough

While more and more of our clients are engaging us in full-service design/build projects, we still enjoy working with outside or on-staff designers. And even when we are providing design services, we always want to maximize the collaboration between the designers, engineers and business owners on our projects.

Last year, Janice Fraser of LUXr introduced us to an activity called the “Wireframe Walkthrough.” It’s probably something you’re already doing on projects without quite putting a formal name or process around it. We’ve taken the activity and deconstructed it a bit, added our insights, and put a fancy title on it in the hopes that others will try it out and add their experience and wisdom.

Continue reading
Posted in Design, Process | Tagged , , , , , | 1 Comment

How to Test External APIs

Integrating with an external API is almost a guarantee in any modern web app. To effectively test such integration, you need to stub it out. A good stub should be easy to create and consistently up-to-date with actual, current API responses. In this post, we’ll outline a testing strategy using stubs for an external API.

Continue reading
Posted in Process, Web | Tagged , , , , , | 17 Comments

Customizing the iOS keyboard

Our applications need input and the default iOS keyboards are often not optimally suited to providing the sort of data we want. When we find that we really wish the keyboard had some extra controls or want to help our users enter a specific set of symbols it is time to customize our apps’ keyboards.

Continue reading
Posted in Mobile | Tagged , | 6 Comments

Supporting Cross-Domain AJAX in Rails using JSONP and CORS

The recent rise in popularity of client-side JavaScript MVC frameworks has led to a revival of web apps with thick clients. As more logic is moved to the client-side, the need to communicate with servers in different domains becomes more common. Unfortunately, JavaScript’s same origin policy prohibits you from making a request to a server in another domain. Two ways to circumvent this restriction are JSONP and CORS. In this article, we’ll take a look at supporting both of these in a Rails app.

Continue reading
Posted in Mobile, Web | Tagged , , , , | 9 Comments

Lunchtime Tech Talk: Tom Dale and Yehuda Katz on Ember.js

On Wednesday, Tom Dale and Yehuda Katz joined us for a lunchtime tech talk. Tom gave a great overview of ember.js, a new JavaScript MVC born out of the work done on SproutCore 2.0. Here’s the video of the presentation and Q&A that followed:

Happy JS hacking!

Posted in Web | Tagged , | 4 Comments

Beginning Outside-In Rails Development with Cucumber and RSpec

The RSpec Book defines outside-in Rails development as starting with views and working your way in toward the models. By developing from the outside in, you are always taking a client perspective at each layer of the application. The end result is an absolute minimum implementation, consisting of simple, expressive interfaces.

Outside-in development doesn’t require any specific tool or language. This article will demonstrate it in Rails, using two popular testing tools: Cucumber and RSpec.

Continue reading

Posted in Process, Web | Tagged , , , , | 19 Comments

Monkey-Patching iOS with Objective-C Categories Part I: Simple Extensions and Overrides

Have you ever wanted to introduce new functionality to base classes in the iOS SDK? Or just make them work a little bit differently? In order to do so, you must enter the wild and dangerous world of monkey-patching.

Monkey-patching is extending or modifying the behavior of code at runtime without changing its original source code. You can monkey-patch any code, it doesn’t matter whether it’s your own code or not. This is distinctly different than traditional sub-classing because you are not creating a new class, instead, you are reopening an existing class and changing its behavior.

Monkey-patching is possible in Objective-C by using categories. In fact, the definition of a category practically matches that of monkey-patching:

"A category allows you to add methods to an existing class—even to one for which you do not have the source."

In this series of posts, we’ll use categories to add and change methods, to add new instance variables and properties, and introduce swizzling, a technique that allows us to extend and preserve existing functionality. Continue reading

Posted in Mobile | Tagged , , | 5 Comments

Display Line Numbers on Embedded Gists

I've been working on a post here for C5 and in order to make my points, I was referencing gists hosted by GitHub. When those gists were shown as embeds, the line numbers, and thus the clarity of my documentation, was lost. We use Markdown for the creation of the texts so I needed something I could write inside of a Markdown post that would be applied as CSS.

Thanks to these tips:

  1. http://www.whyhat.com/2012/01/line-numbers-on-embedded-gists
  2. http://stackoverflow.com/questions/524696/how-to-create-a-style-tag-with-javascript

I was able to come up with the following:

Posted in Web | 4 Comments