Hurricane Sandy Wind+Flooding Check realtime.

Raritan River watershed: empties near Staten I...

Raritan River watershed: empties near Staten Island in Raritan Bay on the Atlantic Ocean. (Photo credit: Wikipedia)

If you live in New Jersey and you are a data guy going crazy with different news & data points covering Hurricane Sandy, here is my quick checklist.

What do you need to track:
a) Hurricane Sandy will cause flooding and high winds, so you need to watch out for rising water levels.
b) Best place to monitor current wind-speed = your favorite weather channel Search by Zip code.
c) Best place to monitor current water levels are at below flooding range – NOAA.
d) High winds might cause trees to fall-down causing power-outage.

Data-Points to Track:

  1. Water Levels at your local river. Try googling for this. raritan river (Replace this with your own river / ref. points. Check the flood / storm surge maps below)
  2. NJ Flooding County-wise Storm Surge Maps.
  3. Google All in One Tracker Page (Summarizes all Gov. Data Points)
  4. Cams:
  5. Outage Maps: PSEG Outage Map and First Energy Outage Map
  6. 511:

Stay safe.

Thanks Zero Water.

Usually when you read about product or service reviews on a blog, it’s usually about how XYZ sucks. Well, I had a pleasant experience with a company and wanted to blog about it.

Product Purchased: Zero Water 23 cup Dispenser. for $35 on Amazon.

We bought the Zero Water 23 cup water dispenser last year. We loved it from day one. It came with a tester which checks for solid deposits in water and gives you a score.  We tested this with bottled water, Poland Spring, Tap Water and found the following scores.

  • Bottled Water – 20 -50
  • Poland Spring – 50
  • Other bottled water – 90 – 200 (Some bottled water results are worse than tap water?!)
  • Tap Water 150-272
  • Zero Water 0-3

If the tester indicates a score that is greater than 6, it’s time to replace the filters. The basic unit ships with 1 filter, and you can buy filters in bulk and save some money. The water from zero water dispense is tasty. (Yes, I said it.)

However, in May, the tap on the dispenser broke when I was holding it to pour out some water. The spring came out and there was no way for me to put it back. I was going to buy another unit but I thought to myself that I should at least give them a call.

So I called the 800 number and spoke to a rep and described the issue. She was apologetic and said that they will send a replacement unit. I was astounded that they were so accommodating. I asked them if I was expected to pay for it since I wasn’t sure about the warranty, but they told me that I wouldn’t be charged for it. I gave them my street address and the new unit arrived in a week.

Two weeks ago, the tap broke again, and this time without any user intervention. So I called them again and explained the problem. The rep confessed that the fault lay with them. There was an engineering problem with the tap design.

I thought – Did they just accept responsibility for a faulty tap design? I have heard apologies, but this one goes a step further. They had my street address on file and I didn’t have to give it a second time. She said they would expedite the replacement unit if possible. So till then, they had sent me 2 free replacements for a product which broke for apparently no fault of mine.

What happened next should be a lesson in customer service.

I was driving back from work early this week and got a call from a funny 800-number. This person was calling back from Zero Water and letting me know that the specific product which I asked for is back-ordered.

How many times have you received a call back from a company, for something you bought on retail ? Probably ZERO. These guys were calling me back to let me know that the product was back ordered; I was really impressed.

Then the rep said,  “I am sorry for your troubles. Can I ship you a replacement unit for free ? We will expedite this, so that you have something at home to drink clean water, while you wait for your product to arrive.”

I was blown away by their customer service. I cannot recall any experience I have had with any other company that matches this.

As an enterprise customer, maybe I have – but in retail , these guys are the kings as far as customer service is concerned. BTW, the clean-awesome-tasting-water bit helps too. 🙂

The replacement pitcher arrived today. Attached price list $0.0. Not a refurb pitcher, but a brand new sealed box. The replacement unit was an 8-cup pitcher.

So Zero Water, you have won yourself a lifetime customer.

Every element in the company – operations + customer service + products came together to result in an awesome user experience.

Disclaimer: I don’t work for Zero Water, nor am I affiliated to it in any way.

