Corporate Email Users, Email Compliance and Google’s Desktop Search

Now that Google’s product has been out a few days, people are starting to write about it. One concern that is coming up is that of security, which you can read about in many articles such as this one.

One topic not yet mentioned is that for corporate users, Google’s product may also have severe legal implications. Its one thing to keep cached copies of webpages. But, keeping cached copies of email, which can contain important proprietary information, is another story. And as it turns out, if you delete email in Outlook, Google’s product still keeps its stealthy little hands on its own copy anyway. This means that users that may *think* they deleted that email when they actually did not. Unfortunately, I think this is a clear sign that Google still “doesn’t get it” when it comes to enterprise users and their search needs.

In 2004, many companies are spending huge dollars on making sure that their company is in compliance with new information responsibility laws. Companies are more responsible than ever for making sure that information about their customers is protected and not leaked. If your employees install Google’s software, and receive a transient email containing confidential information, Google caches it in the background, and won’t let you delete it without going back and manually looking for it. Most users won’t have any idea this is happening, let alone know what to do about it. And once that information is cached in a hidden place, its could accidentally slip into the wrong hands.

Likewise, if you archive your email in Exchange, or have corporate retention policies to delete emails that are older than 90 or 180 days, Google pays no attention. It happily caches your private information with no regard for your information lifecycle.

Lastly, there is the complaint that many users have already pointed out, which is that once the information cached, anyone logging into the machine as another user can now also see the cached copies of that email. So, no more lending your machine to your office mate while you are out to lunch.

If I were in charge of an IT department, I would be very concerned about employees installing Google’s product. Its a lot of legal risk.

Lookout Review in CNET

Another Desktop Search Review came out this week, and this one is from CNET.

