Friday, October 24, 2008

Lucene! O' Lucene!

Well, I recently got a chance to evaluate search platforms and it turned out to be a very interesting experience. First, the obvious choice was lets use Google - but it turned out that Google's search engine while doing a great job on the internet is one of the least equipped when it comes to enterprise search - which is more a data mining job rather than what happens on the internet - cross linking, user clicks etc. For example Google lacks faceted search - which is by far the most touted and seeming useful feature when it comes to enterprise data getting exposed on an intranet or even customers. Even the Lucene/Solr combination supports faceted search (though I have yet to try that out!)


Search Engine integration and customization still proves  to be a specialist job though there is a lot of open source which exists in the area. If you are trying to do anything out of the ordinary (like the corner search box which does simple keyword search) or you have a large amount of data then you are in for some heavy duty $$ spending. The major players in the search space are still Autonomy, Endeca, FAST, Recommind, Exalead, Dieselpoint, Vivisimo.

I did find a lot of open source which can be integrated with Lucene though: Nutch, Lingpipe, Gate and Carrot. You could do lots of nifty things with this. Also CNet and Factiva seem to use Lucene.


Read more!

Tuesday, August 12, 2008

Choosing between Drupal, Joomla and RoR

I recently did a quote update for myself where the three strong contenders are when building community sites today. Ruby on Rails has been in news a lot as the coolest app around, in hot demand. Rails has become almost the tool of choice for startups today trying to build something quickly without fear of it getting outdated or hard to manage when they grow. A lot of rails hosting companies have also sprung up.

It may also seem that the debate between Drupal and Joomla needs to be resolved once for all. I have evaluated the two myself a few times without any conclusive results as to which one is the clear winner. I think a lot depends on what you really want to do and your goals.

For example, Joomla may be the ideal choice when it comes to quickly building up a site with nice features which come integrated or are easy to find. However if you need flexibility or are not sure how the site will evolve as time goes by (in other words if you think your website may be your business next year or so), then you need to look at Drupal and RoR. Joomla may not be a wise choice, at least based on what I have read or experimented with. So if you have a bounded task at hand, Joomla is quick, simple, elegant and beautiful.

If you are building a content site and have ruled out Joomla based on the above, then Drupal may be something you want to seriously look at. Though it is based on PhP, a not so hot technology, it has the bones to last you for a long time.

Finally, if you have a custom application you are building from scratch (so there is no previous baggage of Java or PhP)  targeted towards consumers or a community, Ruby on Rails should be your choice.

Enterprise or B2B applications may be best suited for Java and you can pick the Spring/Hibernate framework there which is probably a much more safer approach considering it is much more mature and feature rich.

Finally, here is a great series of articles on Drupal from IBM, who picked it as their platform of choice between Joomla and RoR (though that was back in 2006)

Blogged with the Flock Browser


Read more!

Wednesday, August 6, 2008

Rails v/s Spring v/s J2EE

Well, after having researched and played around with Rails quite a bit, I have a few conclusions I have formed. For example, if you are developing a web Software as a Service model, the best framework or language to use may be Java/Spring since it is clean and lightweight compared to J2EE for doing something much simpler than a full enterprise class application which may be best done using the latter. It is also much more mature than Ruby/Rails which may be more suitable for consumer facing or retail applications like a video sharing or social networking site. If you are starting fresh, I'd highly recommend going with Ruby/Rails to reduce the development cycles required. Other good choices would be Python/Django or just PHP if that works.

While this lays down a few things regarding application development, some important decisions need to be made regarding hosting. CentOS is clearly a winner when it comes to deciding which operating system to use (most stable and free for server hosting). However I am still not clear which "cloud" provider is the best to go with. Amazon's EC2 presents some very flexible options regarding that, but it doesn't seem to come with persistent data. Amazon S3 doesn't seem like a good candidate to fill that hole since it doesn't do a good job of handling a database. There seem to be a large number of good alternatives like GoGrid, Joyent etc in this space which may give a flexible hosting option (which looks more traditional than Amazon EC2) which includes a database. Check these out and do comment if you have a recommendation...

Blogged with the Flock Browser


Read more!

Thursday, July 17, 2008

The Back-end Wars

While there is a war brewing up on the web front end frameworks, viz AIR, Gears, Sproutcore and Silveright, many don't realize there is a similar war brewing on the web back-end technologies as well. The developer communities are gearing up to take each other on on different aspects like ease of use, frameworks, performance, size of community etc. Here are the major contenders:

