Wednesday, October 20, 2010

Give Dynamism to your Website with Silverlight Technology...




In October of 2008, Microsoft released Silverlight, a free runtime programmable web browser plug-in that powers rich application experiences and delivers high quality, interactive video across multiple platforms and browsers, using the .NET framework. Some of the features it enables include animation, vector graphics, and audio-video playback that characterize rich Internet applications.

Developed under the codename Windows Presentation Foundation/Everywhere (WPF/E), Silverlight allows the integration of audio, video and interactivity in a single runtime environment, in the same way the Windows Presentation Foundation does. Working in conjunction with XAML, they contents of a Silverlight application can be indexed and is searchable by search engines.

Content-wise, it supports the usual array of WMV, WMA and MP3 formats without requiring Windows Media Player, Active X control or even a Windows Media Player plug-in. This makes it a one-stop centre for Internet multimedia and eliminates the need to download different plug-ins for the same application.

Silverlight is compatible with Windows Vista Home and Professional Edition as well as with the Windows Mobile 6. Mac users can also download this plug-in since it can be used on the Mac OS.

Essentially, Silverlight 1.0, which was created over a year ago, was intended to be Microsoft's answer to Adobe Flash and Flex and several other rich Internet application and AJAX frameworks. 

Silverlight 1.1 was such an important upgrade for Microsoft that it was eventually renumbered Silverlight 2. Silverlight 2 supported all .Net languages, including the dynamic languages such as IronPython and IronRuby, and it contained a good portion of the .Net base classes, including new features such as LINQ (language-integrated query). In addition to its rich set of controls, it had APIs for an alphabet soup of networking, including REST, SOAP, RSS, and HTTP. 

Silverlight 3.0 will certainly prove to be just as successful. Aside from being the most comprehensive offering for the rapid creation and delivery of sophisticated applications through a Web browser, it is also forged from technology used in over 100,000 companies and understood by over four million developers worldwide. Silverlight has the full support of Microsoft's tools, technologies, and a thriving partner ecosystem.

Silverlight enables you to create a state-of-the-art application that has the following features:

·         It is a cross-browser, cross-platform technology. It runs in all popular Web browsers, including Microsoft Internet Explorer, Mozilla Firefox, and Apple Safari, Google Chrome, and on Microsoft Windows and Apple Mac OS X.
·         It is supported by a small download that installs in seconds.
·         It streams video and audio. It scales video quality to everything from mobile devices to desktop browsers to 720p HDTV video modes.
·         It includes compelling graphics that users can manipulate—drag, turn, and zoom—directly in the browser.
·         It reads data and updates the display, but it doesn't interrupt the user by refreshing the whole page.
·         The application can run in the Web browser or you can configure it so users can run it on their computer (out-of-browser).

The specs might make sense to a web developer, but what about the average man? Normal Internet users won't care whether the site they're visiting is made from Flash or Silverlight. How will it affect them?

Well, Silverlight applications are delivered to a browser in a text-based markup language called XAML. That's no big deal for Web users once they land on a site. But search engines, like Google, can scan XAML. They can't dive into compiled Flash applications. Flash-heavy sites do often wrap their applications in Web code that search engines can crawl, although it's extra work for developers and designers to do it, and may not yield search results that are as good as they would be if the search engine was indexing the actual application instead of keywords tacked on after the fact. Silverlight applications will be more findable.

To run a Silverlight application, users require a small plug-in in their browser. The plug-in is free. If users do not already have the plug-in, they are automatically prompted to install it. The download and installation take seconds and require no interaction from the user except permission to install.

Also, for the users who opt for less-used platforms and browsers such as Firefox and Google Chrome, this plug-in will endear to them, since most Internet applications run on popular platforms. And although Microsoft doesn't usually tread the waters of Mac and other operating systems, most web developers have given positive early reviews to Silverlight and this opens a lot of possibilities.

Silverlight technology is already available for download on select platforms. And although it is still new, it is promising to be an important part of Internet applications in the future.


Tuesday, October 19, 2010

Share your ideas with Microsoft Sharepoint...

SharePoint is a Microsoft platform that allows people to build websites. SharePoint 2010 is the fourth version of SharePoint from Microsoft, and it is also known as SharePoint v4 or Microsoft Office SharePoint Server 2010. It is very different from the versions that came before it.

