part of the groupelephant.com family
beyond corporate purpose

All posts by Piet

Fancy a Natter ?

25 Oct 2010

What’s a Natter?

natter |ˈnatər| informal
verb [ intrans. ]
talk casually, esp. about unimportant matters;
chatter : they nattered away for hours.

Most of us here at 10to1 are avid Twitter users and being the social media experts geeks that we are we’ve also got a Facebook account. The problem is; we like Twitter much more than we do Facebook. So when a Facebook-friend commented on something we’ve posted via Twitter, we didn’t know it until hours later.

So we felt an itch and the Rails Rumble was an excellent excuse to scratch it.

What’s a Rails Rumble?

The Rails Rumble is an annual 48 hour web application development competition in which teams of skilled web application developers get one weekend to design, develop, and deploy the best web property that they can, using the power of Ruby and Rails.

We (Jelle, Koen and me) teamed up with Nick to participate in this year’s event. We did the nuts and bolts while Nick made sure the app looked as well as it does.

And it sure as hell looks as tight as we could have hoped for.

Zot Franske

Since we only had 48 hours to make it, we didn’t get in as much features as we wanted but all the basics are there.

  • Did we have fun? Yes.
  • Will we participate again? Yes.
  • Are we proud of our 13th place? Yes. (13 is the new 1)
  • Did we sleep much? No. (OK: I overslept for 6 hours; quit whining Jelle)
  • Did it have bugs? Yes, some.
  • Could we have done it without Rails? No. (Okay, maybe in Sinatra)
  • Will we push the app even further? Yes. (It got an update last night, which fixed some bugs and made some performance enhancements).

How does it work?

After you sign up with Natter, it will listen to your tweets and post them to Facebook, enhancing them to atual Facebook posts if they contain an URL or an image.

Example

Now, dear reader, I can tell you’re not impressed but here’s the kicker; whenever a Facebook-user posts a comment to a Natter posted tweet on Facebook, Natter will post this comment on Twitter. And, you can reply to it, straight from the confines of your sweet minimal (before they redesigned) Twitter.

So now you’ve gone full circle for al your social networking needs. (Unless you’re one of thos Jaiku or IRC guys)

Yeah, but how does it work?

We couldn’t have done it without standing on some pretty big shoulders; so we’re using (like most of our webaps) Rails coupled with the following gems: twitter_oauth for handling all things Twitter, facebook_oauth for all things Facebook, bitly to make the Facebook links small and kinda sexy (I’m stretching the limits of sexy here, it’s more javacool and to make sure the server can handle it all we’re using Resque for queuing all background jobs (pretty much everything is a background job).

The whole thing is hosted on a, Rails Rumble supplied, Linode slice which also hosts our MySQL db. We’ve only brought it down once, and that was pretty much our own fault (note to future self: decide who puts the indexes on the DB), so it’s safe to say Linode rocked.

What did we learn?

  • A sexy design works
  • A painless signup process works
  • Sleep is overrated
  • We need to prepare better (Texts, flow of the app, design sketches,…)
  • Testing stuff like this was hard. (Study up on how to test your app)
  • Hard deadlines work (We could only submit our final build 10 minutes before the deadline)
  • Sysadmin-skillz (or rather devops /ht @frank_be) are needed
  • Being able to split up your app in tasks suited for one person, is a plus.

Capfire, post deploy notifications to Campfire

02 Apr 2010

We use github for all our projects, and we use Campfire as our office backchannel. So when we saw this post we (or maybe it was just me, I’m a sucker for this kind of stuff) knew we had to have a way to easily use this on all our projects; so here it is: Capfire

What it does

Besides being a kickass gem name, it sends a message to Campfire each time you deploy an application. In this message is a link to Github’s compare-view, so you can easily scan just what has changed since your previous deployment. Since it’s being sent to Campfire everyone can take a peek. Great !

Installation

First install the gem:

gem install capfire

First run

script/generate capfire -k campfiretoken -a campfireaccount -r campfireroom

This will add a snippet to your config/deploy.rb to include the capfire capistrano script and will create a file in your home folder named .campfire containing your token, account, room and a configurable message (the parts between ##’s are substituted).

Like this (be careful with your spaces):

campfire:
  account: 10to1
  token: thishastobeyourtoken
  room: General
  message: "I (#deployer#) deployed #application#
 with `cap #args#` (#compare_url#)"

If you’re not sure about this automagically thing, you can do it by hand as well, create the ~/.campfire file and add the following to your config/deploy.rb:

begin
  require 'capfire/capistrano'
rescue Object
  # Don't force other users to install Capfire.
end

Subsequent runs

Since a ~/.campfire file already exists you can just run script/generate capfire to add the snippet to your deploy script in each app. You can run this as much you want it will only add the snippet once. No worries.

If someone else on your team doesn’t have capfire installed, he won’t notice a thing (but be sure to mock him).

I hope you, dear reader, like it as much as we do :)

Barcamp Antwerp 2010

17 Feb 2010

It’s that time of year again: the sky is blue, the grass is growing, and the air is fragrant with the smell of flowers. The kind of days that leaves most people feelings happy and energized.

Okay, not entirely true at the moment but it is that time of year, March 6, when Barcamp Antwerp takes place. Always a good day to be had; discussions, presentations, new ideas and coffee.

Since a barcamp isn’t necessarily about anything the coffee better be good. So we’ve taken the liberty to do just that, enjoy and see you there !

####Note: Hi ! I‘m new here, after reading this I signed up for the job and am looking forward to “help us develop the most awesome applications”.