Bendyworks

What's happening in

Never trust developers who don't embrace their inner geek. We're actively engaged in the pro­gram­ming world, and have plenty to say and share on the subjects that ex­cite us. Consider this our simul­taneous soapbox, corkboard, and scrapbook for all things geeky.

Article

Posted on 02.03.12 by Matt |

Giving back to the community

Here’s how Bendyworks has given back to the community in the past week:

Jim recorded an interview with the fine folks at EngineYard about our experiences working with them. Look for the link to the audio soon!

Madison Ruby registration and Call for Proposals are now open!

Brad started a gem called guard-readme-on-github that allows you to preview your README files as if they were already pushed to Github. Just pull it into your gemfile and set up your Guardfile with:

[bundle exec] guard init readme-on-github

Matt worked with Angel N. Sciortino on schedule_fu and rschedule.

Brad and Matt made a change to the popular heroku_san gem to store the last deployed git commit SHA in Heroku config variables. You can view the pull request for this feature in the mainline heroku_san ...

Article

Posted on 02.02.12 by Brad |

ConciseKit

Note: This article was cross-posted from Brad’s personal blog: Naming Things is Hard

Over the last month at Bendyworks, I’ve been pairing with Jaymes on our latest initiative: adding iOS development to our repertoire. As a Ruby developer learning Objective-C and Cocoa, you might expect me to be a bit put off by a number of things, and you’d be right. But I can appreciate static-typing and immutability-by-default (hell, I’ll even applaud that)… the one thing that irks me most—and yet could be fixed rather easily—is the ridiculously long method names.

“That seems an odd mountain to die on,” some of you might be thinking. Well, what kind of programmer would I be if I didn’t have strong opinions? ...

Tutorial

Posted on 02.02.12 by Jaymes |

UIAutomation and Pusher

UIAutomation is Apple’s answer to integration tests. It allows you to drive and run assertions against your application using a javascript library that interacts with user interface elements. It’s great to have such a powerful tool, but what if you have an application that depends on external triggers, such as Pusher events?

Let me introduce you to UIAHost. More specifically, it’s method performTaskWithPathArgumentsTimeout. What this allows you to do is execute a script in the flow of your tests.

Say we want to execute the ruby script:

All we have to do in our UIAutomation script is this:

That’s a pretty simple ruby script, and will fail to find the pusher gem on any of our machines at Bendyworks because we use ...

Article

Posted on 01.31.12 by Jaymes |

Our first iOS app

We just launched our first iOS app: TravisCI! It lets you browse and view live updates of builds submitted to Travis-CI.org.

We chose to build a native front end to Travis CI in order to hone our iOS skills while working with a RESTful API. During development, we came across many neat libraries and tools we’d like to share with you:

RestKit

The first library we used is RestKit. RestKit enables any iOS/OSX application to interact seamlessly with a restful web-service’s resources. Once the appropriate object mappings are defined, a simple call, such as the one below, asynchronously fetches the repository objects from Travis, parses the returned JSON and saves them to core data using a pre-defined mapping. ...

Article

Posted on 11.04.10 by Brad |

AtaconApp, Facilitating Conference Participation

Over the course of 48 hours, Stephen, Brad, Nick and Jaymes cranked out one of the 180 web applications to hit the Internet thanks to the Rails Rumble. The result of their efforts is AtaconApp, an app to facilitate conference participation.

Starting with a Linode Stack Script written by Brad Grzesiak and Levi Cook, the team aggressively ignored the typical, shiny web 2.0 style and instead went for substance, Bendyworks’ core strength. Heavily using external libraries and services such as Twitter, Google Maps, and Pusher, the guys developed the following features:

  • Real-time twitter stream for a conference’s hashtag
  • Sign in with Twitter OAuth
  • Tweet from the web interface
  • Presentation schedule ...