Google Wave Invite Giveaway: Win a Google Wave Invite for Free

Google Wave

Google Wave Invite

“The fact that I can plant a seed and it becomes a flower, share a bit of knowledge and it becomes another’s, smile at someone and receive a smile in return, are to me continual spiritual exercises. ” – Leo F. Buscaglia

“Thousands of candles can be lit from a single candle, and the life of the candle will not be shortened. Happiness never decreases by being shared.” – Buddha

“Happiness is not so much in having as sharing. We make a living by what we get, but we make a life by what we give.” – Norman MacEwan

Happy holidays folks!

I have a number of Google Wave invites which I want to share with you guys out there.

I know that there are numerous ways one can get hold of the invite like following the #GoogleWaveInvite hashtag on Twitter, to keep you updated with possible free invites.

Or request an invitation to Google Wave here.

But these have been well documented by social media sites like Mashable through Google Wave Invites: How To Get Them and Want a Google Wave Invite? There’s a Website for That.

Do keep in mind, when I send you an invite, you might not get it right away. This is what Google Wave had to say about this:

“Google Wave is more fun when you have others to wave with, so please nominate people you would like to add. Keep in mind that this is a preview so it could be a bit rocky at times.

Invitations will not be sent immediately. We have a lot of stamps to lick.

Happy waving!”

Presently Google Wave is in a limited invite-only preview. That is, for now, only limited users are allowed to try their hands on this online tool. I have got 8 wave invites to give away to my readers.

About Google Wave

Google Wave is an online tool for real-time communication and collaboration. A wave can be both a conversation and a document where people can discuss and work together using richly formatted text, photos, videos, maps, and more.


What is a wave?

A wave is equal parts conversation and document. People can communicate and work together with richly formatted text, photos, videos, maps, and more.

A wave is shared. Any participant can reply anywhere in the message, edit the content and add participants at any point in the process. Then playback lets anyone rewind the wave to see who said what and when.

A wave is live. With live transmission as you type, participants on a wave can have faster conversations, see edits and interact with extensions in real-time.

Source: Google Wave

How to Enter

1. Please leave a comment at the end of this blog post using the email address you want the invite to go to. In the comment section you just need to say which particular post you liked in my blog giving a reason as why you think that post to be the most likeable.

2. Please make sure you follow my Twitter account @velvetflair. This way you would also get to know updates about this contest on Twitter. In any case, I would return the favor to you by following you back.

3. You are allowed to comment only once, so take your time to prepare a good one and then post!


* Each winner will receive a Google wave invite.


* Give away will end on December 30, 2009.

* Winners will be announced on this blog itself and on my Twitter profile @velvetflair on the 1st of January, 2010.

* The best answers from the comments section will be chosen (provided the rules are followed) and the wave invites will be sent to their authors.

Update: Seems Google got impressed with me and thereby increased the number of invites I am allowed to have up to 25. This is good news for you folks out there. Hence, the number of invites I will be sending out over the course of this month is 25 now. Here’s the screen shot of my invite page for the insatiables amongst you:

Invite Page


As an added bonus here are some of the top Google Wave videos making the rounds in the web:

Google Wave Developer Preview at Google I/O 2009

Google Wave Overview

What is Google Wave?

Google Wave: 15 features

Google Wave Cinema: Pulp Fiction

Keep Waving!


Hippocratic oath for software engineers: Programming promises for professional programmers

According to Wikipedia:

“The Hippocratic Oath is an oath traditionally taken by doctors swearing to ethically practice medicine.”

The term ‘Hippocratic Oath’ was coined solely for medical practitioners or physicians really. So, I felt curious if there is any such guideline or ethical doco for a software engineer like me. In googling for this, I came across some interesting links across the web. Some of which are there only for the sake of fun while others are mostly created by folks on ethical boundaries. Here they are:

Hippocratic Oath for scientists

“The Hippocratic Oath for Scientists has been suggested as an ethical code of practice for scientists that is similar to the Hippocratic Oath used in the medical profession. Proposals suggest that a suitable oath should encourage rigour, honesty and integrity among scientists, and ensure the minimisation and justification of any adverse effects their work may have on people, animals or the natural environment. In principle, such an oath would advance moral and ethical thinking and could increase public support for science.”

Hippocratic Oath For Software Engineers: Is It Time for a Hippocratic Oath for Programmers?

Six programming pledges to help with growing from grad to geek to giant.