SharePoint allows people to create websites with different content and different purposes. Its many built-in features and components make it a comprehensive solution that can fit many needs.

Microsoft SharePoint Server is composed of three major tiers:

  •   Web Front End role which processes HTTP requests to the Server;
  •   An application layer which provides such features as Search and Excel Services;
  •   A dedicated Microsoft SQL Server data storage.


Microsoft says it does not intend SharePoint to replace a full file server or to function as a single-use solution. Instead, it positions the product to play various roles in a business environment. While SharePoint users can access SharePoint functionality through multiple methods, the primary user interface is a web-based application accessed through a browser. The majority of SharePoint's functionality is supported across all major desktop web browsers - however, some minor features are restricted to the 32-bit version of Internet Explorer 8. Notably, Internet Explorer 6 is not supported.

A SharePoint site is a Web site accessed through your web browser that provides a collaboration space for documents, information, and ideas, controlled by the Site Owner. It can be used to help groups of people, be they faculty, school or service team to share information and work together. For example, a SharePoint site can help you:

  • Coordinate projects using calendars and schedules.
  • Manage and discuss ideas and review documents or proposals using document libraries.
  • Share information and keep in touch with other people using Wikis and blogs.

One common use of SharePoint in organizations is to create sites that are used for team collaboration. These collaborative sites, also known as team sites or group work sites enable team members to better work with one another. They can use the site to share documents, assign tasks, track team events on a shared web calendar, and much more. This use is known as a team collaboration system.

Many companies use SharePoint for their central document storage, replacing network folders. This use is known as an electronic document management system.

Another common use is as a corporate portal where the corporate employees can go and download forms, read corporate news, fill in surveys, and search for documents. This use is known as an electronic content management system or an intranet.

The capabilities of SharePoint 2010 work together to help your company quickly respond to changing business needs. Using SharePoint 2010, your people can share ideas and expertise, create custom solutions for specific needs, and find the right business information to make better decisions. For IT, SharePoint 2010 helps you cut training and maintenance costs, save time and effort, and focus on higher business priorities.​ 

Finally, some companies choose the SharePoint platform as the platform for their Internet sites—where visitors from around the world can visit the company's website and read about the company's products, register for events, and do whatever it is the site has been configured to allow them to do. SharePoint sites are dynamic and interactive - members of the site, which you control, can contribute their own ideas and content as well as comment on or contribute to other people's.

Friday, October 1, 2010

CMM... acts as a health capsule in determining and maintaining the overall quality of the organisation....

Dr William Edward Deming of Total Quality Management fame once opined:  "Quality isn't about people doing their best, it's about having the right process in place such as when people understand them, then they can do their best within the system." In today's ever-competitive markets, quality-conscious customers look for maximum value for their money. In the context of the software industry, quality consciousness level is even higher.

The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense (DoD). SEI was founded in 1984 to address software engineering issues and, in a broad sense, to advance software engineering methodologies. More specifically, SEI was established to optimize the process of developing, acquiring, and maintaining heavily software-reliant systems for the DoD. Because the processes involved are equally applicable to the software industry as a whole, SEI advocates industry-wide adoption of the CMM.

Capability Maturity Model (CMM) broadly refers to a process improvement approach that is based on a process model. CMM also refers specifically to the first such model, developed by the Software Engineering Institute (SEI) in the mid-1980s, as well as the family of process models that followed. A process model is a structured collection of practices that describe the characteristics of effective processes; the practices included are those proven by experience to be effective.

The Capability Maturity Model was initially funded by military research. The United States Air Force funded a study at the Carnegie-Mellon Software Engineering Institute to create a model (abstract) for the military to use as an objective evaluation of software subcontractors. The result was the Capability Maturity Model, published as Managing the Software Process in 1989. The CMM is no longer supported by the SEI and has been superseded by the more comprehensive Capability Maturity Model Integration (CMMI).

A maturity model can be viewed as a set of structured levels that describe how well the behaviours, practices and processes of an organisation can reliably and sustainably produce required outcomes. A maturity model may provide, for example :
§  a place to start
§  the benefit of a community’s prior experiences
§  a common language and a shared vision
§  a framework for prioritizing actions.
§  a way to define what improvement means for your organization.