Lookout didn’t fare as well in this review, where it ranked 3rd in a field of 5 (6 if you count Google, but they didn’t really review Google.

The reviewer was reviewing “products that index your hard drive”, and cited a few Lookout weaknesses, including lack of searching outside of outlook, not having the files/attachments indexed by default, and not having a file preview pane (fair enough). I think given that Lookout is clearly focused more at email indexing, this is not too surprising.

The reviewer never contacted Microsoft or Lookoutsoft for comment.

But its interesting to see the individual reviewer’s own bias in these tests. (Of course, I’m probably just bummed because Lookout wasn’t first!)

For example, the reviewer’s test had a corpus of “129 emails”. How can anyone review an email search tool with a corpus of only 129 emails? Do you have only 129 emails in your mailbox? The last time I saw a mailbox that small was the morning I started at Microsoft. Before the end of the day, my mailbox was larger than that!! So for this reviewer, he was searching for files. OK. Thats his slant.

Another interesting thing is that he didn’t even mention how well you can manipulate results once you’ve opened them. This indicates to me that he doesn’t really use a search product himself. We can all do the cursory glance at a product, and see which features “look nice”, but when you actually use it on a day-to-day basis, which one is most useful? This author didn’t mention the fact that you can’t drag-and-drop items from search result lists, or that you can’t delete/move/copy/reply/reply-all/etc from several of these products.

Anyway, I think the review was pretty fair for who searches filesystem stuff best. I hope to see a review sometime soon where the reviewer really gets a realistic view of how email fits into a worker’s daily life. Its easy to superficially “search my hard drive”. But, I don’t think thats nearly as big of a problem as “where is that email that Bob sent me with the accounting figures?” I’d love to see someone rank these products based on the latter.

Google Desktop Search Review

News just in- Google has released its long awaited Desktop Search product today. I’ve been very eager to see this product, so its exciting that its finally here!!

Here are a few notes for Lookout fans.

What’s Cool about it:

Features
Indexes your files (including word, excel, powerpoint, and text), your browser history, email (outlook or outlook express), chat logs (AOL).

Integrated with Web User Interface
The interface to Google’s Desktop Search is exactly the same as their existing interface at http://www.google.com. Further, search results from your desktop look identical to those on the web, and are integrated into your existing web queries. Much the same way that Google “news results” show at the top of the search result list, desktop search results also now show at the top of the list. (See screenshot)

Lightweight
Once again, Google did a great job creating a small and lightweight product. The download is less than 500KB, installed its about 1.5MB. Once installed, the indexer runs in the background, and is not noticible. The installation is quick and easy – almost no effort at all.

What’s Not Cool about it:

Web Integration
The web-integrated user interface falls short for me for email searching. For example, say you are an Outlook user, and you want to do a search. First, you need to switch from Outlook over to the web browser. Search results are displayed only 10 results at a time (like a web page), and can only be sorted by date or by relevance (can’t sort by sender, recipient, subject, type, etc). When you do find what you are looking for, you can open it, which shows you the mail item rendered in the browser as HTML. To really use the item, you now have to click again.

Also somewhat limiting is that search results are not very actionable. Once you’ve viewed the item in HTML, you can reply, reply all, forward, or view it in Outlook. You cannot move the item, copy it, or delete it.

One interesting good feature is the “View entire thread” action which surfaces when a message is part of a larger thread. Clicking this view, allows you to see a summary of all other messages with the same subject. Its a very primitive threading UI today, but hopefully they will expand on this in the future.

Summary: email users are left with disappointing navigation through search results, and a ‘two click’ requirement to get to an email.

Advanced Search is AWOL
Unfortunately, the product has no advanced searching capabilities. What if you want to search for “emails from Bob”, “subjects containing ‘deadline'”, or for messages with attachments? Wildcard searching is also not available.

Summary: Its surprising that Google, the King of Searching, missed out on this capability.

Can’t search contacts or calendar
Unfortunately, while they did integrate email searching, you still can’t search for calendar or contact entries in your mailbox.

How does it differ from Lookout?

Google and Lookout take a fundamentally different approach to how we find content.

Google’s belief is that the Web is the killer app. All users will start with Web Searching, and then they use their strength in that area to show a little bit of Desktop search. For this reason, the Google user interface is the same interface as their web interface. If you believe the web search interface is the right one for your email, then Google’s product is great. As you do your web searching, you’ll now have your searches augmented with desktop results as well.

Lookout’s belief is that Email is the killer app, and that email searching and web searching have fundamental differences. As such, Lookout integrates tightly into Outlook for easy access (just click on the toolbar inside outlook), allows email-specific searches (like searching for senders, recipients, etc), allows users to act on search results in email-centric ways (such as reply, forward, move, delete, print, etc), and allows users to sort results in email-centric ways (sort by sender, recipient, subject, folder, etc)

Summary

Good entry-level product for Google. Great web-integration. I believe this product will change the way users use the web, and I look forward to seeing future products! I’m disappointed that it didn’t do more to really search your desktop. Its too web centric.

The biggest strength for Google is that it is so lightweight. Because it seems to run without interfering at all, users will not mind running it in conjunction with other products. Even if Google doesn’t yet offer all the features that a user needs, users may be perfectly satisfied to run two products – leveraging Google’s web integration strengths and also strengths from competing products.

Spyware Popularity

I was visiting the alexa site today and looking at the top-10 most popular sites on the web. Its mostly about what you’d expect. You will find:

Looks pretty much as expected, but who the heck is OfferOptimizer?

Well, turns out they are the recipients of some of traffic from some of the most commonly found spyware. They collect information off your machine and use it for their own sinister purposes.

I guess they must be happy – 8th most commonly accessed website on the net. Sigh. How sad!

Strings in C++ in 2004.

I wonder how many people are dealing with Strings today. How many programmers are stuck because they have one library using a std::string, another using an ATL::CString, and a third using a MFC::CString? Or maybe you are trying to interface to a BSTR? how about a LPWSTR? or even a plain old char *? Maybe you’ve got your own whiz-bang String class that’s even better….

As software designers in C++, we’ve just unequivocally and totally failed. C++ was heralded as the object oriented language to bring us interoperability and code reuse. Say what? How can we even fantasize about being interoperable when we can’t even agree on how to format a string?

I think Java and C# have two major advantages. One is garbage collection, and the second is a standard definition of strings.

How is it that here in 2004, we can’t figure out how to put an array of characters together in a way that works in all languages, and is interoperable with other programs? This is absolutely ridiculous.

Of course this is all well known and has been for years. As a struggling programmer sent back to the dark ages of C++ after having been spoiled by managed code, it just gets me particularly grumpy.

Congrats Google

OK – well its been about a month now since I made my prediction about Google…

My bet was that Google would not sustain a $100 price within a week of the IPO. On the technicality, I guess I was right – the auction went for $85. But, overall, I confess I was wrong. Its stayed above $100 since the opening bell, and now hovers at $113. Congrats to them!

Some of the traditional investment “experts” are still criticizing Google for having “flubbed” their IPO. While you may think I’d agree with them based on my previous blog on the subject, I absolutely do not.

What I do agree with is that they made the process too intimidating and scared off investors.

But I do not conclude that they did the wrong thing or flubbed. They absolutely did the right thing.

The Forbes article claims that “Google left money on the table” (as opposed to had they not used a dutch auction), and therefore they flubbed the whole IPO. But the real question is “who didn’t get their money”? If Google had used a traditional IPO, they would have received a fixed, negotiated price from their underwriter – which they would have been locked just a few hours before the IPO. As I mentioned before, Netscape negotiated $24 per share on their IPO. However, the shares immediately turned around for about $70 on the open market. Did they leave money on the table? Oh yeah – about 2/3rds of the money!

Had Google trusted the traditional investors, the same thing likely would have happened. Google may have seen as little $50 or $60 per share (far less than what they did retain for the shareholders), and the opening bell price would have been the same.

So, who didn’t get their money? The “traditionalists” didn’t. And they feel upset about it. Its just a case of sour grapes.

Google’s upcoming IPO

Here is just a random prediction I wanted to put out about Google’s upcoming IPO. I’m probably wrong; but I wanted to put this in ink before the IPO happens…

First of all, I really admire the guys at Google for doing their IPO differently. There is absolutely no reason to let the bankers and underwriters walk away with more money from the IPO than the company itself. When I worked at Netscape, I watched the Netscape collect $24 per share for IPO stock which the business guys then sold on the market for $70+ per share on that very same day. That means that for every $24 that went to Netscape, $46 or more went to the bankers, who never built any product or any value. What a shame for both Netscape the company and the investors in Netscape. Congrats to Google for having the power, foresight and courage to do it differently.

But, I’m a little worried for our friends at Google too. I’m not planning to purchase any of their stock myself (much too risky for me!), but I did check out their IPO site when you could still get a bidder ID. (You can no longer get a bidder ID now) What I saw was pretty daunting. The site was like most prospectuses – it outlined all the hazards, risks, and things which could go wrong. But on top of that, you had to click “accept” though about 4 pages of legalese and terms which were just really long. As an individual investor, I got scared halfway through the process and dropped out of my plan for getting a bidder ID altogether.

Now, consider how traditional IPOs go. If you want to invest, you call your broker, and say “I want to invest in Google”. He says okay, takes your request, and does everything else for you. Its so easy. If you were going to “invest on a whim”, he’s completely happy to take your money and help you do just that. All the legalese was signed and taken care of when you opened your brokerage account years ago; so there is no daunting process.

But Google really puts that process in your face. I think it will scare investors away. I’m not an expert in the field, so I don’t know how many people will be scared away. Will institutional investors be scared? Or just private investors? I don’t know. But I do understand supply vs demand, and the process simply can’t increase demand for their stock. Keep in mind, SEC regulations make it illegal to “pump up” your stock. So, disclosing all the bad stuff is the right thing to do. Arguably, your broker makes it too easy to gloss over the warnings in the more traditional IPOs.

On top of all the process just to get in on this IPO, the IPO is also closed to non-US persons. This further decreases demand for the stock. I don’t know how much, but it can’t be good.

Finally, there are all the recent publicity problems for Google – they forgot to register a bunch of shares they had issued, they accidentally spoke to the press during their quiet period, and they think its worth $100+ per share at the opening, which seems pretty high to a lot of people. Wow – thats a lot of bad stuff!

So, my prediction – I don’t think the stock will maintain a $100 price within 1 week of the IPO. The real question is “how low will the sellers go”. I do not think there will be very much demand to buy at that price, but sellers may be unwilling to sell immediately for less. So, I’m expecting lower-than-expected volumes of trading, and gradual decline of the price; settling around $60 per share in 3 months.

Well, I hope everything goes really well for them; but I won’t feel bad for them in any case. The fact is they built a great product, and they will have success. At some level, whats the difference between a $10, $20, or $30 billion IPO? The investors will whine about the difference, but to the employees that built Google, its a great success no matter what, and they should be proud.

Keep in mind that I have no idea what I’m talking about, and I am basically making all this up.

Can small businesses afford the .NET size?

This is a followup to my entry on May 06 about Managed code and C#. This may sound like I’ve bought into the Microsoft story; but its really based on my experience as an independent software developer. Decide for yourself though…

The question is – as a small business, can you afford the hit of .NET to develop your applications if some of your customers may not be able to install .NET? Will the 23MB download of .NET be so big that it limits your distribution and prevents your product from being a success?

The answer is pretty complicated. Is your target user a personal computer user? Or a corporate user? Do you expect the IT department to install the product or will the user install it directly? You should think about these options before you decide what to do. Unfortunately, as with many technologies, using .NET is almost an all-or-nothing choice.

As for me, I’m a wholehearted believer in C#/.NET at this point, and I think most companies should elect to use .NET, despite the download. Here is why.

First of all, .NET ubiquity is growing. Microsoft claims that they already have over 80million copies of the .NET framework installed. From the Lookout stats, its hard to tell what percentage of users already had .NET installed, but I think its about 35%. How many users didn’t install Lookout due to .NET is almost impossible to calculate. But I do know that by bundling .NET installation into your install (which Lookout optionally does for users that don’t already have it), a lot of users are able to install easily. These users are probably broadband users, however.

The good news is that the .NET framework is being bundled with many new Windows installations today. The availability of .NET is only going to increase.

Here are some reasons you should use .NET.

1. Most developers agree they are more productive in .NET.
Developing in C# last year was eye-opening to me. The fact that two guys could build something as complicated as Lookout in a short period of time is just amazing to me. We’re not geniuses, we’re certainly not rocket scientists, but we were able to do it. A lot of it is thanks to .NET. There is no way we could have built an equivalent set of features in C++ in a similar amount of time.

I do think that Java offers many of the same benefits as C# from a pure development perspective. But the Java Runtime is even less distributed than the .NET framework. So, if you are looking to build in a managed framework where you won’t have to bundle and distribute the 20MB framework, C# is a better bet. For server-side applications, you probably don’t care about the distribution of the framework.

2. .NET is more reliable.
In the case of Lookout, we were building an application that had to exist inside of Outlook. Outlook is known to be one of the more treacherous programming environments out there. MAPI in particular (ask your developer friends) is a bit obtuse, and easy to screw up. Managed code, however, runs within a protected boundary. Because its completely interpreted, the native->managed wrappers put a big blanket around the .NET code. If your .NET code crashes or goes awry, its very easy to catch that crash so that it doesn’t percolate into the Outlook application itself. Its difficult to accidentally corrupt the main application’s memory space. Lookout has received praise for its reliability (although it has its share of bugs too), and a big part of this, I believe, is the fact that as managed code, it can’t screw up its hosted application. Consider if it were C++, however. If you have one bad pointer bug, you’ll take down all of Outlook! Thats a huge liability, responsibility, and just downright scary.

3. .NET is more performant than C++ code.
This may sound most controversial to many people. However, I believe it to be true. As a managed language, you may think, “how can it possibly be faster?” Well, you are right at one level. If your application is just a number-crunching app that wants to drive the CPU as fast as it can, you can probably write a more optimal algorithm in C++. But how many apps have that property? I’d argue almost none- except for pure research or scientific applications.

The performance of most real-world applications these days hinge on a combination of disk IO patterns, network IO patterns, and CPU patterns. This is a complex formula, and is generally difficult to optimize. Talk to any performance expert out there, and they’ll tell you that the way to optimize is to design your app, build it, and then profile, profile, and profile again. Use profiling to figure out where your hot-spots are, and then redesign those portions. This is where C# and .NET crush C++. The fact is that C++ is so complicated to maneuver in that refactoring based on profiling is a very difficult and time consuming process. Most companies simply cannot afford to spend much time here. Developers can discover the major bottlenecks, but except in extreme cases, they do not have the time or resources to redesign them. Instead, they will employ a set of “quick hacks” to work around the bottlenecks. These quick hacks become legacy problems for the codebase, and don’t fix the underlying problem. Over the course of a year, after a few patch releases, the C++ code remains largely stagnant due to cost considerations.

C#, however, can be refactored with much more ease. As problems arise, developers can much more easily rearchitect around performance bottlenecks. That profiling data does not go wasted – there is actually time to redesign large portions of the application without destabilizing the whole thing. Because of this, the 2nd and 3rd generations of a C# project will significantly outperform their C++ counterparts, and also be higher quality.

Case in point (and I am certainly biased here) is the Lookout MAPI indexer. I have tried a lot of the competitors’ products, and I believe the Lookout MAPI indexer is 2-5 times faster than any of the competitor’s indexers. The competition is written in C++. How is this so? We redesigned the indexing algorithm about 3 times based on experience and profiling. The C++ guys can’t keep up.

Conclusion:
Well, if its really faster, has fewer bugs, and takes fewer resources to build, you know my conclusion. Some folks may still want to have their applications target some of the old legacy machines out there (windows 98, etc), and if you really need that, C++ may be for you (although .NET does allegedly run on Win98 too). And, you can’t ignore that .NET does require more RAM; so it may not run as well on the older machines. Anyway, I just hope that Microsoft bundles .NET into a service pack sometime soon so that this whole distribution question can start to go away.