Its the USB age, chuck dvd drives!

USB = pen drive, SD card reader, iPod or your-favorite-usb-mass-storage device

Find below, a compilation of sources that explain the process of installing various Operating Systems available for us mortals.

Installing Windows 7 from USB

Installing Windows XP from USB

Installing OpenSolaris from USB

Installing Ubuntu from USB

Installing Leopard from USB

So chuck those dvd drive’s out the fuckin window!

Common abbreviations used while chatting/texting

  •   4EVR – Forever
  •   AAAAA – American Association Against Acronym Abuse
  •   ADR – Address
  •   AFAIC – As Far As I’m Concerned
  •   AFAIK – As Far As I Know
  •   AFAYC – As Far As You’re Concerned
  •   AFK – Away From Keyboard
  •   AISI – As I See It
  •   AKA – Also Known As
  •   ALOL – Actually Laughing Out Loud
  •   AML – All My Love
  •   ANFSCD – And Now For Something Completely Different
  •   ASAP – As Soon As Possible
  •   ASL – Age/Sex/Location
  •   ASLMH – Age/Sex/Location/Music/Hobbies
  •   ATM – At The Moment
  •   AWOL – Absent Without Leave
  •   B/C – Because
  •   B4 – Before
  •   BAK – Back At Keyboard
  •   BBFN – Bye Bye For Now
  •   BBL – Be Back Later
  •   BBS – Be Back Soon
  •   BBSL – Be Back Sooner or Later
  •   BCNU – Be Seeing You
  •   BCOZ – Because
  •   BEOS – Nudge
  •   BFN – Bye For Now
  •   BKA – Better Known As
  •   BRB – Be Right Back
  •   BRT – Be Right There
  •   BTW – By The Way
  •   BUAYA – To Sweet Talk You
  •   CFV – Call For Vote
  •   CU – See You (good bye)
  •   CUL – See You Later
  •   CUL8ER – See You Later
  •   CY – Calm Yourself
  •   CYA – Cover Your A__
  •   DH – Dear Hubby (Husband)
  •   DL – Download
  •   DMI – Don’t Mention It
  •   DOD – We could tell you but then we’d have to kill you!
  •   DUCT – Did You See That?
  •   DYOFDW – Do Your Own F___ing Dirty Work
  •   EG – Evil Grin
  •   EL – Evil Laugh
  •   F2F – Face to Face
  •   FAQ – Frequently Asked Questions
  •   FAQL – Frequently Asked Questions List
  •   FAWC – For Anyone Who Cares
  •   FFK – Fong Fei Kei – To Stand You Up
  •   FOAF – Friend Of A Friend
  •   FTASB – Faster Than A Speeding Bullet
  •   FTF – Face To Face
  •   FTL – Faster Than Light
  •   FUBAR – F_____d Up Beyond All Recognition
  •   FWIW – For What It’s Worth
  •   FYA – For Your Amusement/Action/Approval
  •   FYI – For Your Information
  •   GA – Go Ahead
  •   GALGAL – Give A Little Get A Little
  •   GBH – Great Big Hug
  •   GD&R – Grinning, Ducking and Running (usually after snide remark)
  •   GG – Good Game
  •   GGN – Gotta Go Now
  •   GL – Good Luck
  •   GMTA – Great Minds Think Alike
  •   GR8 – Great
  •   HIH – Hope It Helps
  •   HILIACACLO – Help I Lapsed Into A Coma And Can’t Log Off
  •   HTH – Hope This Helps
  •   HUGZ – Hugs
  •   IAE – In Any Event
  •   IANAL – I Am Not A Lawyer
  •   IAT – I am Tired
  •   IC – I See
  •   ICBW – I Could Be Wrong
  •   IDK – I Don’t Know
  •   IGTP – I Get The Point
  •   IHNO – I Have No Opinion
  •   IHTFP – I Have Truly Found Paradise (I Hate This F_____n Place)
  •   IIR – If I Recall
  •   IIRC – If I Recall Correctly
  •   IM – Instant Message
  •   IMAO – In My Arrogant Opinion
  •   IMHO – In My Humble Opinion
  •   IMNSHO – In My Not-So-Humble Opinion
  •   IMO – In My Opinion
  •   INPO – In No Particular Order
  •   IOW – In Other Words
  •   IRL – In Real Life
  •   IYKWIM – If You Know What I Mean
  •   IYKWIMAITYD – If You Know What I Mean And I Think You Do
  •   JK (or J/K) – Just Kidding
  •   JM2C – Just My 2 Cents
  •   JT – Just Teasing
  •   K – Okay
  •   KBD – Keyboard
  •   KEWL – Cool
  •   KOK – Knock
  •   KOTC – Kiss On The Cheek
  •   KOTL – Kiss On The Lips
  •   L8R – Later
  •   LMAO – Laughing My A__ Off
  •   LOL – Laughing Out Loud
  •   LOLA – Laugh Out Loud Again
  •   LOOL – Laughing Outragously Out Loud
  •   LWR – Launch When Ready
  •   LYLAS – Love You Like a Sister
  •   MOMPL – One Moment Please
  •   MOO – Multi-user Dungeon Object-Oriented
  •   MOTAS – Member Of The Appropriate Sex
  •   MOTOS – Member Of The Opposite Sex
  •   MOTSS – Member Of The Same Sex
  •   MSG – Message
  •   MTBF – Mean Time Between Failure
  •   MTFBWY – May The Force Be With You
  •   MUAK – Smooch
  •   MUD – Multiple User Dungeon
  •   MUSH – Multi User Shared Hallucination
  •   N/A – Not Acceptable
  •   N1 – Nice One
  •   NDA – Non-Disclosure Agreement
  •   NM – Nevermind
  •   NP – No Problem
  •   NRN – No Reply Necessary
  •   NTK – Nice To Know
  •   OB- – Obligatory (as a prefix)
  •   OBJOKE – Obligatory Joke
  •   OIC – Oh, I See!
  •   OK – All Correct (I Approve)
  •   OMG – Oh My God
  •   ONNA – Oh No, Not Again
  •   ONNTA – Oh No, Not This Again
  •   OOI – Out Of Interest
  •   OS – Operating System
  •   OTOH – On The Other Hand
  •   OTOOH – On The Other Other Hand
  •   OUSU – Oh, You Shut Up
  •   PD – Public Domain
  •   PFA – Please Find Attached
  •   PDA – Public Display of Affection
  •   PIAK – Slap In The Face
  •   PITA – Pain In The A__
  •   PLS – Please
  •   PM – Personal Message
  •   PMFJI – Pardon Me For Jumping In
  •   PMIGBOM – Put Mind In Gear Before Opening Mouth
  •   PMJI – Pardon My Jumping In
  •   POV – Point of View
  •   PPL – People
  •   PS – Post Script
  •   QL – Quit Laughing!
  •   QS – Quit Scrolling
  •   QT – Cutie
  •   RBAY – Right Back At Ya
  •   RE – Regards or Hello Again
  •   RFC – Request For Comments
  •   RFD – Request For Discussion
  •   RFI – Request For Information
  •   RIT – Alrighty
  •   RL – Real Life
  •   ROFL – Rolling On Floor Laughing
  •   ROFLASTC – Rolling On Floor Laughing And Scaring The Cat
  •   ROFLGO – Rolling On Floor Laughing Guts Out
  •   ROFLMAO – Rolling On Floor Laughing My A__ Off!
  •   ROFLOL – Rolling On Floor Laughing Out Loud
  •   ROTFL – Rolling On The Floor Laughing
  •   ROTFLABIC – Rolling On The Floor Laughing And Biting Into Carpet
  •   ROTFLOL – Rolling On The Floor Laughing Out Loud
  •   RTFAQ – Read The FAQ
  •   RTFM – Read The F___ing Manual
  •   RX – Regards (Regs)
  •   SCNR – Sorry Couldn’t Resist
  •   SED – Said Enough Darling
  •   SF – Science Fiction
  •   SFETE – Smiling From Ear To Ear
  •   SMAIM – Send Me An Instant Message
  •   SME – Subject Matter Expert
  •   SNAFU – Situation Normal, All F___ed Up
  •   SNAILMAIL – Postal Mail Service
  •   SO – Significant Other (e.g., spouse, boy/girlfriend)
  •   SOHF – Sense Of Humor Failure
  •   SPAM – Stupid Persons’ Advertisement
  •   SSEWBA – Someday Soon, Everything Will Be Acronyms
  •   SU – Shut Up
  •   SWAG – Scientific Wild A__ Guess
  •   SWALK – Sealed With A Loving Kiss
  •   TAS – Taking A Shower
  •   TFDS – That’s For Darn Sure
  •   THANX – Thanks
  •   THX – Thanks
  •   TIA – Thanks In Advance
  •   TIC – Tongue In Cheek
  •   TNC – Tongue In Cheek
  •   TNX – Thanks
  •   TPTB – The Powers That Be
  •   TSR – Terminal and Stay Resindent
  •   TTFN – Ta Ta For Now
  •   TTYL – Talk To You Later
  •   TVM – Thanks Very Much
  •   TWIMC – To Whom It May Concern
  •   TY – Thank You
  •   TYVM – Thank You Very Much
  •   U – You
  •   U2 – You Too?
  •   UR – Your
  •   VBG – Very Big Grin
  •   VBS – Very Big Smile
  •   VEG – Very Evil Grin
  •   VSF – Very Sad Face
  •   W/ – With
  •   W/B – Write Back
  •   W/O – without
  •   WAD – Without A Doubt
  •   WB – Welcome Back
  •   WBS – Write Back Soon
  •   WEG – Wicked Evil Grin
  •   WISP – Winning Is So Pleasureable
  •   WNOHGB – Were No One Has Gone Before
  •   WRT – With Respect To
  •   WT – Without Thinking
  •   WTG – Way To Ggo
  •   WTH – What The Heck
  •   WTTM – Without Thinking To Much
  •   WYSIWYG – What You See Is What You Get
  •   WYWH – Wish You Were Here
  •   XM – Excuse Me
  •   XME – Excuuuuse Me
  •   XO – Hugs, Kisses
  •   Y – Why
  •   YMMV – Your Mileage May Vary
  •   YTTDSFATCCSH – Yours Till The Desert Sands Freeze And The Camels Come Skating Home
  •   YW – Your Welcome
  •   YWIA – You’re Welcome In Advance
  •   ZZZ – Sleeping, Bored, Tired

