A Belated Birthday Gift!

For my birthday (way back in November), Crissy’s parents gave me a very large and generous gift certificate to Barnes and Noble. And finally, after neglecting it for a few months, I used it and bought myself a very belated birthday gift:

  • Lord of the Rings Box Set (Extended Editions) – The extended versions of this trilogy was been on my “want” list for a long time and when Barnes and Noble emailed me a 15% any item coupon, it seemed like a no brainer to get it. Of course, I now feel the need to seriously upgrade my tv and sound system in order to fully enjoy the movies. :-)
  • Gandhi (Anniversary Edition) – I learned about this edition’s recent release from a “products you may be interested in” email from B&N. Since it had a really good sale price (woohoo!) and I remember the movie being excellent, I ordered myself a copy. And it’s another data point to support those “products you may like” emails.
  • Sir Thomas More’s Utopia – I’ve read lots of discussion, never the original work, about More’s fictional island society where everything is uniform through the country’s many cities; whether it’s religion, customs, or education. The island has no concept of wealth, and everything is distributed equally with all property being communally owned.
  • Plato’s Republic – “What is justice, and why should we be just, especially when the wicked seem happier and more successful?” are the central questions to this classic. This work is considered one of the greatest works ever produced for it’s profound impact on Western thought. If you ever watched me debate (NFL Lincoln Douglas) in high school, you would know that this is one of my favorite topics to discuss. Senior year, all my cases used “justice” as a core value, regardless if I assigned to be for or against the resolution. :-)
  • Aesop’s Fables – a lot fables have similarities across cultures and religions, so I’m looking forward to comparing the stories of Aesop’s Fables with the stories in my copy of the Panchantantra.
  • Machiavelli’s The Prince and Other Writings – this is another work that I’ve read lots about, but haven’t really taken the time to read thoroughly. I generally disagree with Machiavelli’s assertions about human nature and the “ends justify the means” political philosophy, so I’m excited to learn about more it.

The books that I bought are part of Barnes and Noble’s Classic Series. They are a nice package with the original work and lots of supporting material (biographies, discussions, and comments by other authors). Plus they have good binding, most have a hard cover, and they all have a low price.

The downside to this purchase is that it significantly increases my “to read” list. And, since the books I borrow from the library generally get read first (they need to be returned in 3 weeks after all), who knows when I’ll get around to reading these. :-)

Web analytics are fun

One good thing about running my own website (instead of using a free blog site) is that I can use any statistics analysis tool I want. So, aside from the interesting things like where the people reading my blog are (apparently, I have regular readers from Petaling Jaya and Kadıköy), I can see other traffic patterns.

Some are obvious, like when I stop posting, people stop visiting. That seems to be make sense. :-) Others are a little more subtle. When I updated my blog title, the search engine crawlers came by to recrawl all of my pages since they all showed updates. From that data I could see which engines crawled my site when, and who did the most thorough job.

And just recently, when I upgraded to WordPress 2.1, the source for my pages changed, the crawlers needed to return for new pass. Of course, this is a pretty unscientific study (since I have all of two data points), so I won’t tell you which engines were the fastest to come by and update their index. But, the results didn’t surprise me. :-)

Speaking of which, what’s up with Ask.com? Ask is all over my WinFS related blogging, but is unwilling to crawl my blog, even though they crawl a bunch of sites one hop away from this one.

Stupid Jeeves.

And while we’re on the topic of ego surfing, I was looking into how the “Suggestion” feature in search engines work. Take a look at the fourth thing that Yahoo suggests when you search for my “vijay bangaru”:

I’m so amused. :-)

Another downside with travelling

Like I said yesterday, I spent most of last week in the Bay Area on business. And I discovered a another potential downside with travelling: I have a backlog of TV to watch on my Tivo (really, I have a Windows Media Center PC, but no one outside of Microsoft knows what that is, so I call it a Tivo).

Even though it’s really just 5 or 6 hours of missed TV, it feels like a lot more and it gets to be more of a chore than a pleasure. I really don’t want to sit and watch all of it. While I don’t want be confused by next week’s shows, it’s not worth wasting the time sitting on the couch watching it.

