Brad Wardell's Blog


PDC goals & expectations

Published on Monday, September 12, 2005 By Brad Wardell In PDC 2005

I'm on my way to PDC.  This is the first time I've gone there. I'm only 34 and yet feel like a bit of an old-fogey in that I'm not as up on the latest .NET techniques as I probably should be.  I'm less a developer these days and more of a technologist.  I want to see what technologies Microsoft is working on and see what is going to be beneficial to our company and our customers and which parts we can take a pass on.

I'm on the plane looking through blogs that I've archived with Blog Navigator and I've enjoyed reading Scoble's in particular.  He works at Microsoft so his rallying up for Microsoft is understandable (just as I tend to be pretty jazzed about Stardock's latest stuff).  Half the "good stuff" apparently is after-hours.  The parties and such.  I'm known enough in the industry to be aware of most of the good parties but not important enough to be necessarily invited to some (such as the PDC "Influencers" party).  Going to a show like this is humbling. I feel like the Comic book guy who is king of his little comic book store but is powerless beyond its confines "I shall return to my store where I dispense insults rather than absorb them..."

Last PDC I sent our lead R&D developer there and he came back with a lot of useful feedback.  At the time, the Longhorn side-bar was a big thing but our developer said it was quite hacky in its implementation.  The side-bar disappeared for awhile and recently resurfaced. Perhaps it's better implemented now.

What I'm going to be interested in learning (and talking to those in the know) is just how far Microsoft intends to take "managed code".  The overall preferred Windows Vista API is called WinFX which is essentially the name of a group of managed code APIs.  Managed code lets traditional developers get a lot done very fast but makes it harder for developers who are doing things that the OS vendor didn't think of to actually do.  Desktop enhancement software requires techniques such as API hooking and message hooking and all kinds of ways to get into a process to extend the base OS feature set.  When a program like WindowBlinds works, it actually gets inside a given process and directs its paint calls to WindowBlinds to take care of it.  In this way, we can extend the feature set of the Windows drawing routines.  But managed code is a layer on top of all those APIs.  You can't really "hook" them.

I'm not so much worried about Microsoft breaking our stuff (Microsoft, nVidia, ATI, Nintendo, Alienware, Good Year, GE, Dell, and countless other large companies use our technologies).  What I want to make sure is that the new goodies in Windows Vista are going to be extensible. And by extensible I mean..actually extensible and not marketing extensible (i.e. marketing extensible is where some marketing guy at Microsoft says how extensible their system is but really what it means is that they allow developers to change the configuration to a number of pre-set definitions). 

For example, could I get into the Explorer process and make use of the new graphical capabilities to have different folders in explorer windows be different sized based on how much "stuff" is in them?  I'm not saying we want to do that, but it's a good litmus test.  On Windows Vista, there are so much more potential to do neat things than there was on Windows XP.  I am not looking for Microsoft to put in APIs that make it trivial to jump in and do things, I just want to make sure it's reasonably possible.  After all, Stardock essentially acts as a free R&D lab for Microsoft anyway (as any long-time user of Object Desktop can tell you).  We're willing to invest in trying cool new things with all the engines but we have to be able to do things that Microsoft hasn't necessarily thought of.  Hence, the need to jump in there and extend (and sometimes replace) painting routines, APIs, etc.

I'm heading there with my Windows XP Thinkpad equipped with the WindowBlinds 5 beta. Amongst its other capabilities, WindowBlinds can do semi-transparent window frames ala Aero -- but on Windows XP.  I know for certain that Microsoft never thought that was possible, especially at the speed we have it running (i.e. on a decent machine it shouldn't affect performance).  So one can imagine the kinds of things that could be possible to do with Windows Vista as long as Microsoft doesn't close the door.  API hooking and getting in process allow developers to gain the same benefits as a developer of an open source OS. 

WinFX API Primer

Published on Sunday, September 11, 2005 By Brad Wardell In PDC 2005

There's so many technologies floating out of Microsoft these days that it's really difficult to fixate on what is and isn't important.  This series of guides is designed to provide you with a nuts and bolts overview of what developers should be paying attention to in Windows Vista.

Since 1994, Microsoft has been pushing a single overall API known as Win32.  Starting with Windows Vista, the new API is WinFX.  That doesn't mean Win32 is going away, it's still there. But WinFX is going to be the one that Microsoft is going to focus most of its attention on for most developers.

.NET

.NET is a rich sets of APIs Microsoft has been making available as a separate download for some time.  .NET 1.1 is the current official release but 2.0 is in beta.  While some will cringe at the comparison, .NET is kind of a much much better implementation of Microsoft's old MFC libraries.  The problem today with .NET is that it requires a separate download.  But in Windows Vista, it'll be part of the OS.  We've used .NET internally and it is very nice.  When used with C# or VB.net, you can create things much faster and much cleaner.  The main downside is that it's managed code which isn't really bad for most developers but if you want to get more low level, you still need Win32.  But very few people write code that wouldn't be better handled by .NET.  If you're a software developer, start learning more about .NET.