An advice for someone graduating from high-school: Focus on the Oyster.

I had a conversation today with a friend who is graduating from high-school. Amongst other things, he had some questions about choosing computing as a career option.

Some background is necessary. He is really good at high-school level Maths and Science and one of the options he is considering is a career in Engineering. He is not sure what branch of Engineering – Computing / EE / Mechanical / Chemical / Civil. He wanted to know what I think about it. He also had a few questions regarding Computing specifically:
a)    Every year there are new languages, packages and applications released. Do I need to really study and “keep-up” (his emphasis, not mine)
b)    Most people I know in computing work long hours. Do I need to work like 12-14 hrs a day and sacrifice my personal life.
c)    Lots of people I know graduate in history, philosophy etc and then move over to computing. Should I try that ?

First things first.
I am really honored that he sought out my advice on such an important decision. Needless to say, decisions like this are not to be taken lightly. I am going to attempt to answer the specific questions raised here and then give my reasons when I decided to go into computing.

Specific answers:
a)    Every year there are new languages, packages and applications released. Do I need to really study and “keep-up” (his emphasis, not mine)
ANSWER: That depends on how you look at it. Some, will try to use this as an example of constant innovation (which is good?) in computing. But I will try to reason differently.
My logic is more utilitarian than anything to do with innovation. Twenty years ago, if you are trying to create any distributed application in C/C++, you will have to write huge amount of scaffolding, not to mention you have to keep track of garbage clean-up, database connections, persistence etc. Modern languages do the “plumbing” and “scaffolding” for you so that you can focus on your business logic.
Also people realized that you cannot have one programming language do everything. Some languages are better suited to certain tasks than others. It can be a combination of abilities in the language itself or availability of libraries thereof. We don’t have one-way of doing things. We have perspectives, and we use appropriate tools (languages, databases and frameworks) to actualize those perspectives.

End of the day, you don’t learn everyday not because you have to or you will fall behind. You learn everyday because everyday brings in joy and wonder by collecting these pebbles on the sea-shore of knowledge.

b)    Most people I know in computing work long hours. Do I need to work like 12-14 hours a day and sacrifice my personal life.
ANSWER: I don’t think people work long hours in computing anymore. You can finish up your job quickly as long as you plan and schedule things. You have to be realistic about your assumptions and factor in external factors which affect you. The very idea that you can go straight 30 hrs and come-up with some whiz-bang thing at the end of it, is not scalable. There is a good chance that you might end-up hurting the project than helping it.

c)    Lots of people I know graduate in history, philosophy etc and then move over to computing. Should I try that ?
ANSWER: I am not sure how to answer this. I do know of people who graduated in something other than computing and moved in to computing for various reasons. As long as you do it for the love of the game, it’s good. If you are switching to computing because there are more jobs and money in this field than something else – well, as long as you can keep your sanity and don’t feel overwhelmed, I guess that’s good too. I have a hard time judging the reasoning for my own actions, let alone evaluating others.

My reasons for getting into computing:
I was always uncomfortable with the decision-making process of “some” people. I believe too much was left to individual discretion. There were instances when I believe I finished the task to completion, but some saw it differently. I had an issue with the way they applied discretion, and I wanted a single objective mechanism to do a certain task and be evaluated objectively with a Yes (Good) or No (Not Good) answer. I am intentionally trying to keep it simplistic to avoid going on a tangent. I do understand that most decisions cannot be evaluated in a Yes/no situation. I was a cocky weird kid and had a mind of my own about almost everything. If I followed the heard, I had my own qualms about my following without not knowing and consequences of my own actions.

And then sometime during college, I found this post on Phrack written by ++The Mentor++
This was an eye-opener of sorts. Especially this part:

I made a discovery today.  I found a computer.  Wait a second, this is cool.  It does what I want it to.  If it makes a mistake, it’s because I screwed it up.  Not because it doesn’t like me…
Or feels threatened by me…
Or thinks I’m a smart ass…
Or doesn’t like teaching and shouldn’t be here…
Damn kid.  All he does is play games.  They’re all alike.

