Online Missteps and Leadership Tunnel-Vision

July 25, 2008

While some may consider my last few Microsoft posts as overtly negative, or even as Microsoft-bashing.  That’s not really my intent.  As a disclaimer, the same goes for this post: also not intended as a Microsoft-bash.  Microsoft is a very powerful software company that produces a bunch of very popular products, providing real value and utility to lots of people. Microsoft products generally offer reasonably high quality, and more importantly: people vote with their wallets and continue to purchase Microsoft products.  When you look at the biggest players in most any industry, blemishes are easy to see because: more people are exposed to them, and statistically there are more blemishes, just as there are more beauty-ishes.

Side Note: If you maintain the same level of quality but produce twice as many products, you’ll have about… twice the number of bugs – which people will see.  But more accurately, each software application is no more buggy than before, it’s just a matter of perception.  Being a successful and established company cuts both ways, good and bad.  In fairness, argument goes past perception.  Some may even argue that the biggest players in most any industry will become complacent, where bureaucracy and rules overshadow what’s really important.  As part of this argument, its natural to ask if the company’s quality is diminishing because it’s investing more into FUD, and reacting to perceived market pressures -  but that’s a post for another day.

I became a user of Microsoft products in the Apply II / IBM PC era.  In 1978, shortly after the Apple II came out I ventured off to computer camp at the local university.  That university’s lab only stocked Apple II computers, so I started writing software exclusively on the Apple II.   Over the next few years, I migrated to the IBM PC as more friends got PCs.  Since my parents didn’t see much value in buying a “game machine” (e.g. Personal Computers could play games, games are bad, thus…. PCs are bad).  So, my hobby software development was when and where I could get it.  I’d go to friends homes and… when they started watching TV, I’d fire up their computer.   Sometimes I’d write on an Apple II, II Plus, IIe, but more often friends had an IBM PC.  And as I wrote more hobby programs, I started bringing around a floppy disk (e.g. the USB key of 1980) so I could continue development on different computers.  Ultimately, all I was working on was PC because my PC programs didn’t run on Apples, and thus an Apple II didn’t do me any good.

Back then IBM was number one, and Microsoft was just an upstart competitor trying to get some traction in the world.  Since they were the embodiment of lean and hungry, Bill Gates and crew (but mostly Bill) focused and drove product offerings while cutting deals and making connections.  The small band of Microsofties commonly criticized the ineptness of the large monolithic empire, as known as IBM.  Yes IBM was dominating, but complacent.  its leaders couldn’t see the value of PC software, much less value of an a PC Operating System (e.g. DOS).  IBM was merely continuing focus on what made them successful: business class hardware.  IBM embodied the mindset: “Who buys software?  Hardware’s where the money is!”

But before there was Microsoft, two students were attending Harvard: Bill Gates and Steve Ballmer.  It was then that Bill and Steve forged a long lasting friendship, albeit somewhat improbable: Steve the large brash Jock with some book smarts, and Bill the wiry dedicated geek not willing to back down.  Bill ended up leaving school to found Microsoft, and pulled Steve onboard after his graduation.

The rest we can say is history.  Microsoft continued to successfully identity, develop and market products that people were willing and needing to purchase.  And, just as importantly, Microsoft got an early toe-hold into the world of PC software while forging crafty and enduring business relationship with important partners.  It was the relationships with other large companies that brought Microsoft their early, and often enduring windfalls.  These partnerships were the essence, the very foundation, of Microsoft’s success.  These partnerships were crucial because people didn’t just magic software onto their computers at home – because that’s impossible ;-)

No, consumers walked down to brick and mortar stores where they were able to choose from a very limited selection of products preselected by that store’s manager.  Or by that store’s area manager. Or, perhaps, that store’s company leadership.  Yep, those early alliances that Microsoft forged with large partners are what put Microsoft where it is today.  Since I didn’t own a computer, I’d settle for using what was available at a friend’s home.  Since the IBM PC came with the BASIC programming language, I was able to write programs wherever there was a PC.  (Shrewd move by Microsoft)

Now, here we are three decades later.  Microsoft is now the dominate producer of PC software, and exactly where Bill aimed during the past 30+ years.  Bigger and bigger, always moving forward.  Always looking for new angles, new enhancements, and new markets for PC software.   But in all fairness, they may have never gotten here if IBM hadn’t lacked the foresight, the vision, to see the PC software market for what it really was, for what is would become.  Maybe that’s a poor choice of words “lacked the foresight”, because IBM was simply doing what large successful companies do: Focus on your offering, pursue incremental improvements, consider complimentary new tangents.  At most, an industry leader expends a small fraction of available thought and energy into new areas.  And, this effort is usually directed in a very controlled fashion:  Invent things that complement existing offerings, things that don’t go too much against the grain.

Back in 1996 the Google momentum got started.  While attending Stanford, Larry Page starts a research project to better understand this newfangled thing: the Internet.  A friend of Larry’s by the name of Sergey Brin becomes involved and together they gradually hone their focus of building a better search engine.  As I personally remember from that era, the internet offered great promise.  It was a new means of communication, possibly even more significant than the advent of the telephone.  In 1996, the internet was obviously the next big thing, that is if you weren’t already a large successful company such as Microsoft.  In that year, Microsoft was busy shipping oodles of Windows 95, and was establishing itself as the dominant player in PC software.  Bill, Steve and Co didn’t have their heads in the sand, and they did see this internet thing as something to keep an eye on.  Something on which to perhaps even develop a few offerings.  Quite simply they couldn’t just drop everything they were doing with Windows, and all the applications that they’ve have running on top of it.  So, this resulted in Microsoft treating the internet as a something extra.

