Monday, July 25, 2011

Tutorial: How to use jQuery DatePicker UI inside your ASP.NET Web Application

By: Ahmed Hussam
  jQuery DatePicker Features:
 The jQuery UI Datepicker is a highly configurable plugin that adds datepicker functionality to your pages,
 You can customize the date format and language, restrict the selectable date ranges and add in buttons and other navigation options easily.
By default, the datepicker calendar opens in a small overlay onFocus and closes automatically onBlur or when a date is selected. For an inline calendar, simply attach the datepicker to a div or span.
You can use keyboard shortcuts to drive the datepicker:

Sunday, July 17, 2011

The Android Invasion Continues!!

By: Mina Samy

Android, Google’s mobile operating system that dominates the world market with 36% share seems to continue its invasion of new territories other than handsets and tablets. Android is going to get in Home automation, automotive industry, mobile payment and even military activities.
 Android@Home:

At Google I/O 2011 Google the Android@Home framework which will extend Android to home appliances. Android@Home is a set of protocols for controlling light switches and other home appliances through Android. Google revealed an example : "Project Tungsten," a wireless speaker system that can be synced via Android, as well as wireless light switches and other appliances. 


Another aspect of this is the introduction of the Android open Accessory Development Kit (ADK) an API that allows external USB devices including keyboards, mice, and game controllers- based on the open source Arduino electronics platform - to be connected to Android powered devices.

Google demonstrated an exercise bike connected through USB to an Android phone, the phone launched an application that showed heart rate data from the cycle to the phone.

The ADK API currently supports connectivity through USB, but Bluetooth support is planned for the future.

Sunday, July 10, 2011

Understanding Collective Intelligence


By: Yasmen Refaat.

Newer web applications trust their users, invite them to interact, connect them with others, gain early feedback from them, and then use the collected information to constantly improve the application.

Users are expressing themselves. This expression may be in the form of sharing their opinions on a product or a service through reviews or comments; through sharing and tagging content; through participation in an online community; or by contributing new content.
This increased user interaction and participation gives rise to data that can be converted into intelligence in your application. The use of collective intelligence to personalize a site for a user, to aid him in searching and making decisions, and to make the application more sticky are cherished goals that web applications try to fulfill.

More formally, collective intelligence (CI) simply and concisely means To effectively use the information provided by others to improve one’s application.

What is collective intelligence?

When a group of individuals collaborate or compete with each other, intelligence or behavior that otherwise didn’t exist suddenly emerges; this is commonly known as collective intelligence. The actions or influence of a few individuals slowly spread across the community until the actions become the norm for the community.

YouTube Example:
In October 2006, Google bought YouTube for $1.65 billion. In its 20 months of existence, YouTube had grown to be one of the busiest sites on the Internet, dishing out 100 million video (As of September 2006) views a day. It ramped from zero to more than 20 million unique user visits a day, with mainly viral marketing—spread from person to person.

In YouTube’s case, each time a user uploaded a new video, she was easily able to invite others to view this video. As those others viewed this video, other related videos popped up as recommendations, keeping the user further engaged. Ultimately, many of these viewers also became submitters and uploaded their own videos as well. As the number of videos increased, the site became more and more attractive for new users to visit.
video


Harnessing information from users improves the perceived value of the application to both current and prospective users. This improved value will not only encourage current users to interact more, but will also attract new users to the application. The value of the application further improves as new users interact with it and contribute more content. This forms a self-reinforcing feedback loop, commonly known as a network effect, which enables wider adoption of the service.


CI in Web Applications
Collective intelligence of users in essence is
■ The intelligence that’s extracted out from the collective set of interactions and contributions made by your users.
■ The use of this intelligence to act as a filter for what’s valuable in your application for a user—This filter takes into account a user’s preferences and interactions to provide relevant information to the user.

This filter could be the simple influence that collective user information has on a user—perhaps a rating or a review written about a product, as shown in figure 1—or it may be more involved—building models to recommend personalized content to a user.



As shown in figure 2, there are three things that need to happen to apply collective intelligence in your application. You need to:
1- Allow users to interact with your site and with each other, learning about each user through their interactions and contributions.
2- Aggregate what you learn about your users and their contributions using some useful models.
3- Leverage those models to recommend relevant content to a user.




Benefits of Collective Intelligence
Applying collective intelligence to your application impacts it in the following manner:
■ Higher retention rates —The more users interact with the application, the stickier it gets for them, and the higher the probability that they’ll become repeat visitors.
■ Greater opportunities to market to the user—The greater the number of interactions, the greater the number of pages visited by the user, which increases the opportunities to market to or communicate with the user.
■ Higher probability of a user completing a transaction and finding information of interest —The more contextually relevant information that a user finds, the better the chances that he’ll have the information he needs to complete the transaction or find content of interest. This leads to higher click-through and conversion rates for your advertisements.
■ Boosting search engine rankings —The more users participate and contribute content, the more content is available in your application and indexed by search engines. This could boost your search engine ranking and make it easier for others to find your application.


References:
1. Satnam Alag, “Collective Intelligence In Action”. Manning Publications Co., 1st Ed., 2009.


About Yasmen Refaat:

 Associate Software Engeneer, at Symbyo Technologies. Yasmen's experience includes analysing, designing, & developing larg scale comunity based websites.Contact with Yasmen at:
http://www.linkedin.com/in/yasmenrs
.


Sunday, July 3, 2011

Facing Quality Challenges in Agile Teams

By: Aya El-Gebeely

One of the Agile practitioners tweeted  this quote : "Many Agile-related questions I get are of the type "How do we drive a car safely when it has only 3 wheels, no breaks, and a blind driver?". This is pretty true, because many people consider that software product quality will find itself a path through and just be there, without giving it even small portion of thought.  As  mentioned in various literature about Agile teams, that the product Quality is the responsibility of the whole team. All team members work closely(Product owner - Developers - Testers - Architects - Technical Lead..etc.)to get the software product to the light. And the capacity to create high-quality solutions lies in the (Will) of the team and their dedication in considering quality through project's  different phases.
On tight schedules teams tend to squeeze out the time dedicated for QA and testing activities, with a whole focus on getting the set of features done. Actually this may work for small projects and teams, but getting sloppy with process not always succeed; as we ignore the fact that higher penalty  and technical dept will accumulate  on the team, and then you find that more time and cost are depleted in the maintenance and rework. This was discussed before  the Technical dept posted recently.