And then it happened… a door opened to a world… rushing through the phone line like heroin through an addict’s veins, an electronic pulse is sent out, a refuge from the day-to-day incompetencies is sought… a board is found.
“This is it… this is where I belong…”
I know everyone here… even if I’ve never met them, never talked to them, may never hear from them again… I know you all…

Damn kid.  Tying up the phone line again.  They’re all alike…

I had dabbled in programming since I was in school. Did bunch of weird stuff. I didn’t know what I was getting into, but that paragraph resonated with me so much more than anything I had seen, heard or read till that point in my life.

I was out of control after that.
I read up ESR’s, howto’s, phrack and Alt2600’s and burnt all my pocket money doing this. I remember wget-ting Jakob Nielsen’s whole site on usability and going through it over night. (I am still not sure why I did that, but I loved his line of reasoning.) I really didn’t know if I learned anything tangible, like a language, or a program or a database, but the philosophy has stayed with me ever since. (Some people may call it tangible 🙂 )

I tried getting into a computer science course, and when I couldn’t, I took up Physics thinking that’s the easiest thing to graduate, and I thought yeah well, I can still do my computer stuff in spare time. (There were other reasons to take up physics, and one Mr. Richard Feynman’s biography by James Gleick played a far more important role in that decision.)

I studied all the things that I can lay my hands on.
Funny story. I had a BSD SystemV Manual but I didn’t have a Unix terminal or a computer to practice this on. During those days I would usually print out the man pages on a dot-matrix printer from the diploma school I was attending, and write my code by hand on the other side of the pages. That practice enforced a certain discipline. I had a 2 hr time to type, compile and test my code on a SCO Unix machine and I didn’t want to waste it by typing gibberish and wondering what’s going on. I miss that. I think I was better at programming during those days without IDE’s, Intellisense, debuggers and object reference guides. It was just – write by hand, inspect the logic, check the loops and then type and compile.
School level stuff, but I loved it.

My key argument in favor of computing:
The things what you can do with computers is limitless. Apart from the oft repeated that everything runs on computers, I have an example of my own.

We eat out often, and we pack a lot of stuff “to go” and keep it in the fridge. Two weeks later while cleaning the fridge I find this really sorry looking pie which I was supposed to eat – well 2 weeks ago. I would like to have a program or a device which alerts me when things are going to go bad in the fridge so that I can consume it in time and not throw it.

My friend had a use-case too. This program or device can be applied to keep track of all the expired pills in the medicine cabinet. What a great idea !!

So we have two use-cases, but no program or device that can accomplish that. This is my prime example of why we need innovation in computing. I am not sure if this feasible, or how I will do this. Should I take a picture of the fridge and do an object matching, based on shapes – that would mean keeping a large database of shapes of consumer objects. There might be some pattern recognition library and you can run it on Amazon products database to get your “shape” database.
OR, maybe you can have a tablet type device which stays in the fridge take bar-code scans (wont work for cooked food, do we have a tablet which can function in a fridge ? What about power-supply..)
OR, maybe you can look at the Arduino market place and look for similar offerings with a combination of searching for alternatives in your favorite search-engine.
Maybe someone thought of this in the refrigeration industry and beta-testing somewhere.

The possibilities are limitless and there is a huge scope for creating something which has not been there before. How cool is that ?

My most important reason:
The joy that you get by watching someone use something you created; and if they love it and give you feedback, what else do you want in life ?
I cannot design a bridge or a building and get instant feedback on how it’s doing. I cannot design or do stuff to chemicals without a large lab. Same goes for other engineering, tools are required, and I may not have them at my disposal when I want them.
But yeah, I can whip up a code and run it and get the results – all within 15 minutes, If I am good. (Emphasis on If I am good.) If I am not, the Truth Machine (or the debugger) tells me what’s wrong with it.

Why choosing a career that you love is important:
It takes a tremendous amount of energy to get out of bed, get ready, do the commute, and get to your desk. If you don’t love what you do, your mind will soon start rejecting your job and you will see the result in your own actions. You really need to find stuff that makes you tick, that makes you happy and for the lack of a better word – stuff that’s cool, and awesome, which makes work feel like play.

It’s not just a blackberry ad – Love what you do.