1. PHP
2. Python
3. Ruby
4. Groovy
5. Perl
6. Java

All of these technologies have evolved in the past few years to come up with a lot of MVC frameworks which help clean up the code and reduce fresh development cycles needed to launch new sites. For example Symfony is the most popular framework for PHP. Django is the winner for Python. Rails is leading the path for Ruby and Grails is leading the path for Groovy (which seems to be the path Java developers may pick going forward). In Java, the Springs framework is quite popular now. Perl developers pick Catalyst a lot of times.

These are too many options. So which combination is going to be the winner? My viewpoint is that this is not going to be a decision based on performance of the software as many think, but more driven by adoption. For example Python and Django have been blessed by Google App Engine. That means its a clear winner. Ruby and RoR have had tremendous success in the last few years as new developers move to Ruby in large numbers because of the language features. Groovy provides a migration path for Java developers and I think it will have its share of success as long as the bridges to existing Java code work. I really don't see much future for PHP or Perl based frameworks going forward. Among Python, Ruby and Groovy, I think Python and Ruby will continue to grow at a much larger pace than Groovy community.

Blogged with the Flock Browser


Read more!

Sunday, July 6, 2008

Web 2.0 challenges for Ribbit

Ribbit is an excellent example of what kind of challenges a telecom outfit can face in the Web 2.0 world. First, Ribbit is an innovator of kinds - it is perhaps the only flash/flex based phone I have seen which claims to provide connectivity to the PSTN. I don't fully understand what architecture they currently utilize, but its quite possible that they connect RTMP protocol to their traditional network on the proprietary softswitch they have on the backend.

There are several game changing plays still left when it comes to VoIP and flash, so lets summarize those before we come back to ribbit. Real time streaming using Flash today requires the Flash MX media server in the network and currently my assumption is that it doesn't support SIP (though Adobe has included support for Speex - an open source free codec in the latest version 10 of Flash). When Flash does support SIP, a lot of new players doing VoIP and Flash integration will jump in. Flash is a proprietary technology and there are a lot of open source versions of software which attempt to reverse engineer Flash (yes, this is completely legal it seems). Red5 is the most prominent of all which intends to act as a substitute for MX server. GNU flash is a client side substitute for Flash runtime.

I also didn't fully understand Ribbit's business model when I was on their site, but that is perhaps due to the fact that they are very different from a traditional telecom company from this perspective. A traditional telecom company sells minutes when connecting to PSTN or monthly charges for telephone numbers you can buy. Ribbit's model is a little different here and they seem to be mostly trying to sell their VoIP and web capabilities to other companies with web based products which will benefit with Voice features. Salesforce.COM is one integration they have done. One suggestion from me would be the more traditional customer support market where companies would benefit with Voice support to improve post sales communications with customers. On the consumer side, Ribbit's model is not clear and I am quite surprised they don't have the valley approved "Ad Model" worked out yet for that ;)


Read more!

Monday, June 23, 2008

The Zimbra for Mobile: Funambol

Funambol has an open source approach to Mobile Email and Mobile Sync. Some say that Funambol is out to take out RIM. They have a model similar to what I saw last with SugarCRM - free for Enterprise IT users or personal sync and you can buy the enterprise edition. I think that is a good model and the space needs a competitor as well. The software appears to be licensed under the AGPL, again I have seen that after a while. For those not familiar with AGPL (Affero GPL), it is a stricter form of traditional GPL license in that you cannot even host it w/o disclosing source code.

Blogged with the Flock Browser


Read more!

Wix and Sprout: Online Flash Editors

If the thought of having to learn flash to make the delightful widgets and apps ever occurred to you, then here are two tools for you: Wix and Sprout. I tried Sprout myself and it was extremely easy to use (I am still waiting for a Wix Invite). Sprout's focus seems to be the creation of widgets - small pockets of content with rich media you can put on your blogs or websites to promote anything you want or tell people about yourself (the new jazzed up way against the old boring image of yourself). Wix on the other hand is more focused on building a full website.

Other differences include the fact that Sprout is on the West Coast (and Hawaii) and Wix is in NY and the former is kind of ahead in that it recently got its Series A with Polaris ($5M).

Blogged with the Flock Browser


Read more!