The 30 Standard Facebook Profile Photo Styles

Over the weekend I took a trip through Facebook to look at the various Facebook profile photos that my friends and their friends had posted. The profile photo is probably the single most important component for personal expression. That’s why studying our profile photos will often reveal what is most important to us. Below is a list of 30 profile photos styles that you’ll find most often when exploring your Facebook friends list.

1. The Modified Cartoon Portrait

These were probably popularized by the classic Obama icon that was circulating prior to the inauguration last year. There were millions of Obama supporters that decided to change their profile photo to the Obama-like design but there continues to be many others that create similar cartoon-like modifications. I’m not sure of the filters in Photoshop that were used to generate these effects but they’re definitely interesting. The most creative individuals come up with their own unique designs.

2. The Reflective Sunglasses

I found at least three friends that had used this shot. The reflective sunglasses shot is a clear shot of the individual who’s profile it is and included in the photo is the reflection of the scene that individual is looking at. The reflection helps to provide some context of where the user had their profile photo taken. It’s an eye-catching shot, and one that countless Facebook users have used for their profile.

3. The Just Married Shot

Typically found right after a couple has been married, this photo will show a husband and wife posing for the camera, or the wife and father. While every couple is different and the pose may change from one couple to another, this photo expresses one of the major stages in our lives. Given the average age of a Facebook user, I’d guess that there are millions of users with the “I’m Married” shot as their profile photo.

4. I’ve Got a Mac, or the Photo Booth Warhol Shot

Right after a person purchases a Mac, one of the first things they explore is the applications and the one which tends to draw their attention most is the application that lets them make funny photos. One of the photos that’s often used is the four-color Andy Warhol photo. It’s one of the biggest time wasters of any Mac owner and many Facebook users are indeed Mac owners.

5. I’m A Photographer Shot

Photographers are proud about their hobby. The most avid photographers will post a photo of themselves with a camera in front of their face. Ironically, this shot breaks all sort of rules about portrait photos including the one which says good portraits include the a full shot of the subject’s face. There are no rules about Facebook photos though so feel free to post anything as your profile picture!

6. I’m a Family Man

The next stage in life after getting married is having children and there is no lack of Facebook users with children. This photo is with the father and his child or children. It emphasizes his dedication to his children and also displays a softer side of the individual. There are plenty of Facebook users with children and that means there are also a lot of family men on the site.

7. The Where’s Waldo Shot

Sometimes we become part of a movement which is much bigger then ourselves. Sometimes it’s a political movement (as mentioned later in this list) and other times its part of a large event. While participating in a large event, some Facebook users will post a photo of themselves buried among the crowd. It’s pretty much impossible to find the person unless you are them and you were at the event and know where you were standing. That’s why I call this one the “Where’s Waldo” shot.

