Luckily I have already gotten my shot of awe yesterday. Beta 1 of Windows Vista certainly didn't come near such an experience. Sure the glass effect is nice, but it was not put to any good use in the shell. Internet Hearts (Avalon based) comes much closer, but it will not ship in Vista ;( I was in shock and awe after PDC 2003, but after Microsoft's failure to deliver on the vision presented there, I have grown to be more critical of things shown in demos.
Scoble is talking about something not leaked by Microsoft, and not foreseen by anybody yet. I certainly don't have a clue. Okay, I will stop speculating and will try to be patient for an additional 22 hours. If you know me, you know that patience is not one of my virtues 😉
But before I end. I have an even more critical note. I thought one of the prerequisites for teams to able to present at the PDC, is that they have bits to ship. At PDC 2003 this was true for Longhorn, WinFS, Avalon and Indigo. Unfortunately this shows that being able to ship bits, does not mean you are able to deliver a product within two years after shipping those bits. Now Mary Jo is predicting (and she is usually right) that Office 12 and Sparkle will not be in the bits handed out to the PDC attendees. I certainly hope she is wrong for once.
I was not sure if I was sitting on the right (as in not opposed to left, but as in correct 😉 side on the plane, so I asked a stewardess if she could find out at which side of the plane the view would be best. She was kind enough to ring the cockpit and told me the view was just about to begin on the other side of the plane. Luckily I managed to get to a window on the right side of the plane before the captain made a general announcement. From the window I was able to take a couple of very nice pictures. I wonder if the pilots can notice the weight shift when a significant number of passengers move to one side of the plane.
Now if only I could find a way to get a picture from the Compact Flash card in my camera to the Internet. My PocketPC only reads SD cards. The PDC terminal I am using now to type this post does have a USB port but I don't have a card reader with me. Please leave a comment if you can help me out.
BTW: @Frits, I managed to not noticably scare anyone during the 25 minutes walk to the convention centre.
Like Rene and Rob I have also made it safely to Los Angeles. A day later, because I am not going to a precon. I am traveling on a slightly smaller budget than my colleagues (I guess because I am from a poorer part of the company). Hey Rene, a shuttlebus from LAX costs only 15$! Fortunately my 60$ a night motel has free wifi, so this post comes from my Smartphone with wireless access somewhere on West 7th Street, Downtown LA. The Convention Center is in walking distance, but it seems to be ill advised for security reasons. But I'll take my chances during daylight. If anyone knows how I can create a hyperlink in a post on Community Server from a Pocket PC, please let me know by posting a comment.
Come and play WinFX Hearts! I am waiting for three more players to be able to start a game 😉
WinFX Hearts is the old Internet Hearts application with a new look. Adam Nathan upgraded the application to use "Avalon" and other .NET related technologies. But is also uses a lot of the old C++ code and Win32. It is actually a case study for the interop between Windows Presentation Foundation and Win32. More details can be found on Adam's blog. Here's one of his pictures:
What do you need to play? Well since it uses ClickOnce technology, managed code and Windows Presentation Foundation:
Beta 1 (or Beta 1 RC) of the WinFX Runtime Components
On my blog you can see a so-called PDC 2005 flair image. I have used my poor Photoshop skills to create two additional PDC 2005 flair images. It would be pretty lame if I would leave the "I'll be there" flair on during and after the PDC.
Photoshop's healing brush is great, but unfortunately there is no feature to magically match bitmapped fonts that are already present in the image. Or it might be there and I just could not find it in the myriad of options. Anyway, this is the best I could do in the limited amount of time I was willing to spend on it. Feel free to rip off these images or let me know if you have better looking versions.
The bits are baked for the preview of Language Integrated Query, according to Matt Warren. I almost feel guilty for taking a vacation (with hardly any Internet connectivity) immediately after the PDC. Installing the bits will have to wait until I return to the Netherlands.
Here's my first look on Beta 1 of WinFS. In this post I will focus on some parts of the infrastructure. I don't want to start with regurgitating the WinFS documentation, which seems to be in good shape for a beta.
Installing WinFS is a breeze. The MSI file is 40.5 MB in size. It's a no questions asked install that takes only a couple of minutes. The setup installs both the WinFS runtime, the SDK and the Visual Studio 2005 integration. A reboot is required after installation.
WinFS nestles itself in %WINDIR%System32WinFS. The SDK lives in %ProgramFiles%Microsoft SDKsWinFS. WinFS datastores reside in %SystemDrive%System Volume InformationWinFS.
The WinFS runtime consists of three services running in three separate processes:
WinFS.exe. The WinFS data store. Runs a Yukon derived database engine. 86 MB peak working set after reboot. After some fooling aroung this goes up to 120 MB. Just after the reboot this process has 4034 CLR classes from 79 assemblies loaded in 3 appdomains. This goes up to 6.985 classes from 123 assemblies.
WinFSSearch.exe. Runs the WinFS Search Engine. I guess a derivative of Index Server. 11 MB peak working set after reboot. Runs no managed code.
WinFPM.exe. The WinFS File Promotion Manager. 14 MB peak working set after reboot. Goes up to 35 MB. Has 13 CLR classes from 3 assemblies loaded in 1 appdomain after reboot. This goes up to 1.048 from 19 assemblies.
So WinFS still heavily depends on the .NET Framework. From a programmer's perspective this is good thing. I am still worried about the memory usage though. I've created just a couple of files and folders.
WinFS stores can be accessed using a new type of shares. A WinFS looks just like a regular share:
You can also see the stores appearing through a new shell extension for WinFS Stores under My Computer:
WinFS stores filestreams as ordinary NTFS files with a GUID as filename under the System Volume Information folder. Metadata is stored in a SQL Server database. Here is a screenshot of the NTFS backing store for the same folder you saw above. Note how the filesize and date modified are equal.
Some random observations:
I could only create a new store on my system partition C: and not on one of my other partitions.
WinFS does not support encryption and compression (yet?).
No support for Windows XP document metadata in NTFS alternate data streams (yet?). You can enter this data through the Summary tab on the Properties dialog box for a file. This is a shame. Old style metadata like this should be promoted and demoted to WinFS transparantly, because that's what WinFS is for.
WinFS does not support the Transacted File System (TxF) of Windows Vista (yet?).
On query, many of you have heard about Anders Hejlsberg’s work on Language Integrated Query – and the new ADO.NET functionality will plug directly underneath so that you can use the new query patterns on any entity data, including of course now WinFS Items.
I wonder if OPath is here to stay or just a left over from the PDC 2003 version that will go away once Language Integrated Query takes over.
According this blog post by Tom Rizzo, Microsoft has released Beta 1 this early to give people time to evaluate WinFS before the PDC. I am very curious how WinFS has progressed since October 2003. At that time it was a big memory hog.
This are the system requirements according to the release notes:
Microsoft® Windows® XP Professional with Service Pack 2 (SP2) or Microsoft Windows XP Home Edition with SP2.
A 2.0 gigahertz (GHz) Intel Pentium 4, or AMD Athlon, or compatible processor is required. 3.2 GHz or higher is recommended.
512 megabytes (MB) of RAM or higher is recommended.
An NTFS file system partition with 700 MB of free space is required to install and run "WinFS" Beta 1.
WinFS Beta 1 requires Beta 2 of the .NET Framework to be installed. The SDK can cooperate with Beta 2 of Visual Studio 2005.
I seem to qualify and I like living on the edge with alphas and betas so I am going to install it on my main Windows XP partition. This installation has survived several alpha and beta installs, so if WinFS drives it over the edge, so be it.
Tell tale signs that a reinstall is due:
A couple of months ago my Windows logo + E key combination inexplicably stopped working. It should fire up a new Explorer window but is now a no-op. All the other Windows logo key combinations work fine and Google hasn't helped me.
The programs menu starts to fill up the entire screen and it takes about 10 seconds before it appears the first time I click Start | Programs.
At about 40:30 minutes into the video Erik Meijer has an interesting exchange with Robert Scoble on VB. Here is a transcription of that part:
Eric: One of the things I want to stress is that there is a big spectrum from a completely dynamic language like IronPython to a completely static language like C# or C++. There is also an interesting kind of middle ground. The funny thing is that Visual Basic is right there in the middle, because it allows you to do static typing but it also allows you to do dynamic typing.
Robert: Isn't that where the marketing problem of VB is right now, because it doesn't stand for anything? There is not a religious thing that you can put a stake in the ground for. So you gotta use VB for this or that.
Eric: That will change, I will bet you.
Robert: (big laugh)
Eric: In a year's time people will point at VB as an example of modern language design. Especially because it allows you to span these two worlds between static and dynamic typing.
As you may know I am a fan of more relaxed typing but I hope I will not have to suffer the VB syntax to get these benefits. Anders Hejlsberg is always very concerned about putting things in a language, like C#, that will age it quickly. In my opinion one of the problems with VB is that it is already an aged language and as a result it struggles a bit with ambigous syntax. I admit a lot of that was cleaned up with the move from VB 6.0 to VB 7.0 (aka VB.NET 1.0) but not enough to win me over.
Also I love my angle brackets and case-sensitivity. If C# 3.0 will not get the cool new dynamic features of VB 9.0, I hope a language will arise which has both these features and the C-language family syntax.