So I discovered a great way to deal with the problem: watch the shows as fast as possible. So if the show is Prison Break, I just skip over the subplots that bore me. Or if it’s Beauty and the Greek, you can just skip over all the unnecessary pauses used to heighten the dramatic effect and repetitive parts. I already fast forwarded a little bit. But a few nights ago, I did it really aggressively and must have covered almost 5 hours of TV in about an hour. And I think I got the same value (which says something about the quality of those shows).

I’ll probably do this as much as possible from now. :-)

The Hybrid

So I’m getting planning on getting a new car. I know I’ve been saying this for a while, but this time I’m a lot more serious and motivated. My car (a 1992 Honda Accord) is still going strong and would probably run fine for 5 or 6 more years, but I worry how I would fare in a collision with a newer car or truck.

Last time I said I’d get a new car, I couldn’t decide between a sedan or compact SUV. This time around, I need to decide between a hybrid and a regular car. I’m not too concerned about the price premium with the hybrid, the technology’s goal (of reducing oil consumption) is one I support, but my current car is going strong after nearly 16 years on the road with negligible repairs. I’d like to get close to that value with my new car. :-)

So I test drove the Civic Hybrid and to be honest it didn’t drive all that much differently then a regular car. I did notice one thing that really bothered me though. When the gas engine would turn off when I came to a stop or when it started again, the car would lurch slightly.

The salesman told me that once you learned how to drive the hybrid the right way, the lurch wouldn’t happen. But it did remind me that the gas engine turns on and off a lot and that makes me very uneasy about how long the car would last without needing major repairs.

I’ll probably go test-drive the Prius, to see if it is similar. But I don’t want a Prius. I’d rather have a car that doesn’t scream, “Hey look at me, I have a hybrid.” I suspect that there are some Prius drivers who really want everyone to know how much they “care about the environment”. :-)

Balancing business functions

With most of my work experience in an R&D (research and development) environment, I noticed that we’re always told that our number one priority is to build a great product with the best features and high quality. After a while, it’s easy to feel that this goal is the number one priority for not just our job function, but for the entire company. However that’s not the case.

The company is around to make money for its owners (i.e. shareholders); obviously building a great product is an important part of it, but it is just a part. I’ve talked to many engineers that started their own business and failed. A common thread is that they were able to build a really cool product, but couldn’t make money on it. That is, they could not find revenue (i.e. customers).

It seems obvious, but in this context someone has to sell the cool technology, otherwise it’s mostly useless. I have a friend that creates really cool software and tools, but does very little in the way of marketing or selling and, in my opinion, sees a tiny fraction of the money he could be making.

Now, the trend I see is more and more technology start-ups created with the goal of not making money, but with the goal of being acquired by a company like Microsoft or Google. They figure, let someone else figure out how to monetize this. This way they play to their own core competency of product development.

All this really means is that marketing and sales are really important to business. I know that every engineer hates to hear this, but really they are just as important as us engineers (if not more). A technology company just won’t survive without all of these functions.

I had been thinking through this idea for a bit, and some recent reading and work helped me crystallize it a bit more.

I’ve been lucky to be doing some focused product strategy work recently. While I can’t talk about the specifics, I was happy to do some more business analysis and learned a lot in the process. I found that it would be possible for the company to target a certain market segment and with relatively small investment in marketing and have amazing market share gain a quick time period. How’s that for a blatantly generic and optimistic prediction? :-)

It seems straight-forward from there, but I had to look at the overall opportunity cost. The resources (time, money, and people) needed to achieve the short term goals are, of course, non-zero, but the ROI (return on investment) seemed to justify going ahead.

But that level of analysis was still limited in scope. When you look at other products in the company, would the same resources on another project result in higher ROI? In this case, due to economies of scale and some barriers to entry, it turned out that putting those resources on another project would be more profitable for the company.

Turns out that this really is no different than the work I would do in the scope of a single product. You look at possible individual features and enhancements and rank them by the calculated worth (ROI, etc.) and execute on the top ones.

This recent strategy work made me realize that I was doing the same thing but instead of working with individual features as my variables, I abstracted it up to the product level and then even higher to the business function level.

Now, if we look at this practically, I can now explain a lot of decisions that technology companies have made historically that made all the R&D staff and technical analysts confused. It seems pretty obvious, but keep in mind that some of these people are the ones that always say, “If it’s cool, we should just build it.”

