All posts by onlyconnect

Blue screen, Windows 8 style

This is what happens when Windows 8 crashes:

image

The restart message proved false, and I had to reset the virtual machine.

I did the search, which told me:

The CLOCK_WATCHDOG_TIMEOUT bug check has a value of 0x00000101. This indicates that an expected clock interrupt on a secondary processor, in a multi-processor system, was not received within the allocated interval.

This proves that you make give blue screens a prettier face, but that does not make the error messages any more helpful to a non-expert user. Or should I head for my nearest computer store and ask if they have a spare clock interrupt?

Microsoft financials: Server and Office business still growing

Microsoft has announced its quarterly figures for July-September 2011. Despite its problems in mobile and in search, and the declaration of a post-PC era by competitors, the company is still a huge money-making machine. Here is my at-a-glance summary of the segment breakdown:

Quarter ending September 30th 2011 vs quarter ending September 30th 2010, $millions

Segment Revenue Change Profit Change
Client (Windows + Live) 4868 +83 3251 -335
Server and Tools 4250 +386 1597 +57
Online 625 +98 -494 +64
Business (Office) 5622 +401 3661 +196
Entertainment and devices 1963 +168 352 -34

These look like decent figures to me, though Microsoft’s broad-brush breakdown disguises trouble spots like the poor sales of Windows Phone 7. The online business, which includes Bing and ad sales, continues to bleed money, though slightly less than for the same quarter last year.

Microsoft says Bing-powered US search share (which includes Yahoo!) is now 27%, which is impressive, though I look at stats for itwriting.com and see Bing and Yahoo! at 4.7% combined, even though it has more visits from the USA than from any other region. Bing must have some area of strength that does not include technology blogs.

Currently the stars of the show are Server and tools, where Microsoft reports a sixth consecutive quarter of double-digit growth, and the Business division, where Microsoft reports strong growth for SharePoint, Lync and Exchange.

Microsoft also says that Office 365 has “strong adoption from small businesses to large enterprises”, though there are no exact figures. It does not surprise me me as it is an excellent product, misreported by some media who exaggerated the importance of Office Web Apps. Forget Office Web Apps: this is hosted Exchange and SharePoint, with web conferencing thrown in.

Entertainment and devices is mainly Xbox. My observation here is first, to note how well Microsoft has done to take Xbox to the top spot in the US console market, overtaking both the previous generation champion Sony and the once-unstoppable Nintendo Wii; and second, to note how small the profits are relative to the rest of the business. This may be slightly unfair, as I imagine some of those Xbox profits have been poured into Windows Phone investment.

Finally, I was amused by the Metro-style design of the accompanying PowerPoint slides:

image

Zend’s PHP cloud: develop in the cloud, deploy anywhere

Zend has announced Zend Studio 9 beta, the latest version of its IDE for PHP. The feature that caught my eye is integrated support for the Zend Developer Cloud, currently in technical preview. Setting up a PHP development environment is not too difficult, but can be a hassle to maintain, and the idea of being able to fire up an IDE anywhere and start coding is attractive.

You do not need Zend Studio to use the Developer Cloud; they are independent projects, and you can use the free Eclipse PHP Development Tools (PDT) or another IDE or editor.

The PHP Developer Cloud is not just a shared hosting environment for PHP applications:

All applications are housed within a container on the Zend Application Fabric. This container is separate from all other containers and has its own database instance and is easily connected to your IDE.

The Zend Application Fabric is for deployment as well as development. It is a server framework that includes the Zend Framework and also the capability of scaling on demand.

Once you have developed your app, you can deploy to any cloud provider that supports the Zend Application Fabric, including Amazon Web Services, IBM SmartCloud,  a private “custom cloud”, or a resilient multiple cloud option which Zend calls RightScale. You can deploy to RightScale using both Amazon and Rackspace together, which I presume means your app will keep on going even if one of these providers were to fail.

Details on the site are sketchy, but if Zend has got this right it ticks a lot of boxes for enterprise PHP developers.

image

Review: The Bowie Variations by Mike Garson

I am a big David Bowie fan (as I guess will be most purchasers of this CD) and first noticed Garson’s work in the magnificent, edgy accompaniment to Aladdin Sane – specifically, that track, though he makes a great contribution to the entire album.

image