As a contrast in action, Google accurately identified how critical this Internet could become, while pouring all of their energy and time into making a tool so people could better locate things.  Just as Larry and Sergey saw, I too was hugely frustrated with my inability to locate things out there.  Without some sort of all high quality search engine, I’d waste time looking through news groups, emailing people, talking with friends, walking around the computer science lab looking for answers – all purposeful actions, but overall an extremely ineffective “search engine”.  Here’s where the story gets interesting. Larry and Sergey not only identified the user need, but took action required to build an online tool so people could better use the internet.  They correctly envisioned people needing to actually find things on the internet.  Then they took action to fulfill this need.  A daring proposition back then, when the highly expert, highly paid, and most powerful executive visionaries considered search as basically nothing.  Yep, search was considered a non-entity by executives in tech companies.  Any company with an inkling of internet presence was jumping on the portal bandwagon, and thus these business leaders basically said “no” to search.  That era’s executive mindset was along the lines: “Why make a search tool that people would use to access your competitor’s site?”.  It was a mindset that completely missed the boat, and was purely based on FUD (Fear, Uncertainty, and Doubt).

Larry and Sergey, on the other hand, saw Internet Search for what it truly was: a foundation for anyone wanting to use the internet.   Even I, a lowly customer science undergraduate could plainly see the necessity and significance of online search.  It’s not that these technology company leaders were dumb, but they sure were blinded by their self imposed Tunnel Vision of tweaking current strategies and using the past to predict the future.  My personal take: It’s more often the lower-level people who know the problems, contain the passion, and have the vision.  While the established leadership strives to maintain an even keel, often for the sake of pleasing investors with consistent quarter-to-quarter earning.  A seemingly good investor strategy, but also a reliable way to hide problems and at times deliver disaster (e.g. January 1986: Challenger;  February 2003: Columbia).  Add to that these leaders probably didn’t need to search for anything on the internet.  (There’s some derived advice for investors here: keep your eyes on the younger ones b/c they more likely identify new needs and pursue bold new paths, while the older more established leaders are more likely to tweak whats already there)

The working prototype of Google actually worked really well.  But when Larry and Sergey tried shopping it around to large technology companies, they hear something like “Wow! that does work really well.  But who needs search?”.   In effect, these leaders were clearly blind to what was in front of them.

Larry and Sergey dedicated time, energy to what would become Google.  They put their selves and reputations on the line.  They ultimately got backing, looked for business relationships and partners.

In fact, all this was very similar to the path Bill and Steve took decades before in starting and growing Microsoft.  But now in 1996 Bill and Steve were focusing on their business, which was the conservative / sane thing to do.  And in doing so they completely missed the internet boat.  It’s not that they didn’t see the internet coming, they just misjudge its future worth weighed against MSFT’s current (circa 1996) worth.

Microsoft still manages to hold considerable worth, energy, talent and passion.  But now they’re competing in a market that plays by different rules.  Now, there’s less benefit to closing big long-term deals with other big players, such as the Dells, the IBMs, the HPs of the world.

This new internet market really is very different.  It’s a place where online access grants people the ability to instantly try new software for free, and without downloading anything.  In effect, people magic software onto their computers (something impossible when MSFT was up and coming).  People can embrace new applications and tell all their friends in a matter of moments.  Just as rapidly people can quit using an application and spread negative reviews, and damaging comments.  In short, people can sample without committing.  Eons ago, before the internet, the only way to try new software was to purchase a desktop PC and then it was too late.  Or, to visit a friend who purchased a new PC.  Or, head to somewhere selling computers and check out the new software – while incurring some degree of sales pitching and pressure.

In this new online world large OEM networks just don’t seem to help as much.  Having deals, contracts, negotiations with other large players just isn’t what it used to be.  Don’t get me wrong, it still has some relevance – just ask anyone firmly in the anti-Microsoft camp, or anyone fully committed to Microsoft competitors (e.g. Apple customers).

But what I keep coming back to is Microsoft.  Because, well, I still use a bunch of Microsoft products, just as many others do.  In fact I even go one step further.  I use Microsoft development tools (e.g. Visual Studio) to develop software specifically produced to run on Microsoft Windows.  I do this out of choice, but as I said before, Microsoft owns most of the desktop software market.   And it’s sort of natural to do what’s most needed, most relevant by the world.  Yes it’s sensible, but also a trap.  Just ask IBM. Just as Microsoft.

In fact, even ask Google, Myspace, Facebook and YouTube.  In the online world people gravitate to new things that offer worth.  It’s a natural thing for consumers, but a very unnatural thing for the most successful paper-smart companies in the world.  Microsoft’s historically been dominate continuing to do what it does best.  The same goes for the other biggest, most successful companies in their industry.  My point is this tunnel vision of success is not limited to Microsoft, but applies to the biggest most successful companies. Consider the top 7 companies on the Fortune 500 list for 2008:

