Saturday, January 24, 2009

Ajax frameworks - contd

In this post, I am going to talk about the 3 major framework created by the big Corporations - Microsoft, Google and Adobe - each offering their own version to enable their Evangelists and followers to continue to use their technology. I am reproducing below the writeups from each of these corporates - my aim is to provide a single page where all the information is available.
Google Web Toolkit (GWT)
GWT promoted by Google looks at allowing developers to quickly build and maintain complex yet highly performing JavaScript front-end applications in the Java programming language.

How Google Web Toolkit works

With Google Web Toolkit (GWT), you write your AJAX front-end in the Java programming language which GWT then cross-compiles into optimized JavaScript that automatically works across all major browsers. During development, you can iterate quickly in the same "edit - refresh - view" cycle you're accustomed to with JavaScript, with the added benefit of being able to debug and step through your Java code line by line. When you're ready to deploy, GWT compiles your Java source code into optimized, standalone JavaScript files. Easily build one widget for an existing web page or an entire application using Google Web Toolkit.
ASP.NET AJAX from Microsoft

ASP.NET AJAX is a free framework for quickly creating efficient and interactive Web applications that work across all popular browsers.

ASP.NET AJAX is built-into ASP.NET 3.5. It is also available as a separate download for ASP.NET 2.0. With ASP.NET AJAX you can:
  • Create next-generation interfaces with reusable AJAX components.
  • Enhance existing pages using powerful AJAX controls with support for all modern browsers.
  • Access remote services and data from the browser without tons of complicated script.
  • Take advantage of the improved efficiency and ease of use in Visual Studio 2008, with its built-in support for ASP.NET AJAX, improved JavaScript support, and a new Web page designer interface.

What is ASP.NET AJAX?

ASP.NET AJAX refers to new components in ASP.NET that allow for building rich AJAX styled web applications using the design patterns familiar to ASP.NET developers. ASP.NET AJAX 1.0 was available as a separate add-on for ASP.NET 2.0. With the release of ASP.NET 3.5, the AJAX components have been integrated into ASP.NET (no separate download required). AJAX components in ASP.NET integrate cross-browser script libraries with the ASP.NET server side Web application framework. This integrated architecture empowers developers to rapidly create pages with sophisticated, responsive user interfaces and more efficient client-server communication by simply adding a few server controls to their pages.
It allows developers to choose their preferred method of AJAX development, whether it is server-side programming, client-side programming, or a combination of both.

Server-side AJAX Programming
Developers familiar with ASP.NET's server-side programming model can add AJAX functionality using the familiar server controls, and the convenient drag and drop gestures. For example, partial update functionality can be added to ASP.NET applications by wrapping sections of their websites in the AJAX server control 'UpdatePanel', which enables the server controls to update without a post back. This is as simple as AJAX programming gets. Developers don't have to learn about the underlying scripting or browser technologies. Based on the ASP.NET server side design patterns, developers continue to get key advantages such as a clean declarative model of specifying web page UI, an event-driven programming model, and a rich set of APIs from the .NET Framework.

Client-side AJAX Programming

Developers with a basic understanding of JavaScript can leverage client-side AJAX framework, that allows building client centric AJAX applications. For example, the client AJAX Framework allows developers to build rich client side components and controls and make calls to remote servers, including web services and then updating the Web page with the response. The response can be an HTML snippet or an XML document, allowing for simple or extensive updates to the Web page. The Client side AJAX Framework works well with ASP.NET. The ASP.NET team also ships this framework independently as Microsoft AJAX Library. Since this framework is not tightly coupled with ASP.NET, it can be used with other server side technologies as well such as PHP and Cold Fusion.

ASP.NET AJAX Programming

ASP.NET AJAX shines in its ability to combine the best of server-side and client-side AJAX programming, providing Web applications with a user experience similar to the richness of traditional desktop applications. Watch some of the following videos to learn how simple it is to get started with ASP.NET AJAX programming.

Spry framework for Ajax from Adobe

The Spry framework for Ajax is a JavaScript library that provides easy-to-use yet powerful Ajax functionality that allows designers to build pages that provide a richer experience for their users. It is designed to take the complexity out of Ajax and allow designers to easily create Web 2.0 pages.

The Spry framework is a way to incorporate XML, JSON or HTML data into pages using HTML, CSS, and a minimal amount of JavaScript, without the need for refreshing the entire page. Spry also provides easy to build and style widgets, providing advanced page elements for end users. The Spry framework is HTML-centric, and easy to implement for users with basic knowledge of HTML, CSS and JavaScript. The framework was designed such that the markup is simple and the JavaScript is minimal. The Spry framework can be used by anyone who is authoring for the web in their tool of choice.

