Category Archives: windows

Figuring out Project Siena: a Windows 8 app to build Windows 8 apps

A couple of weeks back I took a look at Project Siena, a preview of a new tool for building Windows 8 apps. Project Siena features a simplified user interface builder, an Excel-like expression language, and data-bound controls. It generates Windows 8 JavaScript apps. Project Siena is itself a Windows Store app, and runs fine on Windows RT (the ARM version). I have been using it successfully on Surface 2, on which it runs sweetly.

When I first looked at Project Siena I tried to build the same first app that I have used for numerous simple tests of development tools over the years: a to-do list. I was impressed by how easy it was to create the user interface, but unable to work out the code to complete it. Unless I missed it, the key information is not included in any of the initial documentation. I found this disappointing, since it has been easy to work out the code in every other programming environment I have tried.

I gradually worked it out. Here is the app:

image

The idea is that you have a listbox, an input box, and two buttons. One button takes the contents of the input box and adds it to the list. The other button removes the selected item in the list. All the functionality you need for a to-do list (actually a simple memo control would do, but that would be a bit too simple).

In Siena, data is stored in Collection objects, and you can bind a listbox to a collection. By default, a new listbox is bound to an object called ListboxSample, but you cannot use it for this; if you try, you get a squiggly line error with the message that ListboxSample is not a collection.

image

Instead, you have to create your own collection object. In Siena, you declare a variable by using it and its type is inferred. Enter this for the OnSelect property of the Add button:

Collect(mycollection,{Value: InputText1!Text})

This is the code that took me so long to work out. The Collect function adds an item to a collection. If the collection does not already exist, it creates it. The first argument to Collect is a collection object, and the second, an item. What is an item? In effect, a record or row in a table. The syntax for an item in Siena is:

{Fieldname1: fieldvalue1,Fieldname2: fieldvalue2,…}

where the dots represent additional fields as required. Therefore, the code I entered for the Add button creates or appends an item with a single field, called Value, to a collection called mycollection.

Now you can select the listbox and tap Data and then Items. The collection called mycollection magically appears for selection. Select it. In the case of multi-field collections, you can also choose which field appears in the list. Only one field it seems; yes, Siena needs a grid control.

Then you can run the app, tap Add, and see the content of the input box added to the list.

The Remove button is easy:

Remove(mycollection, Listbox1!Selected)

However, our app has a flaw. The data does not persist. Next time you run the app, the list will be empty. This is easy to fix too. Go back to the OnSelect property of the Add button. Type a semicolon after the existing line of code, and then:

SaveData(mycollection,"mycollection")

This saves the collection to isolated storage on your PC. Alternatively, you could call a web service and save to the cloud, but I am not sure of the code for that yet.

Next, we have to load the data when the app starts. You can use the OnVisible property of the screen for this. Type:

Clear(mycollection);Collect(mycollection,LoadData("mycollection"))

Note that since Collect appends to the collection, we have to clear it first, to avoid duplicate items.

Now the app is complete.

What do I think of Siena after doing this? It certainly has its frustrations, but I like it. I do think that the designers have gone too far in pretending that code is unimportant; it is silly that you have to type into a single line editor. It would also have saved me time if Microsoft had provided a syntax guide and programming guide, rather than concentrating on how to show pretty pictures.

Who is going to use Siena, if anyone? That is the harder question.

Something Microsoft has never fixed: why Windows is slow to start up

One of the most common complaints I hear about Windows is that it is slow to start up. Everything is fine when a machine is new (especially if it is a clean install or purchased from a Microsoft store, and therefore free from foistware), but as time goes on it gets slower and slower. Even a fast PC with lots of RAM does not fix it. Slow boot is one of many factors behind the drift away from PCs to tablets, and to some extent Macs.

image

As far as I can tell, the main reason PCs become slow to start is one that has been around since DOS days. Some may recall fussing about TSR – Terminate and Stay Resident – applications that would run at startup and stay in memory, possibly causing other applications to fail. Windows today is generally stable, but it is applications that run at startup that cause your PC to start slowly, as well as having some impact on performance later.

I install lots of software for testing so I suffer from this myself. This morning I took a look at what is slowing down my desktop PC. You can view them easily in Windows 8, in Task Manager – Startup tab. A few of the culprits:

  • Adobe: too much stuff, including Service Manager for Creative Suite, Creative Cloud connection, Acrobat utilities
  • Intel Desktop utilities – monitors motherboard sensors
  • Intel Rapid Storage Technology – monitors on-board RAID
  • Sync applications including SkyDrive, Dropbox, SkyDrive Pro (Groove.exe)
  • Seagate Desktop, manage your Seagate NAS (network attached storage)
  • Google stuff: Google Music Manager, Google update, some Chrome updater
  • Plantronics headset updater
  • Realtek HD Audio Manager
  • Fitbit Connect client
  • SpotifyWebHelper
  • Microsoft Zune auto-launcher
  • Microsoft Lync, famously slow to start up and connect
  • Roccat Gaming mouse settings manager
  • Flexera “Common software manager” (InstallShield updater)

