Posts in category: 'Microsoft'

Microllsoft

People have been talking over the weekend about the failed Microsoft/Yahoo takeover talks. As a Yahoo shareholder and former employee I’m disappointed that it’s going to be quite some time before we get our money out of that stock (note to self: in the future, always sell ESPP shares the day you leave). I empathize with my many pals who work for both companies — however you feel about the takeover, it sucks having to go to work every day under a cloud of uncertainty.

But as someone who has also made his living on the Microsoft platform for years, I feel like I’m in a position to think about what Microsoft — the company that has been desperately casting about for a cogent internet strategy since 1995 — might do next.

When I was at the Web 2.0 Expo week before last, I was talking to a guy who asked me what I thought of the show. I told him I was disappointed — there were a lot of companies who were working on “me-too” social networking products, and a lot of old school companies that really had no business being there (Disney, Oracle). But I didn’t see anything really exciting or disruptive. I told the guy that I had yet to see the next company that was going to put 100,000 people out of work. What I meant was that I didn’t see anything industry-changing.

The ultimate type of business disruption — and the one that is ultimately the most difficult to achieve — is to disrupt yourself. I’ve said for a while that one of the reasons why Microsoft has failed to build a compelling network of web properties is because they are afraid of disrupting themselves. If you want to make a great leap, you can’t serve two masters — and in Microsoft’s case, they’re serving both the Windows master and the Office master. It’s pretty obvious that this is the case when you pay attention to Microsoft’s words and deeds — calling your maps product “Windows Live Local” probably isn’t the most egregious example, but to me it’s a clear sign that whoever named this thing isn’t really thinking about kicking ass, they’re worried about not upending the status quo.

Well, sorry guys. The web will continue to be about upending the status quo for some time to come. You can either play it safe and be upended, or be the one doing the upending. For companies like Microsoft and Yahoo!, there’s really no middle ground.

At the same time, many people in the past few years have said that the “nuclear winter” atmosphere for technology IPOs can’t last forever, that there should be some alternative for web startups short of an IPO. Some people have referred to this as the “rollup” — one well-heeled company that would go around developing products, or acquiring companies as needed, much in the way that Cisco used to do.

Microsoft should create a company to do this. A new company — an independent subsidiary — not beholden to anyone in Redmond. This company would have the mandate to acquire and create great web properties that people actually want to use and that will make money. No one inside Microsoft would have day-to-day control or authority over this company (aside from the sort of high-level oversight that you’d expect from a board of directors).

The new company would have to be based in Silicon Valley. It would have to reward its employees with equity that actually means something. The company must have the freedom to use the best technology to create the best solutions — and if that means Linux, or whatever, so be it. The new company should be permitted to do whatever it takes to attract talented workers from wherever it needs to — including poaching employees from Microsoft itself, if that made sense.

The new company would have an opportunity to throw off all kinds of bad habits, not only those practiced by Microsoft, but by large and small internet companies everywhere. Experiment with new ways of selling software online (not just licensing, and not necessarily advertising-driven). Put in the effort to make everything you do accessible from any mobile phone on the day it’s launched. Support stuff like OpenID and give users the freedom to add and move their data around freely. Dare to release a new product each month (as my team did when we were at Yahoo) and let the marketing and PR people catch up with you if they can. Reinvent web email in a way that makes Gmail look like a childish joke. Dare to sell products that will sell 1 million copies at $20 each instead of products that will sell 1,000 copies at $2,000 each. Provide standard APIs and interoperate with competitors’ products — not just as a way to kill them, but in a way that serves the ultimate interests of users.

Because that’s really what this is about — realizing that your customer is not the IT manager of a medium-sized midwestern insurance company, but the 120 employees of that company. Forgetting the user in favor of the IT manager (or your competitors) is why most users hate most enterprise software; I assert that it’s also why a lot of people have been frustrated by Microsoft today.

A big part of this would also be staffing the right people into the right roles. Microsoft’s geographical location (i.e., far away) and its historic resistance to hiring senior people from the outside (i.e., people with experience running large internet properties) act like a giant anti-talent force field; the new company would not have that problem. People would want to work for this company for the same reasons they wanted to work for Microsoft in the 80s and 90s — to get amazing things done and to have an impact.

My intuition has always been that Microsoft should have created this company ten years ago, and that they might have actually done so if they weren’t in the middle of some fairly profound legal problems. But Microsoft should not let its antitrust problems of the past prevent it from doing this. Just because the federal government tried to break up Microsoft in the past does not mean that spinning out an independent web subsidiary is a bad idea today.

