How Dropbox helped me avoid TSA detention

I’m sitting at the Northwest Arkansas airport as I type this waiting for my flight which is about 2.5 hours from now. What am I doing here so early? Here’s what happened:

A couple of weeks back I get an email from the organizer of the NWATechfest giving me instructions on where to park, whom to contact for help, etc. That’s when I realized that I was scheduled to speak there on Aug 24th i.e. today. I quickly checked my calendar to see when my talk at Houston Code Camp was supposed to be and surprise, surprise…it was on Aug 25th (the next day).

It was completely my fault. I let it slip my radar. Now I had to figure out how to get from Dallas to Fayetteville to Houston and back to Dallas all within 48 hours. I got on the phone with Expedia and quickly booked the tickets, made hotel reservations, car rentals, etc. As you can imagine, it costs me a fortune.

Fast forward two weeks, I’m on a plane from Dallas to XNA (Arkansas) with a stop over at Houston and a brief flight later, we land in Houston. It was raining heavily. United airlines did an excellent job of taking care of its customers by asking us to walk to the terminal from the plane IN THE RAIN! They promised that our bags will be delivered to us inside the terminal. While all the passengers including a mother with 3 young children & 2 older ladies were waiting inside after soaking ourselves in the rain, they told us that the bags are in the cart outside and we need to go get it ourselves. It was still raining! Like I said the other day, the airline industry is begging to be disrupted. They treat people like cattle.

Anyway, we board the next flight to Arkansas and finally get there around 7 PM. I pulled up my itinerary on my phone to check where I was supposed to pick up my rental car. And the email doesn’t have any details about the car rental & hotel reservation. Only flight details (turns out that Gmail cuts off messages). Mood: SLIGHTLY IRRITATED.

So I call Expedia and get all the information and walk up to the Budget car rental service. The customer before me in the line literally took 30 minutes talking to the lady at the counter before he left NOT renting a car. Mood: ANNOYED.

Finally I get to the counter and pull up my wallet to get my driver’s license when I realize that my driver’s license is missing. Shit! I remembered taking it out to show the TSA agent when I checked-in in Dallas. I must have put it back in my pocket and somehow dropped it in the flight or in Houston airport when I was running towards the terminal in the rain.

The lady was polite and friendly but she refused to let me rent a car without a valid driver’s license. No other ID mattered. Apparently, it was a matter of policy. So I took a cab to the hotel. Mood: SUPER PISSED.

I ordered Chinese and was contemplating how to get to the University of Arkansas tomorrow for the talk. I didn’t want to keep taking cabs everywhere as they could get very expensive and on a side note – my employer doesn’t cover any of these expenses. And that’s when it hit me like a train – I can’t fly tomorrow to Houston if I don’t have an ID. DAMN IT!

I’d called my wife earlier and bitched about my stupidity for about 10 minutes. She researched “how to fly without a valid ID in the US” on the web and sent me an email instructing me to get to the airport as early as possible because they WILL take me away for questioning for the following reasons: 1) it wasn’t a round trip ticket (remember, Dallas -> Arkansas -> Houston -> Dallas), 2) I don’t have a government-issued ID, 3) and most importantly, I’m a foreigner & my skin color is brown 😉

Next day, i.e. today, I take a cab to the techfest. Right when I was about to start, the projector started acting up. The screen was super dim & blurry. Thanks to Shawn Weisfeld who let me borrow his HDMI-to-VGA autoscaler, I was able to project to the screen. Then the presentation almost bombed because Azure decided to lock me out of the portal RIGHT IN THE MIDDLE OF THE FREAKIN’ DEMO! But I quickly recovered and signed up for a new account (yes, everyone saw me type in my DOB, credit car information, etc.) and finished it 10 minutes late. Thanks to Chris Koenig for patiently waiting.

I finally rush to airport almost 3 hours ahead of the boarding time and walk up to the security checkin. I show them my boarding pass from yesterday so that it would give me some credibility that I traveled as early as yesterday (less than 24 hours). I also showed them my credit card with my name on it. And then I showed them the Plano Parks & Recreation issued ID. And to top it all, I showed them the scanned copy of my driver’s license ON MY PHONE.

That’s right. My wife & I have scanned all our important documents like college transcripts, SSN card, insurance cards, mortgage documents, marriage license/certificate, etc. into an encrypted Dropbox folder so that we can retrieve them from anywhere, anytime. Thankfully I had the Dropbox app installed which made it a lot easier than downloading it from the browser although that really wouldn’t have been an issue considering the circumstances.