Many of these applications run in order to install a notification app – these are the things that run at bottom right, in the notification area of the taskbar. Some apps install their own schedulers, like the Seagate app which lets you schedule backup tasks. Some apps are there simply to check for updates and inform you of new versions.

You can speed up Windows startup by going through case by case and disabling startup items that you do not need. Here is a useful guide. It is an unsatisfactory business though. Users have no easy way to judge whether or not a specific app is doing an important or useful task. You might break something. When you next update the application, the startup app may reappear. It is a mess.

Microsoft should have addressed this problem aggressively, years ago. It did put great effort into making Windows boot faster, but never focussed on the harder task of bringing third-parties into line. A few points:

  • If Windows had a proper notification service, many of these apps would not need to exist. In Windows 8, it does, but that is little help since most applications need to support Windows 7 and even in many cases Windows XP.
  • The notification area should be reserved for high priority applications that need to make users aware of their status at all times. The network connection icon is a good case. Printer ink levels are a bad case, aside from reminding us of the iniquity of printer vendors selling tiny ink cartridges at profiteering prices. In all cases it should be easy to stop the notification app from running via a right-click preference. The Windows 7 idea of hiding the notification icons is counter-productive: it disguises the problem but does not fix it, therefore making it worse. I always set Windows to show all notifications.
  • Many tasks should be done on application startup, not on Windows startup. Then it is under the user’s control, and if the user never or rarely runs the application, no resources are grabbed. Why do I need to know about an update, if I am not running the application? Have the application check for updates each time it runs instead.
  • It is misguided to run a process on start-up in order to speed up the first launch of the application. It may not be needed.
  • If a background process is needed, such as for synchronisation services, why not use a Windows Service, which is designed for this?
  • Windows has a scheduler built in. It works. Why write your own?

Of course it is too late now for desktop Windows. Microsoft did rethink the matter for the “Metro” personality in Windows 8, which is one reason why Windows RT is such a pleasure to use. Apple does not allow apps to run on startup in iOS, though you can have apps respond to push notifications, and that strikes me as the best approach.

Update: I should mention a feature of Windows 8 called Fast Boot (I was reminded of this by a commenter – thanks Danny). Fast Boot does a hybrid shutdown and hibernation:

Essentially a Windows 8 shutdown consists of logging off all users and then hibernating.

This is almost another subject, though relevant. Microsoft has for years sought to address the problem of slow boot by designing Windows never to switch off. There are two basic approaches:

Sleep: the computer is still on, applications are in memory, but in a low power state with screen and hard drives off.

Hibernation: the computer writes the contents of its memory to disk storage, then powers off. On startup, it reads back the memory and resumes.

My own experience is that Sleep does not work reliably long-term. It sometimes works, but sooner or later it will fail to resume and you may lose data. Another issue on portables is that the “low-power state” is not as low power as it should be, and your battery drains. These factors have persuaded me to shut down rather than sleep.

My experience of hibernation is better, though not perfect. It usually works, but occasionally fails and again you lose data.

Fast boot is a clever solution that works for some, but it is a workaround that does not address the real issue which I have outlined above: third-party and Microsoft applications that insist on automatic start-up.

Toshiba ships DVD media with laptop without DVD drive

One day you will be able to buy a Windows device and have a smooth and delightful experience getting started.

To be fair, something like a Surface tablet can give offer a reasonable experience if you are lucky.

Not so a Toshiba Portege Z930 ultrabook – at least, not if you buy one with Windows 7 pre-installed, and want to run Windows 8, as a contact of mine has just done.

Why would you not buy one with Windows 8 pre-installed instead? With hindsight, that is what I would recommend; but since it says on the box, “This system is pre-installed with Windows 7 Pro software and also comes with a license and media for Windows 8 Pro software,” he did not think it much mattered.

The problem: The Z930 has no optical drive, but Windows 8 is supplied in the form of two recovery DVDs.

image

I thought that was pretty silly, but luckily I know all the tricks about creating a bootable USB drive from a DVD. I even spotted the note in the box that instructs you to go into the BIOS and change it from CSM Boot to UEFI Boot.

No go. It would not boot from the USB drive in UEFI mode, and in CSM mode (which is also meant to work for Windows 8, with a few limitations) it boots, starts a Toshiba recovery wizard, and then bombs out.

I spoke to support. The first thing they told me, unprompted, was to make Windows 7 recovery disks, since not everyone likes Windows 8.

Next, the support guy was surprised that a model without a DVD drive ships with DVDs. Had the machine been tampered with? Then he looked it up, and admitted that they are all like that.

After a little more investigation, he said there is no way it will work from a bootable USB drive, because it is coded to look for the DVD. The only way is to buy an external DVD drive and attach it via USB.

