Category Archives: windows

An interactive cookery book for your kitchen computer

You don’t have a kitchen computer? Me neither, but it seems inevitable that someone will figure out how to do this nicely and in a way that will work for a mass market. This is one proposal, using Windows Media Center. I like the concept, but this looks too expensive for most of us.

Years ago I worked in book publishing, and had vague plans for an electronic cookery book. I liked the idea of a book that could answer the question: “What can I cook with the ingredients I have to hand?” An interactive cookery book is better still. User comments and recommendations, corrections (apparently a large number of printed recipes actually have errors and don’t work if you try to follow them), greater variety, filter by requirements such as “vegetarian” or “low-calorie”, etc.

Still, I suppose the question is: why bother with a Media Center PC and a special application, when you can just use Google, print out your recipe, get it as grubby as you like while preparing your gourmet masterpiece and then chuck it away at the end? The recipe, that is 🙂

Technorati tags: ,

CodeGear abandons .NET Windows Forms?

Intriguing blog post here suggests that future versions of Delphi .NET will not support Windows Forms, the most widely used GUI library for .NET. Apparently the Delphi 2006 Windows Forms designer will not appear in Delphi “Highlander”. If you want to do GUI work in Delphi .NET, you will have to use VCL.NET, or else make do without a designer.

At first glance this looks like a mistake. The main problem is third party components. There are plenty around for Windows Forms, few for VCL.NET. OK, you can import a Windows Forms component and use it in VCL.NET, but it’s not ideal.

Then again, what is the future for Delphi .NET? Pretty uncertain, judging by what CEO Jim Douglas told me. If the speculation about Windows Forms in Delphi is correct, then anyone who invested in Delphi Windows Forms development has been left stranded. Might not the same happen to VCL.NET developers? And what are the implication for WPF, a much nicer GUI library than Windows Forms though immature and little-used at the moment? Developers hate this kind of uncertainty.

Performance expert becomes Visual Studio Chief Architect

Microsoft’s performance specialist Rico Mariani is to be Chief Architect of Visual Studio.

Mariani has earned huge respect for his detailed blog posts on performance issues in .NET. He’s recently posted some fascinating figures on Linq to SQL performance. From a technical point of view, it looks like Visual Studio architecture is in good hands.

Perhaps this also indicates that Microsoft is giving higher priority to performance. That’s needed. Most of my gripes about Windows Vista are performance related. Take the new Event Viewer, for example, just because I used it this morning. It takes 20 seconds to open on my system, during which time it displays “reading log” messages. This never happened with the old event viewer, which opens without any delay. The new one is much prettier, but at what cost? These small delays, repeated n times a day, consume a huge amount of expensive admin time.

That said, it’s puzzling to find a performance guy in charge of architecture. Still, Visual Studio is the first link in a chain that leads eventually to Windows, Office, and most third-party Windows apps. More speed everywhere, please.

Audio in Vista: more hell than heaven

Here is a contradiction. On the one hand, Vista audio is said to be much improved over audio in earlier versions of Windows. Certainly this was Microsoft’s intention. Larry Osterman’s 2005 post refers to several goals, including moving audio code out of the kernel to improve reliability, and making Windows a better platform for audio professionals. Osterman also describes the new audio API called WASAPI, which enables low-latency, and provides an illustration of how it fits together. Vista clearly has a much richer audio API than Windows XP. Here is an easy to understand overview, full of enthusiasm for its benefits.

Why a contradiction? Well, the actual, real-world experience of audio in Vista is mixed at best. Here is a typical post, complaining of stutters and pops in Vista audio which recall bygone days when PCs were barely up to the task. Surely playing 16-bit audio should be a breeze for today’s PCs?

I’ve had the same experience. I care about high-quality audio, so I installed a high-end Creative card, the Xi-Fi Elite Pro. I’ve been through all the drivers, from early betas to recent and supposedly production-ready releases. None have worked smoothly. I’ve had problems playing CDs, problems in Audacity where playback stutters or simply stops working, or a strange effect where the right and left channels go out of synch. I’ve had problems in Windows Media Player, where the responsiveness of the play, pause and stop buttons becomes sluggish, or playback fails completely.