Creating a new and independent web product organization could finally put Microsoft on the map with respect to the internet. It would take a few years, but it sure as heck wouldn’t cost them $45 billion.

Update: In an interview yesterday, Bill Gates said that Microsoft won’t be pursuing any new acquisitions to make up for not closing the Yahoo deal. He also said “now at this point, Microsoft is focused on its independent strategy.” Wait a minute: Microsoft has a strategy? When did this happen?

“Microsoft could keep XP if customers want it”

Link: Microsoft could keep XP if customers want it: CEO

Setting aside the absurdity of the headline (last time I checked pretty much every company is in business to sell customers stuff they actually want), this would seem to be the strongest indication yet that Vista is becoming an evolutionary dead end, and that Microsoft will take another crack at this with the release of Windows 7. I don’t feel, as Gartner analysts recently stated, that “Windows is Collapsing” — after all, the Roman Empire took hundreds of years to collapse after it became moribund. But it’s clear to me that the part of the Windows franchise known as Vista is already finished.

If Windows 7 appears in 2009, as Bill Gates suggested, the OS franchise might be preserved and Microsoft might be able to end-of-life XP. But does anybody really expect that Microsoft will be able to deliver a new version of the operating system within a year? Didn’t think so. Microsoft will have to extend support for XP until Windows 7 is in its first service pack, probably in 2010 or later. (The operating system should be stable enough to plug into a space probe in time to send Roy Scheider to Jupiter.)

Back when Vista was first released, I was talking to a guy who worked in corporate strategy for one of the companies I’d done some work for. He said that they were projecting that 2009 would be the year when Vista would reach its tipping point, when more than 50% of IT managers would be either evaluating or deploying it. I told him that it would be 2009 before most IT managers would even start evaluating Vista. And now it seems that even that estimate was conservative — if Windows 7 goes into beta next year and it sucks even a little bit less than Vista, IT evaluations of Vista will be a waste of time and most corporate IT managers will just skip it.

Our home/office LAN, which at one point boasted as many as six Windows desktop and server machines, is now down to one dedicated Windows machine. (This machine runs Windows XP and will never not run Windows XP.) These days, that machine is used almost exclusively for gaming and media storage. Our laptops are all Macs now, and I’ve switched to an iMac (the best desktop machine I’ve ever owned) as my daily work machine in the home office. When I need to use Windows, it’s Windows Server 2003 running in a virtual machine on the Mac. I’m sure that our situation isn’t typical, but as a guy who built his career on Microsoft technology and is now spending the majority of his time on Linux and the Mac, it’s safe to say that I’m a bellwether at least.

Death to Developer Contests

Over on his blog Microsoft’s Dan Fernandez courageously decries the frequent use of developer contests to engage developers and increase momentum for platform adoption. He counted up the number of contests Microsoft is running at the moment: it’s 18. Eighteen different ways to win cash and prizes for doing stuff with various Microsoft products.

Dan thinks this is over the top and I totally agree. When I ran the evangelism team at eBay I resisted the urge to do developer contests for the reasons Dan points out, and when I ran the Yahoo program we didn’t do any; we were more concerned with giving back to the entire community by devoting our very limited time and resources to making new products happen for developers.

Contests are like steroids for platforms. They may pump you up in the short term, but they don’t actually grow the ecosystem. Contests don’t kick off interesting and useful conversations about your platform because they put your developers in competition with each other. More importantly, contests detract resources and focus from where they’re needed.

Throughout the history of American business, the worth of marketers has been measured by the size of the marketing budget (as opposed to the results they might bring to the business). But in a world in which no platform in history has ever provided good enough documentation or code examples for its developers, there’s no excuse to do a single contest.

Creating Facebook Apps Using ASP.NET at VSLive San Francisco

The VSLive conference is an excellent place to become familiar with the latest and greatest technologies for Microsoft platform development. I started speaking at VSLive in 1996 which makes it one of the oldest things I do on a regular basis besides eating/breathing/excreting. VSLive takes place in San Francisco March 30 through April 3.

I am extra excited this year because for the first time in a long time they’ve given me three talks to do, but more importantly, the talks are all on subjects that are fairly out there at least by this conference’s standards (the old management used to be extremely conservative about what you could and couldn’t give talks about). The conference has definitely found an independent editorial voice under its new management and as a result, the talks that I was sure would get laughed off the playground are actually getting accepted.

The Facebook talk was the most challenging to put together and promises to be the most fun. Facebook’s platform is a new, evolving and fairly unusual paradigm for application development — it has some of the elements of traditional web development with a few curve balls that make it feel almost like embedded systems development at times. And since Facebook’s support for PHP is sorta-okay and their support for other languages is not-terrific, things can go from bad to worse for .NET developers who want to create Facebook apps. (It’s surprising that Microsoft doesn’t do much to fill the gap here since they own 11% of Facebook now, but that shouldn’t stop an ambitious hacker from making good software, right?)

