Showing posts with label technology. Show all posts
Showing posts with label technology. Show all posts

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.

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.

Sunday, December 16, 2007

Gearing up for Privacy

The issue of Privacy is one of the major concerns in the web today. The most common of such concerns centered around the user data having to live in the cloud with the potential for it to be exposed, stolen or misused by external elements (including the service provider). In this post I share my thoughts on how some of the emerging technologies can help address some of the concerns.

Emerging technologies such as Google Gears, Microsoft Sync Framework and Microsoft Volta provide programming paradigms around online/offline synchronization and an execution context. As you may already know Google Gears opens the possibility of the synchronizing content with browser plugin to provide seamless offline experience of online content. For example services like Google Reader and Zoho Writer leverage this today in their offerings. Microsoft Sync Framework opens the possibility of data synchronization across any device and data format. While Microsoft Volta promises to decoratively allow developers to execute content both online and offline.

As stated earlier the concern of the user data having to live in the cloud can be eliminated by architecting applications to load data locally. The web essentially becoming a platform for software delivery while data may be securely stored locally. The user has the choice of storing data in a medium of his choice, for example in USB drive or local hard-drive or just online. Technology support for encryption capabilities to securely store content should be just a matter of time.

Also the service providers wanting to provide data-sensitive contextual user services/experience may leverage paradigms provided by Volta. This will ensure that any user concerns around Privacy are addressed as well.

As the concept of web as a platform continues to grow so will the user's concern of Privacy and data security. Emergence of technologies and their application in creative ways may help address such inevitable concerns.

UPDATE:

Related:
Google Gears Enabled Sites

Sunday, August 12, 2007

Caching: Memcached and Terracotta

Applications are generally built with an expected user base but soon might be overwhelmed due to business demand. This is especially particularly true in the context of consumer facing applications. Caching is one of the most important aspect to improve application performance by storing object in Cache (memory) reducing database load.

Caching in a clustered environment requires a Distributed Caching solution which can support failover scenarios and data reliability. In this post I would like to explore the capabilities of Memcached and Terracotta as distributed caching solutions.

Memcached is a high-performance distributed object caching system with client APIs for Perl, PHP, Python, Ruby and Java. Here are some of its capabilities and limitations (using Java client API):

  • Requires objects to be Serializable
  • Object Identity is NOT preserved
  • Supports cache expiration
  • Does NOT handle failover scenarios
  • For a given object selects a server from a pool of cache server based on hash of the key
  • Easy to configure (through SockIOPool class)

Terracotta is an open-source Java based clustering solution for JVM. Distributed Caching can be achieved using Terracotta by using a java.util.HashMap or open-source caching solutions like EHCache, OSCache and JBoss TreeCache.

  • Preserves Object identity
  • Manages memory efficiently through Virtual Heap
  • Declarative requirement for lock support
  • Simple configuration file with Eclipse Tool support
  • Good documentation, support and active development
  • Due to the nature of its implementation certain classes are not Portable and hence cannot be used
  • Hard to determine which third-party classes are portable
  • Does NOT require classes to be serializable
  • Easy to configure and get started!
Technorati tags: ,

Saturday, February 24, 2007

OpenID Adoption

As we know OpenID is an open, decentralized, free framework for user-centric identity. The goal is to have the user remember one user name and password and login to any site which supports the protocol. It is light-weight and supports SSO.

In the past few days there has been a lot of traction to OpenID adoption with the announcement for its support from the giants AOL, Microsoft and Digg. So if you have an AOL account then your open id is http://openid.aol.com/username and you can login to any website that supports OpenID. With the growing number of startups the adoption rate for OpenID is poised to grow rapidly.

User Resources

To start using OpenID you will need to obtain one. If you already have an AOL account you could use that if you like. Or you can obtain one from http://www.myopenid.com/. For a quick overview of OpenID here is a video.

Developer Resources

From a developer perspective for you to support OpenID either as client or server there are several resources available as noted below:

OpenID Enabled - OpenID community
OpenID Client/Server Libraries - C#, Java, Perl, C++, PHP, Ruby, ColdFusion
BotBouncer - A CAPTCHA service for OpenID

I was looking at OpenID4Java API - Consumer side and is pretty straight forward.

OpenID and CardSpace

Here is a post explaining how these two complementary technologies can work together. Its interesting.

tags: , , ,

Saturday, February 10, 2007

Yahoo! Pipes -Dynamic Translation for Feeds!


This week's major release and screaming is all about Yahoo! Pipes. Of course I'm excited about it too. Yahoo! Pipes is an interactive feed aggregator/manipulator.

I just built my first Pipe - a translation pipe for German version of Reddit using the Babel Fish module. One could clone this and use this for any feed translation from any language. Click here to access the Pipe!

I expected this kind of service for a while and there could be a new/similar service to create Widgets/Gadgets in a similar fashion. Apple Dashboard, Google Gadget IDE, Visual Studio Gadget API provide this on a proprietary platform but more generic ones will emerge.