“Hippocrates, one of the founding fathers of modern medicine, realized that those who trained to become physicians were not only able to use their skills for good and for progress, but also might be inclined to misuse all they had learned. To protect against such abuses, new grads back in the 4th century B.C. were made to swear they would only use medicine in the best interests of their patients by taking the eponymously named ‘Hippocratic Oath.’

I think that it’s about time we had a similar oath for all those who enter into the venerable profession of software engineering. As generations of future geeks walk down to collect their degrees wearing ill-fitting rented robes before proud parents and nervous colleagues, they should clutch a copy of Design Patterns in one hand, raise the other, and chant: Before all gathered here, I FinnBarMcFooBar swear and promise:

  • To avoid violating the morals of my community
  • To not write code on the user interface thread that has any possibility of taking more than a second.
  • To remember that a progress bar is designed to show the percentage completion of a long-running background task.
  • Never to do deliberate harm to anyone for someone else’s interest.
  • To keep the good of the user as the highest priority of all I do.
  • To recognize that I have no experience in the real world and, as I grow from grad to geek to giant.


The Case for a Hippocratic Oath for IS Professionals Revisited

“This paper takes as its starting point a contribution to the first ETHICOMP conference in 1995 that called for the equivalent of a ‘Hippocratic Oath’ for IS professionals. It considers whether such an oath is still required and reviews selected codes of conduct/ethics that have been developed or revised over the past decade to examine the extent to which they address the criticisms levelled at existing codes in the 1995 paper.  Finally it discusses the means by which more socially responsible practices by those who design, develop and deploy Information and Communications Technologies (ICT) could be promoted.”

Programming Promises (or, the Professional Programmer’s Hippocratic Oath)

“Michael.NET, apparently inspired by my “Check Your Politics At The Door” post, and equally peeved at another post on, hit a note of pure inspiration when he created his list of “Programming Promises”, which I repeat below:

In many ways, this strikes me as fundamentally similar to the Hippocratic Oath that all doctors must take as part of their acceptance into the ranks of the medical profession. For most, this isn’t just a bunch of words they recite as entry criteria, this is something they firmly believe and adhere to, almost religiously. It seems to me that our discipline could use something similar. Thus, do I swear by, and encourage others to similarly adopt, the Oath of the Conscientious Programmer.”

Hippocratic Oath For Software Engineers:

  • Never write a line of code that someone else can understand.
  • Make the simplest line of code appear complex. Use long counter intuitive names. Don’t ever code “a=b”, rather do something like: AlphaNodeSemaphore=*(int)(&(unsigned long)(BetaFrameNodeFarm));
  • Never use direct references to anything ever. Bury everything in macros. Bury the macros in include files. Reference those include files indirectly from other include files. Use macros to reference those include files.
  • Never generate new sources. Always ifdef the old ones. Every binary in the world should be generated from the same sources.
  • Never code a function to return a value. All functions must return a pointer to a structure which contains a pointer to a value.
  • Load all sentences either written or spoken with alphabet soup. When someone asks you out to lunch, reply:
  • Never clean your office. Absolutely never throw away an old listing.
  • Never say hello to someone in hallway. Absolutely never address someone by name. If you must address someone by name, mumble or use the wrong name. Always maintain the mystique of being spaced out from concentrating on complex logic.
  • Never wear a shirt that matches your pants. Wear a wrinkled shirt whenever possible. Your shirt must never be tucked in completely. Button the top button without wearing a tie. This will maximize your mystique.

The Engineer’s Hippocratic Oath – YouTube Video

This video takes the time to salute the scientists and engineers (past and present) by showing the engineer’s Hippocratic oath. The engineer’s hippocratic oath was originally written by the late Charles Susskind, Professor emeritus of electrical engineering, UC Berkeley. His concern with the role of technology in society led him to propose an engineer’s version of the Hippocratic Oath in one of his books, “Understanding Technology.” Engineers swearing by the oath would promise, among other things, not to use their professional knowledge contrary to the laws of humanity and to avoid waste and consumption of nonrenewable resources. The book has been translated into seven languages since it was first released in 1968.

Whether I agree with them all or not, I found those links as interesting read. Hence, I thought about sharing with you folks. Do post your insightful thoughts on the comments section below. Look forward to it!

It’s all in the minds – The Man Who Thinks He Can!

I couldn’t resist sharing this gem:

The Man Who Thinks He Can Attitude is Everything!

If you think you are beaten, you are;

If you think you dare not, you don’t.
If you’d like to win, but think you can’t
It’s almost a cinch you won’t.

