WinFX - Learning the future.

The next generation Windows, a programmers view.

February 2004 - Posts

  • Longhorn- The missing pieces

    Filed under: , , ,
    Apologies for not posting in a long time. I guess you'd all though this was another blogging casualty.
    But I'm back.

    I'm still working mainly with VB6 but I'm taking every oppotunity to cram .Net from books articles and videos online. I really like the way that WinFX will create a level playing field for developers.

    1. All the functionality of the platform from whatever language and style you find suites you best.

    2. Self-describing APIs, with .Net metadata I get automatic intellisense on any Microsoft or third party assembly. No more header files or type libraries required.

    3. Compiler and build engine included in the platform. Walk up to someones machine, open notepad and start coding away. Produce simple graphical apps in minutes, no complicated build environment needed.

    So to the post. Its a long-un.

    McAfee Virusscan 7 - A Model Longhorn App?

    The avalon articles talk about a new model of task based pageable apps. Looks like one company has got there already.

    It even looks like a Longhorn app. Forward, Back, Home and Help buttons, a task pane, simplified startup page.

    Now I have to wonder, is this really better? I guess its easy to use for a beginner, but can all programs be reduced to a set of predefined tasks? As soon as you want to change settings your back at the good old tabbed page dialog.

    Traditional Windows rich clients such as database front ends have MDI forms, data grids and drag and drop, You really interact with your data, view it in multiple formats, make discisions based on large amounts of information, use undo etc.

    Are we really reducing the user experiance to little more than a Wizard?

    Cool bits of Longhorn that are going unnoticed.

    App Compatibility - or Security, Security Security

    We all know the problem. We don't want to have to log in as a member of the Administrators goup for our day to day work, but somehow those few apps won't work any other way. They write to the HKEY_LOCAL_MACHINE registry or to \Program Files\ or \Windows\System32\ areas that a Limited account does not have permission to modify.

    We can make sure we fix this in new apps, use \Documents and Settings\\Application Data\ etc. You won't get the "Designed for Windows XP" logo unless you can run under a Limited user account. But what about all those apps written in the 9x era. There was no security model in place at the time. No seperation of user and system settings and data which has always been so prevelent in the Unix world.

    I've noticed that on the Compatibility tab of program properties in the PDC build there is a new setting that has something like "Allow this program to be run by non Administrators", something like that anyway, its been a while since I booted Longhorn. I don't know exactly what this setting does but it set me thinking. Can you virtualise the system registry and files on a per user basis?

    A program reads from HKLM, then tries to write some setting back. Instead of failing the system could redirect the API, make it store that value in an XML file stored in the users profile in a location specific to the programs path and file name. eg. \Documents and Settings\\AppCompat\ Whenever a program is launched the system checks for the XML file, in much the same way as it already searches for a Manifest. If it reads from a registry key that it has previously written to it gets the value from the file instead. The program goes on thinking it can sucessfully read and write to the HKLM registry while the system state is preserved for the other users. In a similar way calls to edit restricted files can be redirected to alter files stored in the users own profile.

    Is this possible to implement? Would it work?

    Media player metadata promotion - Wheres all my other stuff?

    ITunes is great, sure on Windows its a memory hog, is not very compatible with the media buttons on my keyboard and since I live in the UK I can't use the online store but still theres some cool stuff in there.

    I have a desktop PC and a Tablet. The desktop has a big hard disk and all my music file stored. Sometimes I want to listen to them via WiFi on the Tablet. I also have some music stored on the Tablet itself.

    The All-Microsoft solution Share the music folder on the desktop, load the files into the Windows media library on the Tablet, choose "All Music" and shuffle, listen away. Works fine until you walk away from the access point. Now I want to play just the local content, but how do I filter just that part of the library? When 90% of the tracks cannot be found using shuffle and skipping back and forth gets boring pretty quick.

    Apple solution. Load content into Itunes library, share over network with rendevous. From the Tablet I can just open Itunes and if I am in range it can see the shared files, if not then they are not in the library. It loads all the metadata as soon as I connect to the Itunes share so I can have complete access to search for tracks without having to add them to the local library. I press play and it streams the files over the network for me.

    The same thing happens if I connect an Ipod. The metadata database from the player is uploaded to Itunes and I can start searching and playing tracks.

    So where am I going with this? Well with Longhorn and WinFS I will be able to share metadata libraries between computers, not just music files but every other file as well. Looking at some Winhec2003 material it shows something called "Media Transfer Protocol" a new API for portable media player manufacturers to include which will allow the meta data information for all the files on the device to be instantly added to your local WinFS database as soon as you plug it in. With present players offering disks up to 40Gb and future ones likely to be larger this will be a great feature. It would also be pretty useful for any old external hard disk used as a backup device.

    Longhorn Portable Media Players

    Power Management or "To reboot or not to reboot, that is the question"

    I thought this was interesting from the PDC .Net Show

    From the .Net Show Episode 38 Transcript

    ROBERT HESS: What about you, Robb? What would you like to see Longhorn do to solve some of the problems your company has or just maybe some cool, consumer kind of issues too?

    ROBB MCLARTY: From a user perspective, I'd like to see faster and fewer reboots. I used to work in the telecom space; I actually used to design for voice switches which were very old machines but they worked like a charm. If one ever went down it would come up, another side would switch in immediately. And so I think that if I can say anything to Microsoft is, look towards other places in the technology realm such as telecom where they have had a higher bar for reliability and perhaps performance, and look to them for a lead. Because as a user it kills me to wait sometimes a minute to get my PC to boot up. That's not the case all the time, but I think that that would really improve the experience if it would just come up a lot faster. It's a simple thing but I think it's valuable.

    ROBERT HESS: The problem is there's so much stuff that's going on during boot up, whether it's reconnecting to the network or verifying your authentication or stuff like that. It's almost mind boggling that it takes as short a time as it does, but still it's frustrating when you turn your machine on and it just takes so long to happen. I know that that's a big problem that a lot of people.

    ERICA WIECHERS: Just be able to flick a switch.

    ROBERT HESS: Yeah. Yeah. So I think we're almost out of time now but I'd like to kinda get some quick feedback ...

    Heh, moving swiftly on...

    So I guess Longhorn isn't going to boot from cold super fast. I mean one of the benifits of having loads of memory available is you can store loads of data there instead of loading it from disk every time and improve system performance at run time. Accessing data from disk is orders of magnitude slower than memory, if memory is cheap and available to use you use it. A Longhorn era PC will likely have 1-2Gb or memory factory installed.

    So you cache the font glyphs, the WinFS metadata etc, loads of rich images and textures for the shell. But all that data has to be read from the disk at some point, sure you get better run time performance but you pay a penalty at boot time.

    A lot of work has already been done to improve boot speed, theres all the prefetching stuff in Windows XP that puts the files required for startup together on the fastest part of the hard disk. but still with more data to load, more code to run through it all takes a while, and Longhorn will likely be even slower.

    But who needs to reboot anyway? With the new power management options you should be able to put the PC into a sleep state that preserves the contents of memory while using minimal power and making minimal noise. Longhorn specifies ACPI state S3 as the default sleep state. PCs can wake from this state in mere seconds.

    My Tablets power management works really well. I only ever use standby and hibernate unless I am forced to reboot by software request. . I even installed the "Uptime" utility to measure how often I reboot and it is regularly over 3 weeks at a time.

    After a struggle I also manage to get this working on my desktop and I love it - when it works. I come up to the computer, press the power button, hear a loud beep and then my desktop reappears just as I left it some days before.

    However sometimes when I wake it, all I get is coloured squares all over the screen, and at the moment I can't even put the machine into standby without it locking up. I have a fairly old Abit KT7A motherboard so it probably doesn't have a fully complient BIOS, but I really hope that proper S3 support is something that is really tested by hardware, software and driver developers so that it "Just Works" out of the box.

    Some user education will be required. People are used to religiously shutting down their machines every day and restarting from cold every morning. People still do it with laptops that have perfectly working power management built in. Perhaps you should change the UI to emphasise sleep state over power off. It might also be a good idea to build in a backup power supply so that the computer can safely hibernate should someone unplug the cable.

    So long as there aren't endless patches to apply that still require reboots, and the OS is stable enough to run for extended periods without performance deteriorating, restarting from cold ought to become a thing of the past.

    Sorry about the formatting. I might come back and clean this up some more. Just wanted to get something out there.