Garson played on many of Bowie’s albums, from Ziggy Stardust through to Reality, and made a key contribution to the sound. I particularly like his work on David Live, Bowie’s live album from 1974, but it is consistently good, which is no doubt why he remained part of the band.

This CD is I guess a kind of tribute and reflection on his work with Bowie; one of the tracks is actually called Tribute to David. Garson performs solo piano variations on a number of Bowie’s songs. Note that these are variations, not performances as such, and since Garson is a creative jazz pianist they really are variations; in some cases it takes a while to work out what the song is, even if you know Bowie’s version well.

The performance is excellent, and the recording quality is outstanding. Nevertheless I was a little disappointed; found it a little too mellow and smooth for my taste. Perhaps Garson needs the interplay with the band to spark that edgy quality that I love.

Adobe MAX 2011 and the future of Flash

The unstated theme of Adobe MAX 2011 last week was this: what is the future of Flash? The issue being that with HTML 5 ascendant and Apple wrecking the idea of Flash as an ubiquitous web plug-in, should Adobe be frantically retooling its design tools for HTML and apps, or does Flash still have a future?

image

The answer is a little of both; but let’s be clear: there was more Flash than HTML at MAX. What was the most eye-catching demo? It was Flash running Unreal Tournament with the claim of better graphical performance than on Microsoft Xbox 360 or Sony Playstation 3.

It is also worth noting that the touch apps demonstrated at the day one keynote were created in Flash and compiled into apps using the new Captive Runtime feature in AIR 3.

At the same time there was a substantial amount of HTML effort on show. There was the announced acquisition of Nitobi, makers of PhoneGap – though note that PhoneGap itself is heading to the Apache Foundation – and demos of the Edge motion and interaction tool for HTML5. Adobe also told us about its work on CSS Regions and CSS  Shaders. I also saw how HTML export, including partial ActionScript to JavaScript conversion, is coming in a future version of Flash Professional.

My perception is that while Adobe is serious about stepping up a gear with its HTML tools, its heart is still with Flash. That said, there is a shift of emphasis away from Flash as a web plug-in, other than when it is the “Games console of the Web”, and towards Flash and Flex as a cross-platform development platform. Adobe is using Flash and AIR for its own Touch apps, previewed at MAX.

Let me add that the new features in AIR are huge, in particular the ability to package the Flash runtime as part of your app, called Captive Runtime, and the ability to extend your AIR app with native code. Cross-platform mobile tools are a particular interest of mine, and Adobe’s offering is strong in this field, though it will never be the most efficient. Adobe is also pressing ahead with something like web workers for ActionScript, providing a form of concurrency, though this is not in AIR 3 but planned for a future release. Another big new feature in the Flash runtime is Stage 3D, accelerated 3D graphics which enabled the Unreal demo mentioned above.

Nitobi’s Andre Charland was at MAX and I could not shake off the thought that he will find joining the Flash company difficult.

image

It will be near-impossible for Adobe to be equally enthusiastic about both PhoneGap and AIR, and given that Flash and AIR are so deeply woven into the company’s products I suggest that PhoneGap is more likely to be neglected.

Take a look at Adobe’s agenda for the Back from MAX event in London next month. It is 100% Flash and Flex.

What about the MAX attendees? I have contradictory evidence here. I noticed that a session on Building mobile apps with HTML, CSS and JavaScript (ie PhoneGap) was packed out, while the session running at the same time on What’s new in AIR – and what’s next was sparsely attended. This session was repeated, which means Adobe thought it would be a popular one. I was also surprised by how few went along to hear about Flash Professional Sneak Peek: a glimpse at the future which was a fascinating session if you are interested in the future of this tool. Adobe must have been surprised too, as it was in a large room.

image

That said, a session on native extensions for AIR was moved from one of the smallest rooms to one of the biggest and was still full. There was also great interest in concurrency in the Flash runtime. Many of the attendees I spoke to saw themselves as Flash and Flex developers and there was more talk about how to fight off the perception that the tech world is moving to HTML, than of how to encourage it.

Getting rid of Flash may seem like obvious progress to someone annoyed by the Adobe updater, or who is an Apple iOS enthusiast, or who does not like the idea of proprietary plugins. It does not feel like that though if you have a browser-hosted app to maintain and enjoy targeting a single runtime rather than testing in every browser, as well as using features of Flash that are hard to replicate in HTML.

