Monthly Archives: October 2010

Political and Legal Issues in the History of Cloud Computing

Political Issues :

The Cloud spans many borders and “may be the ultimate form of globalization.” As such it becomes subject to complex geopolitical issues: providers must satisfy myriad regulatory environments in order to deliver service to a global market. This dates back to the early days of the Internet, where libertarian thinkers felt that “cyberspace was a distinct place calling for laws and legal institutions of its own”; author Neal Stephenson envisaged this as a tiny island data haven called Kinakuta in his classic science-fiction novel Cryptonomicon.

Despite efforts (such as US-EU Safe Harbor) to harmonize the legal environment, as of 2009 providers such as Amazon Web Services cater to the major markets (typically the United States and the European Union) by deploying local infrastructure and allowing customers to select “availability zones.” Nonetheless, there are still concerns about security and privacy from individual through governmental level, e.g., the USA PATRIOT Act and use of national security letters and the Electronic Communication Privacy Act’s Stored Communications Act.

Legal Issues :

In March 2007, Dell applied to trademark the term “cloud computing” (U.S. Trademark 77,139,082) in the United States. The “Notice of Allowance” it received in July 2008 was canceled on August 6, resulting in a formal rejection of the trademark application less than a week later.

On 30 September 2008, USPTO issued a “Notice of Allowance” to CGactive LLC (U.S. Trademark 77,355,287) for “CloudOS”. A cloud operating system is a generic operating system that “manage[s] the relationship between software inside the computer and on the Web”, such as Microsoft Azure. Good OS LLC also announced their “Cloud” operating system on 1 December 2008.

Richard Stallman, founder of the Free Software Foundation, believes that cloud computing endangers liberties because users sacrifice their privacy and personal data to a third party. In November 2007, the Free Software Foundation released the Affero General Public License, a version of GPLv3 designed to close a perceived legal loophole associated with free software designed to be run over a network, particularly software as a service. An application service provider is required to release any changes they make to Affero GPL open source code

An Introduction : Cloud Computing Architecture

Cloud architecture, the systems architecture of the software systems involved in the delivery of cloud computing, comprises hardware and software designed by a cloud architect who typically works for a cloud integrator. It typically involves multiple cloud components communicating with each other over application programming interfaces, usually web services.

This closely resembles the UNIX philosophy of having multiple programs doing one thing well and working together over universal interfaces. Complexity is controlled and the resulting systems are more manageable than their monolithic counterparts.

Cloud architecture extends to the client, where web browsers and/or software applications access cloud applications.

Cloud storage architecture is loosely coupled, where metadata operations are centralized enabling the data nodes to scale into the hundreds, each independently delivering data to applications or user.

Key Characteristics of Cloud Computing Technology

* Cost is greatly reduced and capital expenditure is converted to operational expenditure. This lowers barriers to entry, as infrastructure is typically provided by a third-party and does not need to be purchased for one-time or infrequent intensive computing tasks. Pricing on a utility computing basis is fine-grained with usage-based options and minimal or no IT skills are required for implementation.

* Device and location independence enable users to access systems using a web browser regardless of their location or what device they are using, e.g., PC, mobile. As infrastructure is off-site (typically provided by a third-party) and accessed via the Internet the users can connect from anywhere.

* Multi-tenancy enables sharing of resources and costs among a large pool of users, allowing for:
o Centralization of infrastructure in areas with lower costs (such as real estate, electricity, etc.)
o Peak-load capacity increases (users need not engineer for highest possible load-levels)
o Utilization and efficiency improvements for systems that are often only 10-20% utilized.

* Reliability improves through the use of multiple redundant sites, which makes it suitable for business continuity and disaster recovery. Nonetheless, most major cloud computing services have suffered outages and IT and business managers are able to do little when they are affected.

* Scalability via dynamic (“on-demand”) provisioning of resources on a fine-grained, self-service basis near real-time, without users having to engineer for peak loads. Performance is monitored and consistent and loosely-coupled architectures are constructed using web services as the system interface.