In any software development company there are standards for processes of development, testing, and software application; and rules for appearance of final program code, components, interfaces, etc.


The CMM model defines five levels of organizational maturity:

  1. Initial level is a basis for comparison with the next levels. In an organization at the initial level, conditions are not stable for the development of quality software. The results of any project depend totally on the manager’s personal approach and the programmers’ experience, meaning the success of a particular project can be repeated only if the same managers and programmers are assigned to the next project. In addition, if managers or programmers leave the company, the quality of produced software will sharply decrease. In many cases, the development process comes down to writing code with minimal testing. 

  1. Repeatable level. At this level, project management technologies have been introduced in a company. That project planning and management is based on accumulated experience and there are standards for produced software (these standards are documented) and there is a special quality management group. At critical times, the process tends to roll back to the initial level. 

  1. Defined level. Here, standards for the processes of software development and maintenance are introduced and documented (including project management). During the introduction of standards, a transition to more effective technologies occurs. There is a special quality management department for building and maintaining these standards. A program of constant, advanced training of staff is required for achievement of this level. Starting with this level, the degree of organizational dependence on the qualities of particular developers decreases and the process does not tend to roll back to the previous level in critical situations. 

  1. Managed level. There are quantitative indices (for both software and process as a whole) established in the organization. Better project management is achieved due to the decrease of digression in different project indices. However, sensible variations in process efficiency may be different from random variations (noise), especially in mastered areas.

  1. Optimizing level. Improvement procedures are carried out not only for existing processes, but also for evaluation of the efficiency of newly introduced innovative technologies. The main goal of an organization on this level is permanent improvement of existing processes. This should anticipate possible errors and defects and decrease the costs of software development, by creating reusable components for example.



A critical distinction between maturity level 4 and maturity level 5 is the type of process variation addressed. At maturity level 4, processes are concerned with addressing special causes of process variation and providing statistical predictability of the results. Though processes may produce predictable results, the results may be insufficient to achieve the established objectives. At maturity level 5, processes are concerned with addressing common causes of process variation and changing the process (that is, shifting the mean of the process performance) to improve process performance (while maintaining statistical probability) to achieve the established quantitative process-improvement objectives.

It can be concluded that CMM helps in judging the software processes of an organization as well as identifying the prerequisites necessary to enhance the overall maturity level of these processes. It furthermore points the way down a well-defined path to improve the management and development of software products in a disciplined and orderly way. Applied in a proper manner, CMM is indeed a powerful system, which can help transform an IT organization and help it to reach its pinnacle.


SIX SIGMA- New Approach to Quality Management and Efficiency...


Six Sigma stands for Six Standard Deviations (Sigma is the Greek letter used to represent standard deviation in statistics) from mean. Six Sigma methodology provides the techniques and tools to improve the capability and reduce the defects in any process. Six Sigma is a business improvement methodology. Its main objective is to implement a vigorous process to systematically eliminate defects and inefficiency. It was originally developed by Motorola in the early 1980's and because of its proficiency has become extremely popular in many corporate and small business environments around the world.

Six Sigma is a management philosophy developed by Motorola that emphasizes setting extremely high objectives, collecting data, and analyzing results to a fine degree as a way to reduce defects in products and services. The Greek letter sigma is sometimes used to denote variation from a standard. The philosophy behind Six Sigma is that if you measure how many defects are in a process, you can figure out how to systematically eliminate them and get as close to perfection as possible. In order for a company to achieve Six Sigma, it cannot produce more than 3-4 defects per million opportunities, where an opportunity is defined as a chance for nonconformance.

"...Six Sigma has evolved over the last two decades and so has its definition. Six Sigma has literal, conceptual, and practical definitions. At Motorola University (Motorola's Six Sigma training and consultancy division), we think about Six Sigma at three different levels:
·         As a metric
·         As a methodology
·         As a management system
Essentially, Six Sigma is all three at the same time." -- Motorola

Processes:

There are two Six Sigma processes: Six Sigma DMAIC and Six Sigma DMADV, each term derived from the major steps in the process.

DMAIC- Six Sigma DMAIC is a process that defines, measures, analyzes, improves, and controls existing processes that fall below the Six Sigma specification. Central Six Sigma process and acronym to ensure you remember it: Define, Measure, Analyse, Improve, Control, more recently extended to DMAICT by others in the Six Sigma consulting and training communities, to Transfer (transfer best practice and thereby share learning).

