Archive for January, 2008

Future of RFacebook

Thursday, January 10th, 2008

I’ve been maintaining RFacebook for the last 9 months or so, and recently I haven’t had the time to maintain it. Unfortunately, I don’t have any current projects that actually use the Facebook platform on a daily basis, so I have had to rely primarily on patches from the community (thank you!) and bug reports from other developers.

When I wrote the initial library, I was fairly new to Ruby and proper language idioms. Needless to say, this has led to some not-so-great designs that are difficult to fix while maintaining backward-compatibility. In particular, the direct access to the API via method_missing has turned out to be problematic for some people. Also, the so-called facepricot chaining (which gives quick access to XML parsing) is particularly poorly designed and I would like to get rid of it if possible.

Ideally, RFacebook 1.0 would do away with the cruft and simplify some of the design. As I considered certain aspects to redesign, I definitely re-evaluated Facebooker, a very solid looking Gem and plugin from Chad Fowler and some other experienced Ruby guys. Much of the improvements I would like to make to RFacebook are already present in Facebooker - API objects converted to Ruby objects, API methods are Ruby-ified, solid documentation, simplified Rails support, etc. Since RFacebook 1.0 would break a lot of applications (with the removal of facepricot and others), I am considering deferring to Facebooker for future Rails Facebook development. I am a big fan of not reinventing the wheel, and I feel that the Facebooker team has already achieved the improvements that RFacebook needs.

Through the process of writing and maintaining RFacebook, I’ve definitely learned quite a bit about Ruby, Rails, behavior-driven development, and the community around it all. Your comments, feedback, and encouragement helped make it a valuable experience. However, at this time I would really like to take on some new projects.

Regardless, I definitely do not want to leave existing RFacebook developers hanging. If you want to take over the RFacebook project, please let me know via the comments. I have also contacted the Facebooker developers to see if they are interested in a compatibility module (which I would write) for Facebooker to ease the transition from RFacebook to Facebooker. Please let me know your thoughts.

RFacebook 0.9.8 out, reinstall your plugin too

Wednesday, January 9th, 2008

Hey everyone, RFacebook 0.9.8 is released. The core API has been cleaned up a bit (although Facepricot is still in there, I plan on deprecating it in version 1.0 in favor of something much less hackish). The biggest change is that the plugin is now COMPLETELY separate from the Gem. This means that you’ll need to reinstall your plugin this time around:

script/plugin install svn://rubyforge.org/var/svn/rfacebook/trunk/rfacebook/plugins/rfacebook

The good part is that the Gem is easier to update on a less-frequent basis, while the plugin can get some serious work/reworking without requiring a Gem release each time. Also, everything should be Rails 2.0 compatible now. Let me know if you still experience any issues with Rails 2.0.

RFacebook to see some updates and code slimming

Friday, January 4th, 2008

It has been a while since I’ve updated RFacebook, and I finally have the time to do so. Again, I’m always looking for dedicated help, since my time is limited as it is. The project has gotten quite involved, and recent API changes + the Rails 2.0 release has complicated it somewhat.

In spite of the backlog of bugs and feature requests, you should see some improvements over the next few weeks. I plan on slimming down the code as much as possible, as well as removing some poorly designed portions of the library. I’ll have a few interim updates (0.98 and 0.99), but RFacebook 1.0 will have a much more solid core, with the Rails extensions pulled exclusively into a plugin.

Please let me know your biggest complaints with RFacebook (features, bugs, and code design) so that I can address them all fully. Good luck Facebooking!