The other day I wrote a Powershell script and was watching calls being made from Powershell which were getting logged in the debugger.

Man, it was awesome !!
It was a crappy script, but it was my script.
Every time someone passed a wrong argument, I felt like telling them —DUDE !!! Let me help you.

I didn’t do programming after I graduated from college. I did a bunch of other stuff, and then went into System Administration.

I am starting fresh with Powershell and I feel all that excitement coming back.

The world is my Oyster.

PS: Thanks for reading :-). It’s rather long.

An ode to Richard Thaler (or, How to Make a book stand for 300 pg books)

After much grief to my back, I decided to finally buy a Book-Stand.
Did some research on Amazon and selected this by Best Book Stand & Holder.

But its 2:30 AM in the night, and I need something now so that I can finish this chapter.

Imagination to the rescue.

Scanned the room and saw this Amazon box. Pulled out a scissor and made this.

This box book-holder fits small books easily. Tested it with Richard Thaler’s Winner’s Curse.

I think the test-case was appropriate for the occasion. After doing a 15 min research on Amazon, you find the perfect book stand for $30 (+$10 shipping) which weighs 4 lbs.

5 mins later, you grow so impatient that you decide to make your own.

Can we have better Ads ?

We don’t have a cable connection; actually we don’t even have a TV either.

I used to get a lot of Triple-play offers from Verizon and Cablevision and I had a hard time explaining to them that I don’t need Triple-Play since I don’t have a TV. We made this decision a while ago and we have never regretted it. We get our fix from full-episodes available on the internet (J-Stew, Colbert, Parks &Rec, British TV shows). We have this daily ritual for dinner- we eat while watching the previous day’s episode of Stewart and Colbert. If we are not sleepy, we will catch some Father Ted or Black Books on a week day, or Midsomer Murders or George Gently on the weekend. We love this arrangement.

The Daily Show with John Stewart has this really annoying ad-rotation between segments. They play the same-ad (or a mix of 2 ads) over and over again between segment breaks. Then when you switch over to Colbert Report, you see the same ad repeating over and over again.

Hey Brian, can I have some WHheat Thins?
Can I have some WHheat Thins?
They’re Wheat Thins.
That’s what I said. WHheat Thins.
Wheat Thins.
Say Wheat.
Now say Wheat Thins.
WHheat Thins.
No, you can’t have any.
Have any what, have any WHheat THins?
WHheat Thins!
Can I be in your commercial?
It’s our thing, we’re doing it.

Even my love for Stewie cannot get past the annoying repetation.

I was wondering if we could improve this ad-viewing experience.

CONTEXT: Every year during Super Bowl, Doritos has this Crash the Super Bowl Contest where users vote-up Ads posted by people. The ad with most votes wins a million bucks. I believe the Next-4/5 ads with the most votes also get some prize. Doritos would air the top 5 ads during Super Bowl half-time.

VIDEO-PRODUCERS: We have a sizeable video content-producing market who upload on YouTube and other video sharing sites everyday. Can we have some Dorito style contests for Ads ?
The idea is to have a pool of ads, and have them rotate during segments. You keep the ads fresh, and the viewer doesn’t start hating the brand because the ad is boring them with repetition.

How does this Work ?
a) Brand X signs-up for an Ad-Exchange and starts a contest. They encourage video-producers to post 20 second clips like Crash the Super Bowl contest and offer cash-prizes for the Top5 or 10 Likes by End-Date. Video-producers produce and edit their videos to XX seconds and get them voted up. This can be linked / cross promoted through Social Media. The Top-X (10?) Ads get picked-up for rotation by the brand-manager and released for distribution to Ad-networks.

The video-producers get compensated $XY,000 if their ad is in top-10 rotation (Depends on the brand / budget etc.)
The Brand gets to pick many ads, instead of picking just one for distribution.

b) I understand that there is some kind of a deterministic nature of the video content of the ads (X Seconds, has to fit between the segments). I also understand that the TV / Media Networks may not allow real-time programming of their ad-segment, lest something blows up. Media Networks would want to bake the Ad + Colbert Report and then release it for distribution.