1 Wal-Mart Stores
2 Exxon Mobil
3 Chevron
4 General Motors
5 ConocoPhillips
6 General Electric
7 Ford Motor

Are those companies’ leaders making the right decisions for their employees?  How about for their customers?  Or, are those all-powerful CEOs, Boards of Directors, and top executives wearing the blinders of the past?  Will they experience tunnel vision at those critical decision points?  Will they do the right thing?

Ask any investor and he’ll tell you it’s generally the bigger risks that have higher pay offs.  To state it more plainly: If you want to win big, then when it counts you’ll need to risk big.  To that I’ll add: It’s critical to make good decisions, and having an ability to see the future can come in kind of handy.

At Microsoft, roughly 90,000 real people, with real lives work.  For their sake, and for that of the people currently committed to using (and developing) windows software, I certainly hope Ballmer and his legion of highly compensated executives make the correct decisions, and have at least some inkling of future vision.

On a related topic, here’s an interesting observation on Ballmer’s strategy to achieve online dominance: A strategy of  bottomless-pit online spending. I certainly hope that’s not Steve’s primary strategy.  (Maybe it’s his Plan B)


Windows 7, Coming Soon?

May 8, 2008

For those looking for what’s next after Vista, Windows 7 may arrive sooner than you think.

Bill Gates recently spoke at Inter-American Development Bank, which is the main source of multilateral financing for economic, social and institutional development in Latin America and the Caribbean (source: IDB).

During his talk, Bill had lots of good things to say about health and education in Latin America. He discussed how important education is in combating disease and necessary for sustainable health care. Since leaving Microsoft’s CEO post in 2000, I think Bill is doing some very important work in the world and should be commended for it.

For an overview of Bill’s talk on Latin America healthcare and education please see this.

Bill also touched on something I never fully appreciated until Google really took off: The U.S. Model where universities retain licensing rights to new technologies developed on-campus, and even through government funds.

Side Note regarding Standford University, Sergey Brin and Larry Page.  Not too long ago, Sergey and Larry were grad students at Stanford where they developed the logic, algorithm and patents to Google. Compared to where I attended university, Stanford really thrives on encouraging students and facality to develop and market new technologies. The school also connects developers of new technology with financing sources, which encourages new partnerships, patents and licensing.  In short, Stanford transparently creates new technologies, where the students, facility, school and world come out ahead.

Back to Windows 7 speculation. Much to Microsoft’s chagrin, Windows Vista is not achieving large scale penetration in the business market.  Although consumer adoption appears pretty strong, most of this is on new consumer PCs, where the user typically chooses between Vista and Vista (hmm… not much choice there).  In any event, Microsoft releases a new version of Windows every 3 to 5 years.  Vista took 5 years to ship, and Microsoft is vowing to ship the next version in only three years.   Adding three to Vista debut of January 2007, slates a Windows 7 ETA of January 2010.  But after hearing Bill’s words at IDB, Windows may arrive sooner.  We’ll see.

For Bills’ comments on Windows 7, please click here.


Vista Usability (Drivers) II

March 10, 2008

A class action lawsuit is currently ongoing against Microsoft regarding Vista. This lawsuit addresses user experiences with Vista, and how Microsoft misled consumers with cleaver/dishonest marketing.

Here’s where it gets interesting: Bundles of internal Microsoft email have been released to the public, and going by their content: Microsoft executives were aware of Vista problems, dismayed by marketing spin, and upset with: compatibility, drivers, performance, and the final product.

I’ve read through some of this email, and I saw surprisingly negative statements by Microsoft leaders on their Vista experiences. They were confused why Vista didn’t work better (as was/am I), and vocally critical of it. It makes me wonder how these highly paid, experienced and prominent leaders ended up with the product they did. It also makes me ask: Is anyone driving the bus?

Here’s a better summary then I’ve written: The New York Times: They Criticized Vista. And They Should Know

If you want to read the emails, check ‘em out: http://blog.seattlepi.nwsource.com/microsoft/library/vistaexhibitsone.pdf

Here’s Part 1 of my Vista Usability (Drivers) rant http://dataland.wordpress.com/2007/12/10/vista-usability-drivers/


Microsoft Fined $1.35 billion

February 27, 2008

Microsoft is no stranger to the receiving end of anti-competitive allegations. And, their accusers are often quietly dismissed via some form of: small payments/incentives, clever deal brokering, (pseudo)partnerships, or even more aggressive behavior. Well, not this time.

In 2004 the European Union recognized Microsoft’s practices as anti-competitive and went one step further with an Anti-trust ruling. This 2004 ruling was very serious: 497 million euro fine ($748 million) plus stringent requirements to play fairly with competitors.

As of last Wednesday, the EU recognized Microsoft’s non-compliance with playing fair.  So, the EU decided to take things to the next level: 899 million euro fine ($1.35 billion) plus really play fair. Needless to say this record fine is truly massive. I wonder if Microsoft will continue to do business as usual, or if they would perhaps… changes their ways.