8. Last Name Sign Shot

There are multiple variants of the last name sign shot. Some people post a photo of a celebrity wearing a shirt with their last name (as shown in the photo above). Others will stumble upon a street sign while traveling abroad. Some also post photos of the names of restaurant signs in foreign countries that resemble their last name. Whatever variant of the photo your friend is using, there is a good chance that you’ve seen someone that’s posted a photo like this.

9. I Love My Pet Photo

Whether you are into rabbits, dogs, cats, birds, guinea pigs, or any other domestic pet, if you have a pet, you’ve probably posted a photo of it. My sister currently has a photo of her with her dog, and another one of my friends has posted a picture with their parrot (as shown above). No matter what type of pet users have, the pet is often a big part of our lives which justifies displaying it as our profile photo.

10. I’m On A Boat or Plane

If you haven’t seen it already, you should probably see the “I’m On a Boat” video. While most people haven’t been on a yacht like the one in the “I’m On a Boat” video, many people enjoy the experience of traveling on a unique boat or plane. One of my friends, as pictured above, had a picture of himself sitting on what appears to be a plane for carrying paratroopers. Whether you are traveling by boat or plane, make sure you post the experience to your Facebook profile.

11. This Is Not Me Cartoon Photo

I don’t know why people do this but they’ll post the photo of an obscure cartoon photo. Ultimately I get the idea that the cartoon they are posting should theoretically share similar personality traits but shouldn’t your profile photo be of yourself?

12. The I’m Not Richie Rich Shot

While many of us aspire to be rich, that’s all that it currently is: aspirations. In order to share those aspirations with others we will post photos of the object that we would like to acquire one day. It’s the Facebook equivalent of vision boards. We all have hopes and dreams but displaying objects of our desire doesn’t make it easy for people to find you. Unless of course you have a distinct name or no other people with your name have posted similar objects.

13. The Personal Branding Master

People that are focused on their personal brand will post photos of themselves during moments of authority. Most often this a photo of themselves speaking at an event or just speaking in general to a group of people. I have to say that I currently fall into this category. That’s because I have tons of friends on Facebook that are affiliated with me through my professional life, not through my personal life.

14. The College Poster Photo

Remember how college students have posters of different things all over their door room wall? I know I definitely had a few. Some people will post the various types of shots that you can make with a little bit of alcohol, others will pay homage to their beer addiction. I remember having a photo of an island in some unknown location. There are countless posters out there and Facebook profiles are a great place to post them.

15. I’ve Got a Boyfriend/Girlfriend Photo

Facebook relationships can be an extremely complex thing. One of the things that many new couples do is post a photo of themselves together as a form of a public announcement to solidify the relationship. Let’s be honest though, it’s not just new boyfriends and girlfriends that post the photos. Many husbands an wives do the exact same thing. For this one I decided to pick on those with recently commenced relationships.

16. Change the World Photo

Some Facebook users try to change the world through their Facebook photo. Whether it’s to make a statement about a war that’s taking place somewhere or to speak out against a current policy, the photos make a statement and bring awareness to others that view their profile.

17. Sky Backdrop Headshot

I found numerous friends that had posted of themselves in the midst of some activity with the sky as the backdrop. Let’s be honest, the sky does serve as a nice backdrop. It’s a common occurrence though and coming up with a truly unique Facebook photo can be extremely challenging. The other problem with a sky backdrop is that it gives us no reference of the person’s location for the most part. While not a huge problem, it’s always nice to have some sort of context within a Facebook profile photo.

18. The Tourist Landmark Photo

You would think that people would stop taking photos of themselves directly in front of a famous landmark. Surprisingly they don’t. It’s as if someone in the future will disagree with them when they claim that they’ve actually been somewhere in world. For those moments, these individuals will have their tourist landmark shot as proof of their presence.

19. Personal Paradise

We each have our own vision of a perfect setting. For some it’s sitting on a hammock overlooking a Brazilian beach. Others may prefer to be hiking up Mt. Everest. Whatever your personal paradise is, it is something that is unique to each of us and when you arrive to your personal paradise, the best thing to do is to take a photo as a memory of that experience.

A small percentage of the world is fortunate enough to say that they’ve visited their personal paradise but for those that have, it often serves as their Facebook profile photo.

20. The Joke Photo

Not to be confused with the jokester photo which illustrates an individual who is expressing that humor is one of their greatest personality traits, the joke photo is just that: a joke. There are countless jokes which makes this photo such a unique one. I thought the one that I pictured above was extremely creative when I stumbled across it.

21. In A Mirror Shot

Made popular on MySpace, photographs taken through a mirror have become a standard for Facebook profile photos. There are many versions of this photo but no matter how it’s taken, it is always taken in a mirror. Some of the most popular mirror photo shots are done in an individual’s bathroom because that’s the most common location of a mirror. Mirrors are also often used as a substitute for the next photo in the list: the extended arm shot.

22. The New Toy Shot

Who doesn’t love the new car or motorcycle they just got? Typically after we throw down a lot of cash for an expensive ride, we like to post a photo of ourselves with it. There are also those that still like to pose with their vehicle despite it being new because they spend a lot of time with it. No matter what your reason for doing it is, there are a lot of Facebook users that post a photo of themselves with their new toy.

23. The Middle Finger Shot

I have no idea why, but among the younger generations there is always a photo of someone showing their middle finger. The longer the finger is extended, the better. This is the ultimate way of saying “I don’t give a shit what you think.” It most definitely gets the point across although I can’t recommend using this shot if you are looking to attract a lot of new friends.

24. This is My Baby!

Rather than posting a photo of themselves, many Facebook users will post a picture of their children. I understand, you love your child and they are the most important thing in your life. It’s hard to find someone though if you are searching through Facebook and a photo of their child keeps showing up though. Fortunately, if you share many friends in common with that individual though, there is a good chance that you will know that it’s them even though it’s a photo of their child. Who can blame the person if their kid is adorable though!

25. Me As a Baby

For those without a baby of their own, some users like to post a photo of themselves as a baby. While they most likely won’t post the most embarrassing baby photos, these photos tend to get a decent response from friends. I would argue that most people that choose to post their baby photos are female as baby photos are typically perceived as “cute”, something that most guys don’t want to be perceived as. Despite that there are still a few guys that post their baby photos but I’d count them as a rare occurrence.

26. The Jokester Photo