I think they can achieve this by passing on these restrictions to the Video-Producer and have a script verify these stats. (Accepting Ads for only 20 seconds.) You can do a standard editing of the TV program factoring in the 20 second slots between breaks.

Does this mean that you cannot have the diversity in Ads during breaks ? I think this can be controlled with upfront QC on the video-producers end. Also, this means more brands should enroll in the Ad-Exchange which will ultimately lead to ad-diversity.

Can you measure “jaded” ?
I believe that there must be some-way to track this through existing means (Neilsen NetRatings ?)
Or you catalog the common non-ad watching behaviors (Turn off Volume, Look-away, Get a Refill…) and try to minimize that in a controlled setting.

To summarize:
1) The brand-manager gets a diverse set of videos to choose from.
2) Video-producers get paid. They have an incentive to produce better videos. They are already doing this on Youtube for practically no fee anyway.
3) Ad-agencies may join in at a higher $$ number and still maintain their presence, as long as they are in the rotation.
4) Cost of producing Ads goes down.
5) Ad Consumers don’t get jaded from repetition.

If consumers are not irritated, maybe they wont hate the brand as much.

ASSUMPTIONS: I forgot to mention 2 important assumptions:

1) Everyone can make ads. You don’t have to work in an ad-agency to come up with something which consumers can relate to.
All you need is a good story about that brand.

2) We lived through decades of 360 degree branding. Maybe we can try something different in an era where consumers don’t want things “sold” to them or brands to be “in your face, everywhere.”

I really don’t know why the 360 degree branding had such a huge impact. Maybe everyone read the same books and thought that was the right thing to do. Maybe it was a good idea to sell during a pitch.

We don’t live in an era where you can achieve message cohesion. I am not sure if message cohesion is desirable either. Message cohesion looks scripted in a spontaneous world. Also ads with message cohesion may go the “banner blindness” way, where a user mentally ignores the ad-banner. I am not saying that there shouldn’t be any message cohesion, I am just saying that Advertisements may not be an appropriate place for it. I may be wrong, I am just speculating here.

I believe that with ad-rotation and ad-diversity, consumers can get a better user experience while watching TV. I don’t believe it’s a trivial objective. Two dudes from Stanford achieved world dominance in search through a few innovations in advertising: Text Ads and Advertising Marketplace.

This idea has legs.

How do you like a Song ?

The title might be misleading.

Let me give you the backstory.

My wife came home from college and said “Honey !! You’ve got to listen to this…” and started playing this track by this band called Fun: We are Young. ft. Janelle Monae

I muttered something stupid and got back to what I was doing.
Went back to work…the song is playing in my head.
While driving back stopped by at a gas station, it’s still playing.

Had dinner. Watched Colbert and J-Stew. It’s still there..

Fired up Google.

Here is my working set:
1) Can you measure the likability of a song ?

2) Can you measure replayability ? (Malcolm Gladwell in Blink, why Kenna’s music career never took-off because his songs were never picked-up by Radio stations and played over and over)
This has huge potential for music industry if you can figure out some way to measure “re-playability”.

3) In a WSJ Article Michaleen Douclef stated that, Adele employs a musical device called a “appoggiatura”.

An appoggiatura is a type of ornamental note that clashes with the melody just enough to create a dissonant sound. “This generates tension in the listener,” said Martin Guhn, a psychologist at the University of British Columbia who co-wrote a 2007 study on the subject. “When the notes return to the anticipated melody, the tension resolves, and it feels good.”

Are all likeable songs “appoggiatura” ? That’s too narrow a domain. Results might be misleading.

4) Can we split a song into X-variables like pitch, tone and do some analysis to find songs in a particular “zone” ?
(I honestly dont know what these potential variables are..)


5) Thinking like a System Admin:
Can we create a Bayesian Filter like Spam Bayes and train it to spot a good-song from a bad-song?
Lets not take songs in random.
Lets setup the test with Top200/500 in Billboard and evaluate “good mail” from “spam mail”.
We are trying to predict which songs in Top 100-500 range will break in to Top-50/100
If we are wrong, we train the filter.

Can we actually do a Bayesian Filter for mp3’s ?

Let’s see if we get somewhere…