If you think you’ll lose, you’ve lost.
For out in the world we find
Success begins with a fellow’s will:
It’s all in his state of mind.

If you think you’re outclassed, you are:
You’ve got to think high to rise,
You’ve got to be sure of yourself before
You’ll ever win that prize.

Life’s battles don’t always go
To the stronger or faster man,
But sooner or later the man who wins
Is the one who thinks he can.


Attributed to WALTER D. WINTLE, “The Man Who Thinks He Can.”—Poems That Live Forever, comp. Hazel Felleman, p. 310 (1965).

Learnt Vs. Learned – What’s the difference?

In commonwealth countries, people use “learnt” for past tense and past participle for learn. Here’s an explanation from AskOxford on this matter:

What is the difference between ‘learnt’ and ‘learned’?

* Learnt is more common in British English, and learned in American English.
* There are a number of verbs of this type (burn, dream, kneel, lean, leap, spell, spill, spoil etc.).
* They are all irregular verbs, and this is a part of their irregularity.

The *prescriptive* answer is:

“learned” should used in phrases such as “a learned professor”, in which case it is pronounced with two syllables.
“learnt” should be used in phrases like “I learnt a valuable lesson today”.

The *descriptive* answer in British English is:
“learned” is used in phrases such as “a learned professor”, in which case it is pronounced with two syllables.
Either “learnt” or “learned” are used interchangably in phrases like “I learnt a valuable lesson today”.

The *descriptive* answer in American English is:
There is no such word as “learnt”. Use “learned” always.

Learned and learnt are basically the same. They are both used as the past tense form and past participle of “learned”.

Google search for both the words results in:

* EDU(USA) sites : I learned/learnt 3,860,000/158,000 I have learned/learnt 8,350,000/171,000 learned man/learnt man 2,970,000/59,900

* UK sites : I learned/learnt 1,600,000/1,950,000 I have learned/learnt 3,940,000/1,720,000 learned man/learnt man 1,730,000/763,000

What the results tell are:

1. American speakers mostly use “learned” for the past and the verbal past participle, while “learned” and “learnt” share roughly equal among British speakers.
2. “Learnt” is used as an adjectival past participle in neither American English nor British English.

Linguistic specialists suggest them to be used in the following ways:
LEARN is the present tense, and the conjugated form of the verb “to learn”.
It can be converted to the past tense in the following ways:
I LEARNED lots of things along the way. The main verb is “learned”.
LEARNT is the “past participle” in the following sentences. (Past participles are used in conjunction with other verbs).
I have learnt not to be prejudiced towards Americans or people of other nationalities. (creziauk!)
I had learnt my lesson on peer pressure, the hard way.

To summarize, both learned and learnt are alternative spellings of the past tense and past participle of the verb learn.

Learnt is more common in British English, and learned in American English.

In addition, there are a number of verbs of the type -ed ~ -t:

burned, burnt
dreamed, dreamt
kneeled, knelt
leaned, leant
leaped, leapt
spelled, spelt
spilled, spilt
spoiled, spoilt

All are irregular verbs.

Fixing the back button for Ajax apps to enable bookmarking into history – jQuery, ASP.NET Ajax, YUI & other ways

Most of you might already be aware of the paradigm shift problem in ajax apps in terms of the browser back button not working out of the box.

The problem and some of the generic solutions to it is described in more detail in the following articles. Suffice is to say that by integrating ergonomic display features such as back and forward navigation, we can make it simpler and more intuitive for the end user to immerse into the richer internet applications (RIA) that we can now create:

Fixing the Back Button and Enabling Bookmarking for AJAX Apps

AJAX: How to Handle Bookmarks and Back Buttons, Advanced Example

Fixing the back button that AJAX broke

AJAX: How to Handle Bookmarks and Back Buttons

How to build a cross-browser history management system

Now here’s Microsoft’s effort in solving the problem with the help of ASP.NET AJAX library:

Enable Back button support in ASP.NET AJAX web sites – This is a server-centric solution that gets translated into client side history management code.

Managing browser history from client script

ASP.NET AJAX History Part 2: Client-Side

AJAX History and ASP.NET AJAX Preview 3

Client History Points in ASP.NET 3.5 Extensions

The link below is a Yahoo Developer Network effort in attending the issue:

YUI 2: Browser History Manager

