Wednesday, December 31, 2008

Philanthropy - Social Responsibility

Excerpts from an article written by Sanjay Subrahmanyam on philanthropy and its role in social responsibility
“European visitors to India in the 16th and 17th centuries usually found precious little to admire here. The climate they deemed too warm and languorous; they rarely liked the food and drink; the gods struck them as frightful and monstrous.
Once in a while, however, something did catch their fancy. Amongst these was the Indian habit of giving often and generously, such as when a merchant at the end of his worldly career decided publicly to part with all his material goods.
Even the Jesuits, behind their general attitude of superiority and condescension, occasionally praised the mass feeding of the poor that was practised both in temples and by princes and magnates. Usually they saw all this as a form of ritual or religious practice rather than an affirmation of social bonds.
The Dutch and the English merchants in their outposts in places such as Surat and Bharuch were less certain of what these acts of giving meant, and noted in puzzlement that they extended beyond generosity to humans to setting up infirmaries for animals and even birds.
Something happened to this tradition over two centuries of colonial rule. It did not disappear but it was transformed in a variety of ways, some subtle and others less so. To be sure, when the great famines of the late 19th century ravaged western and southern India, some acts of generous giving were noted.
The celebrated bird and animal hospitals of Jains in western India did not disappear. But philanthropy was initially not taken very seriously by those who made great fortunes on the back of the colonial trades, whether opium export to China or jute-making in Kolkata.
Trading communities looked after their own up to a point, with richer traders bankrolling their poorer cousins. By the time of the Five-Year Plans of the 1950s, it was the state that was looked up to as the ultimate mai-baap, giver and arbiter of redistribution.
Socialism may have been a nice buzzword in the '50s and '60s, but beneath its surface, it was a dog-eat-dog world. If one did not inherit wealth, it was all a question really of who could get access to the state and its mechanisms for redistribution, rent-seeking and social climbing.
So, some social change did happen, and some new groups emerged to the fore. A handful of robber barons also made great fortunes by dint of their strategic dealings with this or that party and leader.
It was a far-from-ideal world, but one where the state was meant to keep a lid on things when social tensions came to the boil by a mix of populism, coercion and handouts.
Many Indians today, especially among the middle class and elite, want to repudiate that past and its licence-permit-quota raj. One can see why. But it may also be useful to see what the alternative, which has been touted for a decade-and-a-half as something called liberalisation, really means.
Fundamentally, what liberalisation as a process entails is the reduction of the role of the government in economic and social terms.
But what of other tasks the state undertook, and which do not bring with them ready short-term profits as rewards for risk-taking? These include the provision of a whole host of public goods.”
Let’s first take the case of education.

“Some parts of education are well-paying, as anyone who has visited the great public school chains in the metropolitan cities knows. Even teaching shops and cramped spaces where students cram desperately for the IITJEE have been doing a roaring business for some decades now.
But,the market, left to its own, will not educate many of those who do not have the ability to pay and pay amply.
This is where only two alternatives exist: the state or philanthropy. This is undoubtedly true for the primary education of a poor farmer's five-year-old child in Belgaum, but the logic of this runs all the way up and down the system.
One can see how engineering schools, medical schools and management institutes can work in a free market. The same is true for the production of software programmers and others who serve global industries of various sorts.
But what about the social sciences, the arts, the humanities? Why would the market want a social anthropologist or a poet? Should we then imagine an India with crores of software writers and not a single great sarod player or political theorist?”
Sam Pitroda wrote in another article that content needs to be changed.” Our graduates specialize too early. There is no focus on liberal arts. Everyone wants to be an engineer. That's why we can't have good leaders.”
“It is usually imagined that for the reproduction of artists, musicians and the like, we can somehow depend on traditional family-based institutions to do the job. This may be true to an extent of music, but is it true of the visual arts? Is it true of literature?
It seems to me that the only answer here in view of the gradual (and perhaps even justifiable) withdrawal of the state is the growth of Indian philanthropy and private patronage of the arts and education. But how is this to happen, the reader will ask?
There is obviously no simple solution. But one can help to create the conditions for it. First, it should be understood that philanthropy is not altruism or some sort of Gandhian nishkama karma.
It is enlightened self-interest and also carries some bragging rights; no one should think that Warren Buffet got his ideas from the Gita. There are many people in India who have more money than they know how to spend.
So it is a question of making philanthropy something that is valued. Second, the matter requires some fiscal forethought. Almost all those who give large sums in the US-which is perhaps the single most successful philanthropic economy in the world-do so in careful consultation with their tax-planners.
Even in their generosity, they are careful and calculating. So the state has to motivate such activity through its tax policy, and even provide some delicately constructed loopholes for those seeking to transform their wealth from a darker into a lighter shade.
In a society like India, where an affluent class has emerged in the past two decades riding the crest of liberalization, it is a question of whether a new social contract is now not a pressing necessity.
This would not be a contract based on the tricks of the state, but rather on some notion that went beyond mere taxation and redistribution. American conservatives such as Richard Posner have argued that growing income inequality is necessary and even desirable as a condition for a meritocracy.
That they can even dare to make such an argument is because they are confident in the existence of other institutions that will counterbalance such inequality. Chief among such institutions is philanthropy.”