The behaviour began to make sense to me. The scripts must be hard-coded to look on the optical drive for the files. I’d guess you can fix it by modifying the scripts if you know where to look, but life is too short and I went out and bought a DVD drive.

Smooth after that? Not brilliant. Recover Windows 8, go to Store for Windows 8.1, remember that you have to apply updates before it appears, apply 80 Windows updates, remove McAfee trialware and a few other unwanted applications, back to Store, do large Windows 8.1 download, and done.

In an era where usability is king, it is remarkable that Toshiba thinks that shipping DVDs with a computer that cannot read them is a smart thing to do. That said, I have a few more observations.

  • If you got a product key for Windows 8 and could download the media from Microsoft, that would work. But OEM Windows 8 is now pre-pidded so you don’t get a key.
  • If Microsoft were not still making so much money from businesses paying for Windows licenses, it could give Windows away and offer users a more Apple-like upgrade experience.
  • If Microsoft had not come out with a Windows upgrade which many of its customers do not like, companies like Toshiba would not be selling so many laptops with Windows 7 pre-installed.

As for the Z930, it is a lovely light, fast laptop if you do not need touch. But when will Windows OEMs, and to some extent Microsoft itself, learn the importance of out-of-the-box user experience?

Will Microsoft scrap Windows RT? Here’s why it might not matter

At the UBS Global Technology Conference (aimed at investors, since UBS is an investment bank), Windows Executive Vice President Julie Larson-Green was interviewed about the future of Windows, and Microsoft has helpfully posted the audio and full transcript.

Larson-Green was asked about the viability of the “dual track” for Windows, or put another way, does Windows RT have a future?

I will interject an anecdote here. A neighbour came to me this weekend with a Windows XP laptop. Internet Explorer 8 no longer worked, and as no other web browser was installed, she could no longer get to the web on that machine. Microsoft has advice on reinstalling IE8; you re-run setup. We downloaded the setup from another machine and re-ran setup. It made no difference.

The only clue was an icon in the notification area for secure search. What was it? My neighbour did not know. She mentioned that she had been offered a free backup service and had started installing it. The service informed her that her backup was too large and she would have to pay. She thought she had cancelled and uninstalled it successfully, but maybe this toolbar, which redirects all searches to conduit.com, came along for the ride. Removing the toolbar from add/remove programs brought IE 8 back to life; if she is lucky, that will be end of the incident, if not, there could be other surprises.

It is just hopeless; and although later versions of Windows have improved security, users ultimately have full control of their machines and therefore the ability (with the help of unscrupulous third parties) to break them.

Now listen to Larson-Green’s description of Windows RT, evidence that Microsoft understands these issues very well:

Windows on ARM, or Windows RT, was our first go at creating that more closed, turnkey experience, where it doesn’t have all the flexibility of Windows, but it has the power of Office and then all the new style applications. So you could give it to your kid and he’s not going to load it up with a bunch of toolbars accidentally out of Internet Explorer and then come to you later and say, why am I getting all these pop-ups. It just isn’t capable of doing that by design.

That said, in its first year on the market Windows RT has largely failed. OEMs like Lenovo and Dell, who produced Windows RT tablets last year, have abandoned it. Microsoft is now the only Windows RT vendor, with Surface RT and Surface 2, other than Nokia with the Lumia 2520 – wait, that’s Microsoft too, following the Nokia acquisition.

Why has RT failed? Performance is an issue on most first generation devices (solved on Surface 2), users have been infuriated and/or flummoxed by the inability to install desktop applications, and even those (like myself) who understand and like the Windows RT concept run into functionality gaps, where there is no suitable Windows Store app and nothing built into the desktop that will do.

Nevertheless, something like Windows RT is necessary if Windows is to survive as a mainstream client operating system. What are Microsoft’s plans?

We have the Windows Phone OS. We have Windows RT and we have full Windows. We’re not going to have three. We do think there’s a world where there is a more mobile operating system that doesn’t have the risks to battery life, or the risks to security. But, it also comes at the cost of flexibility. So we believe in that vision and that direction and we’re continuing down that path.

You can read this as saying that Windows RT will be scrapped, to be replaced by Windows Phone OS adapted for larger form factors (which is what some of us thought Microsoft should have done three years ago). Some have drawn that conclusion, even in the mainstream press. However, this is not what Larson-Green said. Rather, she confirmed what has been strongly hinted for some time, that Windows Phone and Windows RT will converge. In fact, the company has already said that there will be a single development platform for Windows Store / Phone apps at some future date. Note that Windows Phone 8 is no longer built on Windows CE, the cut-down version of Windows, but uses the full Windows kernel, so some convergence has already taken place.

There are rumours of a battle within Microsoft: should Windows Phone adopt Windows RT, or vice versa? Windows Phone is increasing its market share, whereas Windows RT struggles, so from a marketing perspective the phone may be the winner here, though from a technical perspective it might be better to adapt Windows RT for the phone so that desktop Office remains possible on future devices.