Now onto the implementations by my most favorite JavaScript library (I would love to call it a Framework someday soon!) jQuery. There are tons of jQuery plugins that do this. All but one of them below uses address mangling technique in the form of page.aspx#5 to solve the problem. There are pros and cons for both the techniques as explicitly assigning mangled address like that helps in bookmarking. Whereas, if you don’t want to show the values you want to store in the history to the user, then hidden iframe technique below comes in handy:

jQuery BBQ: Back Button & Query Library

History/Remote – jQuery plugin solution for hijaxing links and enabling history

Restoring conventional page navigation to your javascript application with jQuery history plugin

jQuery History Plugin – Uses hidden iframe technique so that the address is not mangled with hash.

jQuery Address – Deep linking plugin – Supports Deep linking

History plugin

jHistory plugin



Weekly Link Roundup – November 21, 2009


A Visual Guide to the Financial Crisis

A visual illustration of how the entire global financial crisis or credit crunch started in a flow chart manner. Things can’t be expressed any easier!

The Crisis of Credit Visualized

Video illustration of the global credit crisis. This is a two part series.

Golden Parachutes: How the Bankers Went Down

Excellent depiction of how the bankers and in essence the entire banking system went down.

Invest in Gold Without Getting Scammed

What glitter isn’t always gold. Investing in gold and other precious metals is one of the best ways to maintain your footing in an otherwise unstable economy. But while gold, silver, platinum (and their lesser known cousins ruthenium, rhodium, palladium, osmium, and iridium) have maintained their status as solid investments, you need to be wary of unscrupulous dealers and the many scams they perpetrate on unsuspecting investors …


The rebirth of the infographic

Complex data-based images are all the rage now. Are infographics worth your time? As data and graphic design tools become more widely available, the infographic is becoming the trendy way to display complex data sets to readers …

5 Tips For Building Effective Infographics

Infographics (short for Information Graphics) are part design, part data visualization. Like generic data visualization tools such as charts and graphs, infographics typically represent some data in a way that a viewer can quickly understand. But infographics are customized specifically to the data, topic, and audience – each infographic is essentially a creative work that gets a point across.

By pairing your infographic with software, you can allow people to interact with the visualization and explore the concepts, giving a more powerful and immediate ability to understand the point you are making.

Inspired by the visualizations that we regularly see in Good Magazine, Wired, and New York Times, we created some sample interactive infographics. Take a look at obesity trends in America, or explore the job roles that go into creating a web site.

Creating a slick infographic needs a bit more effort than is needed to fire up a generic charting or graphing tool. But the extra work can really pay off, making your visualization stand out from the crowd.

And to help you out, the above is a compiled list of handy tips for creating effective infographics …

The Anatomy Of An Infographic: 5 Steps To Create A Powerful Visual

Information is very powerful but for the most bit it is bland and unimaginative. Infographics channel information in a visually pleasing, instantly understandable manner, making it not only powerful, but extremely beautiful. Once used predominantly to make maps more approachable, scientific charts less daunting and as key learning tools for children, inforgraphics have now permeated all aspects of the modern world …


The infographics weblog above is a running collection of links to infographics found on the web through my own research and the submissions of many individuals.

Often more powerful than words or imagery alone, infographics utilize visual elements of design and words to convey a message in such a way that context, meaning and understanding are trancended to the observer in a manner not previously experienced. The observer becomes enlighted, having learned from the visual feast and is motivated to seek out more knowledge in this medium. They can present a wealth of information without intimidating you. Or sometimes they intimidate you, but make the digesting of the information much more bearable …

Websites as graphs

Everyday, we look at dozens of websites. The structure of these websites is defined in HTML, the lingua franca for publishing information on the web. Your browser’s job is to render the HTML according to the specs (most of the time, at least). You can look at the code behind any website by selecting the “View source” tab somewhere in your browser’s menu.

HTML consists of so-called tags, like the A tag for links, IMG tag for images and so on. Since tags are nested in other tags, they are arranged in a hierarchical manner, and that hierarchy can be represented as a graph. This blogger has written a little app that visualizes such a graph, and there are some screenshots of websites from that. | A visual exploration on mapping complex networks intends to be a unified resource space for anyone interested in the visualization of complex networks. The project’s main goal is to leverage a critical understanding of different visualization methods, across a series of disciplines, as diverse as Biology, Social Networks or the World Wide Web. I truly hope this space can inspire, motivate and enlighten any person doing research on this field.

InfoGraphic Designs: Overview, Examples and Best Practices