Adobe’s design and development platform is still Flash-centric, which is either good or bad news depending on your perspective.

See also Down but not out: Flash in an HTML5 world.

Subversion 1.7 released: just one .svn directory per working copy

Yesterday saw the 1.7 release of Subversion, the widely used open source version control system. It is a significant release with many new features, bug-fixes and performance improvements, and I suggest reading the release notes or complete change log. One thing to highlight is that the default working copy metadata storage is now a single sqlite database per working copy, rather than a .svn direction containing metadata in sub-directory.

I upgraded my TortoiseSVN, which is already updated to 1.7, and tried upgrading one of my own projects. Here is the .svn folder before the upgrade:

image

and after

image

Those pesky .svn folders can be a nuisance so this is a welcome change, although there is a downside as the release notes warn:

It is not safe to copy an SQLite file while it’s being accessed via the SQLite libraries. Consequently, duplicating a working copy (using tar, cp, or rsync) that is being accessed by a Subversion process is not supported for Subversion 1.7 working copies, and may cause the duplicate (new) working copy to be created corrupted.

Subversion is less fashionable since the advent of distributed version control systems like git and mercurial; though for corporate development Subversion remains popular because a centralised system is easier to control.

WANdisco’s Jessica Thornsby has a helpful post on the new 1.7 features more details on the benefits of the new working copy metadata managements system.

Adobe: no new features for open source BlazeDS data services

Adobe’s Damon Cooper, who runs the BlazeDS and Data Services team at Adobe, has posted about BlazeDS vs the paid-for Data Services.

It is a curious post, in that he simultaneously highlights new features coming in Data Services 4.6 while also giving a number of reasons not to use BlazeDS.

BlazeDS is the free and open source version of Data Services, for publish/subscribe messaging and remote object invocation of Java objects in a Flash or AIR application.

He points out that the LGPL licence may be problematic; he emphasises that BlazeDS is unsupported; he says that while it is open source there are no non-Adobe committers; and as the knock-out punch adds:

Additionally, while we will absolutely be making sure we keep BlazeDS fresh and the bug fixes flowing, we don’t currently have any major new features planned for BlazeDS. That could change, but we’re currently full-out on delivering innovation to our customers have asked for in Data Services and we are full steam ahead there. 

It does sound like a retreat to me; and while I do not think Adobe is under any moral obligation to continue developing BlazeDS it does make me wonder what has changed between the moment in 2007 when Adobe decided it was a good idea to open source part of its LiveCycle Data Services, and today.

At Adobe MAX last week Adobe announced the acquisition of Nitobi and with it the open source PhoneGap project. PhoneGap is heading to the Apache Foundation – probably a good thing considering that Adobe sometimes seems to struggle when it comes to managing open source software.

Google offers the web a new language called Dart – but why?

Google has announced an early preview of Dart, a new language for web applications. The news is not a surprise, especially if you have been keeping track of the developer conference GOTO Aarhus, whose organisers had pre-announced that Google would be announcing its new language there, as indeed it did.

image

Dart is a curly-brace language like JavaScript, Java, C, C++ and C#. In Dart, as in C# and Java, a class can implement multiple interfaces, but only inherit from a single class. Dart supports both static and dynamic typing. Google says it can be executed by a Dart VM, or converted to JavaScript:

Dart code can be executed in two different ways: either on a native virtual machine or on top of a JavaScript engine by using a compiler that translates Dart code to JavaScript. This means you can write a web application in Dart and have it compiled and run on any modern browser. The Dart VM is not currently integrated in Chrome but we plan to explore this option.

Google also says that you will be able to “execute Dart code directly in a VM on the server side”, so you can infer that Google has Dart in mind as an alternative PHP as well as to JavaScript. The company is using the phrase “structured web programming” to describe Dart, and this phrase appears in the announcement and as the subtitle on the Dart site. The implication is that JavaScript code tends to be poorly structured and that Dart will promote more maintainable code.

In the preview Dart only runs in Chrome, Safari 5 and Firefox 4+ – spot the missing browser vendors.

At first glance, Dart looks like a promising language, though I find myself asking what it is really for, when it bears a strong family resemblance to existing languages, and bearing in mind that the Google Web Toolkit, which compiles Java to JavaScript, already enables structured programming for web applications. The list of problems which Dart solves in the technical overview is not all that compelling.