Some people just like playing around and for those individuals there is the jokester photo. When humor is an individual’s strongest personality trait, they’ll often times put a funny photo to cheer up your day. Facebook profile photos can make you laugh and these people will try their hardest to put a smile on your face.

27. Here You Go Shot

Some photographers enjoy the foreground/background dynamic and will take advantage of it by letting the subject offer a gift to the viewer. In the case of the photo above, that gift is a nice cold glass of beer but there are many variants of the “Here You Go” shot.

28. On Vacation Photo

Many people just don’t want to be at work. For those individuals they post pictures of the vacation they just went on or the vacation that they’d like to be on. It’s not a photo of the person but instead a photo of the vacation scene which is very similar to the “personal paradise” photo.

29. Professional Headshot

For those of you who are actors, professional headshots are practically a necessity for maximizing your odds of getting another gig. Professional headshots are useful for getting a job and Facebook is great for increasing your reach. If you are looking to act or model, then setting your picture as a professional headshot is not a bad idea.

30. This is Me Shot

This is by far the most popular Facebook profile photo. It also happens to be a classic portrait photo. The picture is head on and you can see every aspect of their face, from ear to ear and from chin to forehead. You can clearly see who the person is. There is nothing more simple, and nothing more human than the this me shot.

Installing WordPress Locally on Your Mac OS X

What is WordPress ?

WordPress is an open source blog tool and publishing platform powered by PHP and MySQL. It is often customized into a content management system (CMS). It has many features including a plug-in architecture and a template system. WordPress is used by over 14.7% of Alexa Internet’s “top 1 million” websites and as of August 2011, it powers 22% of all new websites. WordPress is currently the most popular CMS in use on the Internet.

What is MAMP?

MAMP stands for Macintosh, Apache, MySQL, and PHP. MAMP is an application you can install on your Mac which allows you to have access to a local PHP server and MySQL server. Essentially, MAMP gives you all of the tools you need to run WordPress on your machine, for development and testing purposes. You can accomplish this in different ways, but the other ways aren’t nearly as simple (see MacOS_X_Local_Mirror for the long, manual version of installing PHP and MySQL on your Mac).

Step 1: Installing MAMP

Before you can install MAMP on your Mac, you’ll need to download it from the MAMP website. MAMP requires that your Mac be running Mac OS X 10.4.x or later.

Once the MAMP download is complete, double-click the MAMP disk image (it should be something like MAMP_2.0.3.dmg), and you should get a MAMP window pop up. Drag the MAMP folder (not MAMP PRO – we’ll save that walk-through for another time) to the Applications folder.

Step 2: Basic MAMP Settings

