I'm interviewing Microsoft V.P. Jeff Teper on May 5. Jeff is Mr. SharePoint at MS and has been heading up the development effort on it from the start.
If you have any suggested questions for the interview, please post them in a comment below. I won't use every suggestion but I generally do use a lot of them (not counting the snarky ones), at least in part.
Note: I've done a lot of interviews of elected officials, but this is my first one in the tech sphere. So with this I'll learn if I can do as well with these. This interview will go up on HuffingtonPost (and a couple of other locations).
Reality shows have taken us to see the real lives of housewives across the country. We've followed businesspeople in New York. We've seen doctors and police in action. But until now, we have never had the opportunity to see what really goes on at software companies.
Finally, thanks to the sponsorship of Windward Reports and the production team at Barats and Bereta, we can bring you the a typical day in the life of a software developer at work. Presenting The Real Nerds of Silicon Valley - Dirk & Brent.
We're a small software company with an incredibly boring product (reporting & document generation software). And we compete against Microsoft, Oracle, & SAP. Yet one week in 2006 – we had over 1 million unique visitors to our web site. And in this process we moved from no brand awareness to over 60% with our target audience.
How? By trying something different. Any company, no matter how small, can find a way to break through all the clutter out there and get noticed. There are a million ways to do it. This is one that worked. Here's the story.
Back in 2006 I saw a video on YouTube named Mother's Day that I thought was very clever. So I emailed Joe & Luke and asked if they would create one for us (for a fee). My only requirements was make it very funny to programmers, and mention our company. They came up with Cubicle Wars (part I).
When I first received it, I was really nervous. I had spent a lot (by our standards) and didn't know what I would get. So very nervous, I played it. And I was laughing so hard that I couldn't breathe. Ok step 1 was good – it was funny. Or at least I thought it was.
So we pushed it up to YouTube. And we crossed our fingers. It was a gigantic hit. It made the front page of Digg and YouTube. It made the opening paragraph of the MSDN newsletter (sent to every Windows developer). It was forwarded and referenced and copied everywhere. Ok step 2 was good – it went viral.
But that still left the question, did it help us. The old Joe Isuzu ads were hilarious, but they didn't sell any more cars. So what did we get? Well over the next couple of year we found:
Our name recognition went through the roof. When you're competing with the big guys, having prospective customers know you exist is gigantic.
People would stop at our booth at trade shows just to congratulate us on the video. (One professor told us he shows it the first day of each semester in his classes.)
Starting that week, and still going strong 3 years later, one of our top 5 sources of demo downloads almost every week come via YouTube.
Business Week did an article about the video. That article gave us the legit 3rd party cite we needed to have a Windward Reports Wikipedia page. This then got us on the Reporting Software Wikipedia page.
And for Joe & Luke, they won an Addy and NBC asked them to do a pilot based on Cubicle Wars. (NBC did not pick it up – but they should have.)
So earlier this year we asked Joe & Luke to do a sequel. Once again make it funny and mention Windward. And once again they came through. Every bit as funny as the first.
There's a lot more competition for attention today. A lot lot LOT more. We didn't get the front page of Digg (yet), but we did get the front page of FunnyOrDie. We weren't on the front page of YouTube 100% of the time, because nothing gets 100% today – but we were there at times. So we were not front and center everywhere as we were in 2006, but I don't think that is even possible anymore. We are in a lot more places this time, because there are a lot more sites today (there was no HuffPo back then).
Every day getting attention is harder. Every day all kinds of marketing is harder. The trick is to keep trying new things. And when repeating efforts that were previously successful, learn how to use them better. You also need to realize that it's impossible to predict what will resonate best with people, and in what way.
So how did it work out? Our biggest worry when we first did this was would a successful video lead to more sales. That turned out to be an easy yes. If you make developers laugh, it turns out quite a few will look at your product. Our biggest issue this second time has been getting it in front of people – we were spoiled by how easy it was the first time. I think this is just the state of the Internet today – even more sites, even more content, even more competition for attention. So we've had to work a lot hard to get equivilent attention.
This second time we also had Joe & Luke create a 30 second ad. The idea behind it was that people who saw the video would want more, and would then watch the ad (not labeled as an ad). So it would be a mention of Windward Reports followed by a clear sell of Windward Reports. And again, the requirement was the ad had to be funny.
These guys are geniuses. I think it is one of the best ads for any product I have seen. It sells the fundamental concept of our system, and does so in a way that has you laughing. So good in fact that we are putting the ad out on websites as a click ad. It is pulling people in by itself. The combination of the ad along with the video makes up for the more challenging marketing environment of today.
If you are trying to get word out about your product, and you are drowning in the sea of noise that is the Internet, look for a different way to break out. It could be a video (Joe & Luke are available). It could be a free computer game. It could be a free quirky iPhone app. But I think the key point to focus on is you have to create something that gets the widespread attention. You then want it to link back to what you are selling – but that can be a light touch. The key challenge is getting people's attention. Because if 1 million people watch your video, 1% looking at your product is 10,000 potential customers.
If you look at an http request header, one of the lines in it is Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]. This is telling the web server that the requester's first language preference is German (DE) and their fallback is English (EN). And if it's English, preferably the US dialect (EN-US). This info allows a website to automatically, if it supports the requested language, to present webpages in your preferred language – without the user having to do anything.
And with this language preference is handled automatically and invisibly to the user.
But when it comes to the timezone the user is in, no such luck. (For more on timezones please read What every developer should know about time).This is why you see news articles time stamped with the timezone of the server rather than your time. This is why many sites require that you select your timezone when registering. The list goes on…
I think it is way past time to add to the standard request header a line like: Time-Zone: MountainStandardTime[CRLF]. This would allow the web server to return pages with times set to the local time of the requesting browser. (The time zones can be abbreviated, but it must be done in a way to keep each unique as MST can be MountainStandardTime or MexicoStandardTime.)
Let's list out the objections to doing this, and answer them.
You can get the local time using GetDate() in a javascript call on the client page and returning the result. Yes you can (if the client has javascript enabled). But Arizona does not use daylight savings time so during standard time Arizona and MountainStandardTime are identical while during daylight savings time Arizona and PacificStandardTime are identical. There are other cases like this. So GetDate() does not provide a complete solution.
You can ask the user to set their timezone. Yes you can (and that is how most sites presently work). But news flash – people travel, and do so to different timezones. If you're like me, when you're on a trip, you leave your settings to your home timezone and do the conversion in your head. But isn't the purpose of software to make things easier for us rather than require that we adapt to the software?
We can't add a million new items to the http header. No we can't. But we can add a few that make sense. Bandwidth has increased substantially over the last 10 years. Adding even 10 new elements like this to the header would be immeasurably small in terms of bandwidth usage.
Now let's look at the advantages we gain from adding this functionality:
It will give sites that list time (news sites being the #1 case) the ability to list all times in your local time. Not just the time a news article was posted, but the times listed in the articles. When you are in Tokyo and want to watch the State of the Union address, you don't have to convert from EST – it's just listed in your local time in the article. This is in one respect a small thing. But I think it is important when we write code to always endeavor to make the software require as little as possible from the user and provide as much as possible. Implementing one little item like this is a small improvement. But implementing 100 little items like this, in sum, is significant. One of our jobs as developers is to find these small things and implement them.
Calendar programs, and not just our own but 3rd party ones like eVite, GoToMeeting, etc., will be able to present times in the user's timezone. Where this becomes extremely useful is when appointments are set for a trip to another timezone – you can have those appointments set for that timezone and when you arrive there, you will see them in the correct local time. Without this functionality handling this gets very screwy.
To give a very specific example, our Arrow product (enterprise reporting & docgen system) would find this very useful when scheduling reports and displaying when reports last ran. The system runs on a server, but most of our customers have employees world-wide using it. And multiple people, many times in different timezones, are hitting the same reports. This would allow each to set events and read when reports ran in their local time – without ever having to set their timezone.
So how about it? Microsoft, Firefox, Apple, Google, Opera – it would be a piece of cake to install. Every significant operating system has the user set their local timezone. Implementing this would be a piece of cake. And it would get used – a lot.
This is sort-of movies about nerds, but it's more what movies all nerds should watch. We were discussing this at lunch the other day and there was quite a bit of concensus over the first couple on the list.
Real Genius
The Princess Bride
Can't Buy me Love
The Matrix
Monty Python – any of them
Blade Runner
Star Trek
Rushmore
South Park
Superbad
Weird Science
Revenge of the Nerds (I disagree but everyone else insisted)
And here we have converting in the other direction (click here for Bitmap to BufferedImage), from a BufferedImage to the bitmap image (the byte array if you want to write the bitmap to a file).
Using the Java JAI IIO library to convert from a bitmap image (the byte array of a bitmap file) to a BufferedImage (click here for BufferedImage to Bitmap), do the following:
/** * Convert a bitmap to an Image object * * @param data The bitmap file. * @param format The format the data is in. * @return The Image of this data. * @throws IOException thrown if a problem reading the data or the format is wrong. */