The TSA lady said “NICE! Alright, you’re good to go”. Emphasis hers.

Now I understand that some people don’t feel comfortable putting all their documents online like that. But I personally feel Dropbox has enough security built-in to avoid breaches like that and on top of it, there’s another layer of password-protection anyway.

I could have been in some deep shit if they had not allowed me to fly because I have no other easy way to get to Houston by tomorrow morning. My talk is scheduled at 9:15 AM. I can’t rent a car because again, no driver’s license = no renting cars.

So the moral of the story is; don’t be an idiot. Be careful when you travel especially when you’re a foreigner on the US soil. Having no ID on you is asking for trouble. Also, have an online encrypted backup of your important stuff. You never know when you’ll need it.

Continue Reading...

Good Bye, 2011. You will be missed.

I usually don’t do these “looking back” posts at the end of year. But this year deserves to be an exception. I’ll be the first one to admit that my memory is very short but I don’t have to think really hard to come up with the highlights of my personal and professional life in 2011.

In fact, there are only 6 things that would qualify as highlights.

Here we go.

1. Became a Father

My son Vishruth Girish was born on Dec 8th 2011 at 8:28 PM. He weighed 7 lbs 4 oz. 19″ tall. I spent about 20 minutes trying to come up with words to explain how I felt when he was born. But I can’t. I’ll tell you this though. I’m 30 yrs old. And I don’t remember crying like that… like, ever in my life. I remember not letting go of my wife’s hand that I’d been holding all along while she was in labor. She was also crying (duh!) and telling me over and over again to hold him (apparently, I was being incoherent and wasn’t even listening when the doc was trying to hand him over to me).

Anyway, I don’t want to go on and on about how great being a father is (you won’t believe it, unless you are one too) and how awesome my son is (he really is). But this tweet does the job.

2. Founded the UXD initiative at work

I code for a living. So technically speaking, I’m just a developer. But I know a thing or two about building beautiful software (and consequently, great UX) because of the people I used to work with before I started working at my current company. They were some very talented folks who taught me that software is not just about writing awesome code. A well-built app is useless if the users struggle to, well, use it.

Unfortunately, we don’t have any Visual Designers or Information Architects or UX engineers here. So I took it upon myself to start a series of workshops hosted during lunch breaks, during which I can talk to our Business Analysts, Developers, Project Managers etc. about some fundamental principles of building meaningful, functional, aesthetically-pleasing & easy-to-use software.