Happy programming viewers.

Monday, January 19, 2009

Ajax framework

Continuing on my write up on Ajax, this post is going to deal with Ajax framework. After the framework posting is over, there will be one more poston this topic of web 2.0.

The AJAX Framework is a cross browser framework that allows developers to quickly develop web pages that can call web services, web pages and other types of content through JavaScript without having to submit the current page. The AJAX Framework Supports both GET and POST and works with Internet Explorer 6+, Opera 8+, Safari 3+, Firefox 2+, Google's Chrome and other Mozilla based browsers.

The AJAX Framework was developed by Jason Graves and is free to use under the GNU General Public License (GPL).

http://www.godlikemouse.com

Ajax framework is an engine and is intended to suppress the delays perceived by the user when a page attempts to access the server. A framework eases the work of the Ajax programmer at two levels:

  1. on the client side, it offers JavaScript functions to send requests to the server.
  2. On the server side, it processes the requests, searches for the data, and transmits them to the browser.

Some frameworks are very elaborate and provide a complete library to build web applications.

Types of frameworks

Ajax frameworks can be loosely grouped into categories according to the features they offer and the skills required of the user:

Direct Ajax frameworks

These frameworks require HTML, CSS and Ajax expertise: as a developer is expected to author pages directly in HTML, and framework APIs deal directly with HTML elements. Cross-browser APIs are provided for a variety of purposes, commonly including communications, DOM manipulation, event handling, and sizing/moving/animating HTML elements. While these frameworks are generally smaller, they are commonly used for a web site such as a shopping experience only

Ajax component frameworks

These frameworks offer pre-built components, such as tabbed panes, which automatically create and manage their own HTML. Components are generally created via JavaScript or XML tags, or by adding special attributes to normal HTML elements. These frameworks are generally larger, and intended for web applications. Some component frameworks require the developer to have extensive HTML/CSS/Ajax experience and to do cross-browser testing. For example, grids, tabs, and buttons may be provided, but user input forms are expected to be authored directly in HTML/CSS and manipulated via Ajax techniques. Other frameworks provide a complete component suite such that only general XML and/or JavaScript abilities are required.
Ajax component frameworks can enable more rapid development than direct Ajax frameworks, but with less control, hence it is key that an Ajax component framework provides the following:

  • customization APIs, e.g., an event that fires when the user stops editing within a grid
  • skinning facilities, where appearance can be changed without affecting behavior or layout
  • programmatic control, e.g., dynamically adding tabs or dynamically creating components based on user data
  • extensibility—creation of new components based on other components, so that the benefits of a component-based framework are not lost

Server-driven Ajax frameworks

Several frameworks offer a server-side component-based development model with some degree of Ajax support. Components are created and manipulated on the server using a server-side programming language. Pages are then rendered by a combination of server-side and client-side HTML generation and manipulation. User actions are communicated to the server via Ajax techniques, server-side code manipulates a server-side component model, and changes to the server component model are reflected on the client automatically.
These frameworks offer familiarity for server-side developers at the expense of some degree of power and performance. Ajax frameworks that handle presentation completely within the browser offer greater responsiveness because they handle many more user interactions without server involvement. The main disadvantages of the server driven model is the number of network requests and the inability to provide offline support. However, this approach is followed where the ajax architecture cannot be utilised to the maximum.

The following webpost from Minidxer details out a list of ajax framework and a brief writeup of each of these frameworks.
http://ntt.cc/2008/02/13/the-most-complete-ajax-framework-and-javascript-libraries-list.html

In my next post I will write in detail about the Microsoft, google and adobe frameworks available for the developers.

Saturday, December 27, 2008

Scrum agile methodology

Scrum is an iterative, incremental process for developing any product or managing any work. Scrum is a wrapper for existing engineering practices. Without major changes -often within thirty days - teams are building useful, demonstrable product functionality. Scrum is a set of interrelated practices and rules that optimize the development environment, reduce organizational overhead, and closely synchronize market requirements with iterative prototypes. The tasks are broken into small pieces and small teams formed which consists of designer, developer, tester and the client representative. So all the people from the whole life cycle form a minicosm of the larger team and working together very closely.

The various terms associated with this process is are as follows:


Sprint

A time period (typically between 2 weeks and 1 month) in which development occurs on a set of backlog items that the Team has committed to.

Product Owner

The person responsible for maintaining the Product Backlog by representing the interests of the stakeholders.

Scrum Master

The person responsible for the Scrum process, making sure it is used correctly and maximizes its benefits.

Team

A cross-functional group of people responsible for managing itself to develop the product.

Scrum Team