Now that you’ve got MAMP installed on your system, launch (located at /Applications/MAMP/

While you’re editing settings, MAMP might prompt you for an administrator password. This is required because MAMP needs to run two processes: mysqld (MySQL) and httpd (Apache), and depending on the settings you set for those processes, you may or may not need to input your password.

Once you open MAMP, click the Preferences button. Next, click over to “Ports.” The default MAMP ports are 8888 for Apache, and8889 for MySQL. If you use this configuration, you shouldn’t get asked for your password, but you’d need to include the port number in the URL (localhost:8888). If you’d like to leave the port number out of the URL, change the Apache port to 80. The downside of using port 80 as your MAMP Apache port is that you’ll always be asked for your password.

On the PHP tab, select PHP version 5. The PHP minimum requirement for WordPress was raised to 5.2.4+ in version 3.2.

Lastly, on the Apache tab, you’ll need to set a document root. This is where all of your files are going to be for your local web server. An example of a document root is /Users/USERNAME/Sites/wordpress/.

Once you’re done editing all of the settings, hit OK to save them.

Step 3: Starting MAMP Servers & Creating The Database

To start the MAMP Apache and MySQL servers, simply click “Start Servers” from the main MAMP screen. Your MAMP servers have now been started.

Once the MAMP servers start, the MAMP start page should open in your default web browser. If not, click on “Open start page” in the MAMP window. Once that’s open, select phpMyAdmin from the webpage.

Under “Create new database”, enter in a database name such as “wordpress”, and press “Create.”

Step 4: Downloading and Installing WordPress

Now it’s time to download WordPress. Once you’ve downloaded and unzipped the WordPress download, open up the “wordpress” folder. Click and drag all of the files from the wordpress folder to your MAMP document root (I use/Users/USERNAME/Sites/wordpress/).

Lastly, we’ve got to run WordPress’ famous 5-minute install. Visit your local site (localhost:port or localhost:port/wordpress), and enter the following information into the database setup form:

database name: wordpress
database host/server: localhost
database user: root
database password: root

Once that’s complete, enter a blog name and email address, and you’re ready to use WordPress on your Mac.

Getting Started on the Google+ API

The Google+ project brings the nuance and richness of real-life sharing to software. The Google+ platform brings that nuance and richness to all of the web. We started with Google’s own products, added the +1 button for site owners and content publishers, and introduced games from a handful of partners. That’s just the beginning though — we want every one of you who builds applications to be able to include rich sharing, identity, and conversations in your app. Today, we’re taking the next step on that journey by launching the first of the Google+ APIs.

Let’s Go Public

Google+ gives users full control over their information, supporting everything from intimate conversations with family to public showcases and debates. This initial API release is focused on public data only — it lets you read information that people have shared publicly on Google+. For example, if you want to get my profile information, you can use the people.get method by sending the following HTTP request:


which returns the following JSON encoded output (excerpted for brevity):

 "kind": "plus#person",
 "id": "108189587050871927619",
 "displayName": "Chris Chabot",
 "image": {
  "url": ""
 "organizations": [
   "name": "Google+ Developer Relations",
   "title": "Developer Advocate & Manager",
   "type": "work"

Similarly, you can get a list of my most recent public posts by using the activities.list method:


Because we’re starting with public data only, you simply need to register your app before making requests. And if you aren’t yet sure which Google+ user is running your app (for example, because they’re installing it for the first time), then you can use the new OAuth2 scope to ask the user who they are.

After your application has requested this scope, you can use the special “me” identifier rather than the long numeric identifier:


On The Shoulders of Giants

We love the way the programmable web has evolved, so we’re using existing standards and best practices wherever we can:

  • Our API methods are RESTful HTTP requests which return JSON responses.
  • Our payload formats use standard syntax (e.g. PoCo for people info, for activities).
  • We use OAuth 2 for secure trusted access to user data.

In addition, since most of us no longer write raw HTTP requests these days, we provide libraries for your favorite language: JavaGWTPythonRubyPHPObjective-C, and .NET. These libraries are all open source, so we’d love to have your feedback and help with them.

You can find more information about the Google+ platform, including today’s new APIs to public data, at on our new Google Developers site. This site will be the place to go for access to documentationterms and policiesdiscussions with other developers, tools that make development on the +Platform easier and more fun and, of course, the place where announcements concerning new releases will be made.

Included in our policies are three simple guidelines that we aspire to in our own products, and that we’d like all applications built on the Google+ platform to follow also: put the user first, be transparent, and respect user data. The goal behind these guidelines, as with all of the features and fine print, is to work together to build products that our users will love.

And now …

For all of you developers who have been asking for a Google+ API, this is the start. Experiment with it. Build apps on it. This is just the beginning; the Google+ platform will grow and we value your input as we move Google+ forward.

Follow the conversation on Google+.

Five dangerous coding standard rules

Bad Rule #1: Do not divide; use right shift

As worded, the above rule is way too broad. It’s not possible to always avoid C’s division operator. First of all, right shifting only works as a substitute for division when it is integer division and the denominator is a power of two (e.g., right shift by one bit to divide by 2, two bits to divide by 4, etc.). But I’ll give BadAdvice the benefit of the doubt and assume that he meant to write that you should “Use right shift as a substitute for division whenever possible”. This, of course, is unnecessary in many cases as a good optimizing compiler can also see that you are dividing by a fixed power of 2 and shift accordingly if that is faster on the target processor.

For his example, BadAdvice shows code to compute an average over 16 integer data samples, which are accumulated into a variable sum, during the first 16 iterations of a loop. On the 17th iteration, the average is computed by right shifting sum by 4 bits (i.e., dividing by 16).

Perhaps the worst thing about this example code is how much it is tied to a pair of #defines for the magic numbers 16 and 4. A simple but likely refactoring to average over 15 instead of 16 samples would break the entire example–you’d have to change from the right shift to a divide proper.

It’s also easy to imagine someone changing the first #define from 16 to 15 without realizing the significance of the second; in which case, you’d get a subtle bug in that the sum of 15 samples would still be divided by 16.

Better Rule: Shift bits when you mean to shift bits and divide when you mean to divide.

There are many sources of bugs in software programs. The original programmer creates some bugs. Other bugs result from misunderstandings by those who later maintain, extend, port, and/or reuse the code. Thus it is my view that coding rules should emphasize readability and portability above efficiency. The choice to deviate from a good coding rule in favor of efficiency should be taken only within a subset of the code. Except when there is a very specific function or construct that needs to be optimized by hand, efficient code generation should be left entirely in the hands of the compiler.

Bad Rule #2: Use variable types in relation to the maximum value that variable may take.

BadAdvice gives the example of a variable named seconds, which holds integer values from 0 to 59. And he shows choosing char for the type over int. His stated goal is to reduce memory use.

In principle, I agree with the underlying practices of not always declaring variables int and choosing the type (and signedness) based on the maximum range of values. However, I think it essential that any practice like this be matched with a corresponding practice of always declaring specifically sized variables using C99’s portable fixed-width integer types.

It is difficult to understand the reasoning of the original programmer from:

char seconds; 

Did he choose char because it is just big enough or for some other reason? Was he counting on the compiler to tread char as unsigned by default, as some do?  The intent behind variables declared short and long also difficult to decipher. A short integer may be 16-bits or 32-bits (or something else entirely), depending on the compiler and target processor–a width the original programmer may have (or may not have) relied upon.

Better Rule: Whenever the width of an integer matters, use C99’s portable fixed-width integer types.

A variable declared uint16_t leaves no doubt about the original intent as it is very clearly meant to be a container for an unsigned integer value no wider than 16-bits. This type selection adds new and useful information to the source code and makes programs both more readable and more portable. Now that C99 has standardized the names of fixed-width integer types, declarations involving short and long should no longer be used. Even char should only be used for actual character (i.e., ASCII) data. (Of course, there may still be int variables around, where size does not matter, such as in loop counters.)

Where portable efficiency concerns exist, remember that C99’s stdint.h also defines uint_leastN_t and uint_fastN_t, which allocate storage of at least N bits and the fastest container at least that wide respectively.

Bad Rule #3: Avoid >= and use <

As worded in the heading, I can’t say I understand this rule or its goal sufficiently, but to illustrate it BadAdvice gives the specific example of an if-else if wherein he recommends:

if (speed < 100) ... else if (speed > 99) 

instead of:

if (speed < 100) ... < else if (speed >= 100) 

Say what? First of all, why not just use else for that specific scenario, as speed must be either below 100 or 100 or above?

Additionally, even if we assume we need to test for < 100 first and then for >= 100 second, why would anyone in their right mind prefer to use > 99? That would be confusing to any reader of the code. To me it reads like a bug and I need to keep going back over it to find the logical problem with the apparently mismatched range checks. Additionally, I believe that BadAdvice’s terse rationale that less code will result to be untrue. Any half decent compiler should be able to optimize any comparison as needed for the underlying processor.

(Remember you’ll often do far better when you can compare for equality or inequality vs. zero.)

Better Rule: Use whatever comparison operator is easiest to read in a given situation.

It is my strongly held belief that one of the very best things any embedded programmer can do (other than make their code work properly, of course) is to make their code as readable as possible to as broad an audience as possible. That way another programmer who needs to modify your code, a peer doing code review to help you find bugs, or even yourself years later, will find the code hard to misinterpret.

Bad Rule #4: Avoid variable initialization while defining

BadAdvice says that following this fourth rule will make initialization faster. He gives the example of unsigned char MyVariable = 100; (not preferred) vs.

// Before entering forever loop in main MyVariable = INITIAL_VALUE;
#define INITIAL_VALUE 100 unsigned char MyVariable;

Though it’s unclear from the above pseudo-code, let’s assume that MyVariable is a local stack variable. (It could also be global.) I don’t think there should be any (portably) noticeable efficiency gain from switching to the latter. And I do think that following this rule creates an opening to forget to do the initialization or to unintentionally place the initialization code within a conditional clause.

Better Rule: Initialize every variable as soon as you know the initial value.

I’d much rather see every variable initialized at declaration with the narrowest possible scoping and creation of the variable postponed as long as possible. Remember that if you’re using a C99 or C++ compiler, you can declare a variable anywhere within the body of a function.  Right before its first use is a great place to declare and immediately initialize any variable.

Bad Rule #5: Use #defines for constant numbers

The example given for this rule is of defining three constant values, including:

#define OFF 0 #define ON 1

BadAdvice’s rationale is given as “Increased convenience of changing values in a single place for the whole file. Provides structure to the code.” And I agree that using named constants instead of so-called “magic numbers” sprinkled around the code is a valuable practice. However, I think there is often a better way to go about this.

Better rule: Declare constants using static const or enum.

C’s const keyword can be used to declare a variable of any type as unable to be changed at run-time. This is a preferable way of declaring constants, as they are in this way given a type that can be used to make comparisons properly and enabling them to be type-checked by the compiler if they are passed as parameters to function calls. In C++, the use of const won’t cost you any memory storage. To avoid the use of run-time memory for constants declared this way in C, simply add the static keyword to the declaration. For example:

static const uint8_t OFF = 0; static const uint8_t ON = 1;

Alternatively, enumeration sets may be used to declare integer constants. I recommend this technique when the constants come in related groups, such as named colors or:

enum { OFF = 0, ON };

Either const-declared variables or enumerations can be used to achieve much of what programmers use preprocessor defines for (except preprocessor macros). So while I agree with BadAdvice that #defines are preferable over magic numbers, I only use #define as a last resort when naming a constant.

Scary thoughts

There are two scary things about these and a few of the other rules on BadAdvice’s blog. First, is that they are out there on the Internet to be found with a search for embedded C coding rules. Second, is that BadAdvice’s brief bio is a designer of medical devices and industrial controls. I’m not sure which is worse. But I do hope the above reasoning and proposed better rules gets you thinking about how to develop more reliable embedded software with fewer bugs.


How to argue on the internet

It’s plenty hard enough to get someone to listen to your arguments in a debate, given how attached people are naturally to their own ideas and ways of thinking. But it becomes even harder when you trigger someone’s emotional side, by making them feel like you’re attacking them and putting them automatically into “defend myself” mode (or worse, “lash out” mode), rather than “listen reasonably” mode.

Unfortunately, online debates are full of emotional tripwires, partly because tone isn’t always easy to detect in the written word, and even comments intended neutrally can come off as snide or snippy… and also because not having to say something to someone’s face seems to bring out the immature child inside grown adults.

But on the plus side, debating online at least has the benefit that you can take the time to think about your wording before you comment or email someone. Below, I walk you through my process of revising my wording to reduce the risk of making someone angry and defensive, and increase my chances that they’ll genuinely consider what I have to say.

DRAFT 1 (My first impulse is to say): “You idiot, you’re ignoring…”

Duh. Get rid of the insult.

DRAFT 2: “You’re ignoring…”

I should make it clear I’m attacking an idea, not a person.

DRAFT 3: “Your argument is ignoring…”

This can still be depersonalized. By using the word “your,” I’m encouraging the person to identify the argument with himself, which can still trigger a defensive reaction when I attack the argument. That’s the exact opposite of what I want to do.

DRAFT 4: “That argument is ignoring…”

Almost perfect. The only remaining room for improvement is the word “ignoring,” which implies an intentional disregard, and sounds like an accusation. Better to use something neutral instead:

DRAFT 5: “That argument isn’t taking into account…”

Done.  Of course, chances are I still won’t persuade them, but at least I’ve given myself the best chance possible… and done my part to help keep the Internet civilized. Or at least a tiny bit less savage!

6 Ways to Tackle Boring or Irritating Tasks

[1] Don’t think about it that much

One way to deal with the task is to put your mind elsewhere and not think about it that much. I have noticed, that especially if I’m busy with my other tasks, my mind is not focusing on the annoying task that much.

I try not to think actively about the exercise before it actually happens for two reasons. First, I want to be present at work and second, I’m wasting my energy on to something, that I don’t need to focus on right then.

[2] Find alternative ways to do it

Another great way of tackling the task is to find alternative ways to do it. For example, if you hate cleaning your home, you may want to think different ways of handling the task – like cleaning it room-by-room, cleaning it by starting from a living room first (if you have started from a kitchen normally) and so on.

This way you may think about that irritating task bit differently and starting the task may not be that difficult.

[3] Do it as soon as you can

I have realized that as soon as you get the irritating task done, the better. Once it’s off your mind, you can put your focus and your energy to other things instead.

Once I get past the task, I feel good about myself and the task is not on my mind anymore.

[4] Break the task into small pieces

In order to make the level of entry lower and prevent procrastination on that task, break it into smaller pieces. I used this example in tip # 2 above (cleaning your home – room-by-room), but obviously you can apply it to other situations as well.

For example, if you have to write a report, you could make a decision to write 3 pages of that report every day. Alternatively you can decide that you will work on the task at least 1 hour per day. By this way, you are not overwhelming yourself with the task, since it’s broken down into manageable pieces.

[5] Praise yourself for starting the task

Remember, as soon as you get started with your tedious task, you have already done something that most people are not willing to do.

Starting is the hardest part – especially when a boring or irritating task is concerned. However, as soon as you get started, it may be difficult to stop working, since you got the momentum going.

For example, you could decide to work 5-10 minutes on a task. After you have worked that amount of time, see if you are still willing to stop doing the task or would you like to keep going.

Every time I start my hardest exercise of the week, I feel like a winner. I know that the situation cannot get any “worse” and since I’m doing the workout already, it gets done soon.

[6] Remember your past experiences

Everyone has tackled tedious tasks before, but do you remember, how you have felt afterwards? I don’t know about you, but almost every time, I have felt very good about myself for completing the task.

When a boring or irritating task arises, focus on the good feeling you have had before – when you did complete the task. That good feeling helps you to get started with the task and pull it through easily.

I guess the tedious article is now done and I can focus on other tasks instead.


Building Awesome Social Products [6 Basic Principles]

Number of Social Products are launched these days; everyday we come across a new one. While I am also busy building my own Social Product – sharing few of our learnings with other Entrepreneurs & Product Managers working on Social Products.

Social Graphs are all around us today – some like Facebook, LinkedIn, Twitter have extremely high adoption rate and have provisioned development frameworks for existing and new products to leverage social graphs behind them. Each of these social graphs are distinctive by type of connections and mindset its users have developed towards them.

Google+ has been left outside of this discussion – cause in my personal opinion it is yet to find itself a distinct social graph. In current position – Google+ overlaps with lot of existing and established Social Graphs. More notes on Google+ can be reserved for a different blog post.

Building Awesome Social Products

Presentation from P J

Existing Social Graphs (everyone knows this):

  • Facebook – Social Networking for friends, (close) colleagues and family. These are users with whom you have interacted in real life.
  • Twitter – Loose social connections, people you know or are acquaintances with. Typically people who are celebrities, known professionals, subject or domain expertise are followed by others.
  • LinkedIn – Professional and Business contacts.
  • Email Contacts – Gmail, Yahoo, Hotmail, AOL, etc – all people or contacts whom you have/had private conversations over emails.

There are other Social Graphs like – YouTube, WordPress, Flickr.., those who are limited by its mindset or domain; also limited ways to leverage those social graphs.

Every Social Platform has Social Mindsets & Product Norms:

Social Platforms – no matter how big in user base, its users over a period of time have developed strong mindsets, product usage norms and social norms. They are usually not said or stated, but followed subconsciously by its users.

  • Facebook –
    Product Norm: Users can share status, comments, updates, photos, videos with “known friends”
    Social Mindset: Informal, between friends, perceived closed group communication.
    Social Norm: Example – Do not keep on updating status at same pace at which they tweet.
  • Twitter –
    Product Norm: Follow like minded people, domain experts, known professionals, celebs, etc
    Social Mindset: Open conversations & thoughts expected by followers.
    Social Norm: Example – Retweet what you agree on, etc
  • LinkedIn –
    Product Norm: Strictly Professional & Business oriented. Make connection with people you have worked with or intend to.
    Social Mindset: Share professional or company updates; Industry news & views
    Social Norm: Example – Do not post jokes or Facebook-like status updates.

Social Mindsets and Product Norms are difficult to break:

Users follow social mindsets and product norms subconsciously, they learn to follow it over months or years of product usage. Over a period of time, they become so strong that such platforms itself are not able to foster adoption for new products & features they introduce. Some examples are –

  • Facebook attempted to take on Foursquare with Facebook Places – but did not make much headway. Interestingly – there might be an 100% overlap of Foursquare users with Facebook.
  • Twitter struggled with getting usability for Lists feature. Users have added people to lists – but not following them for tweets. Twitter acquiring TweetDeck might be another sign of product usage norm.
  • LinkedIn struggled with its product LinkedIn Answers – while Quora scaled.
  • Google launched Google+ through GMail, but now struggles to keep continued engagement and adoption of Google+.

Because the Social Mindsets and Product Norms are difficult to break, products that leverage Social Graphs outside them become successful. (Facebook abandoned deals, but maybe it should acquire Foursquare as it is more valuable than Groupon, & LinkedIn should acquire Quora)

Some Perfect Examples of Social Products:

  1. Zynga – Leveraged social graph of Facebook and introduced Social Games like CityVille, FarmVille and others as a Social Application.
  2. Foursquare – Leveraged social graphs of Facebook & Twitter to introduce a location based check-in product on Mobile.
  3. Quora – Leverage social graphs of Facebook & Twitter to introduce a Questions product as a destination website.

The 6 Basic Principles of Building Social Products:

  1. Social Graphs are already Established.
    Do not reinvent the wheel and try to build social graphs again from scratch on your product.
  2. Social Graphs get built over a period of time.
    a. Over years – Users have made friends on Facebook, added professional contacts on LinkedIn or followed people on Twitter
    b. It will take loads of time, effort and patience if you try to build them again.
    Google+ is attempting this – we can wait and watch if it succeeds.
  3. Don’t build Social Products for sharing content & driving additional traffic.
    a. Most social products are built with this intention – sharing content and hence driving more traffic
    b. Existing social graphs are powerful and already allow sharing of content to drive viral traffic.
  4. Build Social Products that add value to users.
    There are many tasks and products that can be built outside existing Social Platforms which can add value to end users. While existing social graphs are established, users have a Usage Mindset about them, this is biggest incentive to build innovative social products.
  5. Don’t arbitrage value through your product.
    There is immense value in integrating directly with social platforms like Facebook & Twitter, do not try to arbitrage this value through your product. Users (if it is a B2C product) or Merchants / Publishers (if it is a B2B product) will at some point of time realize this and abandon your product to integrate/use directly.
  6. Don’t build – but leverage Social Graphs!
    Rome was not built in one day! And so are Social Graphs. Choose the one that fits most with your product use case and leverage it.

Building your Perfect Social Product:

Foursquare, Quora, Zynga did it, so can your product. Introducing established social graphs to new products. Key is understanding what you manage and what you don’t – Social Graphs are not owned by you, your product is – seamless integration with your product makes it scale up virally.

It helps you in –

  • Viral User Acquisition
  • Introducing your product to user’s existing social graphs
  • User activity on your product generates updates for Social Graphs, which acts like contextual marketing.

Identify what are the validation use-cases for your product, allow consumers to share the same with his Social Graphs. Few examples are – Foursquare checkins, Questioning & Answers on Quora, reaching a level completion milestone on Zynga while playing its games and others.

Solving the Chicken and Egg problem:

Social Products have more than one first users. Every initial user who registers to your product has his own social graph, he is the first user of his social graph.

The Chicken & Egg problem here is – what do you show to such first users who do not have any friends or activities to look at. Ask hard questions and look around for examples of successful social products.

First User Questions (FUQs) –

  • Facebook’s first user question – “Whom do I add as a Friend? Who will see my wall-post?”
  • Twitter’s first user question – “Who will read my tweet? Whom should I follow?”
  • Quora’s first user question – “Who will answer my question? How can I quickly get a answer for my question?”
  • Foursquare’s first user question – “Where should I check-in? Why should I check-in?
  • Zynga’s first user question – “Whom should I play CityVille with? How will my City grow?”

Try to figure out how these platform solved the first user question. There are multiple ways to do it, but idea is doing this right. The biggest challenge for any social product is solving the First User Questions – the approach and execution here makes or breaks your Social Product.

Validation Cycle of Social Products:

Defining Validation Cycle for your Social Product and reducing the time to validate it is the key goal for Product Managers. Validation cycles are reduced when you are at scale – thats a easy task cause at scale most of the things you do is just optimize based on data/feedbacks.

Take example of Quora – product validation cycle means getting answers from people with best knowledge about it. Since Quora has scale & adoption today – you will see few questions getting answered within minutes or hours of submission, while few take days to see first answer. But in its initial days – the validation cycle was not so short.

More crucial moments are in the first 10,000 users scenario. Have patience, learn from initial user feedback and pain-points; validation will be slow and takes time in initial days of adoption. Also to due slow adoption cycle in early days – the early adopters of any social product, don’t necessary get the best experience.

Example – My twitter profile ( was created in December 2007; I had the First User Question syndrome. Same was the case with my profile on Facebook, LinkedIn or Orkut (Orkut showed me – “Bad, bad server. No donuts for you” 1000s of time).

Should it be an Application on Facebook or Destination site:

“Why is this not a application on Facebook?” is also a question you will hear from Investors. While there are different answers for this question when it comes from Investors, but for a product decision make your judgment based on –

  1. Your product idea or concept or product use case should deliver real value. The value should not equate to addition of features on Facebook.
  2. There are Social Graphs outside of Facebook that you want to explore.
  3. Facebook would want people to interact with people; not with applications.
  4. Product or Business use case qualifies to be a destination site outside of Facebook – like a Quora or Foursquare.

Remember again – Social Mindsets & Product Norms on Facebook are difficult to break. If your product requires to explore Social Graph and is outside the Social Norms of Facebook – it can be a destination!

The Key Questions to answer before getting started:

Have good answers to all of these questions before starting with build your Social Product:

  • The task your product is planning to solve – do people do it in real world socially?
    Social Products are reflections of user behavior in real world – People play games together, People want to hear answers from persons with best knowledge about it, and so on. If people don’t do such tasks in real world – they will not do it on a Social Product as well.
  • Is it a feature on Facebook or Twitter or any Social Platform?
    Feature products don’t last. Identify if your product can be a feature on Facebook or Twitter.
  • If B2C product – Is there a value to do this task outside of Facebook?
    Check and check again – Is your product idea meant to be a application or destination.
  • If B2B product – Is sharing and driving traffic to merchants / publishers the key aim?
    There is no harm if it is one of the propositions, but this should not be the key aim of your B2B product. Many social commerce products on top of Facebook project sharing & driving traffic as their core benefit. Marketers are smart, at some point of time they will self-integrate this on their Facebook pages.

Always keep these things in Mind –

  1. People drive Social Platforms & Products. Not features!
    Features are how you want users to drive your product. But it is always people who drive it – make your features people-centric; not people feature-centric.
  2. Engagement should be People to People
    People don’t login to Facebook everyday cause it is Facebook, it is cause there friends are there. Same will hold true for your Social Product.
  3. Don’t arbitrage on User Value
    Consumers & Businesses will eventually figure this out. So don’t do this in first place.
  4. Don’t be Evil
    People love their Friends & Social Circle / Connections more than they love your product.
    Don’t mess with them. Don’t spam. Don’t be evil.

Happy Building your Social Product.

[Guest article by PJ]

Near field communication: What it is and how it works ?

For the layperson, how does NFC work?

NFC is basically a form of radio communication, but it uses very low-power radios. It’s related to radio-frequency identification (RFID) as well.

In its simplest form, you have two electronic devices. Each has a battery, a radio, and a processor on-board. One sends a stream of data to the other, and the other responds. They transmit with such low power that the signal is lost after only a few inches. So in order for them to communicate, you have to basically touch them together.

RFID can also be classified as Near Field Communication, though not all forms of RFID use the same data protocols as NFC devices. RFID comes in two flavors: active and passive.

Active RFID works just as NFC does: two powered devices, two radios, and a transmission between them. The range doesn’t need to be short; it can be as long as you have power to transmit. The EZ-Pass system you see on toll roads is a good example of active RFID — it can cover several meters.

Passive RFID, on the other hand, is generally very short range, because there is only one powered device. The RFID reader sends out a radio signal. When an RFID tag is in range, it receives the signal, and uses the energy of the radio transmission to power itself. The amount of energy isn’t great, so the RFID tag can only power itself long enough to send a signal back to the reader, then it shuts down.

How significant will NFC technology be in the coming years?

NFC, coupled with RFID tags, creates a really cool channel for devices and objects to talk to one another. Tom and I have done lots of freaky projects with BluetoothXBee/ZigBeeWi-Fi — all things that communicate over a reasonable distance. But NFC and RFID give us the ability to have objects that are close to one another talk to each other. And one thing I love is that the RFID side of the equation lets un-powered objects — anything you can embed a tag in — play in this game of networked objects.

That, to me, is the starting point for all this. I don’t want to worry about whether NFC payments are going to take off, or if NFC will replace the business card. What I love about this is that it gives us another way for objects to participate in the “Internet of things.”

Are there any impressive or unique ways that NFC is being used right now?

There’s one story that seems to dominate the headlines, and that’s about using NFC for payments. But for me, the more interesting application is replacing QR codes. Imagine you’re standing outside a restaurant, and there’s a sticker in the window with a QR code that takes you somewhere for reviews. How long does that take? Half a minute to fire up your QR code scanner, two minutes of cursing because there’s not enough light or there’s glare on the glass, and when you eventually get it working, your friends have already searched for it on Google and read the reviews. And that’s assuming you’re enough of a power user to already have an app like Barcode Scanner or Red Laser installed.

Compare that to NFC. I can tap the sign with my Nexus S, and it will fire up the built-in Tags app (see video below), and take me right to the URL. It’s really fast. Tap your phone to the thing you want to create a relationship with, and you’re done.

NFC security is a concern for some. How well is this issue being addressed?

When people ask that question, I find that they haven’t done enough research to know why they should be concerned. Why are you not worried about Wi-Fi security? Or mobile phone security? Both of them use the same technology: radio transmission. Yet no one raises concerns about those.

I think the confusion stems from the fact that people think an RFID tag or an NFC device actually contains secret data about them. In fact, most of the time the only data on an RFID tag or NFC device is a serial number. In order for that number to mean anything, it has to be associated with other data in a database, and the database has to be attached to an RFID reader. The same is true of magnetic stripe credit cards — the data is not on the card. It’s a serial number that associates that card with your record in the database. It’s possible to record more than just the serial number on your card, but in order to extract that information, a more complex transaction involving encryption and passkeys has to happen.

Unlike mag-stripe cards, however, you don’t need to swipe an RFID or NFC card through a reader in order to read it. You merely need to bring it within a few centimeters of your reader. So people often ask, “Does that mean you can read my card in my wallet or my purse?” Sure, if you touch your wallet or purse to my reader. But if I get that close to you, I might as well just steal your whole wallet!

Practically speaking, it’s as difficult — or more so — to steal your credit card number off your RFID-enabled credit card as it is off your traditional credit card, assuming you handle your card with the same amount of basic caution. Practice some common sense, and you’re not in danger.

What are the most significant obstacles NFC faces?

The biggest issues at this point are compatibility — there are several different protocols that are incompatible with each other — and documenting the technologies in such a way that industrial designers know how to make them work best. Timo Arnall, Einar Martinussen, and the folks at BERG studios have done some good work on this at

If you were to implement a solution today using RFID, you’d have some good choices at your disposal for secure solutions. However, there are insecure, first-generation — and probably second-generation and beyond — systems still in use that should be replaced.

Source: O’Reilly