·         D - Define opportunity
·         M - Measure performance
·         A - Analyse opportunity
·         I - Improve performance
·         C - Control performance, and optionally:
·         T - Transfer best practice (to spread the learning to other areas of the organization)

DMADV- Six Sigma DMADV defines, measures, analyzes, designs, and verifies new processes or products that are trying to achieve Six Sigma quality.   An alternative/substitute abbreviation to DFSS (Design For Six Sigma), and like DFSS DMADV is central to Six Sigma initiatives. DMADV more specifically describes a method comprising linked steps; Define, Measure, Analyze, Design, Verify, for ensuring that products and processes are designed at the outset to meet Six Sigma requirements. All Six Sigma processes are executed by Six Sigma Green Belts or Six Sigma Black Belts, which are then overseen by a Six Sigma Master Black Belts, terms created by Motorola.

Some Six Sigma practitioners have in recent years combined Six Sigma ideas with lean manufacturing to invent new a methodology. This new methodology is called Lean Six Sigma.

In many organizations, it simply means a measure of quality that strives for near perfection. Six Sigma is a disciplined, data-driven approach and methodology for eliminating defects (driving toward six standard deviations between the mean and the nearest specification limit) in any process -- from manufacturing to transactional and from product to service.

Statistics is at the core of the Six Sigma methodology. Six Sigma focuses on using data to problem solve and create systematic approaches to lowering deficiencies. Because data is at the core of the Six Sigma methodology, statistical analysis and tools are commonly used. It is important to note that while the Six Sigma methodology is data driven at its core, rudimentary statistical tools and analysis are usually proficient.

The statistical representation of Six Sigma describes quantitatively how a process is performing. To achieve Six Sigma, a process must not produce more than 3-4 defects per million opportunities. A Six Sigma defect is defined as anything outside of customer specifications. A Six Sigma opportunity is then the total quantity of chances for a defect. Process sigma can easily be calculated using a Six Sigma calculator.

Implementation of Roles in Six Sigma Methodology

There are many roles that that are used in the Six Sigma Methodology. While most of the roles below are used in many organizations Six Sigma implementation, it should be noted that they are not universal. The roles include:

Executive Leadership - Top level executives are responsible for vision and ultimately implementation of the Six Sigma Methodology. They also empower others to take initiative and ownership of the Six Sigma principles.

Champions - Champions are usually upper management that is responsible for the implementation of Six Sigma throughout their organization.

Master Black Belts - are usually handpicked by Champions to coach others within the organization on the Six Sigma methodologies. They allocate either all or most of their time to the Six Sigma methodologies. It should also be noted, that they usually have mentoring responsibilities to coach and train lowers roles including Black Belts and Green Belts.

Experts - while this role is not in every organization, it can play a huge role in major engineering or manufacturing sectors. They improve overall services, products, and processes for their end customers.

Black Belts - Black Belts focus on six sigma execution. They are usually middle managers.

Green Belts - These roles are usually taken on by employees who help Black belts execute specific projects, as well as other job responsibilities.

Six Sigma is more than just a quality system like TQM or ISO. It's a way of doing business. As Geoff Tennant describes in his book Six Sigma: SPC and TQM in Manufacturing and Services: "Six Sigma is many things, and it would perhaps be easier to list all the things that Six Sigma quality is not. Six Sigma can be seen as: a vision; a philosophy; a symbol; a metric; a goal; a methodology." We couldn't agree more.

Finally, many organizations use the Six Sigma methodology as a way of protecting themselves from liability. For instance, if a company produces a product that is low in quality or can harm its user, the organization can use the defense that quality is at the forefront in order to be viewed positively. In this respect, it is unclear if an organization has implemented Six Sigma for its methodology or to cover its liability.

Wednesday, September 29, 2010

CSS 3... The New Generation of CSS...


Cascading Style Sheets (CSS) is a style sheet format, endorsed by the World Wide Web Consortium (W3C) that works with HTML documents using simple syntax and various style properties denoted by English language keywords.

CSS3 offers a huge variety of new ways to create an impact with your designs, with quite a few important changes. This first tutorial will give you a very basic introduction to the new possibilities created by the standard.