I thought this might be primarily a problem with Creative’s drivers. There are certainly howls of anguish on the Creative forums. I also notice that if I switch to the motherboard’s integrated Realtec audio, reliability is greatly increased, though sound quality is worse. There are still occasional problems. Everyday use is fine, but a heavy editing session in Audacity causes glitches.

I decided to go pro. I removed the Xi-Fi, purchased a Terratec Phase 22, aimed at the pro market, and attached an external DAC. I chose the Terratec because it is a no-frills affair and has a Vista driver, unlike many of the pro audio cards out there. Happy now?

Well, no. The Phase 22 works OK using its internal DAC, but I’m having problems with the  SPDIF digital output. If I direct audio specifically to this output, by making it the default device, or selecting it in the preferences of an app like Audacity, it does not work. I can sometimes get it to work temporarily using the Phase 22 control panel, but it fails again as soon as I stop and restart playback. If I direct output to the Phase 22 internal DAC, then SPDIF output works, but it is always re-sampled to 48 kHz. Ideally I want bit-perfect output to the external DAC. For example, I’ve got a 96 kHz FLAC file. If I play this in Vista, it is output at 48 kHz.

In Windows XP, by contrast, it works perfectly. Ripped CDs are output at 44.1 kHz, my 96 kHz FLAC file is output at 96 kHz.

I also have problems with Steinberg’s Cubase SX. This works well in XP with the Phase 22, or with the internal card on Vista, but it does not work with the Phase 22 in Vista (I’ve not spent a lot of time trying to troubleshoot this). I called Terratec support. The guy didn’t bother trying to analyze the problem; he just said wait for a new driver.

Digging a little deeper

Maybe some of these problems are specific to my machine or the way it is configured. Maybe, and I look forward to your tips. But here are a few observations.

Pro audio vendors are very late with Vista drivers. I noticed this when looking for a replacement for the Xi-Fi. M-Audio, for example, has only patchy support, and some drivers are still in beta. E-Mu, Creative’s Pro range, is still on beta drivers. Bear in mind that Vista was released to manufacturing in November 2006, and that there were plenty of pre-releases.

Vista drivers, where available, may not be full-featured. Creative is a case in point. Its Vista drivers do not support decoding of Dolby Digital and DTS, DVD-Audio, 6.1 speaker mode, or DirectSound-based EAX effects.

General advice in the Pro community seems to be: stick with XP for the moment. I don’t see many posts from musicians raving about how much better Vista is for their work. I see plenty of posts about problems with audio in Vista.

What’s gone wrong? I don’t have a definitive answer, but can speculate a little. What we do know is that audio in Vista, and multimedia in general, is greatly changed. The links I gave above are just overviews. For a real drill-down, try the lengthy audio processing in Vista thread on the AVSForum, along with Creative’s explanation of audio in Vista. Note that a number of older APIs are now emulated on top of the new WASAPI. Emulation, as everyone knows, often means slow. Note also the two modes in Vista audio: shared and exclusive. As I understand it, in shared mode, Windows will always munge the audio at least a little. In exclusive mode this won’t happen, but according to this post, writing exclusive-mode drivers is exceedingly complex.

There’s also DRM to think about. Is the notorious protected media path getting in the way of faithful audio reproduction on Vista? Personally I doubt it, but it could be a factor.

Speculations

The bottom line is that Vista audio should be great, but in practice it is problematic for many users. Why? Here are a few possibilities.

1. Vista audio is great, but third-party vendors are a lazy bunch and haven’t bothered to do decent drivers. This is the view of many on the Creative forums, but I don’t buy this entirely. The failure to provide good drivers in a timely manner seems to go right across the industry. I am sure some vendors could have done better but I’m inclined to think there are other factors, such as perhaps…

2. Vista audio is so complex and different that third-parties had no chance of writing good drivers in time. This seems at least plausible. I still find it curious. I don’t doubt that the leading vendors of audio add-ons worked closely with Microsoft in the run up to Vista. Why then is support for the new operating system so limited and late?

3. Microsoft slipped up; audio in Vista does not work properly. It will certainly be interesting to see what effect Vista’s service pack 1 has, when it arrives later this year.