Google states that:

Developers have not been able to create homogeneous systems that encompass both client and server, except for a few cases such as Node.js and Google Web Toolkit (GWT).

This is or was one of the attractions of Microsoft Silverlight, presuming you use C# on both server and client, but Silverlight is a plug-in that was never going to run on an iPad and from which Microsoft itself is now retreating; though it is worth noting that Dart is not unlike C#, especially the latest version of C# with dynamic features.

I guess that Dart is a consequence of the failure of ECMAScript 4.0, which was a cooperative effort to create a more modern and advanced JavaScript. Google is now going it alone; the key question is whether it can win support from others such as Apple and Microsoft, or whether this will be a Google language for Google on the server and Chrome on the client, or an interesting experiment that never really catches on.

Do we need Dart? I would value hearing from others what you think of Google’s proposal.

CodeRage free online conference for Delphi and RAD Studio starts next week

Embarcadero’s CodeRage virtual conference starts next week from October 17 2011, and is worth a look if you have any interest in Delphi or the new RAD Studio XE2.

There are sessions on 64-bit Delphi, the new cross-platform FireMonkey framwork, the new LiveBindings data binding system, Prism (Delphi for .NET), and extras including a session on Regular Expressions in Delphi and elsewhere, Dependency Injection and Delphi Spring, unit testing with Delphi, and using 3D graphics in business applications.

Of course you could wait for the replays to be available, but if this is like previous events there is a chance to ask questions to people who might actually know the answers, so there is an advantage to the live event – though the event is schedules for Pacific Time so the afternoon ones involve a late night if you are in the UK.

Hands On with Storage Spaces in Windows Server 8

Storage Spaces is a new virtual storage feature in Windows Server 8. I have the developer preview installed, but it took me a while to get Storage Spaces working – you need one or more unused hard drives. I finally managed to find a spare 150GB Sata drive and tried it out. Note that I am going to create a 1.5TB drive on this using the magic of thin provisioning, with data deduplication thrown in for good measure.

Step 1 is to go into the file services section of server manager and create a pool. A pool is a collection of one or more disks which you will use in aggregate.

image

Here I specify the pool name and the subsystem where it will find its disks. In my case it is the RAID controller built into the motherboard.

image

Success

image

Next task is to create a new volume. I’ve selected thin provisioning as I want a drive larger than the available space. If it runs out of real space, I will have to add another drive to the pool. I have also selected Simple layout, which means no resiliency. I am doing this for the demo as I only have one drive, but in reality I would always use one of the resilient options. They are apparently not RAID, even though they are like RAID.

image

Next I assign the new drive to a virtual folder, as I am bored with Windows drive letters.

image

I turn on data deduplication. This means that I can have several copies of the same file, but it will only occupy the space of one. If a file is mostly the same as another file, I will also save space.

image

Success again. Note that Windows formatted the new drive for me in a matter of minutes. It may help that most of the space does not really exist.

image

Here is my drive ready for use, with 1,572,730,876 KB free. Handy.

image

I am impressed with how easy Storage Spaces are to use, and that it works with cheap Sata drives.

Now, I remember that Windows Home Server had an easy to use storage system called Drive Extender. You could just add and remove drives. Is Storage Spaces a kind of grown up version of Drive Extender? I asked the Windows storage team and got a snooty reply. “We do not contrast our upcoming capabilities with those that might have been offered in the past as part of other Microsoft products.” However, the spokesperson did add:

Storage Spaces delivers a rich storage virtualization capability directly from within Windows. Two powerful new abstractions (Pools and Spaces) deliver multiple benefits including seamless and easy capacity aggregation and expansion ("just add drives to a pool"), optimal just-in-time allocation (via Thin Provisioning), resiliency to physical drive failures (via mirrored or parity spaces), continuous availability (via integration with failover clustering and cluster shared volumes), ease-of-management via integration with the rich new Windows Storage Management API (with WMI interfaces and associated PowerShell cmdlets), and "pay-for-play" via support for pools comprising heterogeneous media (e.g. SSDs and HDDs). Obviously, these are just a subset of features.

Obviously. I like Storage Spaces so far though, and the feature seems to bring some similar benefits to Windows Server users.