Category Archives: software

Hyper-V in Server 2008 RTM doesn’t like non-US locales

Hyper-V is Microsoft’s whizzy new virtual server manager, which uses new virtualization features in recent Intel and AMD processors to support more efficient virtual machines. Intel’s extensions are called Intel Virtualization Technology (Intel-VT), formerly code-named Vanderpool, while AMD’s extensions are called AMD Virtualization (AMD-V), formerly code-named Pacifica. Here’s what Intel says:

How does Intel Virtualization Technology eliminate the gaps in current virtualization solutions?
Three ways. First, the technology provides a new, higher privilege ring for the VMM. This allows guest OSs and applications to run in the rings they were designed for, while ensuring the VMM has privileged control over platform resources. It eliminates many potential conflicts, simplifies VMM requirements, and improves compatibility with unmodified legacy OSs. Second, handoffs between the VMM and guest OSs are supported in hardware. This reduces the need for complex, compute-intensive software transitions. Third, processor state information is retained for the VMM and for each guest OS in dedicated address spaces. This helps to accelerate transitions and ensure the integrity of the process.

Hyper-V is a good reason to use Server 2008 x64 (it is not supported on x86), but it is not done yet. Microsoft has shipped a beta of Hyper-V in the release build of Server 2008, and is promising a full release within 180 days from now. It is not something to use casually – Paul Thurrott quotes Microsoft’s Bryon Surace as saying:

Conceptually, it jacks up the OS and slides in the Hypervisor underneath. So we clearly don’t want that installed by default on servers that won’t be running Virtualization.

So don’t even think about using it for real just yet. When it does get finished, Microsoft recommends using Server Core rather than the full Server 2008 as the host OS. However, Hyper-V is interesting to developers as well as admins, so I wanted to take a look. Unfortunately, after I added the Hyper-V role to the server, the Virtual Machine Management Service failed to start, presenting the gloriously obscure message:

The service changed to an unexpected state.

This problem has been mentioned by others. Apparently the fix is simple but extreme: re-install Server 2008 using the English (United States) locale. Can’t you just change the locale in your existing installation? It didn’t work for me, and Microsoft’s Ben Armstrong says, “It is not sufficient to change the locale after OS installation.”

Once Hyper-V is installed, you can change the locale to what you want and it will still work, though I don’t know if this is supported.

Annoying. Yes, it is mentioned in the release notes – but what if Hyper-V beta had required you to set a non-US locale at install time. Do you think Microsoft would have flagged this problem more prominently?

Technorati tags: ,

Vista SP1 shares same core as Server 2008

I attended a Server 2008 briefing yesterday and it was mentioned that Vista SP1 and Server 2008 share the same core. This is why Server 2008 declares itself as being Service Pack 1 even on its initial release. This isn’t news but I thought it worth a post since I’m not sure that the close relationship between Vista and Server 2008 is all that well known. If Server 2008 wins a decent reputation, which I suspect it will, then it may even help Vista’s tarnished image a little.

When Windows 2003 came out, some enthusiasts ran it as a desktop OS, because it ran better than XP and application compatibility was pretty good. There won’t be any point in doing this with Server 2008. Same code.

Technorati tags: , , ,

blist: online database, Flash application, beautiful but flawed

Today I was able to try out blist, an online database manager. This is a very different affair from Amazon’s SimpleDB. The focus is on usability, and it is aimed at end-users rather than application developers. It’s worth viewing the demo video to get an idea of what it does.

The UI is polished though a little cluttered. I found it easy to create my first list, by dragging column types from a palette to a grid. I made a list of programming languages with a rating for performance (please ignore the actual ratings).

The results looked stylish and I played around with a few other features. I found I could easily sort by a column, or create a filter/query called a lens. I created a lens called “Fast languages” limited to those with 5-star performance which worked fine.

I noticed that one of the column types is blist – that is, a blist within a blist. That looked interesting, so I created a sub-list called Implementations, with three columns: Name, Website and Open Source. The website column shows a lovely preview of the actual site when you hover over it.

Next, I tried to stress it a tiny bit. I created a lens to show me just the Microsoft languages. In other words, I wanted to filter on a value in the blist within a blist. The first time I tried, it didn’t work at all. I still saw all the languages. I tried again, and this time the filter worked, but didn’t display the fields in the sub-blist even though I had specifically selected them. The application also got dramatically slower, even though my dataset is tiny. I’m not sure how I would do more advanced queries, like “Show me the languages and all the implementations where at least one of the implementations is from Microsoft” – actually, I thought I might get this anyway; I wasn’t sure what to expect.

