Category Archives: windows

Ubuntu Desktop not used in business

I got a telling reponse from Canonical when I approached its Public Relations team looking for case studies of businesses that had switched from Windows:

… we find that the businesses using Ubuntu tend to use the server edition right now and so a windows comparison is not relevant. Ubuntu desktop is largely in the consumer space not business.

It hardly comes as a surprise to discover that most businesses use Windows, but I did think there would be a few examples. I’ve been running Ubuntu, mainly on my laptop, and find it perfectly solid and useable. In fact, it is possibly better suited for business than for consumers. The problem with Linux is that you always seem to run into one or two problems that require intricate, non-obvious steps to resolve. Well, they are obvious to Linux geeks, but not to the rest of us. In a business this can be mitigated by standardizing the hardware and providing a channel of support, but home users are more likely to get frustrated. Furthermore, in my experience home users install a greater variety of software. They get CDs from ISPs, or with their new scanner or camera, and expect them to work. They want to play games and enjoy DVDs. All these things can be problematic for home users, but are less relevant and more easily managed for business users.

I don’t mean to minimize the problems facing anyone switching to Linux. In the business world, that includes custom or niche software that is likely to be Windows-only. Every small business I encounter seems to have an Access or VB application that has become business-critical. Another snag is doing without Microsoft Office. Yes, Microsoft Office is over-priced (unless you are a home or academic user), but it is on the whole better to work with than Open Office, and if you are bashing out documents all day that makes a difference (I make an exception for Outlook 2007, which is infuriatingly slow). There is also the thorny problem of document compatibility, recently made worse by the format wars.

Another factor, under-appreciated by the media, is that Windows has a mature and very comprehensive administrative infrastructure for managing any number of desktops. For larger organizations this makes Windows the obvious choice.

Therefore I was not expecting very many examples, but I thought there would be one or two case studies, particularly as Canonical offers a table of prices for desktop support. I doubt many home users are taking this up. Of course Linux is mainly popular on the server, but Ubuntu has a particular desktop focus.

I am hoping that someone will read this blog and say, “this is nonsense, we use Ubuntu in business”. If that is the case, please contact me, especially if you are in the UK, and willing to be quoted. I’d also be interested in hearing from those who tried and failed, or explored the possibility and gave up.

Technorati tags: , , , , ,

Scott Guthrie on .NET futures

I’ve posted my interview with Scott Guthrie, from the UK Mix07. It covers topics including LINQ, Silverlight, the work with Novell/Mono on Moonlight (Silverlight for Linux), ASP.NET futures including MVC, and offline web applications.

Guthrie is a General Manager at Microsoft, responsible for most of the development teams working on .NET. He did some excellent presentations at the UK Mix, intermingling live coding and demos with slides, talk, and dealing with ad-hoc questions – not an easy task.

There were several things I found interesting in his answers to my questions. On a technical level, the way Microsoft’s various implementations of the Common Language Runtime share code is intriguing. In particular, I was fascinated to learn that Silverlight and the desktop CLR are built from the same code tree. There is a second code tree for the CLR, but it is for the Compact Framework, not for Silverlight. The implication is that the performance of Silverlight and its compatibility with other .NET code should be pretty good.

How then is Silverlight much smaller than the desktop CLR? The reason is that most of the Framework library is missing. That’s the trade-off.

Another point of interest is the strength of Guthrie’s reaction when I asked about offline web applications, and Microsoft’s platform versus other approaches such as Google Gears and Adobe AIR. When a spokesperson takes the trouble to trash the competition, it is often a sign of concern.

Want a job? Learn Silverlight, not WPF

I keep an occasional watch on technology trends in the UK by the haphazard technique of browsing to Jobserve.com, bashing in some developer platforms, and seeing how many vacancies come up. I last blogged about this in August 2006, and before that in January 2006, March 2005, and August 2004.

Real-world job vacancies trail the conversation we have about cutting-edge web platforms by some margin. To give you an idea, in March 2002, three months after the first official release of C#, Jobserve had just 153 vacancies for C# developers, compared to 1894 for VB and 2092 for Java. Today, C# has 2933, VB and VB.NET 1906, Java 3741.

But that’s not what caught my eye when I looked this morning. I searched first for WPF, and then for Silverlight. WPF went final in November 2006, at about the same time as Vista was released to manufacturing. That’s nine months ago, but Jobserve has only 28 jobs which specifically mention WPF.

Silverlight 1.0 was released earlier this month. It’s a great video player, but many developers are waiting for Silverlight 1.1, due sometime in 2008, which supports .NET programming as well as multimedia. Component vendor Infragistics told me at the UK Mix07 that it is not bothering to release components for Silverlight 1.0, but has lots in the pipeline for 1.1. Keen to work with Silverlight in the UK? Jobserve has just 30 jobs to choose from.