You see, Microsoft is a very large, powerful, and aggressive company. As such the upper executive hierarchy is staffed by a large number of powerful and aggressive executives. And, to remain “competitive”, MSFT has a pretty much constant re-organization within the company and leadership ranks. From my experience: constant re-orgs, role re-definitions, and business plan changes are all fantastic ways to lose track of what you just did, what you’re now doing, and what’s really needed next.

I guess on some level I saw this coming. I mean, all the constant turmoil within upper management (especially within the Live Division) has made it hard (questionably impossible) to properly follow legal stipulations (including Anti-Trust rulings), while riding the razor-sharp-edge of competing like the uncaged-beast that Microsoft is. I’m surely not condoning Microsoft’s behavior, nor am I making excuses for their actions.  I’m just not very surprised.  But, I am curious how they will react with the ball (yet again) fully in their court.


Microsoft Live

February 15, 2008

When you consider just how large, successful, and dare I say… dominate Microsoft has become in the computer world, I am dazzled by how much trouble they’ve had getting in on the Web 2.0 scene. I’m sure Microsoft doesn’t enjoy playing second fiddle to Google, Yahoo, and bunches of others Johnny-Come-Latelys. I also think Microsoft’s massive executive hierarchy is pretty worked up about addressing their online presence deficit. In truth, I imagine a never-ending barrage of internal emails flying around the MSFT corporate network. Emails saying: the future of our company is at stake!. But, what I think is really interesting is how Microsoft reacts to this fear, and their attempts at growing their online business.

Side note: In 1995 Microsoft really started focusing on the Internet, with Bill Gates’ famous May 26, 1995 Internet Tidal Wave memo, where he directed his executive staff to attack cyberspace and for “…every product plan to try and go overboard on Internet features.”  In this memo he also said: “Now I assign the Internet the highest level of importance”.

Over the past decade, Microsoft has struggled to leverage it desktop market dominance into the online world, and they’ve had less than spectacular results. Microsoft’s massively developed marketing and distribution arms are pretty useless in the online world. They have built so much critical mass in all desktop-software aspects, which is all simply not transferable verbatim into Web 2.0 (Note to self: Since the computer world can’t agree on exactly what Web 2.0 means, I’ll use this term to appear trendy and “in the know”)

The crux of the issue is this: Microsoft was built on the software buy/sell/license mentality. But, it’s really more than a mentality, it’s a firmly ingrained culture completely encompassing a very fixed business model: sell software by unit (100 here, 1000 there), divide software into different segments (Office, Windows, etc) and have these business segments complete for desktop market share. The result: more money allocated to the more successful segments for cool.new.applications. Going on twenty years now, Microsoft has outwardly become an expert (and definitely the dominator) in developing desktop (non-online) software.

It really is a very deliberate decision: Is my company a services-company, or a software-company? Committing to the software-company track: you generate most (and nearly all) of your revenue by selling software by: unit… and after a while, you don’t generate revenue from your existing product until you ship a new version (Windows 2000, XP, Vista, etc). This drives how you do: planning, marketing, distribution (including Best Buy shelf space), development (native C++, VB, .NET, etc), leadership, etc. This really drives your whole company top-to-bottom, from your Steve Ballmer to your Joe Coder.

A software-company can profit by charging for services, but that’s very different from building a software-as-service company, such as Google. If a company wants to be service-based, then the core revenue model becomes: how much service can I sell, lease, or rent on a monthly basis (which is drastically different from: how many copies of this version of my program can I sell). The longer your software-company has been around… the more software-company infrastructure you have. And, all this becomes deadweight when you try to swim in the cool, new, sexy, and profitable online-services swimming pool.

I believe that before Microsoft can establish a significant market presence in the online business world of Web 2.0 (which I like to pretend Ballmer calls the Interweb), the MSFT culture and business-model needs to change. If I were Steve Ballmer, I’d create a Microsoft subsidiary that would operate completely independently from Microsoft (sort of a Skunk Works operation) and be a ground-up online service-company. If Ballmer won’t do that, then mitosis is the next best option: divide Microsoft into two separate companies: software-company Microsoft and services-company iMicrosoft. (I think this mitosis scenario is about as likely as everyone in the U.S. winning the lottery on the same exact day).

Instead of Skunk Works, or mitosis, Microsoft has chosen Plan C: Microsoft Live division. This division is dedicated to the online world, but ends up competing with all the other Microsoft software-centric divisions. And, from the Microsoft news I’ve read, there has been a large amount of executive turnover in this division. I quietly wonder, if one promising executive after another has been consumed (wrung-out) trying to run a service-company within a software-company (I sure wouldn’t want that position).

On several occasions, Microsoft has ventured to buy significant online market share. Just recently, MSFT submitted a $44.6 billion dollar bid to buy Yahoo. While the results are unknown, I could see Yahoo wanting a lot more money. And, if the sale did go through, I’d hope that MSFT keeps the two companies 99% separate (i.e. Skunk Works) – they could share some branding and technology transfer, but I think pushing Yahoo and Microsoft into one company could result in operation square-peg-in-round-hole.

Since buying an online presence hasn’t yet yielded Microsoft a major piece of the internet pie. Building is the next best thing. Case in point: Microsoft Office Live, which is the latest and greatest attempt by Microsoft to build a firm foothold in the online world. Simply put, this is an online version of Microsoft Office. (Did you notice the online version of Microsoft Office tacks “Live” onto the end? This appears to be how they are going to differentiate the desktop and online version of the same product)