* Security typically improves due to centralization of data, increased security-focused resources, etc., but raises concerns about loss of control over certain sensitive data. Security is often as good as or better than traditional systems, in part because providers are able to devote resources to solving security issues that many customers cannot afford. Providers typically log accesses, but accessing the audit logs themselves can be difficult or impossible.

* Sustainability comes about through improved resource utilization, more efficient systems, and carbon neutrality. Nonetheless, computers and associated infrastructure are major consumers of energy.

How important is Blogging Strategy?

When you decide to create a blog for your business, finding out where to start can be a bit overwhelming. There are plenty of blogging platforms for you to choose from that are hosted by companies on Web sites or are available for you to download, customize, and host on your own Web site.

Choose a blogging platform based on your requirement. For e.g. WordPress, Typepad, Vox, Blogger, LiveJournal, etc. You might decide that you want your own Web server to host your blog, to keep all your pages under the same URL (your Web site address). For example, if you have a Web site called www.techbana.com, you might want the blog to have the URL blog.techbana.com rather than something like techbana.wordpress.com. You might also want to have a blog development platform so that you can customize it to your needs.A number of free and commercial blog packages are available, some of which are offered by companies that also host their own Web-based blogs for others to use.

Find the Blog best for your business, it can be a video blog, photo blog, text blog, podcast blog, microblog, mobile blog or a tumble blog which is mixture of all mentioned.

If you’re not sure where to start, the plethora of blogging options to choose from can seem rather daunting. The best thing to do in this case is to just go back to the basics and listen to your customers. If you ask them where they congregate online, how they do so, and what information they’d like from you, you’ll have a better idea of how to build your blog.

Combine blogs with othe social networking sites like MySpace, Facebook, Twitter, LinkedIn, etc. It’s easy to integrate blogs and social networking sites together because the various sites make it easy. However, social networks are not the only way to push people to read your blog.Your Web site also needs to integrate your different blogs and social networking sites. This isn’t only important, it’s vital.

Consider the whole of your strategy rather than individual parts. For example, you can have people subscribe to your blog and send updates automatically and in real time through a RSS (Really Simple Syndication) feed. You’ll also want to connect your blog to your Web site so that people who visit your blog will be compelled to visit your Web site to learn more about you (and vice versa). These are all parts in a larger, holistic strategy of driving readers to your blog and making it as easy as possible for your readers to find and read your blog.

This eventually will lead to more interest and more business for you.

15 Things Every Programmer Should Know

Be Passionate : Love what you are doing, Be creative, Try to do it best, Code better than yesterday.
Love you Code : Write Code for Human not for machines, Write Clean Code with proper documentation.
Create Version Control : Backup your Code, Track changes(Who, When, What), Work in Parallel, Commit often.
Read Code : Be a good reader of code before writing good code, Read books, Take notes on ideas and tricks of read code.
Practice makes programmer better : Create small exercises and solve isolated problems, work on projects other than work, work on code without pressure, practice more.
Refactoring : Improve quality of your code, make it easy to understand and extend, Create small functions with proper names.
Follow Best Practices : Always follow patterns and best practices such as object oriented design, SOLID, GRASP, KISS and other design patterns.
Follow TDD (Test Driven Development) : Tests are your first user and are specification of the system which make development cycle shorter and is a design process, so just write enough code to pass the tests.
Implement Automation : Make your manual tasks as automatic. Use shortcut key for common repeated tasks, and integrate the automated process regularly.
Understand the Domain : Domain-specific won’t be outdate soon, but technologies will. This will help you creatively help a business.
Continuous learning : You need to keep learning to stay marketable. Read books, blogs, Twitters feeds, and websites, listen to podcasts.
Participate in community Events : A good way to learn something is to teach or speak about it. Join or start a study group or a local user group for a language, technology, or discipline you are interested in.
Review your code : Do a regular review of your Code and have it done from others too.
Know more than 2 Programming languages : Cross-fertilization in the use of programming languages has huge effects.
Know Your Limits : Man’s got to know his limitations.