Saturday, January 24, 2009

APIs in Action

There are a number of APIs released by various services everyday. I always "want" to play around with them and understand the possibilities that they provide but most of the time not do so.

Thursday, January 01, 2009

MyEclipse HQL

Though it has been few versions since MyEclipse had support for Hibernate and HQL, I only had a chance to play with it recently. It has a nice feature set and the HQL editor is tied Dynamic Query Translator which gives on-the-fly translation for HQL queries. This provides for an easy way to debug queries and validate them.

twitterclone

In order to open a HQL editor you need to create a file with .hql extension and also have an active hibernate configuration file. This took me a while to figure out. In order create an active Hibernate Configuration use File -> New -> Hibernate Configuration File and setup the connection parameters for the database.

Sunday, November 30, 2008

Enterprise Social Networks

There is no doubt that with the growing trend in the usage of Social Networks in the consumer space strongly suggests that they are here to stay. The benefits of the networks as an enabler of online social interactions can be derived to add social intelligence in enterprise context. Such networks will also facilitate the transformation of organizational structure from traditional hierarchies into networked hierarchies. In this post I will walk through some of the technology options that are available out there for building Enterprise Social Portals/Networks:


Apache Shindig:

Apache Shindig is a Reference Implementation for OpenSocial specification. With this you can expose your existing Social Graph and it acts as a container for OpenSocial widgets.

SocialSite:

SocialSite is an open source initiative from Sun Microsystems providing a complete end-to-end user interface and an API for social networking. It supports widgets by providing an OpenSocial container by leveraging Apache Shindig in its architecture.

RingSide Networks:

RingSide Networks is an open source offering that enables any website with social networking capabilities by providing implementation for both Facebook and OpenSocial specifications. RingSide acts as a powerful container hosting social information and as a bridge to Facebook social information platform hence providing interoperability. The only issue with this is its still in Beta.

Liferay:

Liferay is also an open source offering which provides both enterprise portal and social collaboration platform software. The solutions provide components for Web 2.0 features like Blogs, Wiki, Calendar, etc. It also provides a way to host social graph and promises OpenSocial Apache Shindig integration.

Saturday, July 05, 2008

Signing up Users

I'm planning to write a series of posts under "Tech Tip". The purpose of these posts are to share ideas/tips around how companies can leverage technology approaches in their solutions to gain competitive advantage. I also intend to provide technology implementation details as applicable.

One of the major goals for a startup is to motivate users to sign up for their service and eventually to sustain the user base. There are a bunch of startups coming up everyday and from an user its quite overwhelming for them to remember credentials for all of them. As Joshua Porter puts it in his Usage Lifecycle, the challenge here is to Sign-up an unaware/interested user. Even early adopters who might be interested in trying your service may not be motivated. But we can solve this problem by leveraging authentication technology possibilities.

It is very likely that your interested user will have one of Hotmail/Yahoo/Facebook/Google/OpenID account.

By providing your users to authenticate using these services will definitely increase the probability of an enthusiastic user to sign up. These services have libraries and documentation in their respective developer web site.

Clickpass

Clickpass is a startup providing single sign-on service that requires no effort from the end-user but provides the convenience for your site to authenticate using Google, Facebook, Hotmail and Yahoo accounts. They provide extensive developer documentation and can be found here. TechCrunch also has coverage about this service. However there are also views like these that you need to be aware of before making your decision.

OAuth

OAuth is an open initiative for an open protocol to allow secure third-party website authentication . Its starting to gain traction and worth keeping an eye on their blog.

Resources

Live ID Web Authentication System
Yahoo BBauth
Google Account Authentication API

Sunday, June 22, 2008

Evaluating AJAX Framework

Today building a new web application involves the essential step of evaluating AJAX frameworks and select an appropriate one. In this post I will detail the various criteria that should be considered while making a decision.

Adoption Criteria

This criteria is important for IT managers (or EA strategy) to decide if it would even be necessary for the development team to take a look and evaluate.

  • Licensing Model: Under what license(s) is this product offered? How would that affect your organization?
  • Cost: How much does the framework cost (upfront)? Also consider cost of development tools, support, consulting? How many free updates are there? If the framework is free, is there a PRO version? If so what are the benefits and cost?
  • Frequency of Releases: What is the frequency of releases/updates? Is it adequate? This shows how active the framework is among the community?
  • Technology Maturity: How long has the framework been around? How stable are the releases? What is the philosophy on backward computability? What is the product road map?
  • Talent Pool: Is there talent pool available for this framework? What is the expected learning curve? Input from the developmental team is certainly helpful here.
Development Criteria

This criteria is will help the developers assess the framework viability.
  • UI Components: Does the toolkit offer rich set of mature components? What is the future road map for new components? Are the components customizable?
  • Programming Model: What kind of programming paradigm is supported? Is it strongly typed or dynamic? Is the model familiar to developers? If not what is the learning curve?
  • Web Framework Integration: Are there web frameworks that provide some out-of-the-box support? Are there any conflicts (or challenges) in using this toolkit with web framework?
  • Documentation Quality: Is there adequate good documentation available? Are there books available? If so what are the reviews?
  • Browser Support: What browsers and versions are supported by the toolkit? What is the road map? Are the supported browsers sufficient for the requirements? What does the community say about this?
  • IDE Support: Is there IDE support? How much do they cost? How do they fit in with currently used IDE?
  • i18n: Is there support for multiple languages?
  • Utilities: Frameworks provide utilities like Browser Manager(Back/Forward Button Support), Drag-n-Drop, Java-to-JavaScript Serialization (for example, DWR). Depending on specifics of the requirements this criteria should be considered.
Maintenance Criteria

This criteria helps to evaluate and foresee any maintenance challenges that may be encountered.
  • Community Support: What is the size of the community using the product? How active and responsive are the online forums? Is the blog updated frequently?
  • Hosting: Is there hosting support for the framework JS files? For example, Yahoo UI provides hosting support
  • Profiling: Is there built-in profiling support? If no are there any external tools that can help? Are there browser related constraints in them?
  • Beta Components: The frameworks tend to offer lot of Beta components. For these components its worthy to look at their known issues and assess the risk.
Conclusion

Analyzing and evaluating the frameworks using the above mentioned criteria will help make an informed decision and thereby will help avoid potential future issues. During the evaluation if a framework is missing a particular feature or component and is available in another toolkit you should look to ensure that there would be no integration issues and will peacefully co-exist. Please feel free to suggest perspective for improving the evaluation process.