Product Owner, ScrumMaster and Team

Sprint Burn Down Chart

Daily progress for a Sprint over the sprint's length.


Product Backlog

A prioritized list of high level requirements.


Sprint Backlog

A list of tasks to be completed during the sprint.


Sashimi

A slice of the whole equivalent in content to all other slices of the whole. For the Daily Scrum, the slice of sashimi is a report that something is done.

Standup meeting

The daily project status meeting where the each team member s answers these questions

1. What are you planning to do by today?
2. Do you have any problems preventing you from accomplishing your goal? (It is the role of the ScrumMaster to remember these impediments.)

Sprint retrospective

At the end of a sprint cycle a sprint retrospective is held, at which all team members reflect about the past sprint. The purpose of the retrospective is to make continuous process improvement. Two main questions are asked in the sprint retrospective

1. What went well during the sprint?
2. What could be improved in the next sprint?


So this goes on with the product development happenings in small sprints in which there is a full scale feature ready for deployment.

Thursday, December 25, 2008

Blood donation Camp at CI

I had written about the activities that are undertaken by our company under CISF (Computers International Social Fund) in my personal blog. As part of the yearly activity, we will be organizing the “Blood Donation Camp” on 27th December 2008. This is Eighth year in succession, the camp is being organized and all our staff members are proud to be part of this noble effort. In fact, we started this years earlier and used to have it on 1st January - which used to give a great feeling for all of us to start the New Year with having done a noble deed, but practical reasons have forced to do it towards the end of year. Anyway the timing doesn't matter, it is thinking of giving back to Society which matters, isn't.

Lions Blood Bank has been part of this drive, by organizing their doctors and assistants to come over to our office and be part of this in all these years. The dedication of their staff members is seen to be believed.

The camp will be conducted at our Ganga Office premises from 9:00 a.m on Saturday the 27th December.


CI.COM (P) LTD
T1A 7TH STREET
VSI ESTATE, PHASE II
Thiruvanmiyur, Chennai 600 041
Ph : 24542858

We would love to have you and your family members to join us in this effort by volunteering to donate blood. You can also bring your friends who may be interested in donating blood.

Some facts about Blood Donation

  • Blood is the most sort-after body part in the world. Demand and supply are slowly drifting further and further apart.
  • India’s daily estimated requirement of blood is roughly 40 million units of 250 cc blood packages. Of which only 500,000 units are available.
  • Blood cannot be manufactured, there is no substitute – it must come through generous voluntary donors.
  • By donating just 350/450ml of blood out of 5-6 litres of blood available in a human body, one can even save 1 to 3 lives.
  • Anyone at least 18 years old and weighing 110 pounds or more may donate blood as often as every 56 days.

So if you are a chennaite, please join us to make this get greater momentum.

Tuesday, December 23, 2008

Social Networking under web 2.0

This is the actual reproduction from the article from connectitnews.com. After reading through the article I felt that I can reproduce this as it deals with what web 2.0 and its relevance to Corporates .

So here is the reproduction


Social networking -- the new 'killer app'?
23 December, 2008

By Liam Lahey

Some say social networking came of age in 2008 and as it continues to mature over the course of 2009, it will live up to the hype as the next "killer app". But beyond social networking, what will Web 2.0 do for businesses in a forthcoming year that is economically unpredictable?
According to Tim O'Reilly (the man who coined the term), "Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as a platform, and an attempt to understand the rules for success on that new platform."
As stated on Wikipedia, Tim Berners-Lee, inventor of the World Wide Web, described the term Web 2.0 as a piece of jargon. "Nobody really knows what it means," and "if Web 2.0 for you is blogs and wikis, then that is people to people. But that was what the Web was supposed to be all along."
Perhaps we'll have a stronger definition for Web 2.0 by the time there's talk of Web 4.0, as hindsight helps things to become vastly clearer.
"My own feeling is that all monikers are jargon," said Warren Shiau, senior associate, IT research, The Strategic Counsel. "What I perceive is that many people use Web 2.0 to signify people, rather than business entities, controlling the Web. But like Tim Berners-Lee says, Web 2.0 means lots of different things to lots of different people.
"Whatever you define Web 2.0 as I think is, in the end, irrelevant. There's a cycle to everything: start-ups get started, businesses grow and fail; things everybody says will be huge may end up being huge or turn-out not so huge. Remember how gigantic the ASP market was supposed to get?"
Beyond monikers, social networking has become a viable application with consumers and business users.

"Right now, social networking is valuable, and used, from a marketing and promotion standpoint. It can raise a company's profile, not to mention a brand or product profile," commented Michelle Warren, principal analyst, MW Consulting. "I've also seen it used for HR purposes -- to aid in the recruiting function. It is still largely viewed as being a cost-centre, however, as it is challenging to measure true benefits against it."