Thursday, December 18, 2008

Demystifying Cloud Computing

Cloud computing is not fluff — it's the future of IT. Take a closer look at what's in the clouds and what it might mean for your organization.

It became a buzzword even before it was defined. But if you're under the illusion that cloud computing is all fluff, maybe it's time to take a closer look.

Cloud computing is all about efficiency. It provides a way to deploy and access everything from single systems up to massive amounts of IT resources, on demand, in real time, at an affordable cost. Because the best cloud strategies build on concepts and tools that developers already know, clouds have the potential to redefine the relationship between IT and the developers and business units who depend on it. IT gains new efficiency and points of control while their customers gain access to services with a new level of simplicity and control.

What cloud computing is — and isn't

Cloud computing is a style of computing or massively-scalable IT-related capabilities that are provided as a service across the Internet to multiple external customers. "Customers," in this case, could be defined as employees, contractors, partners as well as traditionally defined customers. From there, the cloud can be divided into two contexts: the private or enterprise-computing cloud and the public computing cloud.
While public cloud computing may not yet offer all of the services you want, as an enterprise you don't want to miss out on the benefits provided through virtualization. This gives rise to the creation of a private cloud environment. Within Sun IT, we are creating a private cloud to take advantage of the properties of cloud computing by deploying our private services into it.
A private cloud is set up by your IT organization and is owned by the enterprise. Services are consumed by employees and/or authorized partners/suppliers directly from the Internet. From an IT perspective, it's important to rapidly deploy services into the cloud and have these services be nonstop operating services, trusted and secure, and be scalable both horizontally and vertically. Private clouds are typically created when public clouds don't offer the service needed, shared tenancy won't work, or the public offerings can't provide the scalability, security, reach, touch, or reliability that an enterprise requires.
The public computing cloud however, derives its efficiency from the shared tenant model because multiple customers share the same computing resources to maximize delivery of their computing platform. Security controls are a consideration, but as time moves forward and the public clouds become more available, more secure, more geographic, and more enterprise-ready companies will move away from personal private clouds and toward public, shared clouds.

Here's a quick overview of what cloud computing is (and isn't), how you can take advantage, and how Sun can help.

All cloud computing deployments have a few things in common. At the highest level, they are a means of delivering IT resources as a set of well-defined services. Just as electric utilities gain efficiency by limiting your options for voltage and frequency, clouds gain efficiency by doing a small number of services very well. Of course this means that some applications won't fit a particular cloud, but that's the important tradeoff.

Other key elements of cloud computing lead to additional efficiencies. Self provisioning and programmatic APIs dramatically reduce the role of humans. Aggressive use of virtualization optimizes physical resources. And the ability to scale up and down dynamically, combined with "pay-as-you-go" pricing, incents cloud users to be efficient with their usage.

There are also many important differences among clouds. "Sun's view is that there are three dimensions to cloud computing, each with unique possibilities and opportunities," said Sun's David Douglas, Senior Vice President of, Sun's cloud computing initiative.

Dimension 1: Layers of abstraction

In the same way that different types of meteorological clouds form at different altitudes, different types of IT clouds can form depending on the layer of abstraction. There are three predominant cloud types:

  • Infrastructure as a Service (IaaS) is at the lowest layer, and is a means of delivering basic storage and compute capabilities as standardized services over the network. The best-known commercial example is Amazon Web Services (AWS) whose EC2 and S3 services offer bare-bones compute and storage services (respectively).
  • Platform as a Service (PaaS) is in the middle, consisting of higher-layer capabilities that developers can knit into applications. Commercial examples include Google App Engine and's platform.
  • Software as a Service (SaaS) is at the highest layer and features a complete application offered as a service, on-demand, via multi-tenancy — meaning a single instance of the software runs on the provider's infrastructure and serves multiple client organizations. Examples include and the iTunes store.

It is important to note is that IaaS and PaaS clouds introduce new interfaces and APIs. These new interfaces can make life simpler for developers in the short term, but they also carry the potential to lock developers into a specific vendor or cloud — as is the case with traditional platforms.

Dimension 2: Types of deployment

Just as there are multiple types of clouds, there are multiple ways to deploy them, depending on who's sharing with whom. For example:

  • Public clouds are run by third parties, and jobs from many different customers may be mixed together on the servers, storage systems, and other infrastructure within the cloud. End users don't know who is on the same server, network, or disk their jobs are running on.
  • Private clouds are owned by a single customer who controls which applications are run where. They own the server, network and disk and can decide which users are allowed to use the infrastructure.
  • Hybrid clouds combine these two models. You own parts and share other parts, though in a controlled way.

Dimension 3: Application domain

Since applications have different characteristics and user requirements and place varying demands on infrastructure, why not tune clouds for specific types of workloads? In fact this is already happening. Some clouds are optimized for high-performance computing (HPC) applications, others for maximum Web throughput, and still others for transactions. Sun sees the trend toward application domain specialization expanding into many other areas such as payment, security, backup, and communications.

Why cloud computing changes everything