I have not had the time, nor the incentive, to check out Microsoft Office Live. So, if you have, please drop me a comment and tell me what you think. Personally, I like using the desktop version of Office. I don’t need, nor want, to do that work online – In fact, I don’t see clear benefits to online-izing (or social-networking-izing) Microsoft Word. There are plenty of sites doing truly new and innovative things in the online world. Maybe one day Word Processing may go predominantly online. Until then, I’d rather use my traditional desktop version of Microsoft Word (I like the idea of Abiword and Open Office, but I never made the transition)

Since this post may be a bit dry (boring), I’ll leave you with this great Microsoft advertisement I just received for Microsoft Office Live. This ad really makes me wonder if Microsoft Office Live is desperately struggling to get people to use Office Live. Maybe I got this impression when the ad called me “chicken” for not trying it. Hey, are we in third grade? Well I double-dog-dare you to make Vista faster and more reliable. OK, I TRIPLE-DOG-DARE YOU!

You calling me Chicken?


Vista 4GB

February 5, 2008

I recently received a comment from a reader who thought Vista didn’t support 4GB of RAM. I was a bit dismayed at first because 32-bit flavors of Window support 4GB, and they always have (nitpickers: I’m taking about 32-bit NT derivatives, not 9X). I had taken it for granted that people just know this. I google’d around a bit to try and better understand this misconception. After a few minutes I realized there sure is some confusion over how much RAM 32bit Vista actually supports. I hope I can clear up some misconceptions, shed a bit of light, and not bore you too terribly along the way.

Techno-babble disclaimer! A 32-bit number can contain a value between 0 and 4,294,967,295 (this number is calculated as: 2^32 -1). Because that’s a very large and unwieldy number, we divide it by 1024 which gives us 4,194,304 thousand. Dividing again by 1024 gives us 4,096 million. Dividing once more by 1024 gives us 4 billion. What I am trying to get at is this: a 32-bit number can be used to count up to 4 billion, which is needed to read/write 4 billion distinct memory cells (aka bytes).

Because 32-bit Windows addresses memory through a 32-bit memory addressing scheme, in theory you can address 4GB of RAM in 32-bit Windows. I say in theory, because there are other factors that move this number up or down. Useless techno-trivia: A 64-bit memory addressing scheme can theoretically access 64-bit of memory address space: which is 2^64 – 1, this comes out to: 18,446,744,073,709,551,615 or roughly 4 billion GB.

In 32-bit Windows, addressable memory is divided into two different areas (or modes): Kernel and User. By default, Kernel-mode gets half of the maximum addressable memory: 2GB, and User-mode gets the other half: 2GB. Windows dedicates Kernal-mode memory to drivers and internal Windows data. And, Windows applications get access to 2GB of User-mode memory. (nitpickers: This is highly simplified).

When it comes to physical hardware, things get a bit more muddy. It’s fairly common for motherboard (aka mainboard) makers to set hardware limitations on how much RAM they actually support. Your computer’s mainboard may limit accessible RAM to: 3GB, 2.5GB 2GB, etc. On server-class machines you can find motherboards that limit accessible RAM to more: 8GB, 16GB, etc. Since a 32-bit number can only address 4GB of RAM, there are various schemes that enable 32-bit Windows to access more than 4GB of RAM. Microsoft, Intel and various server motherboard manufacturers have extended memory addressing schemes.

More techno-trivia: Intel has PAE, Microsoft has AWE These extended memory access schemes in general work by moving around a virtual window through your whole address space. For example: I can read the memory between addresses 10GB and 14GB by setting my memory window to start at 10GB. Note: Since we are moving a memory read/write window around, we pay a slight performance.

So, 32-bit Windows can theoretically take advantage of 4GB of RAM and 32-bit Vista is no different. What is different is how Vista uses the RAM and reports what’s available. In Vista, if you have 4GB of RAM and 512MB graphics card, then your available RAM can show 3.5 GB or less. You are still using all 4GB of RAM, but Vista is really trying to be honest by saying you only have 3.5 available. If you have other drivers that grab RAM, that will decrease the amount of available RAM even more. I’ve read some peoples complaints where they only see 3 GB available and 4GB is installed. If your motherboard (or BIOS) is not limiting it, then you are actually using all 4GB. So, it all depends. It depends on your motherboard, installed hardware, drivers, and etc.

If you want more info, check out Microsoft’s: Memory Limits for Windows Releases.


Visual C++ 2008 Feature Pack Beta

January 8, 2008

Good new for developers and teams working on Microsoft Visual C++ projects! In this past year, Microsoft has publicly woken up and started re-investing in Visual C++. If you have upgraded to Visual Studio 2008, you can beta test some new and significant functionality coming down the pike for MFC.

This new functionality is part of the optional Visual C++ 2008 Feature Pack Beta. Here is a brief overview:

The Visual C++ 2008 Feature Pack extends the VC++ Libraries shipped with Visual Studio 2008. The VC++ 2008 MFC libraries have been extended to support creation of applications that have:

  • Office Ribbon style interface
  • Office 2007, Office 2003 and Office XP look and feel
  • Modern Visual Studio-style docking toolbars and panes
  • Fully customizable toolbars and menus
  • A rich set of advanced GUI controls
  • Advanced MDI tabs and groups
  • And much more!