If Microsoft gets this right, it will not matter to end users which way it goes. Here is what makes sense to me. Microsoft should converge the development platforms for Windows Phone and Windows Store apps so that both types of apps run on both platforms (though developers should be able to specify a minimum display size to avoid issues with apps designed for a larger screen), and a single project in Visual Studio should be able to target both platforms.

The most interesting question is the future of the desktop on Windows ARM tablets. I love having the desktop on Surface RT and Surface 2, because it greatly increases the utility of the devices; my perspective is that it’s great to have the Windows desktop and Office on a locked-down device, rather than lamenting the inability to install new desktop applications. However, it is a compromise that needs keyboard and trackpad or mouse for optimum operation, and means that Windows RT devices suffer from the same dual personality issues as full Windows 8.

If Microsoft managed to implement a decent version of Office as a Windows Store app, could we live without the desktop? Maybe, though I doubt it will be easy to match the full Windows version of Office (even without VBA) in the Windows Runtime environment.

Microsoft cloud account problems

I am working extensively with Visual Studio 2013, Office 365 and Windows Azure, researching cloud development on Microsoft’s platform. It is in general a reasonable experience, but the way Microsoft manages its cloud accounts is a constant annoyance and sometimes a source of bugs.

The problem is that you cannot manage with just one Microsoft cloud account. I have an MSDN subscription which is a Microsoft account, and an Office 365 subscription for which I log in with an Organizational account, for example. Microsoft accounts are for accounts with Microsoft itself, while Organizational accounts are controlled by my business. The distinction makes some sense, but Internet Explorer does not cope all that well when you are using both, which for development seems unavoidable.

Right now, for example, I have encountered a bug. I want to log in to Office 365, so I browse to http://portal.microsoftonline.com. However, this is redirecting automatically to login.live.com (it should not do this), which is a Microsoft account. So I get this screen:

image

This is for a Microsoft account, which will not work with Office 365. If I now present Organizational account credentials, it says the account is not recognized. If I present valid Microsoft account credentials, I get an error. “Sorry, that didn’t work”.

image

Agreed – but if I now click Sign out, I bounce back to the very same screen. In other words, I cannot sign out.

I have also seen the scenario where you cannot sign out of Office 365. You choose Sign out, Internet Explorer thinks for a moment, then logs you back in automatically. This may be a consequence of checking the mysterious “Keep me signed in” option when logging into Office 365. This should only keep you signed in until you specifically log out, but it can fail in both directions, asking you to sign in again later, or failing to sign you out. “Keep me signed in” is actually required for some features to work properly, such as Open in Explorer (or WebDav) in SharePoint online.

The inability to sign out is a security issue, since you may need to leave your machine, think you have signed out, and find someone else can access your account; though I suppose you can lock your Windows account to overcome this.

It can also be a practical problem. As a developer, you might want to log in with an Office 365 administrator account to configure a new app, and then with a non-administrator account to test. You need to be able to switch accounts for this purpose. It might be better to use a virtual machine for one of the two accounts.

I am not sure what the fix is, though it usually starts working again eventually. As ever, rebooting Windows may well help. Microsoft has a problems when signing out article which hints at some of these problems; it suggests that you to a couple of special logout urls to log out from an organizational account and logout from a Microsoft account but this does not always work. It also suggests clearing all cookies, which is a nuisance because then have to log back in to all your internet accounts, but even this can fail in my experience. Using another browser is a partial workaround. I do not know if you can get this problem in other browsers.

Visual Studio can also get confused. Imagine you are developing an Office 365 application hosted on Azure. You might have a Microsoft account for Azure along with the Organizational account for Office 365. You proceed through a publish wizard which needs both sets of credentials, and you are likely to get an error in my experience.

I can understand that this stuff is complex to get right, but from the user’s perspective logging in and logging out is basic functionality and something Microsoft should get right.rrrrrrrrr

First thoughts on Xbox One: difficult to recommend right now

I received an Xbox One on launch day last week.

image

I ordered this because I am interested in tracking Microsoft, and because I have had a lot of fun from the Xbox 360 and its predecessor, the original Xbox.

In the box you get the console, power brick, the new Kinect sensor, a single controller, a headset, and several leaflets including a pointless Day One “achievement” and a code to download FIFA 14.

image

Setup is a matter of connecting an HDMI cable to your TV or, in my case, a receiver, and the Kinect to its special port. I also connected an ethernet cable.

image

Finally I connected a digital TV PVR to the HDMI in. This enables the TV app on the Xbox One.

First impressions of the hardware are good. It looks elegant and feels well made. The controller is lovely to hold. The Kinect looks solid and sits comfortably in front of our TV.