Even while IT is being asked to contain or reduce costs, demands from the business continue to rise. Streaming content. High-performance computing (HPC) applications. Rich customer Web experiences. Many of these workloads require massive compute and storage resources and also experience sudden surges and spikes in demand — they simply operate at a scale that is beyond the capacity of traditional IT infrastructure.

Cloud computing offers a solution. The core enabling technologies for cloud computing can deliver IT resources and capacities on an absolutely unprecedented scale:

  • Virtualization technology for servers, storage systems, operating systems, and other resources dramatically improves utilization rates while permitting consolidation of physical systems.
  • Sophisticated filesystems such as ZFS support virtually unlimited storage capacities, integration of the file system and volume management, snapshots and copy-on-write clones, on-line integrity checking and repair, etc.
  • "Patterns" in architecture allow for accelerated development of super-scale cloud architectures by providing repeatable solutions to common problems.
  • New techniques for handling structured, unstructured, and "semi-structured" data allow for massive scale-out of data-driven services.

Equally important, cloud computing is enabling new software architectures. It is also accelerating the adoption of lightweight, agile tools such as Hadoop, the free Java software framework that supports data-intensive distributed applications; memcached, a highly scalable "data accelerator"; and MogileFS, a file system that enables horizontal scaling of storage across any number of machines.

Cloud computing also offers the economies of scale of the utility model. Most organizations don't build their own power generators and water treatment plants — so why should every IT organization need to acquire and maintain all of the hardware, software, and development resources it uses?

"A hallmark of cloud services is standardized services for all users," said Douglas. "You don't call up the electric company and ask for 83V power to your house; they do one thing and do it very efficiently."

For end users, cloud computing means there are no hardware acquisition costs, no software licenses or upgrades to manage, no new employees or consultants to hire, no facilities to lease, no capital costs of any kind — and no hidden costs. Just a metered, per-use rate or subscription fee.

The silver lining for IT

Cloud computing creates compelling new economic models for IT service delivery. Here are the three options for taking advantage of the cloud computing model:

Use the cloud.
The number and quality of public, commercially available cloud-based service offerings are growing fast. Using the cloud is a great option for start-ups, research projects, Web 2.0 developers, or niche players who want to "load and go." You can use the cloud for:

  • Offloading overburdened IT infrastructure (temporarily or permanently). For example, why purchase separate systems for software development and testing when those tasks could be accomplished using cloud services?
  • Accommodating peak load, batch processing jobs, or spikes in demand for services
  • Experimenting with new software tools without having to purchase them

Build the cloud.
Options include building a private cloud for internal use, building a public cloud that can become a new source of revenue, or building a hybrid cloud that combines the two.

Sun expects to see huge growth in the deployment of private clouds. Many large enterprises understand the economic benefits of cloud computing but want to ensure strict enforcement of security policies, compliance with regulations, or other constraints that make public clouds impractical at this point in time.

The momentum behind public and hybrid cloud construction is also growing as enterprises and service providers gain experience with the cloud model. The high growth rates of public cloud offerings available today will no doubt accelerate that momentum.

Be the cloud.
Your organization can become a cloud computing service provider or "cloud aggregator," offering multiple types of cloud services. After all, the list of services enabled by cloud computing doesn't begin and end with SaaS, PaaS, and IaaS. Specialized cloud forms include payment as a service, security as a service, backup as a service, collaboration as a service, the list goes on.

Thursday, October 16, 2008

Create a Yahoo! SearchMonkey application : Enhance your search result listings using RDF, XSLT and PHP
Blog dedicated to the engineering of Microsoft Windows 7
Windows Speech Recognition Macros extends the speech recognition capabilities in Windows Vista. Users can create powerful macros that are triggered by voice command to interact with applications.
RESTful Web Services and Comet
Securing a multitenant SaaS application : TheIBM way
Offline Ajax with Apache Derby
Creating modular interactive user interfaces with JavaScript

Develop PHP applications with Picasa Web Albums: Integrate data from Picasa Web Albums into a custom PHP application

Tuesday, August 12, 2008

Expose And Consume Data in A Web Services World: ADO.NET Data Services, LINQ, Entity Data Model
Pex: Automated Exploratory Testing for .NET :Pex is a tool being developed by Microsoft Research which has the potential to dramatically improve the quality of software testing while requiring minimal, if any, effort on the part of the developer. From a parameterized unit test, it automatically produces a traditional unit test suite with high code coverage. In addition, it suggests to the programmer how to fix the bugs. Watch the Channel9 video!

Monday, April 21, 2008

Scaling Strategies for ASP.NET Applications: Performance problems can creep into your Web app as it scales up, and when they do, you need to find the causes and the best strategies to address them.

Tuesday, February 12, 2008

An excellent article on integrating the Policy Injection Application Block with WCF Services :

Another article on What's New for WCF in Visual Studio 2008:

Thursday, January 17, 2008

An introduction, overview, and comparison of three similar interactive application architecture patterns: the Model-View-Controller, Model-View-Presenter, and Presentation-Abstraction-Control pattern.
An article on Separation of Concerns which refers to the establishment of logical boundaries to define and delineate purpose.