I even managed to get a sub-domain registered ( and set up a website (the luckiest part was getting permission to NOT use SharePoint to host it).  They even paid for the logo that Jared Christensen built for us.

In addition to the talks that I did once every 2 weeks, we’ve also had a couple of star speakers come and speak to show their support. Thank you, Mark Kraemer & Stephen Anderson.

Just to reiterate, I’m NOT a UX/UI guy. I’m just a developer that wanted to work on building applications that didn’t suck ass.

3. Started speaking at conferences & user groups

I wanted to try this whole “speaking thing” just to see if it was something that would interest me. I started off by giving a couple of talks at user groups locally before I got an opportunity to speak at Dallas Techfest. And later, at Tulsa Techfest. I must admit I had fun. Based on the audience turn out and feedback the organizers gave me, I didn’t suck too bad.

Based on my experience so far, I think I might continue doing that in 2012 if I get the opportunities (time permitting, of course, now that I’m a father and all).

4. Got on Twitter

I finally admitted defeat and got on Twitter because I saw first hand how a coworker and good friend, Michael Perry was using it to get help from Telerik when we both were working at the Dallas GiveCamp weekend in January (more on that in a bit). We were using Sitefinity CMS, which was terrible (throwing SQL errors to the UI via JavaScript alerts). Google wasn’t of much help since that specific version was released just the day before and obviously, it was half baked. I was amazed how quickly people responded to his questions.

And that’s when I realized that I could no longer ignore Twitter because no matter how stupid the concept of micro-blogging sounds and how much noise it generates, it obviously has its benefits. So 131 followers & 1188 tweets later, I can safely say that it helps me keep in touch with my friends and also make new friends. And thanks to some companies like Samsung and ATT that are active on this platform, I even got some issues resolved just by tweeting about them.

5. Gave back to the community

It was Michael Perry that introduced me to the Dallas GiveCamp project and I’m thankful to him for helping me find a great way to give back to the community. I attended both the sessions this year, spending almost entire weekends there to build websites for charities. In January, we built a site for Legal Hospice and in October, we did the same for Dallas Challenge.

6. India won the Cricket World Cup (ODI)

I was at my friend’s house staying up all night to watch the finals (India Vs Sri Lanka). I must admit though that sometimes I secretly feel that beating Australia in quarterfinals and Pakistan in semifinals may have tasted sweeter than winning the cup.

The last time India had won the world cup was in 1983. I was 2 yrs old then. I won’t say I never thought I’d see this day in my life time because India is (and has been) a pretty strong team over the last decade. I mean, we’d already won the inaugural world cup for Twenty20 in 2007. So I knew it was only a matter of time before we did it in the ODI version as well.

Anyways, as an Indian cricket fan, this was the best day of my life.

As you can see, this was a great year for me personally and I hope 2012 will be just as good if not better.

Bubbye, 2011. I’ll miss you.

Welcome, 2012. Wishing you all a very happy and prosperous new year, folks.

Continue Reading...

Hitler is informed of Anna Hazare’s plan to fast again


If you don’t know who Anna Hazare is, check out the following articles.

CNN – Indian activist tells protesters: ‘Your revolution has energized me’

BBC – India corruption: Anna Hazare to resume hunger strike

Now, get ready to watch the famous Hitler meme – the desi version.

Continue Reading...

My talk on jQuery at Dallas TechFest 2011

Not sure if many people know this but this was my first talk at an official conference. I’ve presented several times before at work and also at user groups. But not at any conference before this one.

So I’d like to thank Tim Rayburn and Teresa Burger for the opportunity. I’d completely forgotten that I’d even applied for it on literally months back. One fine day, I get an email from Teresa that they’d love to have me come speak and that’s how this whole thing happened.

The talk went pretty well actually. I was surprised to see a full house, to be honest. They took pictures of both me and the audience. I was told that I can have them in a couple of weeks. I’ll post them here as soon as I get them.

Also, it was good to see my friend Rob Pierry again. He too did a talk on StreamInsight. He also had a little surprise for me at the end of his presentation. See below.

Rob Pierry's little shout out

Thanks to everyone who showed up. I hope you found it useful.

Anyways, here are the slides from the presentation.

Continue Reading...

Review of Seductive Interaction Design by Stephen Anderson

The title of this post may be a little misleading because I’m not going to critique the book here for two main reasons.

#1. I’m not sure if my English is good enough to express how I feel about this book and I’m afraid I may say things that may not necessarily reflect what I have in mind.

So the compliments may come across as too much flattery and criticism could be interpreted as just me being mean.

And the fact that Stephen used to be an English teacher in the past, doesn’t really help my case here.

#2. I used to work with Stephen at Bright Corner (It was my first full time job. I was 23 when I joined the company) and he’s a good friend of mine. So no matter how hard I try, I may be a little biased.

By the way, I finished reading the entire book on my tablet using the Kindle app for Android. And every time I read something interesting, I highlighted the text for future reference.

And when I was ready to write this post, I downloaded the Kindle app for PC to check if it remembered my highlights. And guess what? It totally did. WIN! Good job, Amazon.

I may be violating copyrights if I give away all the good parts for free (or for that matter any part). But I’ll just tease you with a couple of my favorite parts enough to encourage you to go get the book.

So here we go:

But wait! Aren’t we supposed to be designing systems that are easy to use, efficient, and get out of people’s way? While there’s an argument to be made for utilitarian experiences, a tool that works isn’t necessarily a tool that people will use.

In dating terms, it’s easy to think, “People will like me for who I am.” The truth is people have to be interested just enough to get to know you (your app) in the first place. What we’re talking about in this chapter are ways to design interactions that are more interesting and playful—interactions that engage people in both and emotionally. This leads to experiences that do more than merely work, they delight people.

Anderson, Stephen P. (2011-06-13). Seductive Interaction Design: Creating Playful, Fun, and Effective User Experiences (Voices That Matter) (Kindle Locations 1126-1131). New Riders Press. Kindle Edition.

Here’s another one.

There’s a big difference between “getting an A in French class” and “learning to speak French.” One is a goal, the other a challenge. Goals are intended to help you along the way, but only challenges lead to mastery.

Anderson, Stephen P. (2011-06-13). Seductive Interaction Design: Creating Playful, Fun, and Effective User Experiences (Voices That Matter) (Kindle Locations 3049-3051). New Riders Press. Kindle Edition.

It’s a fantastic book that is a must read for everyone who is serious about designing beautiful, meaningful and fun user experiences for the web.

Finally, I’d like to summarize my opinion of this book in 5 words – “Go buy this book now!”

Continue Reading...

This Father’s Day I’ve got something very important to say

This Father’s day, I’d like to answer the question that people have been asking me forever. Why do I not drink or smoke? Almost 90% of the time, the immediate follow-up question (even before I answer the first question) is “Is it a religious thing? Y’all are not allowed to do it?”.

Let me answer the 2nd question first. A true Hindu would never have any vices. But then, I haven’t seen a true Hindu yet – one that practices Yoga, is not tied to worldly possessions, performs his duties without expecting anything in return etc.

I’m not a true Hindu. But that’s not the reason why I don’t drink or smoke.

And before I answer the first question, I’d like to talk a little bit about my dad.

He worked 2 jobs even when my mom was working as a teacher to help raise 3 kids and send them to engineering colleges.

He had a relatively short temper. He’s toned it down several notches over the past few years. But besides that, he was just awesome.

He used to be the first one to wake up in the morning, make coffee for himself and my mom. I remember seeing them sitting on the kitchen floor drinking their coffee and talking softly so not to wake the kids up (it was a small house).

He taught me how to drive a scooter (Not the girly ones. The one with gears and clutch and all that). He also taught me gardening and so many other things.

He bought me this bicycle even when everyone advised him not to. It was pretty expensive back then (15 years back, roughly USD $30) when you could get the other bikes for half that price. He took so much flak for it. I LOVED that thing so much. I rode it to school every day.

I couldn’t find a picture of it any where on the web. Guess they don’t make ’em anymore. The following picture is close enough, except mine was black in color.

He was my hero back then. He still is and always will be.

I love you, dad. Happy Father’s Day.

And to answer the 1st question, I don’t drink or smoke because my dad never did.

And oh by the way, in about 6 months I’m going to be a dad too :)