I looked in vain for any specifications in the box. From other sources I believe the Xbox One has:

  • AMD chipset with 8 CPU cores at 1.75 GHz and 8GB DDR3 RAM
  • 500 GB hard drive
  • AMD GPU with 768 cores supporting up to 3840×2160 (2160p) graphics.
  • Blu-ray drive
  • Gigabit Ethernet
  • 802.11n wifi
  • HDMI out, HDMI in, 2 USB 3.0 ports, S/P DIF optical audio out.
  • 7.1 surround sound

First impressions of the software are so-so. It began by downloading a firmware update, which went quickly enough. However that was just the start. The Xbox One dashboard uses an app model; almost everything is an app. Each app has to be downloaded and installed, including the Blu-ray player, Xbox Music, Skype and so on. Even the system settings is an app.

I made the mistake of registering my free download of FIFA 14 as one of the first things I did. The download is huge, and while it proceeded most of the other functionality showed as “Queuing”.

I expected to be wowed by some gorgeous effects in the new dashboard, but in fact the design is rather pedestrian. It is a tiled user interface but not quite the same as Windows 8. The dashboard features a larger tile which represents the currently selected app. This may be a live preview in some cases, TV for example. You can select this to run full screen, or you can have a snap view which shows a secondary app running alongside.

The dashboard overall feels rather spartan, especially to begin with when nothing much has been downloaded.

All of this contributed to an overall out of box experience of “is that it?”

I remember unpacking the original Nintendo Wii, running the Sports game, and having an amazing time. By contrast getting started with Xbox One was rather drab.

There is a video store where you can buy or rent downloads. I tried a few previews which show in extremely poor quality, which I trust bears no comparison to what you get if you actually pay. It beats me why you would show worse-than-VHS previews of movies when trying to tempt people into paying for a download.

There there is Kinect. I have mixed feelings. First, it really is amazing. It feels like a huge step forward from the original Kinect. I downloaded Kinect Sports Rivals preview, which lets you ride a water racer where you clench your fist to accelerate and move invisible handlebars to steer. It works perfectly even when you are seated. Technically that is a huge achievement.

At the same time I have to say that I would rather use a controller. Are we ever going to get equally precise control with motion sensors, compared to what you get with a controller? If it is a bowling game, motion sensors do make sense, but for controlling a water racer I am not so sure.

I am looking forward to trying the fitness app, but currently I a get a log-in failure with a message “unable to connect to token service”. It could be a firewall issue. Annoying.

Voice control is another big feature. Again, I have mixed feelings. It works for the most part very well. You say “Xbox select” and available options show in green text on the screen.

The main problem I have with the voice control is lack of consistency. I am willing to invest the time getting good at voice control, but only if I can do nearly everything with it. Unfortunately many apps are not voice enabled. So you can start the YouTube app with voice, for example, but not search within it.

I also worry that voice control will be a liability in some scenarios. Such fun to enter a room full of intense gamers and say “Xbox Go Home”.

It is getting there though, and worth some effort just to be able to go into a room, say “Xbox play Miles Davis” and have it be so.

That brings me to Xbox Music. It seems pretty good for streaming from Microsoft’s service, but not for much else. In my case I have a huge library of music ripped from CD and would like to be able to play it on the Xbox One. Rumour said that there would be support for DLNA streaming but I cannot see any sign of it.

FIFA 2014 looks good though football games are not so much my thing. I do miss having a little leaflet with a quick guide to the controls; a downside of download games.

There are not many games available and some are extraordinarily expensive, £68.99 for Dead Rising Deluxe Edition for example.

The YouTube app is nicely done and a good way to while away time, lack of voice search aside.

There are occasional Windows-like annoyances. You start the console, it says “Hello Tim” and you think you are signed in. You open Xbox Music and it says you must sign in. You select to sign in and you get another screen saying you should sign in. Then you sign in and it works.

There is a lot more Windows in Xbox One than in its predecessor. The SkyDrive app lets you view your uploaded photos which is handy. Internet Explorer is there and works reasonably with voice control, but lack of Flash is a big problem given that multimedia is important in the kind of web browsing you are likely to do on a TV.

So what do I think? On the plus side, the hardware seems excellent. I like the new controller. I like the Blu-ray support. I like the YouTube app.

The sad thing though is that as of now an Xbox 360 is a lot more fun, with its rich array of available games, and mature dashboard and apps.

Lack of any backward compatibility is a disaster at this point in the new console’s lifecycle. It is also disappointing that you cannot yet install Windows 8 apps, which would have instantly provided an array of reasonably priced casual games.

Populate XBox One with some strong games and apps, give the dashboard a bit more polish, and it could be really good. As it stands though, I find this hard to recommend. This is a long-term worry, since it gives the competition a head start from which the One may never recover.

Microsoft also needs to be a little less greedy in terms of pushing its subscription services and give us more fun out of the box.

Kinect is the major differentiator, and we will have to watch this space. The technology is amazing but where are the stunning and delightful games or apps that take advantage of it? Whether or not these will arrive is a big unknown.

Microsoft Surface 2: still a hard sell at retail