You may not want to go to the trouble of learning PHP just to create a Facebook app (although I’m actually doing just that), so I’ve put together some recipes that make it easier to navigate the landscape of Facebook application development in .NET, so that’ll be the focus of my first VSLive talk.

Bonus: If you haven’t registered yet, the good folks at the conference also gave me a promotion code that you can use to save $695 off a Gold Passport for the conference. Use the code SPMCM when you register to get the discount.

Nonsensical NY Times Story on MSFT/YHOO Integration

To hear the New York Times’ John Markoff and Matt Richtel describe it in their largely fact-free story on the technical integration that Yahoo! and Microsoft will need to do if the merger goes through, you’d think that a Yahoo-Microsoft integration will amount to a cleaning of the Aegean stables.

The writers did take the time to interview someone who did a Unix-to-Microsoft port of a web site after it was purchased by Microsoft, but that port was done eight years ago. And this wasn’t Microsoft’s 1998 Hotmail acquisition (which some people consider to be the gold standard for Microsoft cocking up an acquisition of a *nix-based web property).

So the question is, from a technical integration perspective, could things have possibly changed in the past eight to ten years?

Well, of course they have. The one guy with direct knowledge that Markoff and Richtel interviewed (who now works for O’Reilly and should really know better) was probably migrating from Solaris to some version of Windows NT. One could imagine that LAMP as we know it today was not in the picture. And there are a broad spectrum of software engineering best practices that were not in place back then which go unmentioned in the article.

So ultimately, the piece leaves out several key facts that almost completely scuttle their thesis:

  1. Microsoft has worked with Zend to make PHP run well on Windows Server. In my February 1 post on the merger, I theorized that Microsoft did the Zend deal specifically to make it easier for them to digest companies (like Yahoo!) that extensively utilize PHP. The Markoff/Richtel piece does not mention the Microsoft/Zend deal at all. It does mention that PHP’s inventor works for Yahoo, but it’s a fact that Zend contributes far more to the language today and this has been the case for many years. At any rate, a reader of the Markoff piece could come away with the impression that PHP doesn’t run on windows at all, which is totally bogus.
  2. The hellacious Unix-to-Windows migrations of the late 1990s often hinged on the ability to get Oracle running on Windows, which was a big challenge then and remains a challenge today. But Yahoo uses very little Oracle in its customer-facing properties; the big database in use there is MySQL, which runs quite well on Windows today. I wouldn’t guess that Microsoft would migrate MySQL-on-FreeBSD to MySQL-on-Windows, but they could do it as an intermediate step if they wanted to get a merged Yahoo! running on Windows. But there is no mention of databases at all in the Markoff piece.
  3. FreeBSD, while prevalent at Yahoo!, is not actually the operating system that most companies in Silicon Valley (or anywhere) use. I’ve heard more than one Yahoo! engineer state that the company’s choice of that operating system is a hindrance for a number of reasons. Migrating to Anything But FreeBSD (whether it’s Linux, Windows Server, or Solaris) will have several key benefits — not the least of which being the fact that very few recent college grads are learning FreeBSD today. Another implication for this is that when Yahoo! acquires a company, they acquire that company’s operating system choice as well (all the company’s recent acquisitions, including Flickr, run on Linux, not FreeBSD).
  4. Both Yahoo! and Microsoft have made extensive investments in XML web services, both inside and outside the firewall, which should ease technical integration somewhat. You may recall that XML web services were considered cutting-edge and exotic in 1999. There is no mention of web services in the Markoff piece.
  5. The Windows Server that Microsoft sells today is not the piece o’ crap that Windows NT circa 1999 was. Period. The fact that Microsoft’s server technologies no longer suck is key, but it’s not mentioned in the Markoff piece.
  6. Probably the most ill-informed assertion is that Yahoo! is totally open source or that Microsoft is totally proprietary — or that either of these things would matter on a technical integration level even if they were completely true. But let’s imagine for a moment that someone needed to hack at the kernel of Windows Server to perform some Yahoo!/Microsoft integration task (which seems far-fetched, but let’s just imagine). Are we really to think that getting access to that code would be a deal-killing problem?

Make Windows Server’s Licencing Virtualizable