Here’s my baby – 11 weeks old.

Continue Reading...

My presentation at CTXDNUG

I had the opportunity to do a presentation on jQuery at Central TX .Net User Group yesterday. It was fun. Friendly organizers. Good weather (helped the 3 hour drive) . Pretty decent turnout. It was an interactive session and there were some interesting questions asked and answered.

I tried something new this time that I hadn’t done before. I demonstrated some of the tips I’d talked about, on a live

That’s when the audience came alive. Some of them had never seen Firebug before and they were just fascinated when I was making changes “live” on the site directly. We digressed a little bit as I started showing them some of the other cool features of Firebug besides the JavaScript console.

Just based on the reaction of the people there, it’s probably worthwhile to do an entire presentation just on the web development tools that come integrated with (or can be added on to) the browser. That would include not just Firebug, but also Dragonfly, Chrome Developer Tools, IE Developer Tools and whatever that thing is that comes with Safari. :)

Anyways, I’ve uploaded my presentation to SlideShare. Here’s the direct URL –

And for quick reference, I’ve embedded it below as well.

Feel free to post any questions/comments/corrections or any feedback in the comments below.

Continue Reading...

Sass for Visual Studio 2010

The other day my buddy Nathan was telling me about how he was using Sass on his new project and I was intrigued by the idea. Using variables, nesting etc. in CSS? Sounded weird at first. But then I was thinking “yeah. why don’t we have all that already?”.

So I started reading up on it and I quickly realized that this is big. I don’t know if you guys have heard of it already. But I was surprised I didn’t know about it until now. Apparently, this has been out there for a while.

Anyways, here’s what the website has to say about Sass.

Sass makes CSS fun again. Sass is an extension of CSS3, adding nested rulesvariables,mixinsselector inheritance, and more. It’s translated to well-formatted, standard CSS using the command line tool or a web-framework plugin.

Anyways, long story short, I saw what Sass could do and was impressed. So I wrote a Visual Studio Add-in that compiles scss code into css for you. After you install the add-in, you’ll be able to right click on a project and click on a menu item (“Convert SCSS to CSS”) that will scan every scss file in the project and create respective css files for each of those (in the same folder) and also continuously “watch” the scss files for changes, meaning, as soon as you save a change to an scss file, it’ll immediately update the corresponding css file.