I am a fan of Microsoft’s Surface 2; but looking at the display at Dixons in Heathrow’s Terminal 3 it is obvious that Microsoft has work to do in terms of retail presence.

There are no clues here as to why anyone might want to buy a Surface, and no indication that Surface 2 runs anything other than standard Windows 8, other than the two letters RT which you can read on the spec summary.

Windows RT is both better and worse than Windows on Intel. It is worse because you cannot install new desktop applications, but it is better because it is locked down and less likely to suffer from viruses or annoying OEM add-ons and customisations that usually result in a worse user experience.

Why did Microsoft not come up with a distinctive brand name for RT, such as AppWindows or StoreWindows or WinBook? I am open to negotiation should Microsoft wish to use one of my brand ideas 🙂

Surface 2 has excellent performance, Microsoft Office is bundled including Outlook (though without the ability to run Visual Basic macros), and it is expandable using Micro SD cards or USB 3.0 devices, all features I miss when using an Apple iPad.

I do use the desktop a lot on Surface 2. Simple applications like Paint and Notepad are useful especially since they have, you know, cool resizable and overlapping windows so you can have multiple applications on view.

The Apple iPad is better displayed and I am sure its greater prominence is more than justified by relative sales.

 

Visual Studio goes online, kind-of

Microsoft held its official launch for Visual Studio 2013 today, at an event in New York, although the product itself has been available since mid-October. VP Soma Somasegar nevertheless made some new announcements, in particular the availability in preview of an online Visual Studio editor, codenamed Monaco. “Developers will now be able to edit their sites directly from the web, from any modern browser, on any device,” said Somasegar on his blog.

Monaco is not intended as a replacement for the desktop IDE. Instead, it parallels what Microsoft has done with Office, which is to provide a cut-down online editor for occasional use. Monaco currently targets only web applications running on Azure, Microsoft’s public cloud platform. The technology is not altogether new, since it is built on the same base as “Napa”, the online editor for Office 365 applications.

image

At the launch, Monaco was demonstrated by Erich Gamma, of Design Patterns and Eclipse fame, who says he uses it for real work. He assured us that it is built on web standards and compatible with iOS and Android tablets as well as desktop browsers.

Online editing with Monaco is only one part of what Microsoft now calls Visual Studio Online. The product also includes a hosted version of Team Foundation Server, offering source code control, collaboration tools, and an online build service. These features were already available as part of Team Foundation Service, which is now replaced by Visual Studio Online. If you are happy with the cut-down Visual Studio Express, or already have Visual Studio, then subscription is free for teams of up to five users, with additional users costing $10 per user/month for an introductory period, and rising to $20 per user/month.

Microsoft is also offering Visual Studio Online Professional, which bundling desktop Visual Studio Professional with these online services, for teams of up to 10 users, at $22.50 per user/month rising to $45.00 per user/month. This follows the same model which Adobe adopted for its Creative Cloud, where you get cloud services bundle with tools that run on the desktop.

Pay even more and you can get Visual Studio Online Advanced, which oddly does not include the Professional IDE, but supports unlimited users and has additional reporting and collaboration features, for $30 rising to $60 per user/month.

When does the introductory offer expire? It’s until further notice – 30 days’ notice will be provided before it ends. Confusing.

Somasegar also announced the preview of a new online service called Application Insights. This service analyses and monitors data from .NET or Java applications running on Windows Server or Windows Azure, and .NET applications on Windows Phone 8, reporting on availability, performance and usage.

Another new service is Elastic Load Test (not to be confused with Amazon’s Elastic Compute Cloud), which simulates multiple concurrent users for testing the performance and behaviour of an application under stress. This requires the expensive Visual Studio Ultimate with MSDN subscription, and offers 15,000 virtual user minutes per month, with additional virtual user minutes at $.001 each.

Finally, he announced a partnership with Xamarin to enable development for iOS and Android in C# and Visual Studio, extending the existing Portable Class Libraries so that non-visual code can be shared across different Windows platforms as well as the new mobile target platforms.

I spoke to Xamarin’s Nat Friedman about this and wrote it up on the Register here.

Microsoft’s strategy here is to persuade existing Windows developers, familiar with C#, Visual Studio, and both desktop and ASP.NET applications, to stick with Microsoft’s platform as they migrate towards cloud and mobile. In this context, the heart of Microsoft’s platform is Windows Azure and Office 365, which is why the company can tolerate iOS or Android clients.

The company will also hope that a proliferation of apps which integrate and extend SharePoint online will help drive subscriptions to Office 365.

The latest Visual Studio includes a new Cloud Business App project type, which is an app that sits on Windows Azure and integrates with SharePoint in Office 365. Coding in Visual Studio and deploying to Azure, both for Cloud Business apps and ordinary web applications, is now an easy process, reducing friction for developers deploying to Azure.

More information on Visual Studio Online is here.

My last server? HP ML310e G8 quick review