I’ve been doing a lot of work lately on behalf of clients who are looking to deploy applications to virtual data centers. When I first started working as a technology consultant in the ’90s, it was a given that if you wanted to have a web application, you had to buy a bunch of servers and rent out a cabinet in a data center somewhere. Now the notion of spending all that money on hardware that will go obsolete in a few years seems like insanity most of the time (particularly when the size of the audience for your application is completely unknown). When I first started a hosted web service in 1999 people judged us by how many servers my company owned. Now when I tell them “we don’t own any servers at all” they nod knowingly.

It’s great that we have more cost-efficient virtualization options today than we had ten years ago. Unfortunately, though, virtualization is a disruptive technology, which means that there are incumbents (including hardware and software vendors) who are digging in rather than adapting their technology and business models to the new realities of the marketplace. If the economy of 2008 dictates that IT managers put more emphasis on cost-containment as they did in the recession of the early 1990s, the pressure to do more with virtualization will only increase.

Microsoft in particular is far behind the curve on virtualization — maybe not with respect to its own virtualization products, but with respect to its one-CPU/one-license business model for its software products and operating systems. Rather than seeing virtualization as an opportunity to charge a lucrative toll for dialtone computing, Microsoft’s first response was to make their license terms more restrictive (by preventing users from deploying Windows Vista to desktop virtual machines unless they pay for the bloated, expensive version). I know that they’ve relaxed this restriction for Vista in the last year, but that doesn’t matter to me since Vista will not likely touch any computer I own for at least a year or two, if ever. (When I do my own development work today or do .NET demos at VSLive, I run Windows Server 2003 in a virtual machine under Parallels on my Mac.)

But the desktop is neither here nor there. I’m more concerned about the way that Microsoft is missing the boat with respect to server licensing. They are getting their butts kicked by LAMP, particularly here in Silicon Valley, but also internationally, and their poor virtualization story is a big reason for this.

We’re currently working on an out-of-band innovation project for one of the world’s largest companies. The company went with us specifically they wanted an outsider’s perspective on what they wanted to do — but also because they didn’t want to deal with a bunch of bureaucracy and institutional hurdles to shipping the application.

We could have written the application in .NET (which I am a world-renowned expert with) or in PHP (which I am just now coming up to speed on). Paying for Windows Server licenses would not have been an issue for this client. So given that, you’d think that that free operating system would be at a huge disadvantage (particularly since the developer who’s going to write this application is operating outside of his area of expertise).

But we came to the conclusion that it would be more efficacious to write and deploy the application using Ubuntu and LAMP mainly because the story with Windows virtualization is so totally ridiculous. After looking around, it does not appear that there is a product out there that supports Windows Server on a virtualized basis in a manner similar to Amazon EC2 (giving us the ability to spin up many instances of a cloned server configuration quickly) or Slicehost (which also provides virtual hosting based on several different Linux operating system configurations at low cost — less than EC2, actually — and can spin up a new server instance within a minute or two).

None of these hosting options really work with Windows because of Windows’ licensing model.

What would Windows support for an EC2-style virtualization product look like? Microsoft would provide a preconfigured machine image of Windows Server for use on EC2. Users would be able to spin up one or more instances of the server in less than a minute (no waiting for 40 minutes for the operating system to copy its files onto the virtual machine and no running Windows Update five times with a reboot each time). Just providing something like that would be a huge benefit in and of itself.

But — and this is the important part — you’d be able to pay for your operating system license by the minute instead of by the CPU. If you do the math on this (a $400 license for the web server edition of the Windows Server OS, divided by 8,760 hours in a year, factoring in the expected period of amortization for an operating system product which is three to five years), it should be possible for Microsoft to offer a bare-bones utility computing edition of Windows Server through Amazon EC2 for no more than one or two cents an hour. If users wanted other stuff (like a version of SQL Server that doesn’t artificially throttle the amount of memory you can utilize), you could pay another few cents per hour. (Or you could just run MySQL which works quite well on Windows.)

I should reiterate that this is not a matter of “your operating system costs money” versus “their operating system costs nothing”. Businesses are always willing to pay more when the value is there. This is really a matter of who is more of a pain in the ass to do business with. Or not do business with, as the case may be.

Update: Read/Write Web suggested that Microsoft is at work on their own utility computing initiative, called Red Dog. I have high hopes, but my expectation is that it will be similar to Microsoft’s other online offerings — 80% of the feature set that people need combined with enough franchise-protecting restrictions that it won’t be a serious threat to EC2. It would be much easier to buy in to the whole thing if Microsoft just found a way to virtualize their software licensing and left the hosting to others.