The numbers are tiny (thought let me note, even CodeGear’s long-established Delphi can only muster 93 jobs), but I’m intrigued that Silverlight is actually a hair ahead of WPF in this context. Tomorrow it may be different; but it accords with my own assessment. I like WPF; it’s a better API than Win32 for coding a GUI. But it is a hard sell to developers of those boring business apps that make up the bulk of software development today. Unless you are making big use of visualization, it’s likely you will be more productive with tried-and-tested Windows Forms, or native Win32 code.

Silverlight is different. It is an immediate win if you have desktop .NET apps which you would like to convert to web applications, or ASP.NET apps for which you would like a richer client. Why Silverlight and not WPF? For one thing, cross-platform, essential for public web applications and very useful internally as well, with all those Mac-using designers (and now the CEO wants a Mac too). For another thing, lightweight deployment. When you install or upgrade the .NET runtime on a Windows box, you hold your breath as it updates a gazillion system components and hope that no bizarre error code appears. When you install Silverlight, you just click OK to a browser dialog, and it works.

The contradiction in the title of this post is that both Silverlight and WPF use XAML, so in learning one you are to some extent learning the other. Nevertheless, I now believe that Silverlight will be a more significant platform than WPF, and I’ll be interested to see if future job vacancies back up that prediction.

Update: Ryan Stewart has some US figures which are more positive for WPF, though again the absolute numbers are small. Interesting to watch.

Tried Vista speech recognition yet?

I had not, but gave it a try today. It is almost a hidden feature, but if you go into Control Panel and double-click Speech Recognition Options, it all starts happening.

I have a few advantages. My microphone is of high quality, I use an external mic preamp, and my office is relatively quiet. After half an hour of so going through the tutorial (which also does basic voice training), I was ready to go. I have no complaints about the ease of setup. Once speech recognition was enabled, I simply opened Word and started dictating.

There are two ways to look at speech recognition. You can consider it an accessibility feature for users who prefer not to type, for whatever reason. For example, RSI is a common problem for writers and computer programmers. Alternatively, you can consider it as better way of entering text. After all, most of us can speak faster than we can type. Ideally I would like to use it to assist with transcribing interviews.

I had a simple question. Can I get a chunk of text into Word more quickly with speech recognition than with typing? To try this out, I used a few lines that are indelibly imprinted into my brain, since they make up the first stanza of Wordsworth’s poem Daffodils which I learned at school.

The test

First, I typed it. It took me about 25 seconds, which means I type at over 50 wpm (about 70 wpm according to this test).

Next, I tried speech recognition. I tried it several times, to give it the best possible chance. I found I could do the initial text entry in around 15 seconds, but correcting errors took longer. The best I managed for the entire stanza was about a minute – twice as long as typing.

The problem is that certain words and phrases seem to be difficult for speech recognition to get right, and correcting these takes so long that it wipes out any gains from the easy ones. In my case, the line that Vista struggled with most was this one:

That floats on high o’er dales and hills

As I repeated the experiment, I got different variations:

That floats on high powered tables and hills

That floats on high on the walls and hills

That floats on high ideals and hills

The speech engine will always try to make sense of what you say using its dictionary and who-knows-what clever algorithms, but this can work against you. In this case, it is really just the the word “o’er” that trips up the engine. If I dictate instead:

That floats on high over dales and hills

it usually transcribes perfectly. Unfortunately, in trying to make sense of “o’er”, it usually messes up several other words as well.

Does this mean that a poem with elided text is just a difficult case? Possibly, but unfortunately technical writing seems to pose the same kinds of problems. Everything is fine for a line or two, and then a difficult word or phrase causes garbage to be inserted into your text. Speech correction in Vista is nicely implemented and works well, but it takes time.

Pros and cons

I don’t mean to put you off. I’m actually impressed with Vista’s speech recognition, though it is early days and I’m not sure how well it compares to alternatives like Dragon NaturallySpeaking. I could definitely get some work done, and considered as an accessibility feature, it seems pretty good. Unfortunately, it doesn’t seem quite good enough to be useful even to a proficient typist – at least, not without more time spent voice training and learning to get the best out of it.

Technorati tags:

Microsoft to support PHP in Expression Web 2.0

The closing session of UK Mix07 was a “Sneak peeks” in which we were shown a variety of snippets of varying degrees of interest. One was a brief glimpse of Expression Web 2.0, Microsoft’s web design tool, showing “PHP script” on the File – New menu.

The extent of this support was not discussed. The minimum would be some level of syntax highlighting, which would be trivial to implement, so this may not amount to much. Still, it is interesting as a sign of the times. When I spoke to some folk from Zend a couple of months ago, they emphasised their IIS support and good relationship with Microsoft, so it looks as if both sides want to play nicely together.