If a company has a product that is hands-down the industry leader and clearly differentiated and you wanted to grow market share, what would you do? Of course it varies by the situation, but given resource constraints a very valid solution would be to cut R&D in favor of sales/marketing. It sounds really weird (especially coming from an engineer), but think of it as a queen sacrifice. :-)

Parallel and Distributed Programming Using C++

I recently read through bits and pieces of Parallel and Distributed Programming Using C++ because I wanted to brush up on some parallel computing concepts. Given how important this topic is now, I was surprised to find very few books written on this topic.

In software, we’re finding that our free lunch is pretty much over. As long as processors (and the rest of the system) got faster and faster, we didn’t have to do anything to make our software faster, rather just go along for the ride. In fact, it’s pretty common in any software shop to hear, “Sure it’s slow now, but when it ships in 2 years it will be fine, because machines will be a lot faster.”

But now raw processor speed (clock speeds, instruction throughput) is not increasing as much, we’re instead getting more than one processor per chip (multi-threading, multi-core). In order to actually use this, we need to design our programs very differently.

On the hyper-threaded or multi-core processors , I see great performance gains when running two CPU-intensive apps. But when the CPUs are doing tasks that were assumed (but not required) to be serial, I actually see some significant performance loss in some cases in parallel, resulting in some bad cache thrashing.

The challenge is that probably around 5 to 10% of programmers understand and can write good concurrent code. As an industry, we’re going to have to put a lot of effort into training developers and the development of libraries and platforms to abstract a lot of the difficulty away.

Given that background, I was disappointed by the textbook. While it was great for introductions to lots of important topics, I didn’t feel that the depth was sufficient. Aside from the physical book form factor, you could easily get the same information if you Google for it.

I didn’t pay for it (yay for libraries!) and I like to read physical books rather than stare at a screen, so I found the book enjoyable, if not directly applicable to anything I actually do. :-)

Google, News Corp, and MySpace

Those folks at News Corp sure are smart. In addition to using MySpace as a marketing tool, they announced today a partnership that will make them hoards of money. Google will provide all the text, display, and search advertising and pay News Corp $900 million from the AdSense revenue. To put this in perspective, remember News Corp bought MySpace for only $580 million.

All the search boxes on MySpace will go to Google, instead of using Yahoo. But this doesn’t seem to be that big; according to Peter Chernin (President and COO of News Corp), most people leaving MySpace pages go to Google anyway.

Chenin also added some well deserved boasting: “Whoever said it remains to be seen whether we can monetize [MySpace], hopefully it’s a little clearer this week.”

Laser Resizing

When I picked up my now-fitting wedding band on Friday, I learned what “laser resizing” means. Basically to resize the band, they cut a wedge out of it (like a piece of bundt cake) and then push the ring back together.

The “laser” part is because they use a laser to cut the ring. It’s cool; but not as cool as I thought. I was hoping for something involving sharks with lasers on their head.

Upgraded!

WordPress recently came out with a new version (2.0.4). Since I had been using 2.0.3 and this was a security release, I needed to upgrade. I used to work in a servicing team, where we made patches for Visual Studio and the .NET Framework, so I was curious to see how hard the WordPress upgrade would be.

Since I moved to hosting my own blog, I no longer have people doing all the upgrades seamlessly for me. The old spaces blog got a new look and I didn’t have to do a thing. I don’t like the new look and feel, but that’s a topic for another day. (Speaking of which, I still need to finish tweaking this website.)
Anyway, the wordpress upgrade was a piece of cake: (1) backup your files and database, (2) do a flat file copy over the existing files, (3) open the upgrade page (starts the upgrade script). All nice and easy – no worries about side by side shared files, clobbering, admin deployment, or any of those horrible things Jason and I used to worry about.

What is WMP10 doing?

I put Windows Media Player 10 on my new computer to manage my slowly growing music library. Overall, I like all features and stuff, but I’m really curious what it’s doing that needs to take over 50% of both of my CPU’s cores and 250 MB of RAM.

Yes, I see the irony in this comment, since I worked on WinFS. :-) Fortunately, I know enough folks that work on WMP that I can probably get some good advice.