More Thoughts on YHOO/MSFT

  1. Zend and Microsoft have done a lot of work in the last year to make PHP run well on Windows. I never understood why Microsoft devoted resources to that, but now it is clear: it’s going to make technical integration between the two organizations go much more smoothly.
  2. This will hopefully be the death knell of the awful “Windows Live” branding for consumer web stuff.
  3. Maybe now somebody will release a .NET OpenID 2.0 library that actually works.
  4. Big losers here from a tech supplier perspective: FreeBSD and MySQL.
  5. Another potential big loser is Adobe; having a gigantic global audience will help with adoption of Microsoft’s various Adobe-killing initiatives like Silverlight, which would never otherwise have penetrated the consumer web without a large built-in audience like Yahoo’s.

Yahoo’s Last Chapter

My wife (who, like me, used to work for Yahoo!) rolled her eyes this morning when I told her about the Microsoft offer. We used to excitedly hear rumors of this kind of thing every three to six months but they were only rumors. Now it’s the real deal, and I have to say, I’m excited (and not just because of the 48% bump in YHOO this morning on the news).

I think this is a good thing for both companies. It will be a good thing for most of the people within Yahoo! who are left after the two businesses combine, although one would be naive to think that a lot of people aren’t going to lose their jobs because of this. But we knew that there was going to be a big restructuring anyway; my sense is that the Microsoft-led post-acquisition restructuring may cut deeper but may wind up with a better, more focused organization in the long term. My guess is that the Jerry Yang restructuring was going to nip and tuck at underperforming sales and marketing people; I assume that the Steve Ballmer reorganization will take aim at underperforming managers, too.

I think there are things in each companies’ DNA that the other company lacks. Microsoft was always skittish about having a meaningful physical presence in Silicon Valley and they are utterly clueless about how to do consumer Internet; that could end here with the stroke of a pen. For its part, Yahoo always paid lip service to transforming itself into a platform but could never devote the resources to making it happen.

Anytime the Microsoft rumor started up around Yahoo!, you’d hear embittered griping by people (mostly engineers who had been with the company for more than a few years) who’d say they’d never in a million years go to work for the evil Microsoft. They now have the chance to put their money where their mouth is, but I suspect that the people who haven’t left already will stick around for a while. It’s really not worth quitting your job because someone is trying to separate you from your beloved FreeBSD.

Update: Over breakfast we were wondering whether another prospective suitor might step in to bid against Microsoft. Google probably wouldn’t for a couple reasons, not the least of which being that they may have just sunk $4.6 billion into wireless spectrum. On his blog, Fred Wilson theorizes maybe News Corp. but probably not, and since there’s a credit crunch on, he doesn’t see anyone else stepping up.

Microsoft Shared Source Licenses Approved by OSI

Two of Microsoft’s open licenses, the Microsoft Reciprocal License and the Microsoft Public License, have been certified by the OSI. This is a big deal because only with an OSI certification can you call your license an "open source" license.

This won’t be enough to satisfy the purists (since, to them, anything with Microsoft’s name on it is suspect) but it should be enough to get the utilitarians (like me) excited.

Database Queries with Windows Powershell

I haven’t done a serious learning project for a while so this week I decided to play around with Windows Server 2008 and PowerShell. I’ll post some thoughts about Server 2008 soon (at first glance it looks terrific once you get past the fact that IIS is now a "role" instead of something you install). But I wanted to post a PowerShell example first because I wanted to do something with it that I couldn’t find information about anywhere — specifically, perform a database query and dump the contents to the console. (Later we’ll get fancy and dump it to HTML or send it somewhere via email, etc.)

PowerShell can invoke any .NET object, so I knew it was possible to do database stuff with a PowerShell script, but I couldn’t find any examples anywhere, so here’s what I cooked up via trial and error.

The first step is to create a database connection:


[system.reflection.assembly]::LoadWithPartialName("MySql.Data")
$cn = New-Object -TypeName MySql.Data.MySqlClient.MySqlConnection

The syntax to load a .NET assembly in PowerShell is pretty awkward; couldn’t they have provided a Get-Assembly cmdlet? (I suspect that thousands of PowerShell users have already written that one already.) Also, you have to know the assembly name of your ADO.NET provider (which, for MySql, is "MySql.Data," not "MySql.Data.MySqlClient," which was my first guess). The thing to remember is that loading an assembly is syntactically different than including a namespace even though the objective is sort of the same.

Fortunately this is the only part of the process that I didn’t get right the first time, and I had it resolved after a few minutes of experimentation.

I should mention that I’m using the MySql data provider because we use MySql on Approver.com, but you can obviously use any ADO.NET provider you want here. This assumes that your ADO.NET provider is installed in the GAC; if you need to make an explicit reference to an assembly in the file system the syntax is different.

Next, open the database connection:

$cn.ConnectionString = "SERVER=localhost;DATABASE=mydb;UID=xxx;PWD=yyy"
$cn.Open()

If you want, you can check the value of $cn.State here to make sure it worked. Then execute the query:

$cm = New-Object -TypeName MySql.Data.MySqlClient.MySqlCommand
$sql = "SELECT ID, FirstName, LastName FROM Person LIMIT 50"
$cm.Connection = $cn
$cm.CommandText = $sql
$dr = $cm.ExecuteReader()

ADO.NET programmers know that there are lots of ways to do this that require fewer lines of code, but I like to assign everything out explicitly using properties of the ADO.NET Connection and Command objects.

Finally we iterate over the results and close the connection:

while ($dr.Read())
{
    write-host $dr.GetInt32(0) " " $dr.GetString(1) " " $dr.GetString(2)
}
$cn.Close()

This is not too different than what a C# developer is accustomed to, particularly reading out the data. I like that you can just pass a big list of values to write-host without having to explicitly concatenate or convert to strings here. PowerShell figures out what you want to do and does the right thing.

On Approver.com we have a bunch of utilities that we use to monitor system health and site activity (like how many people registered that day, whether people are discovering and using certain features of the site, etc.). Every web site should crunch these numbers frequently (otherwise you have no idea whether the work you’re doing matters to your users).

I think I’m going to eventually migrate our various statistical and maintenance utilities to Powershell. The power of the .NET framework combined with the convenience of script is going to come in handy for a lot of stuff.

Data-Driven ASP.NET Ajax

This week I presented two talks at VSLive in New York. I love speaking at this conference because of its technical focus and because I’ve done it so long — eleven years — there are always a bunch of people I run into at this conference that I only see when I’m there.

I’ve posted here several times about how I’d been trying to get the conference to let me talk about interesting yet sorta-non-mainstream topics such as unit testing (which I pitched to them unsuccessfully back in 2000) and open source (which I succeeded in doing in 2006 with the first talk on MySQL for .NET developers). In the past few years the conference has been much more open to talks on the kind of tools and technologies that are important to me (as well as many other developers for whom Microsoft’s out-of-the-box offerings are not always sufficient).

So my "Data-Driven ASP.NET Ajax" talk is an attempt to take the ASP.NET demonstrations and tutorials that Microsoft provides and tailor them to more real-world scenarios. Here I’m trying to show how a dynamic web application can display data from a database, but also how you can use ASP.NET Ajax to efficiently display large (million-row-plus) data sets, do database transactions, perform server-side data validation without a full page refresh, and so forth. This is a new talk, and I really worked hard on it. I gave it for the first time on Monday afternoon and there were about 120 people in the audience, which was gratifying.

Because I like promoting alternatives to the Microsoft defaults, and because I wanted to be able to give away the source code for my demos and the data without forcing people to go through a big configuration step to get it running on SQL Server, I used System.Data.SQLite as my database. System.Data.SQLite is the .NET implementation of the terrific free embedded database SQLite. Because it’s free (as in public domain) and small, I can distribute the database engine itself along with my demos, which means you don’t have to download or configure a thing to run the demo web site. Just open the project in Visual Studio or drop it into an IIS virtual directory and open index.aspx in your browser.

Here’s the download. It’s about 9 MB because I included the million-row SQLite database I included in my demo, and it also includes the System.Data.SQLite dependency. This version of the site also fixes a problem that I encountered while doing one of the demos (I changed a reference to the master page right before I gave the talk which caused one of the demo pages to barf).

Microsoft: Giving You The Services You Wanted 3 to 10 Years Ago, 3 To 10 Years From Now

Link: Microsoft Offers a Web-Based Strategy

"’We’re not moving toward a world of thin computing,’ said Steven A. Ballmer, Microsoft’s chief executive, referring to systems in which simple processing takes place on a PC, but more complex processing is moved to a centralized computer through a network connection. ‘We’re moving toward a world of software plus services.’

Nearly every Microsoft software application will be transformed with the addition of a Web-services component within 3 to 10 years, he said.

He rejected the notion that in the future all software would be based in what computer industry executives refer to as ‘the cloud’ — computer hardware and software reachable over the Internet. ‘People tend to get weird and extreme about this,’ Mr. Ballmer said. ‘Does everything move to the cloud? I think that is wrong-minded.’"

Microsoft looks to improve its name game

Link: Microsoft looks to improve its name game

"The group also put several dozen posters around campus with a box of Band-Aids and the caption: ‘You wouldn’t call it Wound Healer 2.0.’