Microsoft Silverlight vs Adobe Flex

I am at Mix07 in London. Having looked in some detail as Adobe Flex and AIR in recent weeks, it is interesting to compare and contrast. I am looking primarily at the developer aspect, rather than video or multimedia.

Silverlight is not a direct competitor to Adobe AIR, in that it does not run outside the browser (though I guess you could do something funky with an embedded browser control). It is a closer competitor to Flex, though there is no exact equivalent to Adobe LiveCycle, which is not needed for Silverlight. However, the two technologies do have a number of parallel features, including the following:

  • Cross-platform runtime – Windows, Mac and Linux (the last a recent Microsoft announcement)
  • XML language to define the GUI
  • Embedded video capability
  • Timeline for animations etc.
  • Strongly-typed, object-oriented language with just-in-time compilation
  • Easy access to XML web services
  • Dedicated design tools (Expression Blend for Silverlight, Flash IDE for Flex and AIR)
  • Dedicated developer tools (Visual Studio for Silverlight, FlexBuilder for Flex and AIR

So what are the differentiating factors? There are some obvious differences. For example, Flash 9.0, and therefore Flex, runs on Windows 98; Silverlight 1.1 will not. On the Silverlight side, there is the advantage of language choices: Silverlight allows Visual Basic, C#, Python or Ruby. Flex has only Actionscript 3.0.

The real difference

These technical differences are dwarfed by cultural factors. Microsoft’s advantage is the comfort factor of Silverlight for developers already familiar with Visual Studio and C#, and perhaps beginning to look at WPF. Microsoft does strong tools, and FlexBuilder does not currently come close. This will help establish Silverlight for enterprise development. With increasing numbers of Macs popping up incoveniently in Windows networks, Silverlight could soon find a role. Similarly, for ASP.NET developers who want to give users a richer client, Silverlight is a compelling option.

Adobe’s strength is that it already has a strong hold on the designer community. While the Expression products are being well received, they would have to be extraordinary to win substantial numbers of switchers from Flash, Dreamweaver, Photoshop and so on. Adobe also wins on deployment. Flash is well established, whereas Silverlight is new; it will be especially hard for Microsoft to place it on non-Windows mobile devices.

I don’t see either of these technologies failing. I suspect Microsoft is introducing Silverlight in time to stem a bleed of .NET developers to cross-platform development with Flex and perhaps AIR, but I would be surprised to see large numbers of defections from Adobe’s camp.

Interesting questions

A few questions to which I do not yet know the answer:

  • How does the performance of Microsoft’s IL + JIT compiler compare with Adobe’s Actionscript 3.0 + JIT compiler? On Windows and on other platforms?
  • Adobe’s AMF protocol is more efficient than XML for data delivered via web services. Is this a significant performance benefit?
  • MXML vs XAML. My impression is that WPF is more expressive, but I have not researched it sufficiently to back this up. I would be interested in comments.

As ever, your thoughts are welcome.

Windows Live: why doesn’t SkyDrive integrate with Office?

Dare Obasanjo blogs about Windows Live, and refers us to get.live.com where you can sign up for a number of free services.

I think Spaces is great, except that performance seems sluggish (though it’s getting better), and Live Writer is my blogging tool of choice. So there’s stuff here I like, but what is of most interest to me is Sky Drive. I’m a big fan of web storage, because it means you can work from several machines and everything stays up-to-date. It is also an effective off-site backup. Currently I use a subversion repository on my own site for this. I also use Amazon S3. Both are excellent, but saving and loading documents is not quite a seamless process. To see what I mean, consider the steps you would have to explain to a non-expert user. Then compare this to what most of us do every day: open a document, work on it, then hit save.

The puzzle is why Microsoft has not built this feature into Office. This is meant to be an advantage of the Microsoft platform: a single vendor stack in which everything plays nicely together (Apple does this better, of course).

One of the first things I did with SkyDrive was to copy an Excel file into it. That works fine, either through browser upload, or by drag-and-drop if you install the upload ActiveX control. Just for fun, I then went back to SkyDrive and “opened” the Excel document from it. What this really does is to download the file to a temporary location, and opens it from there. Everything seems fine until you hit save. Then you get:

Your changes could not be saved to ‘somesheet[1].xls’ because of a sharing violation. Try saving to a different file.

Click OK, and then I get a weird message about a file with a meaningless name having the wrong extension – because apparently Excel automatically saved to another temporary file without an extension. Bizarre behaviour.

Ok, I admit, I knew this would not work. But isn’t this how it ought to work? I think this would be a killer feature for Office and Windows Live: foolproof open and save from/to web storage.

I also think Office should cope better with what is, from the user’s perspective, a rather obvious sequence of steps.

Zoho has a plug-in that nearly works right, though it has two major flaws. One, it did not work properly for me at all, but just threw errors on saving. Two, it converts Office into Zoho’s online format. I understand why this is the correct thing for a Zoho plug-in to do, but I’d rather keep documents in their native format and forego true online editing.

Silverlight is released for Windows, promised for Linux

Microsoft’s Silverlight is now fully released. Scott Guthrie’s blog has all the details, including what to me is the biggest news: an official partnership with Novell and Mono to support Moonlight, an implementation of Silverlight for Linux. Microsoft will supply the media codecs, while Novell/Mono will do the rest.

This is a major step forward for Microsoft. I have been blogging for years about how Microsoft would benefit by giving official support to Mono, and therefore promoting the .NET platform. Of course it is a two-edged sword. Mono is a competitor, and helps companies switch from Windows to Linux. On the other hand, Silverlight has no chance of broad adoption unless it is taken seriously as a cross-platform runtime, and supporting Linux will help a great deal with that.

Silverlight 1.0 does video, multimedia and vector graphics, but does not include the .NET runtime. This is to follow in Silverlight 1.1, which will therefore be of more interest to developers.

I see quite a bit of misunderstanding of how Silverlight relates to the full version of .NET. As I understand it, even Silverlight 1.1 makes no use whatsoever of the full .NET runtime or WPF (Windows Presentation Foundation). It is entirely self-sufficient, so you can run Silverlight 1.0  or 1.1 on a Windows box which does not have .NET installed.

Technorati tags: , , ,

MFC not dead – “massive update” planned

Herb Sutter refers to a comment by Bill Dunlap, a product manager for Visual C++, on the future of MFC:

MFC – we are working on a huge update to MFC that should knock your socks off.  I can’t tell you too much right now, but this is closer than you might thing <g>.

Intriguing, since with ATL and then the whole .NET thing, including managed C++ and C++/CLI, I’d assumed that MFC was all-but deprecated.

I can see the value of this for maintaining existing projects, but for new ones? I like this comment by Dan Shappir:

The only reason I can see for doing significant UI development in C++ is for cross-platform support, and in that case I would probably choose Qt.

Actually I can think of a few other reasons, such as performance and compatibility with older versions of Windows, but then again why not use Delphi?

Talking of Delphi, it’s interesting that according to Shappir’s post referenced above, Microsoft’s Visual C++ team had similar feedback to Borland/Codegear:

Damien Watkins, a Program Manager on the Visual C++ team, stated quite frankly that the feedback they have received from C++ developers is that they prefer to use C# for developing managed code for .NET. So what is the new positioning for C++? Apparently it’s:

  • A strong emphasis on developing unmanaged, native applications
  • Tool for achieving interop between existing native code and new managed code

I guess this ties in with renewed investment in MFC.

Technorati tags: , , , , ,

Tip of the day: Robocopy is in Vista

What’s Robocopy? It’s a command-line utility that is part of the resource kit for earlier versions of Windows (so non-Vista users are not left out). It should be called “Sane copy”, because by and large it does the obvious thing, whereas most copy utilities do the non-obvious thing. For example, let’s say you have a directory full of files on your desktop PC, and you want to back them up to another drive. So far, nothing special. A few days later, you want to do the same thing again. Most copy utilities will start asking questions about whether you want to merge folders, overwrite files, and so on. Going through this file by file is impossibly tedious, so you’ll probably ask for the whole lot to be overwritten. Now your very smart computer churns away (if there is a lot to copy) replacing perfectly good existing files with new copies, for the sake of just a few files that have actually changed. What you really want is to copy only those files that have been changed or added.

Enter Robocopy. Open a command prompt and type:

robocopy c:\mysourcedir d:\mytargetdir /e

The /e switch asks for all subdirectories to be copied, even if they are empty. Robocopy will only copy the changed files, and gives you a report showing how many files were copied and how many were skipped.

There is one possible flaw in this arrangement. If you deleted a file from the source folder, then copy it over an existing backup, the target folder will still contain the old file. This might not be what you want, especially if you are a developer and this is source code. Old files hanging around are a bad idea. Robocopy has an answer for this too:

robocopy c:\mysourcedir d:\mytargetdir /mir

This switch asks for targetdir to be a mirror of sourcedir, which means files in the target which no longer exist in the source will be deleted. No fuss. Obviously this presumes that you want them deleted. Disclaimer: don’t blame me if this is not the case.

If you can’t hack the command line, there’s a Robocopy GUI you can download. Follow the link and download the UtilitySpotlight2006 exe at the top of the page. This is a geeky GUI but has some neat time-saving features.

For those with a lot of files to back up – like, say, a 300GB media library – Robocopy or an equivalent is a huge time-saver. It’s actually got a host of additional features that I haven’t mentioned here – why not type:

robocopy /?

and take a look.

Technorati tags: , , ,