Executives would be well-served to understand its opportunities over the next year, and to see how they can benefit from it, she added.

"[Social networking] continues to ramp as a platform, however under current economic conditions which will restrict traditional and non-traditional forms of funding I expect there will be some market consolidation over the next two years," said Rob Enderle, principal analyst, The Enderle Group. "It isn't going away though and will continue to evolve into an ever strengthening platform but, I expect, with fewer major vendors in a few months."

It has also been said Web 2.0 is about hyper-connectivity, about the conversations that are happening on the Web that are shifting power away from companies and to the individual and the online communities to which they belong.

That is true of every wave of technology going back to the Bronze Age; the waves are just coming at an increasing rate.

"This is evolution at Internet speeds and those businesses that can be agile enough to evolve quickly enough will survive, many will actually anticipate these changes and flourish. You could argue that Google and Apple are poster children for this, while those that can't (Sun comes to mind) will languish and perhaps die," Enderle remarked. "This rate of change does put significant emphasis on survival of the fittest."

Warren said that is a definitely liability of Web 2.0 and an opportunity for the resellers.
"Sourcing, finding, and using data is difficult. Also, Web 2.0 expedites communications and therefore, the speed of business," she said. "Many argue that business is moving 'fast enough' these days -- Web 2.0 has the potential to speed it up. This has the ability to change the face of business in the next five years."

Meanwhile, Dan Latendre, CEO of Igloo Software -- a corporate social networking solutions provider -- said the technology still has a ways to go in terms of being adopted by organizations.
Igloo defines Web 2.0 as a set of new and innovative tools that take us beyond simple browsing, searching and publishing of static Websites.

"Along with this whole Web 2.0 and social networking play is something that's been forgotten and that's the software-as-a-service model," he said. "These are the choices organizations are going to have to make -- 'am I going on-premise or SaaS?'"
To that end, the coming year would be another important step for the corporate social networking adoption, he added.

"I don't think [social networking] came of age in 2008, I think we're still in an education phase," he said. "A lot of CIOs are still trying to figure out how to best implement a corporate social network in their organization.

"I strongly recommend to organizations to do it by business units . . . and not the top down enterprise approach. In the marketplace, you extend corporate social network outside your firewall to deepen those connections with your key partners and suppliers."

"Web 2.0 will generally allow successful businesses to become better connected with their customers, and it will probably have a great deal to do with who survives and prospers over the next 24 months," added Enderle. "Customer care and customer satisfaction form the foundation for customer retention and Web 2.0 services go to the core of customer care and customer satisfaction."

John Chambers, chairman and CEO of Cisco Systems, recently said the next Internet experience would be driven by collaboration and Web 2.0 technologies and would be built around video and virtualization as the industry moves to the usage of collaboration tools.

"We believe the network will enable all forms of communication and IT," he said.
Everything Cisco is doing is building off of its belief that collaboration and Web 2.0 would become a more dominant and important part of business communications and doing business, Chambers added.
With files from Chris Talbot.

Unquote.

In my next blog write up I will share one article which talks about getting the best out of one the social networking sites LinkedIn

Happy reading.

Monday, December 22, 2008

Agile product development methodology


Waterfall Model required a complete analysis of user requirements with Months of intense interaction with users and customers. Then the programmers implement and the complete system is tested and shipped.

But users change their minds and after months, of collecting requirements users still not sure of what they want. The Requirements tend to change mid-development and difficult to stop the
momentum of the project to accommodate the change. Copious amounts of documentation need to be kept up to date to accommodate even small changes

The high overheads involved in design methods led to the creation of agile method of programming which focuses on


· Code rather than design
· Are based on an iterative approach to software development;
· Are intended to deliver working software quickly and evolve this quickly to meet
· changing requirements.

Agility is the ability to create and respond to change in order to profit in a turbulent
business environment. Companies that can
• innovate better and faster
• respond quickly to
-- competitive initiatives
-- new technology
-- customer's requirements

will win.

The basic risks in the earlier development methodologies are taken care of by Agile methodology as follows:


Schedule slips Short release cycles
Project canceled Smallest release that makes sense
System goes sour Maintain a suite of tests
Defect rate Testing by programmers and customers
Business misunderstood Make the customer part of the team
Business changes Short release cycles
False feature rich Address only the highest priority tasks

Agile development process follows those project management process that encourages frequent inspection and adaptation; a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.


The Manifesto

This was created by Kenny Beck and 16 others in 2001 and they issued this development manifesto

"We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:


