This is the second interview in the series of interviewing Web 2.0 hackers from Singapore. Today we get to see Herry. Herry is a hacker and a designer. He developed the acclaimed BooJetty a social book-bookmarking site that also mashes up Amazon and Singapore National Library (NLB) catalogue information. He talks about BookJetty, what it is like to be a developer and a designer, and of course, the technical aspects of BookJetty and how he gets a project off ground.
What drives you to create web apps like BookJetty?
It was to solve a problem I had, of having to swap between Amazon.com and Singapore NLB online catalogue site – to check out if a book is worth a read and if it is available in the library.
At that time, I was looking for a pet project to learn more about AJAX, and BookJetty idea popped into my mind immediately. That was how it got started.
How much time do you devote to BookJetty?
On average 2-3 days a week, when I got bored between works for client, and on some evenings and weekends.
But at times, work can be so demanding; when I don’t even have much time to sleep, I have stay away from BookJetty for a while.
What technologies do you use on BookJetty?
It was originally written on Java, using Hibernate and Spring framework. But, again, my curiosity for a pet project to learn more about Ruby On Rails (RoR), pushed me to go ahead of this crazy idea of rewriting it from scratch using RoR. Lucky me, it went off smoothly, and the database is on MySQL.
Memory caching (Memcached) was used to cache and speed up NLB response, and to save on the server sessions, I pooled the session IDs.
As for the front-end site, the JavaScript libraries, I mainly used Prototype, Scriptaculous and X-Library. IDE, none other than RadRails. Subversion for the version control, and server co-located at Qala, running on Ubuntu.
How long did it take for you to get any web app off the ground?
It’s a subjective question, depending on the complexity of the application and the platform you use to develop. Using RoR will be faster. :)
A full fledged application with testing and administration site done properly, on an average, would take about 3 months. While a quick-off-the-ground application, can be done in days to weeks.
How many people currently use BookJetty?
Currently there are close to 200 registered users, mainly local users, as BookJetty only links up with Singapore NLB, but the actual number of users using it could be more, as people don’t need to register to use BookJetty.
6. What is the plan for the future of BookJetty?
To keep developing it into a full fledged social book-bookmarking site, and to link up with more libraries, so as to open it up to the world.
What challenges do you face in developing for BookJetty?
The biggest challenge I would say the part that links it up with NLB. It looks easy on the surface, as it is not just about passing parameters and screen scrapping.
In the backend, there are some sessions involved, thus the sessions have to be managed carefully, as some may have expired too; and due to the asynchronous requests from BookJetty, there is also a need to streamline and improve the query time through caching and session pooling. A lot more work than what I had thought it required.
Looking back, is there anything you would have done differently with BookJetty, given the new technologies now?
Technologically, I think I am on the right track with RoR, it is so much joy to enhance the site right now.
But as for the execution of BookJetty, I should have planned it for global users from the start, the on-the-fly call number availability check is God-sent, but would be quite a challenge to implement it across many libraries.
What do you think you would be doing next? What do you see in your future as you develop for the web?
I have just spent a few months working on a project collaboration system for a client, so I am thinking of spending a few more months to wrap it up as a product, and hopefully be able to learn something from this experience.
I’m not sure if I know about the future, the web is changing so fast. At one moment, you think this is right, later, as you learn, you think that this is stupid. But, at the end of the day, it’s always about how can we be better off with the web, and people will keep pushing the limits of what they can do with the web.
You indicated in your blog that you took a sabbatical to learn about new technologies. How did that help? Is there anyway you think you could have done without it?
Yeah, there is no way I could have done without it. Other than the technical gains, it also gave me a new perspective to what I believe in and what I want to pursue. The one regret I have is, why did I not do it earlier?
You are also a rare species that designs and codes. How do you see the relationship between the two? Given that designers are always bickering about developers. Do you think sometimes being a developer constrains your design view (especially on the web)?
I think the line that separates the two is getting thinner. Now that the basic needs of Create, Read, Update and Delete (CRUD) tasks have been fulfilled, we start to look further; we look at how to do things better, faster, easier, and with more joy.
To push beyond that limit, we need designers with some programming knowledge and programmers who know some design concepts.
Technorati Tags: pluitsolutions, webstandards, webdesign, css, bookjetty, rubyonrails, webapps