No conclusion

A year from now, we might all be saying Vista’s audio is fantastic. That will be after Vista SP1 and another year of driver development. Alternatively, we may know more clearly why it does not deliver. In the meantime, my own view is that Vista audio is more hell than heaven.

Technorati tags: , , , ,

Microsoft sets launch day for Visual Studio 2008, SQL Server 2008, Windows Server 2008

According to a press release just received, Microsoft has set 27 February 2008 for the “global launch” of its 2008 server and developer products:

Today at the Microsoft Worldwide Partner Conference, COO Kevin Turner announced that the company will jointly launch Windows Server 2008, Visual Studio 2008 and SQL Server 2008 in Los Angeles on 27 February, 2008. The event will kick off a “launch wave” of hundreds of events that Microsoft will host worldwide including training, virtual events and extensive online resources.

Windows Server 2008 has the IIS 7.0 web server, PowerShell command-line, and “Server core” which lets you install servers without any GUI components. Funny how Windows is getting more like Unix.

SQL Server 2008 has a new FileStream data type (a better blob), spatial and location data types, integrated full-text search, and a bunch of scalability and management improvements.

Visual Studio 2008 is the LINQ (Language Integrated Query) and WPF (Windows Presentation Foundation) release. WPF is already out there, but this has full design-time support. There is also ASP.NET AJAX. Visual Studio 2008 goes hand-in-hand with C# 3.0 and VB 9.0. The underlying CLR (Common Language Runtime) is still essentially 2.0, the same as for Visual Studio 2005.

Of course there are a zillion other new features, but I’ve picked out a few highlights.

Will this change our lives? LINQ is exciting, and so is WPF if anyone actually starts to use it, but of course we’ve known about these things for a while. Microsoft’s release cycle for new technology – from first announcement to full release – seems to stretch out for ages. Otherwise, this feels more like consolidation than any sort of new direction.

Microsoft on Visual Studio 2008 and beyond

I spoke to Prashant Sridharan, group product manager for Visual Studio. He told me that Visual Studio 2008, formerly codenamed Orcas, is set to ship by the end of the year, which probably means November or December. Among many new features, he highlighed LINQ (Language Integrated Query), which he classified as a productivity feature, new optimization and analysis tools, and scalability and performance improvements in Team System. SQL Server 2008 will be supported. We will also get designers for WPF (Windows Presentation Foundation), and in due course for Silverlight as well. Shridharan said that the final Silverlight designer might not make the initial release, but will be available shortly after at worst.

I am still puzzled as to why it has taken Microsoft a year from the release of .NET Framework 3.0, which was released with Vista, to come up with non-beta designers for WPF. Shridharan did not really explain the delay, but commented that .NET Framework 3.0 was really an interim release; Visual Studio 2008 will ship more or less simultaneously with .NET Framework 3.5.

I asked whether the direction established with the free Express tools is likely to continue. Shridharan says that it will, but that he feels the current Express line is too complex and confusing for its target novice users. The 2008 range will be similar, but it may be further simplified in subsequent releases. I am not sure how to decode this message. Is it really that the tools are confusing for novices, or is Microsoft giving too much away and wants to draw back a little? The complexity problem is real, but chopping out a few features will not improve it much; it would take radical re-thinking of the whole development approach – think PopFly, which I’ve just noticed also uses the Express word in its slogan, “Express yourself.” See also the note on commoditization below.

I also touched on the question of software factories, about which Jack Greenfield enthused at the architecture conference I attended in March. Will this be surfaced at all in Visual Studio 2008? Well, one thing which was apparent from my chat to Greenfield was that Microsoft’s software architecture strategy is vulnerable to the musical chairs of internal reorganization. Shridharan did say that the Patterns and Practices team is now integrated with the Visual Studio team, which should mean that more of its (most interesting) work is surfaced in Visual Studio itself. That sounds good; but what of Greenfield’s vision for how software factories can transform software development? It doesn’t seem to be one shared by Shridharan, who observed that all the Visual Studio designers are software factories and was vague about future developments in this area. That may mean he is the wrong person to talk to about this, or it might suggest a more conservative approach than Greenfield hopes for. In any event, it seems that it won’t be this release which delivers radical changes in the modeling or software factories area.