CSS1 (Version 1.0) incorporated innumerable layout settings suitable for downloadable HTML pages. CSS2 (Version 2.0) provides additional XML support, downloadable fonts and audio presentations for visually impaired users. CSS3 (Version 3.0) continues in development and its improved highlights include: vertical text, extensive backgrounds and borders, speech recognition and user interaction.

CSS3 promises to include some very cool features that will make styling much easier for advanced layouts. Unfortunately, there is only some browser support for some of these features at the time of this post. I’ve seen some support for these in Firefox, so you can at least begin to play around with some of the features. However, I would hold off on using these exclusively for your layouts until there is more cross browser support.







The biggest change that is currently planned with CSS level 3 is the introduction of modules. The advantage to modules is that it (supposedly) allows the specification to be completed and approved more quickly, because segments are completed and approved in chunks. This also allows browser and user-agent manufacturers to support sections of the specification but keep their code bloat to a minimum by only supporting those modules that make sense. For example, a text reader wouldn’t need to include modules that only define how an element is going to display visually. But even if it only included the aural modules, it would still be a standards complaint CSS 3 tool.



Backgrounds and Borders 

border-radius -- allows for rounded borders
border-break -- can close the border of a box that has been stopped at a break point (page break, column break, line break)
border-image -- instead of using a border style, it sets an image as the border
box-shadow -- adds a shadow to an element

Multi-column Layout 

The multi-column layout adds a new kind of container -- column box. The content of multi-column elements flows from column to column. The column box is encapsulated within the main div container of the content.

Advanced Layout

The goal is to keep the content and the layout order separate. The module attempts to simplify laying out elements on complex Web pages and forms. Two methods proposed are Template Based Positioning and Tabbed Displays. Template Based Positioning lets you create a grid layout and place elements within slots on the grid. The Tabbed Display method piles up elements like tabbed cards, displaying only one at a time. 

Grid Positioning

·         Explicit grid -- generated with grid-columns and grid-rows
·         Natural grid -- generated automatically, for instance multi-column elements -- the edges on both sides of the column make grid lines
·         Default grid -- elements that do not fit into the two grid categories above are regarded as having a single-cell grid
Selectors

·         E:only-of-type -- refers to an element which is the only sibling of its type
·         E:not(s) -- selects any element that doesn't match the simple selector s
·         E ~ F -- selects an F element that comes after an E element
·         E:nth-child(n) -- selects an element which is the nth child of its parent element
·         E:nth-last-child(n) -- same as the previous selector, but counting from the last one
·         E:nth-of-type(n) -- selects an element which is the nth sibling of its type

Media Queries

The aim is to extend the functionality of media types by adding expressions. Some of the media features that can be used in these expressions are width, height and colour. This allows pages to be customised for different devices without changing the content. 

CSS Marquee


Marquee contains the properties that control the speed and direction of the “marquee” effect. Marquees are a scrolling mechanism that needs no user intervention: overflowing content moves into and out of view by itself. Marquee is mostly used on mobile phones. 

User Interface

·         Box-Sizing- let’s you change the behavior of the browser in calculating the width of an element.
·         Resize- It allows you to specify if a box is resizable.
·         Outline- allows the offset to be rendered away from the edge of the specified element.

Speech


CSS2 added support for the Aural media type which is used for “styling” speech synthesis in aural user agents (e.g. screen readers). The specification added several properties to this new media type. The current Working Draft of CSS2.1 reserves media="speech", but explicitly does not define which properties apply to it. Also, the aural media type has been deprecated. The CSS 3 Speech module removes some of the old properties and adds new ones. All of them are now assigned to the speech media type.

Ruby

CSS will now support the ability to add small annotations on top or next to words, most often used in Chinese and Japanese. They are generally used to give the pronunciation or meaning of difficult ideograms.

Hopefully, in a mainly positive way CSS3 will obviously be completely backwards compatible, so it won’t be necessary to change existing designs to ensure they work – web browsers will always continue to support CSS2. The main impact will be the ability to use new selectors and properties which are available. These will allow you to both achieve new design features (animation or gradients for instance), and achieve current design features in a much easier way (e.g. using columns). Once it's fully adopted as a standard and Web browsers and user-agents begin using it, CSS 3 will be a powerful tool for Web designers. The new features listed above are only a small sub-set of all the additions and changes to the specification.