• Individuals and interaction over process and tools,
• Working software over comprehensive documentation,
• Customer collaboration over contract negotiation,
• Responding to change over following a plan. "


Principles behind the Agile Manifesto

We follow these principles:

· Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
· Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
· Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
· Business people and developers must work together daily throughout the project.
· Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
· The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.


Agile Methodologies

The different development methodologies that are practiced under Agile are as follows:


· Scrum
· Dynamic Systems Development Method (DSDM)
· Crystal Methods
· Feature-Driven Development (FDD)
· Lean Development (LD)
· Extreme Programming (XP)
· Adaptive Software Development (ASD)

I will write on some of these development methodologies in the future blog write up.

Keep reading

Tuesday, December 2, 2008

A look up at Outsourcing in 2009

This is an extract for one of the blogs that I follow :
The outsourcing blog - horses for Sources posted on Dec 1st. under the topic
" Looking to 2009 " where has a chat with Peter Allen another veteran blogger on outsourcing. Since this was very informative, I am reproducing the major part of the posting.
PF: Peter - You've witnessed the growth and development of the global outsourcing industry and probably have had more conversations with sourcing buyers and suppliers than most people over the years. How critical is this current economic crisis to the outsourcing industry? Do you see increased activity on 2009 as a result?
PA: Thanks, Phil. These are certainly times of considerable stress among the buy-side and provider-side participants in our industry. Your question is among the most widely-discussed topics these days. I truly believe that the next two years will form the most significant litmus test for the global outsourcing industry that we’ve ever experienced. Up to now, outsourcing has been largely trimming the edges of corporate organizational models. Going forward, outsourcing relationships are likely to take a much more central position in strategies for survival, and for eventual return to growth.

PF: Cutting to the chase, what do you see happening with the service providers in 2009? Consolidation, or shut-downs? Who will be the winners and losers?
PA: I think we’ll see some real upsurge in demand for outsourcing, likely starting with contract awards in late Q1 and early Q2. The service providers that are in the best position to benefit are those that can shift to a true “managed services” model of operation. In my experience, there are very few of these today. Most providers have enjoyed the rising tide of wage arbitrage contracting and those days are ending – quickly. The current economic turmoil will fuel the orientation around vertical industry BPO and leveraged delivery models. I suspect that some service providers will not have the ability to make the shift in the time frames demanded by the market, and they will suffer.
PF: A lot has been said about the lack of innovation and business value creation in many BPO and ITO engagements. With this current economic crunch, is this an opportunity for businesses to outsource smarter, or do you see more buyers acting out of desperation to slash costs and failing to focus on the bigger picture?
PA: That’s the paradox that frames our industry’s situation. The rareness of innovation through outsourcing, in my view, has been driven by the tendencies of clients and providers alike to chase near-term cost savings through labor arbitrage contracting. While this has fueled many, many outsourcing relationships (and achieved the client’s goal of saving money), it has stifled the ability to innovate around end-to-end service accountability. Most of the client executives with whom I speak seem to understand this. In fact, they attest to a renewed sense of senior leadership demand for dramatic structural changes to organizations – changes that simply cannot be achieved merely by moving “positions” offshore but, rather, by radically altering service models. I should also add that many of the decision-makers within Client organizations were acting with a decided tone of self-preservation, as they were expected to deliver cost improvements in a relatively short time horizon. This tended to cloud their strategic thinking. It remains to be seen if this orientation has changed materially.
PF: How can we - as an industry - get better at this? What would you like to see from both service providers and buyers?
PA: Well, let’s start with recognizing that providers sell what the buyers are willing to buy. I keep hearing from senior client executives that there has been too much resistance within their organizations to fundamental restructuring of how work is performed. There have been too many constraints to transformation. That’s what gave rise to all of the arbitrage contracting. Simply said, it was way too convenient to just contract for effort, and the hard decisions about restructuring work processes and delivery organizations have been deferred. If clients want maximum value from the outsourcing industry, they need to demand services that leverage more than cheaper labor. It’s only then that the providers will see the clear signs that they need to make investments in offerings that deliver the benefits of leverage beyond wage. Relationships will necessarily be much more partnership in orientation, with greater risk/reward sharing, but that’s when we’ll see real value creation for both sides.
Unquote
I encourage my readers to go through the blog for further readings.
So the crux of it is - " It is the relationship that you set with the outsourced vendor determines what you get. dont look at outsourcing just as cost cutting, use it as an enabler to form an extended team.
I can vouch for it totally as from a mere cost cutting solution, my clients have acknowledged that, the relationship with CI has become Strategic and now it is a symbiotic relationship between us and both of us derive a lot of value together.