This is an early beta, so I’m not complaining. Still, it illustrates a point I wanted to make, which is that databases have an inherent complexity, and however stylish you make the user interface, the complexity tends to come back to bite you later. In my example, there is an obvious problem with repeated data in the Implementations field. If one of the companies changes their website, I will have to make repeated changes, or do search-and-replace, because the data is not normalized. I am not sure how blist could do this better, though I don’t actually like the idea of columns that are really tables, and would rather have a proper relational database.

Historically, highly usable database managers like Excel, Access and FileMaker tend to foster badly-designed and error-prone databases, if pushed beyond their limits.

Still, blist does look beautiful, and it is also an interesting example of a web application done 100% in Flash.

There are intriguing icons for features including transactions, users, and lens manager. There are also social or team features like discussions and reviews, which are not enabled yet. I presume that there will eventually be some web service API into blist, otherwise it will be of limited value.

I am not sure what the business model is, or whether blist is intended primarily as a business tool, or a social web site where users will place quick, fun and controversial lists to attract debate. The job vacancies mention a host of technologies including SOAP, REST and JSON (hope for web services), Ruby on Rails, JavaScript, Linux/Unix, Perl and Python; and include little exercises so you can prove your mettle.

Microsoft and Yahoo: it’s all about the ad platform

Just got off the conference call. One thing that is clear is that this bid is primarily motivated by the desire to build a bigger advertising platform. Microsoft talked about Google’s 75% market share in search advertising and the implication is that Microsoft is worried that it may never be able to build its Live brand into a serious competitor.

Microsoft says the offer is worth 44.6 billion dollars, split 50% cash, 50% equity, representing a 62% premium on yesterday’s closing price for Yahoo shared. It would like to complete the deail in the second half of 2008.

Ray Ozzie talked about information portals, the pivotal role of search, and plans to transform search from its current “10 blue links”. He mentioned natural language search and social platforms. He also mentioned Yahoo’s developer platform and said that Microsoft would extend it.

In answer to a question about the future of the MSN and Live brands after a successful acquisition, Microsoft talked about “a thoughtful process” involving a joint leadership team – Microsoft and ex-Yahoo. Nobody asked about PHP vs Window server technology but I suspect the answer would have been the same.

My initial reaction: I can see the sense of it though I doubt integration would be easy. I do think there is a cultural divide between Microsoft and Yahoo that would not be easy to bridge, though it is easier to envisage now than it would have been a couple of years ago. Reason: a formidable common competitor, and work Microsoft has done on open source and cross-platform technologies, such as supporting PHP on IIS, and creating Silverlight.

Will Yahoo bite? Will it have a choice, given that Yahoo itself is struggling and doesn’t have Windows+Office business to fall back on?

Currently Yahoo says:

The Company said that its Board of Directors will evaluate this proposal carefully and promptly in the context of Yahoo!’s strategic plans and pursue the best course of action to maximize long-term value for shareholders.

Not much, but not an instant rejection.

How to speed up Windows Vista: official and unofficial tips

Microsoft has published an article on speeding up Vista, aimed at general users.

It’s not too bad. Here’s the summary:

  • Delete programs you never use
  • Limit how many programs load at startup
  • Defragment your hard drive
  • Clean up your hard disk
  • Run fewer programs at the same time
  • Turn off visual effects
  • Restart regularly
  • Add more memory
  • Check for viruses and spyware
  • Disable services you don’t need

Still, it’s a bit scattergun. I prefer a two-stage approach to improving performance (same applies to a single application):

  1. Find out what is slow
  2. Speed it up, or leave it out

For example, the benefits of adding memory tail off after a certain point. Task Manager will tell you to what extent RAM is slowing down Vista. Further, adding memory beyond 3GB is pretty much wasted on 32-bit Vista, since the system can only address 4GB, and the BIOS plus devices will use a lot of the 4th GB address space. That said, a system that is critically short of RAM (in other words, constantly swapping out memory to the hard drive) is in my opinion broken and unusable. Adding RAM in such cases delivers huge rewards.

Uninstalling programs gives little performance benefit if they are not running (unless disk space is limited). The aim is to reduce the number of running processes, not entries in the Start menu.