This feature pack also includes an implementation of TR1. Portions of TR1 are scheduled for adoption in the upcoming C++0x standard as the first major addition to the ISO 2003 standard C++ library. Our implementation includes a number of important features such as:

    • Smart pointers
    • Regular expression parsing
    • New containers (tuple, array, unordered set, etc)
    • Sophisticated random number generators
    • Polymorphic function wrappers
    • Type traits
    • And more!

    Here is a brief tour of new MFC GUI additions.

      If you are using VS 2008, here is where you can grab the Visual C++ 2008 Feature Pack Beta.

      And, here is the Feature Pack documentation.


      Microsoft Emacs.Net

      December 31, 2007

      A recent post over at meta-douglasp hints at something that Microsoft appears to have in the works: Emacs.Net. For many UNIX and Linux folks, emacs is probably old hat. For the rest of us, here is a quick overview.

      Emacs is an text editor that is very popular on UNIX and is often used to write software, configure systems and edit just about anything. Emacs is mainly used by technical people, and is easy to configure, extend and tweak if you are technically inclined. I haven’t used emacs much in the past decade, but it is a handy, light-weight editor that also scores high on the geek cred scale. As far as UNIX file editors go, emacs dates back to 1976 and has been developed in a fashion that retained it usefulness as it has been extended. To contrast with some other tools, emacs has endured the test of time and appears to keep on going. For more on Emacs, please check out the wiki.

      Which brings us back to Microsoft and their premier development editor: Visual Studio (VS). I’ve been using Microsoft’s VS for the past decade and overall, each version has gotten bigger, slower, more unwieldy, buggier and less usable. That is a shame because Microsoft has been cramming tons of work into adding features galore. I think on paper, VS ships a great spec: There are all kinds of really neat looking features, functions and capabilities. But, over time, this editor has gotten worse as far as actual usability and productivity of the user.

      My long running joke is: Visual Studio was designed by and for executives. Now, I don’t think executives use Visual Studio, or if they do it’s very few and very rarely. What I do mean is: MS executives drive production direction and approve the product. Then, at other companies, executive dictate their software will be developed with Visual Studio (VS). In truth, that’s pretty much how it happens. The people with the least amount of hands on technical knowledge (executives) often make technical calls such as this (sad but true). What’s really sad is the MS executives don’t really know what they are shipping (Visual Studio), and the other-company executives don’t really know what they buying.

      A related item: Microsoft .NET. Years ago, when the internet was really starting to take off and executives were rubbing their wallets thinking “how can I cash-in on this internet craze?” Meanwhile, Microsoft executives were really starting to sweat how they were going to complete with Netscape and remain competitive in this new internet based world. The MS Windows team was worried about future prospects (i.e. who needs windows is everything is done in a browser), as was the MS Office team (i.e. complete with web apps), the MS Developer division (i.e. native applications), and pretty much anyone else who drank the cool aid, or was a quick follower of FUD (In all fairness, there really was a lot going on in the industry and at Microsoft at this time, but I’m trying to keep it high-level).

      All this brings us to .NET, which Microsoft hoped would provide competition to Java (also an interpreted and web-tacular language.) .NET could also (theoretically) help out the office team if they wanted to market web-based office applications. And .NET could (theoretically) help the developer division remain competitive by developing a Cool.New.Thing! A bunch of languages (J#, VB.NET, etc) that all use the same run time (CLR) which could be made to run on different platforms (Cool! CRL is its own abstraction mechanism and runtime). Basically, a bunch of different executives (and teams) were jazzed about what .NET could do.

      In the spirit of Dogfooding, the Microsoft Developer division developed a massive all-in-one developer tool to end all developer tools written in .NET. Initially, many people (or at least the executives) thought this was a grand idea. Now that this has been completed, I do have to say this tool is a 100 ton whale that cannot get out of its own way. (That’s just my opinion… and the opinion of many other C++ developers). Also, .NET really has become something of a boondoggle for Microsoft. Overall, it’s very functional and provides all kinds of cool capabilities. But…

      .NET also brings some problems: it’s auto handling of garbage collection (like java) is really pretty good, but not nearly as good as custom developed allocation and deallocation written in C++. Also, .NET imposes a performance hit b/c the CLR is a complete runtime which… runs on top of the Windows runtime. But, the biggest problem with .NET is: its actually not being used as much as good old fashioned C++. And that’s a travesty. Specifically, MS spent many millions of dollar designing, developing and marketing a product (.NET) that people by and large don’t want. And MS has been spending years trying to push C++ developer, teams and products away from C++ (as builds on the bad decisions that created .NET, and continues to mitigate Microsoft FUD). Don’t get me wrong, there are a bunch of people that write applications for .NET, but when you look at industry statistics: there are more people, teams and companies writing applications is good old fashioned C++, than in .NET. Since it took a while (years and years) for Microsoft to realize this, they are now quickly trying to re-invest in their native C++ toolset. So now, Microsoft executives are saying something akin to: Hey, we were just kidding! C++ is a great language! You can use .NET or C++. Really, we love both!

      This all brings us back to Microsoft’s rumored Emacs.Net. Since .NET really has a bunch of issues, and Visual Studio is written in .NET, and many C++ developers have gotten fed up with .NET… it’s time for a new tool: Emacs.NET. You may say: huh? It does seem a bit odd, but if I had to guess, I’d think this tool will be written natively (possibly, but probably not) and will have some interop with .NET but overall, this tool will be a clean slate design.. with the expressed purpose of: continuing to leverage Microsoft’s technologies (gotta include .NET so the executives sign off on it), while reconnecting with the core developer base (i.e. emacs endures, so lets make an emacs), and results in a new light-weight tool that can also be levered against Windows Server core, Powershell and by general technical folk.

      But hey, these are just my best guesses because I really don’t know. And neither will Microsoft, nor the executives until all is said and done. Like I say: developing software is one massive feedback loop and you don’t really know where you are going, or how it will pan-out until the product ships.

      Here is Mary Jo Foley’s commentary on Emacs.Net


      Vista SP1 Improvements

      December 10, 2007

      Microsoft has finally posted a reasonably descriptive overview of what’s included in Vista SP1. As I’ve already blogged, I think Vista is more than a little slow and bloated. I know other people who are concerned with Vista’s reliability, but unfortunately I have not yet gotten there (I find Vista’s performance too lacking to have used it enough to run into reliability issues).

      Update 3/23/2008 – On my laptop, I upgraded RAM to 4GB, and purchased two fast hard drives: one for Windows + Pagefile, and one Development tools + MSSQL.  Performance is now much better, and usually satisfactory.  I’ve also installed Vista SP1 and don’t have any complaints so far, so I’m leaning toward thumbs up.  Prognosis: faster hardware on Vista is better, and SP1 agrees with my computer.  I still hope Vista SP2 dials up the performance a bit more, but… I’d really like Windows 7 to focus on performance and simplification.  Note to Microsoft: Please don’t change the driver model in Windows 7!! Enough already, of upgrade pain and compatibility woes!

      Here are Vista SP1 improvements I find interesting:

      • Adds support for Direct3D® 10.1, an update to Direct3D 10 that extends the API to support new hardware features, enabling 3D application and game developers to make more complete and efficient use of the upcoming generations of graphics hardware.
      • Addresses issues many of the most common causes of crashes and hangs in Windows Vista, as reported by Windows Error Reporting. These include issues relating to Windows Calendar, Windows Media Player, and a number of drivers included with Windows Vista.
      • An improved SRT (Startup Repair Tool), which is part of the Windows Recovery environment (WinRE), can now fix PCs unbootable due to certain missing OS files.
      • Adds full support for the latest IEEE draft of 802.11n wireless networking.
      • Improves OS deployment by enabling 64-bit versions of Windows Vista to be installed from a 32-bit OS. This will allow IT professionals to maintain just a single WinPE image.
      • Improves patch deployment by retrying failed updates in cases where multiple updates are pending and the failure of one update causes other updates to fail as well.
      • Enables reliable OS installation by optimizing OS installers so that they are run only when required during patch installation. Fewer installers operating results in fewer points of potential failure during installation, which leads to more robust and reliable installation.
      • Improves overall install time for updates by optimizing the query for installed OS updates.
      • Improved instrumentation allows additional data to be sent to Microsoft via the CEIP (Customer Experience Improvement Program) when enabled. This telemetry data led to the identification of numerous issues that are addressed in SP1 and resulted in improvement in the reliability of OS servicing.
      • SP1 reduces the number of UAC (User Account Control) prompts from 4 to 1 when creating or renaming a folder at a protected location.
      • Improvements in the Licensing User Interface and User Experience including more details in the help about activation and what happens if user does not activate; more detailed and descriptive dialog text; raw error codes replaced with easily comprehensible text.
      • While not reflected in the initial release candidate this week, we will also be making changes effective with SP1 in how we differentiate the experience customers have using non-genuine versions of our software. This is based on feedback we heard from volume license customers in particular as part of our Windows Genuine Advantage program.
      • Improves the performance of browsing network file shares by consuming less bandwidth.
      • Improves power consumption and battery life by addressing an issue that causes a hard disk to continue spinning when it should spin down, in certain circumstances.
      • Improves the speed of adding and extracting files to and from a compressed (zipped) folder.
      • Significantly improves the speed of moving a directory with many files underneath.
      • Improves performance while copying files using BITS (Background Intelligent Transfer Service).
      • Improves performance over Windows Vista’s current performance across the following scenarios1:
        • 25% faster when copying files locally on the same disk on the same machine
        • 45% faster when copying files from a remote non-Windows Vista system to a SP1 system
        • 50% faster when copying files from a remote SP1 system to a local SP1 system
      • Improves the time to read large images by approximately 50%.
      • Improves IE performance on certain Jscript intensive websites, bringing performance in line with previous IE releases.
      • Improves responsiveness when doing many kinds of file or media manipulations. For example, with Windows Vista today, copying files after deleting a different set of files can make the copy operation take longer than needed. In SP1, the file copy time is the same as if no files were initially deleted.
      • Addresses a problem that caused a delay of up to 5 minutes after boot with specific ReadyDrive capable hard drives.
      • Improves the effectiveness of a Windows ReadyBoost™ device in reducing the time to resume from standby and hibernate by increasing the amount of data stored in the ReadyBoost device that can be used during a resume cycle.
      • Includes improvements to Windows Superfetch™ that help to further improve resume times, in many environments.
      • In specific scenarios, SP1 reduces the shutdown time by a few seconds by improving the Windows Vista utility designed to sync a mobile device.
      • Improves the time to resume from standby for a certain class of USB Hubs by approximately 18%.
      • Improves network connection scenarios by updating the logic that auto selects which network interface to use (e.g., should a laptop use wireless or wired networking when both are available).
      • Reduces the time it takes to return to the user’s session when using the Photo screensaver, making it comparable to other screensavers.
      • Removes the delay that sometimes occurs when a user unlocks their PC.
      • Improves overall media performance by reducing many glitches.
      • Windows Vista SP1 includes a new compression algorithm for the RDP (Remote Desktop Protocol) that helps reduce network bandwidth required to send bitmaps or images via RDP. The compression, which can be selected by administrators via Group Policy settings, is transparent to all RDP traffic, and typically reduces the size of the RDP stream by as much as 25-60%, based on preliminary test results.

      Microsoft also lists a bunch of other improvements. If you want to get it directly from the horse’s mouth, please follow this link. And then download the file named: Notable_Changes_in_Windows_Vista_SP1_ Release _Candidate.doc


      Vista Usability (Drivers)

      December 10, 2007

      Last year when Windows Vista shipped, I enthusiastically installed this latest-and-greatest Microsoft Operating System on a couple of my computers. I was quickly dismayed to find it completely unusable on both computers because Vista drivers that I required were not available.

      One of my computers could not see the internet because Vista didn’t ship with a driver for my network card. This was a bit of dark irony as Microsoft was really pushing the message: “Vista ships with bunches of drivers, and many more are freely available online!” Since my computer lacked a Vista network card driver, I couldn’t connect to the internet and… thusly I could not download new ones. So, in my situation, what good was it that Microsoft was busily posting new drivers on Microsoft Update? Hopefully, Microsoft documented this Lesson-Learned from Vista: When shipping a new Operating System, don’t forget the Network Card Drivers.

      I installed Vista on another computer, and… Vista could not see my SATA hard drive. This really was unfortunate as this XP-based computer had been reliably using the SATA hard drive for years. This drive contained all my data: music, photos, videos, work documents, spreadsheets, application source code, databases, etc. So, even though I could boot Vista and access the internet, I could not actually use this computer for work, or for leisure. In this case, I could access Microsoft Update to check for new drivers but… none were available for my SATA hard drive.

      I was a little disappointed, but mainly confused. The Microsoft’s PR machine was loudly broadcasting the news that Vista shipped with an amazing quantity of drivers. In fact the actual language was something like: “Vista ships with more drivers than XP had when it shipped”. On a large scale, I feel the Microsoft PR machine was really communicating this broader message: Run, don’t walk, to your favorite computer store and buy Vista today! Because this OS will work with your hardware, and you will be happy!

      At least, that’s the message I took away from Microsoft’s marketing colossus. Looking back, I’d wasted a dozen hours and was considerably less than happy.

      What I find slightly dishonest with this marketing tact is: statistics can be made to lie. Let’s look at the situation from a different and truthful angle. Vista did ship with a bunch of drivers, but many mainstream and very functional computers could not run Vista because drivers were not available. Bunches of people purchased Vista and quickly realized that drivers they needed were not available for their existing hardware. I wonder if anyone has readily available statistics showing that when it first shipped, Vista ran on a smaller percentage of available hardware than XP did when it first shipped.

      Now that Microsoft has had a year to improve Vista, they’ve been working like the world’s biggest hive of busy-bees. I sincerely hope Microsoft’s extensive hierarchy of executives and management has been focusing on the right things. I guess you could say: that’s why they get paid the big bucks. And, that’s why we consumers are paying the big bucks to them.

      In Microsoft’s defense, they have developed a bunch of drivers over this past year. And good new for me: the driver I require for my SATA hard drive (NForce2 SATA controller) has been developed (by Microsoft) and published a couple months ago (by Microsoft). So, I can now use that computer with Vista, but in all truthiness I think Microsoft was about a year late.

      My personal opinion regarding non-cutting edge hardware: driver development is the responsibility of the operating system maker. Case in point: Nvidia was not going to develop my SATA driver because… Nvidia won’t see a dime of profit if they developed the driver (but Microsoft will profit from more Vista sales). In fact, Nvidia officially stated that nForce2 hardware was “too old” and they are only developing Vista drivers for NForce3. So, about a year after Vista ships… Microsoft finally develops and ships the NForce2 driver. Problem solved… about one year too late.

      As I like to say: software is always a work in progress because it’s never really done. Instead, software continually delivers different levels of user satisfaction to different users. It’s up to the software maker to continually make the right decisions. Hopefully, Microsoft will re-focus on: the end-user, quality, performance, reliability and usability. If they don’t… I’m increasingly becoming enamored with Mac OS-X.

       


      Follow

      Get every new post delivered to your Inbox.