Finally, I asked Sridharan about the commoditization of development tools, and whether Microsoft might one day give away Visual Studio in order to promote its platform. He prevaricated a bit. “We’re not a profit centre in the same way as Office. We do make a sizeable chunk of revenue of out Visual Studio … you can have co-existence of free tools with a high-end product on which you drive revenue.”

All true, but the free tools are improving and the trend is in that direction. “We are I think close to an infexion point , but I don’t think we’re quite there yet, in terms of the commoditization around tools,” says Sridharan. “We’re very close. Within Microsoft that gets a lot of debate, and we’re investigating actively. You’re certainly not going to see anything happen in Visual Studio 2008, but over time, who knows?”

I broke Vista again

Last time it was Windows Search. This time it was the Start menu. I don’t know what triggered it, but today I noticed something was wrong. When I clicked the Start button, the top level items had all disappeared. There was only a single entry, for All Programs, above which was a large white rectangle whether the other items should have been. After a short while, the Start menu stopped working completely. Clicking the Start button or pressing Ctrl-Esc did nothing at all. I also noticed that the explorer process was using 50% of my CPU time. This probably meant that one of the two available processors in a dual-core box was entirely devoted to some sort of useless loop. On a single processor system Windows might have frozen completely.

I tried a few things. Restarting Windows, of course, and restarting the Explorer process. Didn’t work; same symptoms. I tried the Customize button in Start menu properties, and clicking Use Default Settings. Didn’t work. I tried using Systernals Process Explorer to discover what was causing Explorer to go into a spin. That gave me a stack for the errant thread, but it wasn’t especially illuminating, except that it looked unlikely to be the fault of a third-party context menu handler.

At this point I had to do some other work. Did you know that you can use Task Manager as a crude shell manager?  Just use File – New Task to start an application, and Alt-Tab to switch between applications. Who needs Explorer?

OK, it is just a little clunky. I had another go. Logged on as a different user, and everything worked fine. So it is something in my user profile. Eventually I found the culprit, a registry entry called ProgramsCache at HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage. Somehow this had got corrupted. When I renamed it, Explorer fixed itself. This registry key seems to store your list of frequently used programs. These are the shortcuts that appear above All Programs but below the pinned shortcuts on the Start menu.

Now, how come the Use Default Settings button doesn’t reset this registry key? Still, at least I can get back to work now.

CodeGear puts 64-bit on the roadmap

CodeGear has updated its Delphi Roadmap. Newly added is Delphi codename “Commodore”, set for Winter 2008, which is to include native 64-bit development. After that the company is promising to focus on multi-core/multi-threaded development.

What else is coming? Delphi “Highlander”, due later this year, is a belated update to Delphi .NET, will support .NET 2.0, and has a new .NET database called SQL Datastore (likely some sort of port of JDataStore). No word on WPF or LINQ though – CodeGear is still playing catch-up here.

Delphi “TiburĂłn”, due next year, will bring another long-requested feature: full Unicode compatibility in the Win32 Delphi language and VCL (Visual Component Library), along with parameterized types. C++Builder “Barracuda” will follow, bringing the same features to C++.

The really interesting stuff comes at the end. CodeGear is “researching” a number of areas includes development for mobile devices, Rich Internet Applications, and cross-compilation to other operating systems. All this is at the “sometime, never” end of the time scale, so don’t get too excited.

All the above will be welcomed by Delphi developers, though I fear most of the potential .NET market has already been ceded to Visual Studio.

It’s not a bad roadmap though. That said, to my mind the most critical issue for CodeGear is quality control. Poor quality is what spoilt the launch of Delphi for PHP earlier this year. I discussed this issue with the new CEO Jim Douglas and EMEA product Director Jason Vokes when I was researching a recent article for The Register, and got the sense that the familiar pressure of having to release product (ready or not) to hit particular financial quarters is still a problem. Still, Delphi 2007 was a smoother launch than Delphi 2006, and that was miles better than Delphi 2005, so leaving aside Delphi for PHP things are improving.