AVALON

This is officially called Windows Presentation Foundation.  It's the new graphics subsystem in Windows Vista.  In some ways, it is similar to the various GDI implementations but has a very rich API.  Its functions can be accessed from .NET languages such as C# but it also includes a mark-up language for making visual applications very easily called XAML.  If you plan to create programs that are visual in nature, learn about AVALON.

INDIGO

This is officially called the Windows Communication Foundation.  I can tell you from experience that writing network aware applications can be a real pain in the butt.  INDIGO makes it much easier to create network programs.  If you write code that talks to other computers (over a LAN or the Net) you'll want to learn about INDIGO.

These APIs put together are called WinFX.  The other technologies in Windows Vista are interesting but for most developers, these are the key 3 that you will want to keep an eye on. 

From a developer's point of view, Windows Vista is going to be nice because WinFX is part of the OS.  On Windows XP, we don't tend to make use of .NET, even though it is so nice, because we don't want to require our users to have to download extra "stuff".  Developers who know these technologies will have a significant productivity advantage in developing software for Vista over those who stick to Win32 for general application development.

PDC Blogging

Published on Sunday, September 11, 2005 By Brad Wardell In WinCustomize News

Next week I'll be out at Microsoft's Profesional Developer's Conference (PDC) getting the latest info and details on Microsoft's upcoming series of development platforms.  Leading the pack will be Windows Vista and related technologies.  I'll be blogging on the event for Neowin.net as well as for WinCustomize.com.

There's a lot of good stuff in Windows Vista but we will also be giving our two cents on what we hope Windows Vista will be. 