Do small businesses still need a server? In my case, I do still run a couple, mainly for trying out new releases of server products like Windows Server 2012 R2, System Center 2012, Exchange and SharePoint. The ability to quickly run up VMs for testing software is of huge value; you can do this with just a desktop but running a dedicated hypervisor is convenient.

My servers run Hyper-V Server 2012 R2, the free version, which is essentially Server Core with just the Hyper-V role installed. I have licenses for full Windows server but have stuck with the free one partly because I like the idea of running a hypervisor that is stripped down as far as possible, and partly because dealing with Server Core has been educational; it forces you into the command line and PowerShell, which is no bad thing.

Over the years I have bought several of HP’s budget servers and have been impressed; they are inexpensive, especially if you look out for “top value” deals, and work reliably. In the past I’ve picked the ML110 range but this is now discontinued (though the G7 is still around if you need it); the main choice is either the small Proliant Gen8 MicroServer which packs in space for 4 SATA drives and up to 16GB RAM via 2 PC3 DDR3 DIMM slots and support for the dual-core Intel Celeron G1610T or Pentium G2020T; or the larger ML310 Gen8 series with space for 4 3.5" or 8 small format SATA drives and 4 PC3 DDR3 DIMM slots for up to 32GB RAM, with support for the Core i3 or Xeon E3 processors with up to 4 cores. Both use the Intel C204 chipset.

I picked the ML310e because a 4-core processor with 32GB RAM is gold for use with a hypervisor. There is not a huge difference in cost. While in a production environment it probably makes sense to use the official HP parts, I used non-HP RAM and paid around £600 plus VAT for a system with a Xeon  E3-1220v2 4-core CPU, 32GB RAM, and 500GB drive. I stuck in two budget 2Tb SATA drives to make up a decent server for less than £800 all-in; it will probably last three years or more.

There is now an HP ML310e Gen 8 v2 which might partly explain why the first version is on offer for a low price; the differences do not seem substantial except that version 2 has two USB 3.0 ports on the rear in place of four USB 2.0 ports and supports Xeon E3 v3.

Will I replace this server? The shift to the cloud means that I may not bother. I was not even sure about this one. You can run up VMs in the cloud easily, on Amazon ECC or Microsoft Azure, and for test and development that may be all you need. That said, I like the freedom to try things out without worrying about subscription costs. I have also learned a lot by setting up systems that would normally be run by larger businesses; it has given me better understanding of the problems IT administrators encounter.

image

So how is the server? It is just another box of course, but feels well made. There is an annoying lock on the front cover; you can’t remove the side panel unless this is unlocked, and you can’t remove the key unless it is locked, so the solution if you do not need this little bit of physical security is to leave the key in the lock. It does not seem worth much to me since a miscreant could easily steal the entire server and rip off the panel at leisure.

On the front you get 4 USB 2.0 ports, UID LED button, NIC activity LED, system health LED and power button.

image

The main purpose of the UID (Unit Identifier) button is to help identify your server from the rear if it is in a rack. You press the button on the front and an LED lights at the rear. Not that much use in a micro tower server.

Remove the front panel and you can see the drive cage:

image

Hard drives are in caddies which are easily pulled out for replacement. However note the “Non hot plug” on these units; you must turn the server off first.

You might think that you have to buy HP drives which come packaged in caddies. This is not so; if you remove one of the caddies you find it is not just a blank, but allows any standard 3.5" drive to be installed. The metal brackets in the image below are removed and you just stick the drive in their place and screw the side panels on.

image

Take the side panel off and you will see a tidy construction with the 350w power supply, 4 DIMM slots, 4 PCI Express slots (one x16, two x8, one x4), and a transparent plastic baffle that ensures correct air flow.

image

The baffle is easily removed.

image

What you see is pretty much as it is out of the box, but with RAM fitted, two additional drives, and a PCIX USB 3.0 card fitted since (annoyingly) the server comes with USB 2.0 only – fixed in the version 2 edition.

On the rear are four more USB 2.0 ports, two 1GB NIC ports, a blank where a dedicated ILO (Integrated Lights Out) port would be, video and serial connector.

image

Although there is no ILO port on my server, ILO is installed. The luggage label shows the DNS name you need to access it. If you can’t get at the label, you can look at your DHCP server and see what address has been allocated to ILOxxxxxxxxx and use that. Once you log in with a web browser you can change this to a fixed IP address; probably a good idea in case, in a crisis, the DHCP server is not working right.

ILO is one of the best things about HP servers. It is a little embedded system, isolated from whatever is installed on the server, which gets you access to status and troubleshooting information.

image

Its best feature is the remote console which gives you access to a virtual screen, keyboard and mouse so you can get into your OS from a remote session even when the usual remote access techniques are not working. There are now .NET and mobile options as well as Java.

image

Unfortunately there is a catch. Try to use this an a license will be demanded.

image

However, you can sign up for an evaluation that works for a few weeks. In other words, your first disaster is free; after that you have to pay. The license covers several servers and is not good value for an individual one.