The company has a rich history of products with names that are excessively wordy. Arguably one of the most convoluted monikers announced by Redmond (though thankfully later shortened) was its appellation for the mainstream 64-bit version of Windows XP: Windows XP 64-Bit Edition for 64-Bit Extended Systems.

Its woes in product naming and packaging are legendary both within and outside the company. A popular video has made the rounds on YouTube outlining what Microsoft might have done if it had been tasked with designing the iPod’s box. Instead of the minimalist carton that Apple came up with, the video ends up with a text laden container for the ‘iPod Pro 2005 XP Human Ear Professional Edition with Subscription.’
It later emerged that the video was done by people inside Microsoft."

Funny piece, but the underlying problem is very serious and certainly not limited to Microsoft.

It’s important to remember that a "product" is a totally subjective construct. Products are principally comprised of two things: feature functionality and information about that feature functionality. If you don’t have both of these, then you don’t really have a product.

If you aren’t good at describing what your products are, then you’re missing out on what may be the one and only opportunity to convey its value to a customer. This is what I was talking about back in December 2005 when Microsoft released something called Windows Live Local and my first reaction was "I will never remember the name of this product, and therefore I am very unlikely to use it." (I’ve been hearing murmurs that they’re getting ready to rebrand the whole "Live" line which should be interesting. We’ll know they’re serious if the word "Windows" gets dropped from the brand.)

When I was at Yahoo, I felt it was important to cast the Developer Network organization as a product organization because Yahoo hadn’t really done a lot with developer products before then. I think we were pretty successful in that regard — when I was running that team, we released about one new developer product each month and we spent very little time having to explain our products to confused customers.

One common thing I see in my consultancy today is companies that don’t treat developer products as real products. As a result, their products commonly don’t get good names, their benefits aren’t articulated very well, and in many cases they aren’t even officially announced to customers at all — they just sort of slide out the door with the implicit understanding that the smart dorks will figure out what to do with them. With this attitude, it’s no wonder that techies hate marketers.

A Better VBA Than VBA

I am a self-taught programmer; I got my start in college creating an Excel-based system for balancing the books of an administrative office at UCSB, where I was an undergrad at the time. It was very unusual for undergrads to work in administrative jobs on campus, but having major spreadsheet mojo at a time when spreadsheets were becoming the greatest thing since sliced bread is what opened the door for me.

The programming language that made all this possible came to be known as Visual Basic for Applications, an embedded version of VB that lived in most Office apps (as well as some third-party apps).

A few years back Microsoft began nudging developers to use .NET for Microsoft Office programmability. When I was at eBay, my team participated in the launch of Office 2003 and Visual Studio Tools for Office, which was basically a big interoperability library to let you program Office from .NET. At the launch event, Bill Gates demonstrated an Office app that used our API, which was impressive and exciting even if nobody would use Word and Excel to list stuff for sale on eBay in real life.

I’m a .NET fan, but I have to say that it doesn’t seem to be such a terrific fit with Office — it added quite a bit of complexity and in many ways reduced, rather than enhanced, the things you can do with Office application programming. I’m not even sure where the whole Office/.NET programability initiative has gone today. I wonder if Microsoft should revisit it, to start from scratch. I definitely find myself missing writing nice little VBA macros to automate my work in Excel and Word. (My last big VBA project was the Excel/Yahoo Maps integration I did back in 2005 and which people still occasionally email me about.)

I also wonder whether the very interesting work that’s being done on the dynamic language runtime might have something to offer here.