What we WANT Windows Vista to be:

  • Clean look & feel
  • Very responsive (if I have 2 gigs of RAM, the UI should never pause when I'm interacting with it)
  • Unbloated
  • .NET and other development technologies bundled
  • Extensible

What we DON'T WANT Windows Vista to be:

  • Bloated with unnecessary bundling of "stuff"
  • Unextensible for the sake of "security" (make sure developers can still get in-process)
  • Unresponsive (hard drive access to open menus for instance)
  • Unpolished (icons from 1993, hodge-podge of font choices)

Stay tuned to http://frogboy.wincustomize.com as well as here to the WinCustomize home page.

Windows Vista user interface guidelines

Published on Sunday, September 11, 2005 By Brad Wardell In Aero

The preliminary Windows Vista user interface guide is out!  Microsoft is trying to encourage developers to create more consistent UIs. Here are some of the highlights:

#1: Use the new system font "Segoe"

#2 Use the built in controls instead of designing your own:

Editorial: If you really want to have your own client area look, check out DirectSkin.

#3 Don't try to mess with the non-client area (the frame of the window).

And try to support the base resolution of Vista -- 800x600 in your apps

Editorial: Again, if your app needs to have its own unique frames, use DirectSkin.

#4 Use icons that are consistent with the new Windows Vista style:

Windows Vista icons go from 16x16 to 256x256.  So make sure your icons look decent in those resolutions. PNG is the new icon format. 

Editorial: One of the best places to get PNG images is the ObjectDock gallery on WinCustomize.com

 

#5 Use the new dialog APIs to create dialogs that are easier to understand:

#6 Use the Aero Wizards instead of Wizards '97. Specifically, don't have the first page of a wizard be a welcome, have it be functional from the start. Avoid congratulation pages.

#7 Use Explorer style interfaces with a back button.

Have your UI try to be consistent with what people see the most on Windows and that's the Windows Vista Explorer interface.

#8 Use the new Windows Vista search

This means supporting the new "Find as you type" feature and don't use labels but rather put "Type to search" in the edit field.

#9 Use the Windows Vista tone in all UI text.  That means make your text clear, natural and concise. Use every day words.

#10 Keep your UI clean!

That means keep your commands task oriented and in a hierarchy.  Make sure commands are accessible from the keyboard. Put effort into having only the most commonly used commands be top level (visible) with infrequent commands put at a lower level. A good UI shouldn't display every possible feature command at once.

# 11 Use the notification feature of the system tray sparingly.

#12 Save time for the fit and finish.  Don't look at making your program polished as a minor detail. Make it a priority.

Windows Vista Editions revealed

Published on Sunday, September 11, 2005 By Brad Wardell In WinCustomize News

Windows IT Pro has apparently learned that Microsoft is about to announce the specific editions of Windows Vista.

First there's Windows Vista Starter Edition which is essentially a crippled version that only allows for a few apps to be run and is designed for "emerging" markets.  We'll code-name this version as "let's see how bad we can look compared to Linux which is free and isn't crippled"

Then there's Windows Vista Home Basic Edition.  This version is equivalent to Windows XP Home of today.

There's also Windows Vista Home Premium Edition: This is like Windows XP Pro of today but with more consumer oriented features.

There's also Windows Vista Pro Edition. This is similar to the Home Premium Edition but without the consumer goodies.

And there's also Windows Vista Small Business Edition which includes "pre-paid" access to Microsoft Office Live and other Microsoft-specific services.  We'll code-name this version as "DOJ Reactivation Edition"

Moving on there's Windows Vista Enterprise Edition which is like Small Business Edition but also has a host of intensive security features.  We'll call this the "Eliminate vertical ISV edition and monopoly enhancement version"

And then finally, best of all we have Windows Vista Ultimate Edition.  This version could be summed up as "Some Microsoft interns scoured the net, saw a bunch of programs that look popular and now MS is going to try bundling them with the OS because it'll make them feel cool".  We'll code-name this version as "Linux ISV migration Edition".  Apparently someone at Microsoft is envious of MacOS and it's 3% marketshare and thinks that the best way to lower Windows's long-term market share is to emulate Apple's ISV strategy.

This version apparently has all the features of Premium and Pro plus features such as a "Game Performance Tweaker", Pdocast creation utility, an iTunes store like feature, Movie downloads, Onlight Spotlight, Custom Themes.

Now at first glance, some people might say "Hey wow great! Microsoft is bundling more stuff with the OS! That's terrific!"  And more stuff is very good for consumers -- in the short term.  But in the long term, it kills innovation.  It's these very same third parties who come up with cool stuff that Microsoft eventually bundles in.  And here's the kicker -- once bundled in, it never gets updated. Innovation ends.

In the late 90s, "Push technology" was getting interesting. There was a technology called PointCast that was up and coming.  So Microsoft throws in an half-assed PointCast clone in Windows 98, kills PointCast.  Now, "Active Desktop" is essentially gone.  For years, Stacker and other disk compression programs were moving leaps and bounds forward. Then Microsoft bundled that with the OS. Killed them off and hasn't touched it since.  The compression we have today in NTFS is ancient, inefficient, and often not used. Why improve it?  For awhile, grammar checking was improving in leaps and bounds.  Then Microsoft bundled a half-assed version in with Office killing off the third party Grammar checking developers.  Grammar checking hasn't been updated in any meaningful way since. (and based on the emails I receive, it's sorely needed! <g>).  ZIP was integrated with the OS with Windows XP (and before but not to the same extent).  Has it been updated? Nope.   Microsoft bundled MS Movie Maker with the OS.  They updated it some just after release but it's not progressed much since.  Meanwhile, the third-party video editing market has been lost to consumers (even we use MS Movie Maker for our stuff because it's "good enough").

But by bundling these things, they take away the incentive for third-parties to kee updating the technology.  Third parties can compete with what's bundled to a certain extent but there's a threshold where the ISVs either have to go work on something else or go to a different platform (such as Linux which sees more and more ISVs moving to it because of competition from Microsoft). 

Some naive users think Microsoft's bundled stuff is "better" than third party versions.  You see this in forums all the time.  The only difference between the two is bundled is..well bundled, it ships on the CD rather than requiring a download. 

So while a Podcast creation utility is nice in the short term, it takes away the incentive, in this emerging area, for third parties to make more sophisticaed podcasting software. But why bother if the bulk of users would be satisfied with the "free" version.  That's just one examle, the whole "Online" club services are another example.  Imagine if Microsoft included a direct, part of the OS mechanism for people to get more themes, skins, icons, wallpapers for Windows? It took you to some MS site where you could download them.  Why bother going to a WinCustomize? The same is true of many other types of websites, services, etc. 

Microsoft needs to remember is that one of the reasons why it has 95% of the market and the Mac has 3% of the market is that Microsoft, for a long while, didn't leverage their OS monopoly blatantly to compete with its ISV partners.  Mac ISVs have to contend with Apple bundling everything with the Mac. When Apple decided to compete with Konfabulator by bundling Dashboard with the OS, the result was Konfabulator for the PC.  What Microsoft's bundling mania is ultimately doing, and you can already see this, is drive ISVs to Linux.  Microsoft, in effect, is creating their own OS competitors. 

And in the meantime, consumers suffer unknowingly because they're stuck using the half-abandoned bundled stuff that Microsoft threw into the OS on a lark years earlier that managed to kill off third party innovation. 

I hope Microsoft really thinks carefully about these myriad versions of Windows Vista.  Because this time around, we're not talking about Microsoft squashing some shareware author, they're going after increasing chunks of Symantec, CA, Adobe, and many other large companies (strangely, Microsoft never sees fit to bundle an office productivity suite... it's almost as if they know what the effect of bundling after all -- when it's their stuff they'd be competing with). 

Companies that specialize on their core competencies are usually going to do better than Microsoft.  Microsoft should quit looking at what to bundle and focus on making a stable, reliable OS that improves on the kinds of technologies that only the OS vendor can put in.

Myth Inc has died

Published on Saturday, September 10, 2005 By Brad Wardell In WoW

Well our guild at one point had over 120 players in it.  But as time has gone on, I've lost interest and so have my officers who have slowly quit or drifted off.

I just don't find WoW compelling anymore but that's okay, it gave me many months of enjoyment which is more than can be said of most games that are released.

To those who were part of the guild, thank you for sharing your characters with my character. It has been fun.