Office Open XML vs COM automation

Looking at the new Open XML API, introduced by Kevin Boske here, makes you realise that old-style COM automation wasn’t so bad after all.

There are two distinct aspects to working programmatically with OOXML. First, there’s the Packaging API, which deals with how the various XML files which make up a document get stored in a ZIP archive. Second, there’s the XML specification itself, which defines the schema of elements and attributes that form the content of an OOXML document.

The new wrapper classes really only deal with the packaging aspect. You still have to work out how to parse and/or generate the correct XML content using your favourite XML parser. And it’s a lot more complex then HTML.

By contrast, the old COM automation API for Office presents a programmatic object model for the content, and you don’t have to worry much about how the document gets stored – you just tell Word or Excel to save it.

The (very big) downside of the COM object model is that it depends on the presence of Microsoft Office. High resource requirements, version problems, Windows-only, and inappropriate for server apps.

We seem to have traded one problem for another. What Microsoft needs to provide is wrapper classes for the content, rather than just its packaging.

Technorati tags: , , , ,

How to speed up Vista: disable the slow slow search

What’s the biggest problems with Vista? Not the buggy drivers, which are gradually getting sorted. Not the evil DRM, which I haven’t encountered directly, though it may be a factor in increasing the complexity and therefore the bugginess of video and audio drivers. Not User Account Control security, which I think is pretty good. Not the user interface, which I reckon improves on Windows XP though there are annoyances.

No, my biggest complaint is performance. This morning I noticed that if I clicked the Start button and then Documents, it took around 15 seconds for the explorer window to display, fully populated. Doing this with Task Manager monitoring performance, I could see CPU usage spike from below 10% to between 55% and 60% while Explorer did its stuff.

Explorer gets blamed for many things that are not really its fault. Applications which integrate with the desktop, such as file archive utilities, hook into Explorer and can cause problems. I tried to figure out what was slowing it down. I opened up Services (in Administrative Tools) and looked at what was running. It didn’t take long to find the main culprit – Windows Search:

Windows Search in Services

You will notice that the above dialog shows that the service is not running. That’s because I stopped it. The difference is amazing. The Documents folder now shows in less than a second. When I click the Start button, the menu displays immediately instead of pausing for thought. Everything seems faster.

Looking at the description above, it is not surprising that there is a performance impact. The indexer gets notified every time you change a file or receive an email (if you are using Outlook or Windows Mail). The same service creates virtual folder views in Explorer, a poor man’s WinFS that should make the real location of files less important. Notice that the explanatory text warns me that by stopping the service I lose these features and have to “fall back to item-by-item slow search”.

I think it should say, “If the service is started, Explorer will take fifteen times longer to open and your system will run more slowly.”

Desktop search is a great feature, but only if it is unobtrusive. In Vista, that’s not the case.

This kind of thing will vary substantially from one system to another. Another user may say that Windows Search causes no problems. I also believe that the system impact is much greater if the indexer has many outstanding tasks – such as indexing a large Outlook mailbox, for example. Further, disabling Windows search really does slow down the search function in Explorer.

Turning off Windows search is therefore not something to do lightly. It breaks an important part of Vista.

Still, sometimes you need to get your work done. That fifteen seconds delay soon adds up when repeated many times.

In truth, we should not be faced with this decision. Microsoft should know better – it has plenty of database expertise, after all. There’s no excuse for a system service that slows things down to this extent.

By the way, if you have understood all the caveats and still want to run without Windows Search, until Microsoft fix it, then you must set the service to disabled. Otherwise applications like Outlook will helpfully restart it for you.

Update

See comments below – a couple of others have reported (as I expected) that search works fine for them. So what is the issue here? In my case I think it is related to Outlook 2007, known to have performance problems especially with large mailboxes like mine. But what’s the general conclusion? If you are suffering from performance problems with Vista, I recommend experimenting with Search – stop and disable it temporarily, to see what effect it has. If there’s no improvement, you can always enable it again.

It strikes me that there is some unfortunate interaction between Explorer, Search, and Outlook; it’s possible that there are other bad combinations as well.

Technorati tags: , , ,