I could envision how IronPython (or even C# utilizing the dynamic runtime) could become a better VBA than VBA. One of the big historical criticisms of Office/VBA applications is that they’re brittle — difficult to maintain and upgrade and prone to breaking if the user doesn’t have a configuration that is just right. But I was never clear on how .NET solved those problems. Maybe some dynamic language extensions that are specific to the mission of automating applications like Word or Excel would add some value here?

I’d love to build an integration between Microsoft Office and Approver.com, but frankly at this point I have no idea where to get started. Do I need to pay Microsoft for a copy of Visual Studio Tools for Office? Will Office 2010 break my application somehow? What happens if I need a solution that will work on the Mac?

Yahoo-Microsoft

We woke this morning to an radio news report that Microsoft and Yahoo are in merger talks. This kind of thing popped up several times during the time I was there. I recall that in 2006 the hot rumor was that Yahoo and eBay would get together, which would have been interesting for me. The Microsoft rumor has come up a few times in the last few years, too, but this time they sound more serious.

As always there is a lot of armchair quarterbacking about what a combination would look like which is humorous because we don’t have any information about what a combined Microsoft/Yahoo would look like at this stage.

Erick Schonfeld of Business 2.0 posts comments that are typical. He says "any move would smack of desperation" but I think that assigns an emotional quality that doesn’t (or shouldn’t) exist in deals like this, casting Yahoo as the homely prom date and Microsoft as the nerdy (and wealthy) boy next door who can’t get a date no matter how much money he spends on the limousine.

The truth is that Wall Street looks for synergies in any kind of merger/acquisition and there are plenty here. Yes, there are cultural differences between the two companies, but my sense is that they’re not unmanageable, and a healthy cultural cross-pollination could be just what the doctor ordered for both companies. From an engineering/developer standpoint, there’s a
lot to love — Microsoft engages in tons of projects that Yahoo wouldn’t touch today. If Microsoft can attract an engineer like Jim Hugunin to their side, they can certainly find something to keep Yahoo’s senior engineers interested.

Rob Conery Wants Your Questions about Microsoft and Open Source

Rob heads up an open source product called Subsonic; he’s been invited to speak on a panel at Microsoft’s MIX ‘07 and he’s asking folks to pass questions along pertaining to Microsoft development and open source that might be useful to discuss on the panel.

It was most excellent to see that Miguel de Icaza will also be speaking on the panel (even though, regrettably I won’t be at MIX this year so I won’t get to attend this panel). In years past Microsoft banned all discussion of Mono from the allegedly community-driven portions of its Professional Developer Conferences, so it’s neat to see that Miguel will finally be given a soap box now that his employer and Microsoft have achieved a rapproachment.

Update: Video of the session is now online here.

Patent Fights Are a Legacy of MP3’s Tangled Origins

Link: Patent Fights Are a Legacy of MP3’s Tangled Origins

Microsoft says it was doing the right thing: paying a German rights holder $16 million to license the MP3 audio format, the foundation of the digital music boom. Then an American jury ruled that Microsoft had failed to pay another MP3 patent holder, and slapped it with a $1.52 billion judgment.
But the MP3 toll gates do not end there.

The confusion stems from the number of companies and institutions — including Thomson, Royal Philips Electronics and AT&T (through Bell Labs, now part of Alcatel-Lucent) — that worked to create the MP3 standard almost two decades ago. The patent claims of those and others are increasingly being backed up by aggressive enforcement efforts, including lawsuits and even seizures of music players by customs authorities.

This situation is a mess but the story completely biffs it by failing to mention that there’s a free alternative to MP3. The fact that only twelve people use it is beside the point — It’s as if the reporter did a story on a mass-suicide without asking why all the nice people killed themselves.

The situation with MP3 patents is a very interesting counterpoint to the way that Microsoft has attempted to taint open-source over the years. In the past Microsoft argued (speciously) that there was huge risk for businesses that permitted to let open source anything come within 100 miles of their code base. Now we find that the real threat is not open source but software patents, and, ironically, the biggest victim may be Microsoft itself.

Live Search for Windows Mobile

Dan Wahlin linked to Live Search for Windows Mobile, a client application that improves the experience for local search. Its big selling point is the fact that it incorporates maps, which is huge.

I like being able to download stuff directly on my phone instead of having to use the loathsome ActiveSync (which I gave up on completely once I started storing most of my vital information on the web anyway). This took less than a minute to install and it looks pretty cool.

Microsoft hurt by poor Live branding, analysts say

Link: Microsoft hurt by poor Live branding, analysts say

"Microsoft’s Live branding has been tremendously confusing and has hurt the company, and it is very likely contributing to the situation they are in right now," said David Smith, an analyst at Gartner. "They’ve created another brand and have not differentiated it."

I made the call on this back in December 2005, when I was still at Yahoo! and people were sure that Microsoft’s entry into the ad-driven hosted services space was going to matter. (Remember those days? Good times.)

Windows Live Local is Kind of Junky

Maps_local_comparison
Here’s my first impression of Windows Live Local:

1. Dumb naming/branding. "Windows Live Local" doesn’t even parse for me, and they URL they chose (http://local.live.com) is a little thick-headed, too. I will never remember it. At one point, Microsoft was supposed to be about "information at your fingertips," so as a user, what I need here is less clever family branding and more mnemonics.
2. It doesn’t look better or have more features than either ours or Google’s comparable product. In particular I found myself missing the minimap that you get with the new Y! maps.
3. It was easy for me to fall into a usability dead end that forced me to have to re-load the page. This is the AJAX equivalent of the blue screen of death, as far as I’m concerned, since it lost all my data.
4. (Most importantly) The actual local search I did returned fewer results (far fewer, in some cases) from Microsoft than from Y! local maps search.

We eagerly await the release of version 3.0.

Next Page »