Everything is fine on the hardware side, but what about the OS install? This is where things went a bit wrong. HP has a system called Intelligent Provisioning built in. You pop your OS install media in the DVD drive (or there are options for network install), run a wizard, and Intelligent Provisioning will update its firmware, set up RAID, and install your OS with the necessary drivers and HP management utilities included.

I don’t normally bother with all this but I thought I should give it a try. Unfortunately Server 2012 R2 is not supported, but I tried it for Server 2012 x64, hoping this would also work with Hyper-V Server, but no go; failed with unattend script error.

Next I set up RAID manually using the nice HP management utility in the BIOS and tried to install using the storage drivers saved to a USB pen drive. It seemed to work but was not stable; it would sometimes fail to boot, and sometimes you could log on and do a few things but Windows would crash with a Kernel_Security_Check_Failure.

Memory problems? Drive problems? It was not clear; but I decided to disable embedded RAID in the BIOS and use standard AHCI SATA. Install proceeded perfectly with no need for additional drivers, and the OS is 100% stable.

I did not want to give up RAID though, so wondered if I could use Storage Spaces on Hyper-V Server. Apparently you can. I joined the Hyper-V Server to my domain and then used Server Manager remotely to create a Storage Pool from my pair of 2TB drives, and then a mirrored virtual disk.

My OS drive is not on resilient storage but I am not too concerned about that. I can backup the OS (wbadmin works), and since it does nothing more than run Hyper-V, recovery should be straightforward if necessary.

After that I moved across some VMs using a combination of Move and Export with no real issues, other than finding Move too slow on my system when you have a large VHD to copy.

The server overall seems a good bargain; HP may have problems overall, but the department that turns out budget servers seems to do an excellent job. My only complaint so far is the failure of the storage drivers on Server 2012 R2, which HP will I hope fix with an update.

Users report SkyDrive issues: sync failures, Microsoft Account problems

SkyDrive, Microsoft’s cloud storage service, is critical to the company’s strategic direction for Windows. It is the means by which content and settings are kept in synch across different Windows machines; or more precisely, user accounts across different Windows machines.

Content in SkyDrive is accessible via any web browser, and there are clients for Windows and for various mobile devices. Office Web Apps are also built-in so you can create and edit documents in the cloud.

In principle it is an excellent service, but since the release of Windows 8.1 a few problems have emerged. Specifically:

Some users report problems synching. Check out this thread which begins with users of the 8.1 preview but continues through to the release. The main issue mentioned is that synchronisation simply fails for some users, but others report duplicate documents created with names like somedoc-mypc.xls and somedoc-mylaptop.xls, where “mypc” and “mylaptop” are the names of computers used with the service. Working out which document is the most current can be tricky.

I have encountered this myself, even on some occasions with a document created and edited solely on one machine. Somehow SkyDrive manages to think there is a conflict.

Another problems is unnecessary network traffic. Here is an example of some of these issues:

My brand new shiny Surface Pro 2 was set to have the documents available offline and everything else online only.  The sync has stalled just like everyone else reports in this thread.  I changed the folder to "online only" and the sync claimed to complete.  I then changed the folder back to "available offline" and it proceeded to redownload thousands of files, finally stalling again with a little more than 200 left.  The Metro app says that the files have completed yet they are still in the pending queue.

Many users express what seems to me a valid complaint, that Windows 8.1 gives you less information and control than was in Windows 8.0.

Some users dislike being tied to a Microsoft account. SkyDrive is a consumer service, and you can only use it with a Microsoft account (MSA) – a descendant of what was once called Passport. In Windows 8 and earlier, which had standalone SkyDrive clients, that was not too bad. You can sign into SkyDrive just as you would into Dropbox or any cloud service. In Windows 8.1 though, SkyDrive is baked into the operating system, which means that you have to sign in centrally to a Microsoft account.

There are several reasons users struggle with this, including privacy concerns, inconvenience if you have more than one SkyDrive account you want to use, and complications when you have a corporate login to a Windows domain as well as SkyDrive:

When I login with my domain account and connect my MSA to it, Skydrive still won’t sync, it keeps creating "Skydrive" folders in the user directory each time it tries to start. I can’t find anything in the logs to help.

If I instead login with the MSA account to the computer it will sync.

SkyDrive is a free service and Microsoft has good reason to encourage users to sign in with one of its accounts, which gives access to the Windows Store, Xbox Music and other services. I can see why users object, but also why Microsoft wants to encourage users to sign in.

It is harder to understand why the service does not work reliably. The impression I get is that this is more to do with the client, especially in Windows 8.1, than with the cloud service; but it is hard to be sure.

How extensive are the problems? Again, it is hard to get firm data. I find it works reasonably well for me, though I get the duplicate file problem as well as regular issues saving Office documents. The notorious Office Upload Center reports a problem and you have to re-open the document in Office and save to resolve it.