bitfluent

Kamal Fariz Mahyuddin on Ruby, Rails, Apple and being a Dad.

Reach me by email.

Feb
19th
Tue
permalink
Feb
18th
Mon
permalink

Github, tweaked plugins, and how it changes the dynamics of opensource contribution

As I use various plugins in my Rails apps, I find that I always need to make small tweaks to the plugin or the files it generates. This is why I like to use something like piston or braid to manage the plugins. It allows me to make any change at will and know that it will be part of the app when I deploy, but at the same time keep up with any new upstream changes.

The problem with this is that I can’t easily centralize my hacks so that my other apps can use them. I could host the plugin myself but I want to be tethered to upstream for the occasional update.

I found the solution in Github.

Just today, I cloned the restful_authentication plugin so that I can move out the model authentication concern into lib/authenticated_base.rb. This will leave your User model squeaky clean, like so:

class User < ActiveRecord::Base
  include AuthenticatedBase
end

You can now focus on adding new associations, validations and methods that are unique to your app without being distracted by all the authentication cruft. Credit goes to the caboo.se sample app for exposing me to this organizational technique.

So, what I have now is twofold:

  • a tweaked plugin that others can freely use in their projects
  • an opportunity for the changes to be merged upstream (Github notifies the original creator of the repo, if I’m not mistaken)

This marks a turning point for me in my opensource contribution. The barrier to entry for pushing patches is so low that I expect to see myself cloning a bunch more repos and making my teeny tiny fixes.

You can imagine a future where, for example, the Rails project is on git and that there would be many competing forks, each with their own flavor. Heavy contributors like Pratik Naik and the Russian Mafia could have Lifo Rails and Performance Monster Rails respectively. Suddenly, Rails is no longer just a web framework, it’s a web framework distribution.

Anyway, if you want to get clean:

$ git-submodule add git://github.com/kamal/restful-authentication.git vendor/plugins/restful_authentication

(I’m sure you can use braid, but I’ve never gotten it to work with a git repo)

UPDATE: Cristi Balan, the creator of braid, emailed to let me know mirroring a git repo with braid only works if you have a pretty recent git, above 1.5.4 or so.

Jan
31st
Thu
permalink
Jan
30th
Wed
permalink

How To Get Your Post Title To Show Up In Tumblr

After months of using Tumblr, I finally found out how to get the post title to show up in a permalink page. Check out the pastie.

The above alone will probably help earn a few more Google Juice points.

permalink

Breaking Down HashRocket's 3-2-1 Launch Price Structure

A week ago, HashRocket shook the Rails consulting world by storm with a unique offering called 3-2-1 Launch in which they will launch your app in three days for USD$30,000. Obie has since given more details on how they operate 3-2-1 Launch, such as the number of developers dedicated to each project and the pre-implementation lead time. This post aims to estimate how much all this breaks down to in terms of rate per hour, and if it’s a good bang-for-your-buck deal.

Let’s estimate the hours spent on a typical project, based on details given by Obie.

  1. Lead time of three weeks for User Stories and High-fidelity mockups. I estimate two people are dedicated to this task, a designer and a developer.

    Lead Time Hours: 40 hrs x 3 weeks x 2 people = 240 hrs

  2. Three days of implementation with 4-6 developers (paired)

    4 developers: 8 hrs x 3 days x 4 people = 96 hrs

    6 developers: 8 hrs x 3 days x 6 people = 144 hrs

  3. So, the total hours hours on a project will be in the range of 336-384 hours.

Now, let’s divide this up by $30,000 to get the effective rate per hour

4 developers: 30,000 / 336 =~ $90/hr

6 developers: 30,000 / 384 =~ $78/hr

This gives us the estimated consulting rates of around $78-90 per hour. This is a pretty standard rate for an experienced Rails developer. Suddenly, the $30,000 price tag doesn’t seem like a lot. BUT THAT’S NOT ALL! They throw in other value added services like client mentoring, deployment and post-production. Based on these factors, I think 3-2-1 Launch offers a pretty good bang for the buck.

However, there are still some questions unanswered by the post. For example, how long is their post-production support for? What is in the scope of post-production - monitoring, bug fixes, small enhancements? Are hosting fees for Amazon EC2 and S3 part of the $30k (I doubt it)? Do the clients receive the full source code (most probably)? Additionally, what will the cost model be if the client wants to take the app past 1.0 (I know for a fact that traditional consulting makes a killing in Change Requests)?

All in all, HashRocket is a pretty cool concept and I’m sure many will follow suit to offer similar products.

Disclaimer: Obie and I are Rails Rumble 2007 alumni (my team’s entry was Redux), so I can definitely connect with the 48-hour rush feeling. Unlike Obie, I swear not to do it ever again. Apart from that, I don’t know Obie personally.

permalink
This is a bit old, but I didn’t know Guy Kawasaki was a great public speaker. Watch it and be prepared to take notes.
Jan
29th
Tue
permalink

Ruby/Rails Conferences Shared Calendar

I’m compiling all the event dates for Ruby/Rails-related conferences in convenient Google Shared Calendar based on the initial listing by Jay Fields in a recent blog entry. If you’d like write access, email me at kamal.fariz@gmail.com and I’ll give it to ya.

ical link

Google Calendar link

Looks like April is Ruby conference season with five conferences happening in five different countries!

Let me know if I’ve missed out any events.

Jan
28th
Mon
permalink
I&#8217;ll be giving a talk on Ruby on Rails this Friday in Penang as part of an MDeC event. I&#8217;m aiming to demo how you can build an archetype Web 2.0 application using Rails and a bunch of plugins. If you are interested to attend this free event, register here.
I’ll be giving a talk on Ruby on Rails this Friday in Penang as part of an MDeC event. I’m aiming to demo how you can build an archetype Web 2.0 application using Rails and a bunch of plugins. If you are interested to attend this free event, register here.
permalink
permalink
Gabe & Max’s Internet Thing