Starting this week, I plan to host an email interview with the developers of cool software from Singapore. This week, I had a conversation with Choonkeat. Choonkeat is an action oriented geek who has developed two useful and popular “web 2.0” services: rssfwd and more recently, sharedcopy. I emailed Choonkeat to ask some questions on what makes him release projects one after the other and each in a different territory of web 2.0. Here are his answers.
First you created the RSS to email service and now SharedCopy. What makes you create such services?
Identifying that something is lacking in a program/software, finding a simple solution for it and realising that I can actually do it. This is one of my primary joys as a programmer - that I can fire up a text editor just go do something instead of having to wait for somebody else to make it happen.
RssFwd started as a tool that I used until Taco Oosterkamp contributed with a support request and dropped me a list of constructive suggestions on how I can improve it. Traffic picked up right after that. Yeah, my “helpdesk” literally turned my “business” around!
How much time do you devote to either of them?
On average of 3 days a week out of my weekday evenings and weekends.
What technologies are you using on sharedcopy, rssfwd?
RssFwd was originally written in Perl - the primary scripting language I knew then. But re-written in Rails 3 days later because I needed the availability of a Web UI but was not able to get Perl running in Apache (one of those days when you can’t get anything to work!) and then Rails was there whispering, beckoning me, “script/server… script/server…”. Got me at my moment of weakness. I caved in. (“script/server” refers to the built-in ruby web server that comes with Rails and “just works”)
RssFwd consumes various feed formats (RSS, Atom), OPML format for subscriptions, XSLT for transforming that OPML to a neat webpage, processes multi-part emails and various languages. Along the way I learnt some voodoo tricks to ensure HTML emails work in obscure e-mail clients, and also how not to be blacklisted as a spam service. As it happens, the Rails way of handling emails is the easiest I’ve seen, so that’s a bonus.
SharedCopy on the other hand is a lot of Javascript (DOM and CSS). It is not exactly an AJAX application and I’m only using simpler mechanisms to get things done. e.g. I use bookmarklet and cross-site scripting (XSS) which is something that is more often associated with phishing and other evil activities. Firebug has been spectacularly helpful… and oh, SharedCopy happens to be running on Rails, but that’s the nondescript part of it ;-)
I’m using Starfish to power my API callbacks feature
All code gets written using either vim or Eclipse. The projects use Subversion for version control and MySQL for databases. The services are VPS hosted on Spry and Rimuhosting.
Primary testing browser is Firefox. VMWare Fusion is used to test with IE6 and IE7.
How long does it take to get a project off the ground?
Getting things to work from scratch is pretty exhilarating and is usually completed in matter of hours. If it takes any longer, I would’ve been too lazy to do it anyway.
But after that, a lot of time goes into learning from actual usage (usually my usage) and evolving the product along. Another big time drainer is the visual aesthetics. I’m not at the stage where apps looks good right off the bat, but I’m working on getting there. For SharedCopy, other than browser compatibility checking, I also had to do something not usually required a webapp - website compatibility checking.
How many people currently use sharedcopy, rssfwd?
SharedCopy is pretty young, so she only has a handful of people kicking tires. RssFwd has about 29k unique and active users.
What are the plans for the future for sharedcopy or rssfwd?
No real plans for both other than “be useful”
For Rssfwd, features for the end-users has kinda been frozen for a while now. She does as-advertised - nothing more - and a lot of people love her for that. She could improve in performance and monitoring statistics though. And also she’ll continue to be my playground simply because there is real data and traffic to try things out with.
SharedCopy is more flexible and can probably serve a bigger variety of needs, e.g. as an online bookmark, collaborating tool, quick and dirty diagraming, bug reporting, etc. Still at the stage of evolving her character now.
API for callbacks has been just been released, with Basecamp and Twitter being “bundled” as examples with source code, so let’s see what uses come out of it.
What challenges do you face in developing for sharedcopy or rssfwd.
A unique challenge of SharedCopy is that the script is hosted in “hostile environment”. i.e. the javascript needs to run in somebody else’s web page (with their javascript). Usually, as Javascript or CSS authors we can pick our HTML doctype (or at least know for certain) and know how it’ll affect the rendering engine - but in this case, I don’t have that luxury.
There is not a lot of literature on getting Javascript working in such an environment, hence a lot of the learning is by fire.
Looking back, is there anything you would have done different with rssfwd - given the new technologies you are able to access now?
Polling of content takes up a lot of bandwidth and resources. Adopting a more distributed nature would definitely help, especially if it allows a more casual participation of those resources. How? I don’t know yet.
What do you think you would be doing next? Wat do you see as you develop for the web?
I don’t know. There’s not a lack of ideas, but most of them will not be executed simply because I won’t have a need for them. I’m very easily distracted, so I only create applications that I need as that would at least make me complete the project!
Predictions? I’m not good at it.
Technorati Tags: web 2.0, singapore, sharedcopy, rssfwd