Vista defragments your drive regularly, by default. The benefits are often rather small, so it would be equally valid to suggest removing it from the schedule, or scheduling it to run less frequently.

The advice to restart regularly needs examination. Yes, a reboot can fix a sluggish machine. But it shouldn’t be necessary, and I recall that keeping Vista always-on was intended to be a benefit of the OS. Yes, here’s a quote from Power Management in Windows Vista [ppt]:

  • Windows Vista promotes the use of sleep as the default off state

In the right circumstances, Vista can run for ages without any problem. I’ve actually had Media Center (Vista Ultimate) run for several months without any issues; though this kind of thing is not very green so that’s another reason to do regular switch-offs. Still, to my mind “restart regularly” is a symptom of some problem that should be fixed.

Turning off visual effects is reasonable advice, though once again it may not yield much benefit. I tried it on my system and was surprised how little difference it made. Reason: I am running with Aero and a decent-ish graphics card, and hardware acceleration seems to handle the visual effects rather easily. Once again, if it’s not the thing slowing you down, then removing it won’t speed you up. You can test this quite simply, though it is tedious. Try it both ways. Did it make a difference? Measure it if possible.

It really is worth using the built-in tools, like Task Manager and the Reliability and Performance Monitor, to see which processes are grabbing lots of RAM and CPU. One of the good things about Vista is that such tools are easy to find. Click Start, type “reliability”, and click the link.

I’d also like to see mention of some favourite candidates for slowing down Vista:

1. Outlook 2007

2. The indexing service

3. Anti-virus software

4. Windows Defender

Hmmm, at least three of these are from Microsoft. Perhaps they are too embarrassing to mention.

Finally, I suspect disk performance is a big factor in real-world Vista speed. The reason is that many apps are very talkative when it comes to disk access. Here’s something to try. Go along to the Systernals site and download process monitor. This gives a good picture of what the actual processes on your Vista box are up to. Note how many events are occurring, how many of them involve file i/o, and which processes are responsible. You will also discover a large part of the reason why Outlook 2007 is so slow.

PS Another article, also just published, has good coverage of swap files and ReadyBoost.

Polarisation

Slashdot takes the IBM line:

At this point nobody has the vaguest idea what OOXML will look like in February, or even whether it will be in any sort of stable condition by the end of March. ‘While we are talking about interoperability, who else do you think is going to provide long term complete support for this already-dead OOXML format that Microsoft Office 2007 uses today? Interoperability means that other applications can process the files fully and not just products from Microsoft. I would even go so far as to go back to those few OOXML files you have already created and create .doc, .ppt, and .xls versions of them for future use, if you want to make sure you can read them and you don’t want to commit yourself to Microsoft’s products for the rest of their lives

Alexander Falk, CEO of Altova, which makes a popular Windows XML editor:

I see the ISO vote as a non-event. In my opinion, the real-world adoption of OOXML is primarily driven by the ubiquity of Microsoft Office much more than any standards body…In terms of actual customer inquiries regarding need for ODF, we have not seen any interest from our customers…My advice to dev shops is to start working with OOXML as early as possible.

Technorati tags: , , , ,

Escaping the Adobe AIR sandbox

Adobe’s Mike Chambers has an article and sample code for calling native operating system APIs from AIR applications, which use the Flash runtime outside the browser.

I took a look at the native side of the code, which is written in C# and compiled smoothly in Visual Studio 2008. The concept is simple. Instead of launching an AIR application directly, you start the “Command Proxy” application. The Command Proxy launches the AIR application, passing a port number and optionally an authorization string. Next, the Command Proxy creates a TCP socket which listens on the specified port. The AIR application can then use its socket API to send commands to the Command Proxy, which is outside the AIR sandbox.

It’s a neat idea though Microsoft’s Scott Barnes gave the design a C- on security grounds. He clarified his point thus:

The communication channel between the command proxy and AIR application looks like a potential vulnerability. One of the things application developers should worry about with security is insecure cross-process communication mechanisms hanging around on someone’s machine. For example if a process listens on a named pipe, and that named pipe has no ACLs and no validation of inbound communication, the process is vulnerable to all kinds of attacks when garbage is sent down the pipe. In the example on using the command proxy how do you secure it so that it doesn’t turn into a general purpose process launcher?

Barnes has an obvious incentive to cast doubt on AIR solutions (he’s a Microsoft RIA Silverlight evangelist), but nevertheless this is a good debate to have. How difficult is it to do this in a secure manner? It is also interesting to note the opening remarks in Chambers’ post:

Two of the most requested features for Adobe AIR have been the ability to launch native executables from an AIR application, and the ability to integrate native libraries into an AIR application. Unfortunately, neither feature will be included in Adobe AIR 1.0.

This is really one feature: access to native code. I remain somewhat perplexed by AIR in this respect. Is the inability to call native code a security feature, or a way of promoting cross-platform purity, or simply a feature on the to-do list? I don’t think it is really a security feature, since AIR applications have the same access to the file system as the user. This means they can execute native code, just not immediately. For example, an AIR app could download an executable and pop it into the user’s startup folder on Windows. That being the case, why not follow Java’s lead and provide a clean mechanism for calling native code? Adobe could add the usual obligatory warnings about how this breaks cross-platform compatibility and so on.

Sun gets a database manager, but Oracle owns its InnoDB engine

Sun now has a database manager. It’s been a long time coming. Oracle has … Oracle, IBM has DB2, Microsoft has SQL Server; it’s been obvious for years that Sun had a gap to fill. Now Sun has MySQL.

This is interesting to me as I was a relatively early user of the product. I didn’t much like it. It was missing important features like transactions, stored procedures and triggers. I still used it though because of a few appealing characteristics:

  • It was free
  • It was very fast
  • It was lightweight
  • It was the M in LAMP

I should expand slightly on the last of these. The great thing about MySQL was that you did not need to think about installation, PHP drivers, or anything like that. It all came pretty much by default. If you decided that you could not bear MySQL’s limitations, you could use Postgres instead, but it was more effort and less quick.

The ascent of MySQL is a sort of software development parable. Like PHP, MySQL came about from one person’s desire to fix a problem. That person was Michael “Monty” Widenius. He wanted something a little better than mSQL, a popular small database engine at the time:

We once started off with the intention to use mSQL to connect to our own fast low level (ISAM) tables. However, after some testing we came to the conclusion that mSQL was not fast or flexible enough for our needs. This resulted in a new SQL interface to our database but with almost the same API interface as mSQL. This API was chosen to ease porting of third-party code.

Why did MySQL take off when there were better database engines already out there? It was partly to do with the nature of many LAMP applications in the early days. They were often not mission-critical (mine certainly were not), and they were typically weighted towards reading rather than writing data. If you are building a web site, you want pages served as quickly as possible. MySQL did that, and without consuming too many resources. Many database engines were better, but not many were faster.

MySQL today has grown up in many ways, though transactions are still an issue. To use them you need to use an alternate back-end storage engine, either InnoDB or BDB. BDB is deprecated, and InnoDB is included by default in current releases of MySQL. InnoDB is owned by Oracle, which could prove interesting given how this deal changes the dynamics of Sun’s relationship with Oracle, though both MySQL and InnoDB are open source and published under the GPL. Will Sun try to find an alternative to InnoDB?

While I agree with most commentators that this is a good move for Sun, it’s worth noting that MySQL was not originally designed to meet Enterprise needs, which is where most of the money is.

Update: as Barry Carr comments below, there is a planned replacement for InnoDB called Falcon.

Burton Group slams ODF, praises OOXML

Fighting talk from Burton Group on ODF vs OOXML:

ODF is insufficient for complex real-world enterprise requirements, and it is indirectly controlled by Sun Microsystems, despite also being an ISO standard. It’s possible that IBM, Novell, and other vendors may be able to put ODF on a more customer-oriented trajectory in the future and more completely integrate it with the W3C content model, but for now ODF should be seen as more of an anti-Microsoft political statement than an objective technology selection.

You can download the free report here, though I found I had to exaggerate my annual revenue to get past the compulsory fields on the registration form.

Wonder what Becta thinks about this?

Technorati tags: , , ,

Finding obscure commands in Office 2007

I was intrigued to see an article on CNET called Word 2007 loses the ability to export outlines to Powerpoint. It says:

There’s a great little feature in Microsoft Word 2003 and earlier versions of the word-processing program that lets you export to Powerpoint an outline of any Word file formatted with headings … I was all set to tell you how to use the feature in Word 2007 when I realized it has been removed.

I wondered if perhaps the feature was still there, but the author missed it, so I used my usual technique for finding obscure commands in Office 2007. Go to Customize Quick Access Toolbar, then choose More Commands, then All Commands. Hey, there it is:

This is a great place to look if you cannot find a feature you used in earlier versions of Office.