Information graphics or infographics are visual representations of information, data or knowledge. These graphics are used where complex information needs to be explained quickly and clearly, such as in signs, maps, journalism, technical writing, and education. They are also used extensively as tools by computer scientists, mathematicians, and statisticians to ease the process of developing and communicating conceptual information.

Data Visualization and Infographics Resources

Information graphics or infographics are visual representations of information, data or knowledge. These graphics are used where complex information needs to be explained quickly and clearly, such as in signs, maps, journalism, technical writing, and education. They are also used extensively as tools by computer scientists, mathematicians, and statisticians to ease the process of developing and communicating conceptual information …

Art of Speaking:

Art of Speaking

Here you will find Tips & Techniques, Vocabulary, Templates, Images, and other resources for your Presentations.

The Art of Speaking: “There is a special circle in hell for those who use laser pointers,” this and other advice from a master speaker.

Some great tips and advices for mastering the art of speaking.


Port80 Compression Check

Just enter a website and get a detailed report for Compression status i.e. Compressed (gzip), Original size, Compressed size, Savings in bytes, Percentage saved by compression, Transfer speed improvement etc.

Software Development:

Experts Announce Agreement on the 25 Most Dangerous Programming Errors – And How to Fix Them

Title says it all. This is a followup on the consensus list of the 25 most dangerous programming errors that lead to security bugs and that enable cyber espionage and cyber crime.

Explained: ASP.NET Formula for Reducing Contention

The formula for reducing contention can give you a good empirical start for tuning the ASP.NET thread pool. Consider using the Microsoft product group-recommended settings if the following conditions are true:

  • You have available CPU.
  • Your application performs I/O bound operations such as calling a Web method or accessing the file system.
  • The ASP.NET Applications/Requests In Application Queue performance counter indicates that you have queued requests …

Breaking Down ‘Data Silos’ – The Open Data Protocol (OData)

The Open Data Protocol (OData) is a web protocol for querying and updating data. OData applies web technologies such as  HTTP, Atom Publishing Protocol (AtomPub) and JSON to provide access to information from a variety of applications, services, and stores. This protocol emerged organically based on the experiences implementing AtomPub clients and servers in a variety of products over the past several years. OData is being used to expose and access information from a variety of sources, including but not limited to relational databases, file systems, content management systems, and traditional web sites. Microsoft has released OData under the Open Specification Promise (OSP) to allow anyone to freely interoperate with OData implementations. We intend on working with the community to move the features of OData into future version of AtomPub or other appropriate standards.

OData is consistent with the way the web works. OData makes a deep commitment to URIs as a means to identify resources (just like the web). OData commits to an HTTP-centric protocol with a uniform interface for interacting with those resources (again, just like the web). OData builds on the conventions over HTTP popularized by AtomPub, which have simplified the process of sharing data, content and information across independently developed systems. OData defines additional conventions that implementations may optionally implement to support basic query and schema information to be exchanged. To simplify integration with HTML and JavaScript clients, OData defines an optional JSON representation of the protocol that complements the XML-based AtomPub format …

Iframe related JavaScript Development:

Cross-Domain Communication with IFrames

Resizing an iframe according to its contents

jQuery : Auto iFrame Height


Hack your brain – How to hallucinate with ping-pong balls and a radio

DO YOU EVER want to change the way you see the world? Wouldn’t it be fun to hallucinate on your lunch break? Although we typically associate such phenomena with powerful drugs like LSD or mescaline, it’s easy to fling open the doors of perception without them: All it takes is a basic understanding of how the mind works.

The first thing to know is that the mind isn’t a mirror, or even a passive observer of reality. Much of what we think of as being out there actually comes from in here, and is a byproduct of how the brain processes sensation. In recent years scientists have come up with a number of simple tricks that expose the artifice of our senses, so that we end up perceiving what we know isn’t real – tweaking the cortex to produce something uncannily like hallucinations. Perhaps we hear the voice of someone who is no longer alive, or feel as if our nose is suddenly 3 feet long …

Inflation, Deflation, Stagflation – Visual Guide

When hard core topics from economics such as Inflation, Deflation and Stagflation prop up in a discussion thread, things start to get blurry for the uninitiated.

It’s almost head scratching time when basic questions like these beat you to death:

What is Deflation and How Can it Be Prevented? Is printing money going to solve this?

What is Stagflation?

Why does money have value?

Are Diamonds Forever?

Then I came upon two gems to unravel some of the mystery. Have a look at the infographic representation:

A Visual Guide to Inflation

A Visual Guide to Deflation