Sound good? Ok, let’s get started.

1. Install Ruby (Windows)

Go to and install the latest version of Ruby (if you don’t already have it). I downloaded the Ruby 1.9.2-p136 package.

Make sure you check “Add Ruby executables to your path” (as shown below) during the installation.

2. Install HAML

If you don’t know what Haml is, don’ t worry. All you need to know is that Sass is bundled with Haml, which means you need to get Haml to get Sass. And that’s what we’ll do next.

Close all command prompts if you have any open. Open a new command prompt window and run the following command.

gem install haml

If things went ok, here’s what it should look like.

3. Install Sass for Visual Studio Add-in

Now it’s time to install Sass for Visual Studio Add-in. Here are setup files – Download

Just do the regular setup. Should be straight forward.

4. Create a test web application

Let’s test the add-in now. Close all instances of Visual Studio 2010. Open a new instance and create an empty web application.

I renamed the project to Test. But it doesn’t make any difference what you name it. I just didn’t want you guys to be confused by the following screenshots in which the project says “Test”.

5. Add new folder called styles and create a new stylesheet in it

Again, name of the CSS file doesn’t matter because we are about to rename it.

6. Rename the stylesheet and add sample code to the file

Change it from stylesheet1.css to base.scss. Note the extra *s* in the file extension. S stands for Sassy (not kidding).

Now add the following code to the file. (Also note that this is not plain css. Look at the nesting.)

#navbar {
width: 80%;
height: 20px;

ul { list-style-type: none; }
li {
float: left;
a { font-weight: bold; }

7. Time to put the add-in to work

Right click on the project and click “Convert SCSS to CSS”

8. Click Show All files in Solution Explorer top bar

9. Verify that a new file called base.css has been created

A new file named base.css should have been created. Include that file in the project and open it to make sure it has the following code.

#navbar {
width: 80%;
height: 30px; }
#navbar ul {
list-style-type: none; }
#navbar li {
float: left; }
#navbar li a {
font-weight: bold; }

The above code is regular css that was rendered from the code in base.scss by the ruby script.

11. Instant updates to css

Make a change to base.scss and watch base.css get updated instantly (No need to click on the add-in menu item again). The red arrows in the image below point to the change made in the scss file and the pop up tells you that base.css got updated.

12. Don’t like it? Uninstall

Do it the old-school way. Go to Control Panel > Programs > Uninstall a program and remove it from there.

Restart Visual Studio.

Open a solution and right click on a project. If the menu item is still there, click on  it and Visual Studio will prompt you to remove it.

16. This is Alpha version.

So please forgive any bugs. And if you really care, send me a tweet @appoosa for quicker response or leave your feedback in the comments below.

UPDATE:: I’ve opened up this project to the open-source community. You can find it here –

SECOND UPDATE::Based on the comments below and email feedback, it looks like SASS is a separate install now. So after Step 2 above, run the following command.

gem install sass

And then proceed with Step 3 and continue the process as mentioned above.

Continue Reading...

Unit testing for JavaScript using Firebug

Firebug + JQuery + Unit Testing


Continue Reading...

Adam is officially out!

NotionInk has demo’ed Adam at CES 2011. This is the moment I’ve been waiting for. Before I get to the important part, I have a small story to share with you.

On December 9th last year, I got an email from NotionInk inviting me for the pre-order (Special privilege for the people that supported them from the beginning. He called it “6 hours heads up for family members”. Awww.)

But unfortunately for me, somebody had made a fraudulent charge using my credit card the previous day and I had to cancel my card immediately. And to make matters worse, citing payment gateway contract issues, they could accept only Visa and Amex. My other card was a Master card.

So by the time I got my replacement credit card in the mail, preorders were all sold out. They sold out in just a few hours, apparently.

I guess I’ll just have to wait for them to  start taking the next batch of orders.

Now coming back to my original point, it’s time for all the doubters and haters to eat your words. Yes, I’m talking to you John Biggs, Engadget and all their croonies.

Here’s the proof you guys have been looking for –

Just look at Rohan, the CEO of NotionInk in the video below. He’s a kid for God’s sake. He should be encouraged. Not beaten up for lacking support from big investment firms.

Continue Reading...