Friday, February 02, 2007

Dig-the-digg: Friend Finder!

Digg is one of the busiest social bookmarking site where people are sharing their interests by registering their vote on the links. To me this seems to be an interesting way to meet new people. Few days back I was inspired by the idea of how the intersection of similar diggs of a person with another person could be a way to meet new friends. Let say I digg on a set of links and if there is another user who diggs on the same links that I digg on then he/she could be my potential friend, its not really necessary the other users diggs on all the links that I digg but a reasonable digg rate could be considered.

I wrote a little crawler to crawl on my diggs and found some interesting results. One could try this manually too and here is how:

1. Goto one of your Diggs and click on "Who Dugg or Blogged this?"
2. Click on each user to see their Diggs and find a user whose diggs you like
3. Subscribe to his/her Digg Feed (RSS)
4. Now, even if you're not an actively digging you will not miss out on interesting links

Friday, January 05, 2007

Go Green - the tech way!

Importance of going Green and reducing fuel consumption has never been more important considering geo-political reasons and the sheer limitation of oil resources. These are some tips on how technology can be used:

  • Shop Online - Avoid a car ride to bookstore. You get slick deals too!
  • Pay your bills online
  • Sign up for electronic statements instead of paper statements for credit card, bank, etc.
  • Look for a book online in Google Books, Text Archive, etc.
  • Get your TimeSelect or ePaper online subscription avoid buying real newspaper
  • Avoid face-to-face meetings by using online conference tools like WebEx, Microsoft Live Communicator
  • Use mapping tools to find most efficient route : MapQuest, Google Maps , Live Local
  • Use Power off / Hibernate features of your OS. There are some many "choices" for this..

I believe technology is bringing significant impact in reducing fuel consumption. I believe with the spread of social awareness for conserving energy, we will see new and innovative patterns in generation/delivery/consumption of energy

Update: YahooMaps with Live Traffic and Yahoo! Autos - Green Center!

Saturday, December 23, 2006

JBoss Seam - Web 2.0 enabled!

Today, I evaluated the newest web development offering from JBoss named Seam. The philosophy behind JBoss Seam is to provide a tight integration between Web and Transaction (UI-EJB-DB) thereby strives to enable rapid web application development. Tight integration in this context means a single framework for defining business services, DB entities that tie directly to the UI components and allow applications to maintain stateful data through a statful persistence context. This framework inherits and incorporates various technical artifacts/philosophies from some of the most popular exisiting frameworks including JSF, EJB 3.0, DI, Ruby on Rails, AJAX support etc.

This will be a framework to watch moving forward in 2007!

Thursday, November 23, 2006

Flash (SWF) to WPF (XAML) converter

Micheal Swanson, Microsoft Technical Evangelist has put out a very useful tool which can convert Adobe Flash SWF files to XAML, the declarative UI language for WPF (Windows Presentation Foundation). I belive that this tool will definitely ease and aid in adoption of WPF and also help developers understand XAML programming semantics and paradigm.

SWF File Format can be found here, in case you're interested.

Friday, November 10, 2006

ePaper

"The Hindu" - India's National Newspaper has released its ePaper, an online edition of its printed daily. I'm impressed by the simplicity and elegance of ePaper. Its infact a very innovative use of a simple technology -- map on image which brings to the user the feeling of reading "real" newspaper.


In my opinion from an implementation prespective, the scanned images of the printed paper (Digital Assets) must have been annotated with appropriate text links as metadata. The publishing system would have to pull and these together and publish them on the web. The PDF/Text option allows the user to choose his format of choice for viewing.


I installed Times Reader bulit on Windows Presentation Foundation (.NET 3.0) as a standalone application. There is no doubt that this also brings a user experience of reading the real newspaper. I would assume that this will be the future web version of NY Times as WPF-E (Everywhere) becomes available.

Update: Recently I stumbled upon provider of ePaper technology - PressMart

Monday, October 30, 2006

Brightcove ties the knot - Owner, Publisher and Ads

Brightcove, the video syndication startup released its newest offering Brightcove Network -- Video marketplace. The Brightcove Network allows anyone to launch their own Internet TV channel in a self-service manner. The service is free and allows unlimited utilization of Brightcove's bandwidth. Brightcove Network provides the technology platform that allows both individuals and media mougals to get to market rapidly. Their adveritising platform -- Brightcove AdNet is designed to generate revnue for the Publisher (50-50 between Publisher and Brightcove).


For the Geeks, there is Open API --- programming interfaces on top of Brightcove's HTML/JavaScript/Flash platform.

Saturday, October 21, 2006

IView @ Microsoft: DAM

IView, a Digital Asset Management company is recently acquired by Microsoft. Channel 9 has an interesting video of the team talking about their product and company. I agree with the developer comment on the interview that cracking the RAW proprietary format is a challenge, it is indeed a great challenge. The team has a Windows platform developer so I would speculate the integration of their product into core Windows obviously.

Disqus for techtalk