All posts by onlyconnect

Small businesses and the cloud: 60% have no plans to adopt?

Microsoft has released a few details from a global survey of small businesses, defined as employing up to 250 employees, and cloud computing.

The research finds that 39 percent of SMBs expect to be paying for one or more cloud services within three years, an increase of 34 percent from the current 29 percent. It also finds that the number of cloud services SMBs pay for will nearly double in most countries over the next three years.

I think this means that today 71% of small businesses do not pay for any cloud services, but that this is expected to drop to 61% in the next three years.

It is worth noting that very small businesses can get quite a long way with free services such as Google Mail. So when we read that:

The larger the business, the more likely it is to pay for cloud services. For example, 56 percent of companies with 51–250 employees will pay for an average of 3.7 services within three years.

that may mean that very small businesses mainly use free services, rather than none at all.

In my experience, many small businesses do not have clearly articulated IT strategies, so I am sceptical about this kind of survey. One day the server breaks down and at that point the business decides whether to get a new server or buy into something like Microsoft BPOS or Office 365 instead.

A business actually has to be pretty determined to embrace cloud computing in a comprehensive way. There are often a number of business-critical applications that presume a Windows server on the premises, sometimes in old versions or custom-written in Visual Basic or Access. It is easier to maintain that environment, but perhaps to start using cloud-based email, CRM or even document storage alongside it.

I still find it interesting that Microsoft’s research points to larger businesses within this sector being more open to cloud computing than the smallest ones. The new Small Business Server 2011 range makes the opposite assumption, that smaller businesses (with Essentials) will be cloud-based but larger ones (with Standard) will remain on-premise. I still cannot make sense of this, and it seems to me that the company is simply unwilling to be radical with its main Small Business Server offering. It is a missed opportunity.

That said, clearly there is a lot of caution out there If, if I am right in my reading of the figures, that 61% have no plans to pay for anything cloud-based over the next 3 years.

Another Windows app store – but this time it is virtual. Embarcadero’s AppWave promises instant installs

Embarcadero has announced the AppWave Store, a forthcoming app store for Windows which uses application virtualization to avoid the hassles and risks of the usual Windows install process.

image

The idea is that purchasing apps for Windows will be as simple as installing an app on a mobile using the Apple app store or Android Market.

The underlying technology was developed to simplify deployment of Embarcadero’s tools. The All-Access subscription includes a tool box application that lets you run tools using “InstantOn”, which means no installation, just click and run. I have used this for a while now and it works well.

image

When you run an InstantOn tool for the first time, you are prompted to download:

image

There is of course a pause while the app downloads. This is not thin client technology where the app actually runs remotely. It is installed on your local machine, but isolated so there are no dependencies or conflicts.

image

Once downloaded, you just launch the application. No other setup, other than software agreement and registration prompt.

image

The download is cached, so you can launch next time without delay, and it works offline too. AppWave is a rebranded version of InstantOn, and is also available for internal deployment of Embarcadero tools.

The AppWave store takes this technology and applies to a store for the general public. Developers will pay $99 per year (though the fee is waived if you sign up now) and get AppWave Studio, which lets you convert software to run under AppWave. The conversion process is called “mastering” and only takes a few hours, according to the FAQ [pdf].

Windows XP, Vista and 7 are supported clients, availability will be worldwide at launch, and Embarcadero takes 30% of your sale price. No launch date has been announced.

I guess the first big issue is whether developers will feel that the 30% fee is good value bearing in mind that there are many other ways to sell and deploy software.

Second, there are other app stores out there or coming, not least Microsoft’s own which is likely to be part of Windows 8. Will AppWave compete effectively?

Third, does Embarcadero have what it takes to market AppWave and make a destination for Windows users looking for apps?

App virtualization is a neat trick though, and could save significant support costs as well as being appealing for customers. Deploying apps using runtimes like Silverlight or Adobe AIR can be equally seamless, but apps have to be written specifically for those runtimes, whereas AppWave works with apps written for the full Windows API.

It is surprising that Embarcadero is not also marketing the AppWave technology for developers for general purpose use. Possibly this is coming; or maybe the company will try to keep it as an exclusive benefit for the AppWave store. There are alternatives, including Microsoft App-V and VMWare ThinApp.

See also Marco Cantu’s post Understanding Embarcadero AppWave, which is what alerted me to the AppWave store.

RIM announces Java and Android runtimes for the Playbook, beta of native SDK

RIM has announced several new options for developing apps for its PlayBook tablet.

RIM will launch two optional “app players” that provide an application run-time environment for BlackBerry Java® apps and Android v2.3 apps. These new app players will allow users to download BlackBerry Java apps and Android apps from BlackBerry App World and run them on their BlackBerry PlayBook.

In addition, RIM will shortly release the native SDK for the BlackBerry PlayBook enabling C/C++ application development on the BlackBerry® Tablet OS. For game-specific developers, RIM is also announcing that it has gained support from two leading game development tooling companies, allowing developers to use the cross-platform game engines from Ideaworks Labs and Unity Technologies to bring their games to the BlackBerry PlayBook.

It sounds as if the Android runtime will not be perfectly compatible with real Android:

Developers currently building for the BlackBerry or Android platforms will be able to quickly and easily port their apps to run on the BlackBerry Tablet OS thanks to a high degree of API compatibility.

Nevertheless, this will be an attractive route for Android developers looking for a quick way to port to the Blackberry.

The native SDK is currently in “limited alpha release” but RIM is promising an open beta for this summer.

The BlackBerry Tablet OS NDK will allow developers to build high-performance, multi-threaded, native C/C++ applications with industry standard GNU toolchains. Developers can create advanced 2D and 3D applications and special effects by leveraging programmable shaders available in hardware-accelerated OpenGL ES 2.0.

The deal with Unity is important too. Unity is an increasingly popular toolkit for game development and adding the Blackberry to the list of supported platforms will boost its appeal. Ideaworks Labs makes the Airplay SDK, a cross-platform toolkit which already supports Apple iOS, Android, Symbian, Samsung Bada, HP webOS and Windows Mobile.

Note that the primary SDK for the Playbook has until now been Adobe AIR; and since the UI itself uses the Flash runtime this likely still makes sense for many applications.

RIM is doing a good job of opening up its platform. It is an interesting contrast to Microsoft’s “Silverlight, XNA or nothing” approach for Windows Phone.

Silverlight in Microsoft products – Silverlight the new Windows runtime, HTML 5 the new Silverlight?

Is Microsoft ditching Silverlight and embracing HTML 5? Or is Silverlight the future of desktop and browser-based development on Microsoft’s platform?

Good question; and I am not sure that Microsoft itself can answer. There is evidence for both cases.

One thing I have noticed though is that Silverlight is turning up in numerous Microsoft products. This is in contrast to the early years of the original .NET Framework, which Microsoft used rather little in its own stuff, though the context is different today because of the growth in web-based development.

I guess we cannot really count Visual Studio LightSwitch, which is a tool that builds Silverlight applications, though it is interesting insofar as the target market is not expert developers, but smart general users who want to build database applications.

Lync Server 2010 is a better example. Silverlight is used for the control panel.

image

Windows Azure, a strategic product for Microsoft, uses Silverlight for its control panel

image

Windows Intune, for maintaining networks online

image

System Center for managing Microsoft servers. I’m not actually sure how much Silverlight is used in System Center, but I understand the newly announced “Concero”, a new feature for managing public and private clouds, uses a Silverlight control panel and I suspect it is used elsewhere as well.

image

These are a few that I am aware of; I would be interested in other examples.

Now, you can make sense of this to some extent by distinguishing “Windows platform” from “broad reach” applications. It is curious, but Silverlight which started out as a broad reach plugin is gradually moving towards a Windows platform runtime, though it still runs on a Mac with some limitations, mainly lack of COM interop. There has been speculation that Silverlight could merge with the desktop Windows Presentation Foundation and become a commonly used application runtime for desktop Windows as well as web apps, and of course Windows Phone.

When Microsoft wants broad reach, it uses HTML, an example being Office Web Apps which make hardly any use of Silverlight.

Nevertheless, using Silverlight for products like Windows Intune could be annoying for administrators who might otherwise use an Apple iPad when out and about; but I guess Microsoft figures that if you are deep enough into Windows to use Intune, you probably will not be using an iPad.

Let me add that Silverlight seems to me to be working well in the examples above, to the extent that I have tried it. Could they be done equally well in HTML and JavaScript? Probably, if users have IE9, but probably not if it is IE8 or earlier.

Silverlight the new Windows, HTML 5 the new Silverlight?

Browser wars heat up as Firefox 4 arrives

Just one week after the final release of Microsoft’s Internet Explorer 9, and here comes another major browser, Mozilla Firefox 4.

What’s new in Firefox? Performance, for one thing. There is a new JavaScript engine called JägerMonkey which is more effective than the old TraceMonkey – though TraceMonkey is still there – and there is hardware-accelerated graphics on Windows Vista and Windows 7 using Direct2D, and on Windows and Mac Direct3D or OpenGL are used to speed page composition.

On the appearance side, Mozilla has streamlined the user interface with tabs above the address bar, sorry Awesome Bar, and reduced the number of buttons. By default there are no menus visible, and you are meant to use the Firefox button at top left:

image

I was disconcerted not to find the Tools menu here and one of the first things I did was to show the menu bar, though it does spoil the new UI design.

Firefox is also coming to Android and Maemo devices, and a great feature called Sync will synchronize bookmarks, tabs, passwords and history across all the devices you use.

There is also a new privacy feature called Do not track. This is a way of telling websites that you do not wish to be tracked. Tracking is used by web advertisers to send ads based on your browsing history as seen by that advertiser. Since many websites have scripts served by the same ad agency, this can be considerable. The feature does not block tracking, but only requests not to be tracked. It is off by default and buried in Advanced options, so will probably not be very effective.

image

Firefox is an excellent browser, with many more features than I have mentioned above. A few observations though.

The new features in Firefox 4 echo many of the few features in Internet Explorer 9, which in turn echoes some of the themes in Chrome. However on my system IE9 seems to be a little faster than Firefox 4, the user interface is more polished in my opinion, and the tracking protection in IE9 is more effective since it does actually block tracking.

Then again, there are Firefox add-ons that also block tracking; and in general Firefox seems to have the best range of available add-ons, which could well be the deciding factor for many users.

Firefox 4 still has a separate search box, and in principle I like this. I find it annoying that IE9 and Chrome intermingle searches and URLs in one box. I suspect though that I am in a minority of users. If you switch between browsers, you can find yourself typing searches in the Awesome Bar anyway, though habit, so I am guessing Mozilla will cave in and combine them eventually.

Mozilla is a non-profit organisation with a strong open source and community ethos and that also may be enough reason to use Firefox.

It does face intense competition now though, and it must be a concern that its income comes largely from:

search functionality included in our Firefox product through all major search partners including Google, Yahoo, Yandex, Amazon, Ebay and others.

which in practice is mostly from Google, which has a competing browser.

Personally I think Mozilla will struggle to maintain market share for Firefox; though version 4 is having a good launch complete with a delightful Twitter party

image

and a pretty download stats counter which is currently on 2.75 million and climbing fast.

image

Adobe AIR 2.6, MonoMac 1.0, cross-platform is not dead yet

It is a busy time for cross-platform toolkits. Adobe has released AIR 2.6, and reading the list of what’s new you would think it was mainly for mobile, since the notes focus on new features for Apple iOS, though AIR is also a runtime for Windows, Linux and desktop Mac. New features for iOS include GPU rendering – a form of hardware accelerated graphics – access to the camera, microphone, and camera roll, and embedded Webkit for apps that use web content. On Google Android, you can now debug on devices connected via USB.

There is also a new feature called “owned native windows” which lets you have a group of windows that remain together in the Z order – this lets you have things like floating toolbars without odd results where toolbars get hidden underneath other applications.

Asynchronous decoding of bitmaps is another new feature, allowing images to be processed in the background. This seems like a stopgap solution to overcome the lack of mullti-threading in AIR, but useful nonetheless.

Since the Flash runtime does not run on iOS, Adobe has a packager that compiles an AIR application into a native app. This is now called the AIR Developer Tool or ADT. You can use the ADT to target Windows, Linux or Android as well; however platforms other than iOS still need the AIR runtime installed.

Adobe is dropping support for the original iPhone and the iPhone 3G. iPhone 3GS or higher is needed.

If you want to build a cross-platform app but prefer .NET to Adobe’s Flash and ActionScript, the Mono folk have what you need. I’d guess that the Mono team has a small fraction of the resources of Adobe; but nevertheless it has delivered MonoTouch for iOS and is working on MonoDroid for Android. Just completed in its 1.0 version is MonoMac, for building Cocoa applications on Apple OSX. Mono is not fully cross-platform, since the GUI framework is different on the various platforms, but you do get to use C# throughout.

I am happy to agree that true native code is usually a better solution for any one platform; but at a time when the number of viable platforms is increasing the attraction of cross-platform has never been greater.

Disappearing items in Outlook and Exchange

I came across what looks to me like an unusual bug, most likely in Microsoft Outlook. Background: I have used the Notes folder in my Exchange mailbox for all sorts of information going back several years. This morning, I looked at the folder and found it empty, except for one solitary item. Normally there are over 1000. The surviving item was the result of my last search in that folder.

image

Now, the Exchange database is robust in my experience; and most often when items disappear it is not a bug but a result of Outlook working as designed but catching the user out in some way. Here are some common reasons:

  1. The items got auto-archived. Archives can be present on any machine on which you run Outlook. The default location for the archive folder is in a hidden location such as C:\Users\[USERNAME]\AppData\Local\Microsoft\Outlook\archive1.pst, where [USERNAME] is your Windows username. It really is hard for users to find this without expert help. How can the popular corporate mail client have usability like this? But I digress. The solution is to open the archive in Outlook and drag items back where they are wanted.
  2. The items are present, but filtered out by the view. Views in Outlook can be filtered to restrict the items on display, for example to unread items only. The user set the filter by clicking something in Outlook’s labyrinthine user interface, but does not realise it is still set. The effect is that items disappear. The solution is to reset the filter.
  3. The user accidentally dragged a folder inside another folder. This is easily done, as Outlook does not prompt you when you do this; it just moves the folder. The symptom is that a little expand symbol appears in the target folder, if it does not already have subfolders. The solution is to drag it back.
  4. The user accidentally deleted the items or folder. Outlook does not prompt when you delete items. In this case, however, the items end up in the Deleted Items folder. The solution is to drag them back where you want them.

Even if the user has subsequently emptied the deleted items folder, there is hope. Outlook has a little-known feature called Recover Deleted Items. Items go into a kind of hidden deleted items folder for a period after they get removed from the visible deleted items folder, or if they are removed with Shift-Delete. Recover Deleted Items, which is on the Folder tab in Outlook 2010 and on the Tools menu in earlier versions, will let you get them back.

My disappeared notes were nowhere to be found. Further, the evidence is that I had not deleted them, since the surviving item was the result of a search. There is no command that I know of to delete all items in a folder other than the result of a search.

Still, I wanted to get them back if possible; and preferably without restoring Exchange to an earlier date, this being a fairly slow and painful operation. I checked my laptop without connecting it to the network, to see if this had an offline copy. My laptop runs Outlook 2007. There was no offline copy, since it had synchronised subsequent to the items disappearing.

Incidentally, this is why synchronisation and redundancy are not the same as backup.

I had one more go at Recover Deleted Items. Curiously, Outlook 2007 does have a Recover Deleted Items option for the Notes folder, whereas Outlook 2010 does not. Note though that the deleted items live not in the local offline store, but in Exchange.

To my surprise, all my old notes were there. I selected them all in the Recover Deleted Items window and clicked to undelete. Now I am back where I was, except that all my old notes now have a “Created” date of today. A nuisance, but a good outcome nonetheless.

But what happened? I have two questions about this. One is how the items got deleted in the first place. The second is how they ended up in Recover Deleted Items. The documentation for Recover Deleted Items will make your head spin. It is an Exchange feature, but apparently controlled by Outlook. This knowledgebase article says it only works on the Deleted items folder, unless you are using Outlook 2007 when it works on all the folders.

Does that suggest that is was Outlook 2007 that deleted my items? But how could Outlook 2007 on one machine delete all the items except the result of a search in Outlook 2010 on another machine? It does not make sense.

My view is that Outlook has become so obscure and intricate in its inner workings that anything is possible. I think Microsoft should build a new Exchange client.

The future of Google Apps: social features, high performance spreadsheets, working offline

Yesterday I spoke to Google’s Global Product Management Director for Google Enterprise (whew!) Matthew Glotzbach, at a press briefing for Google Apps which included the announcement of Google Docs Discussions, as covered here.

image_thumb

One of the issues discussed in the briefing was Cloud Connect, which I reported on here. Cloud Connect automatically copies and synchronises Microsoft Office documents with Google’s cloud storage. There are some performance and usability issues, but the biggest problem is that you cannot edit the documents in the browser; or rather, if you do, Google makes a second copy leading to versioning issues.

Google says this is a file format issue. The online Google Docs applications cannot edit documents in Microsoft Office formats – “the document models are completely different” says Glotzbach – though it can import and export those formats. Could Google develop the ability to edit Office documents online? “It is a technical challenge, something we haven’t built yet,” he added.

It is an interesting point. Microsoft’s Office Web Apps have flaws, but they do let you maintain the same document whether edited in the browser or in the Office desktop applications. It is an example of friction if you try to live partly in Microsoft Office, and partly in Google’s cloud. It may be better to stick with one or the other.

What about offline capability, something I hear a lot as counting against Google Docs. Google had a solution for this based on its Gears add-on, but then withdrew it.

We are actively working on offline. It is extremely important. Gears was a precursor. A lot of the ideas embedded in Gears have become part of HTML5.

says Glotzbach. I asked whether this will extend to the Chrome OS netbook operating system, and he said that it will:

Chrome, as the most modern browser based on HTML 5, has the capabilities built into its core. Chrome OS as a derivative of that has those offline capabilities baked into it, so it is a matter of having applications take advantage of that.

We also talked about the new discussions feature. I observed that it seems to be just one part of a bigger story. What about discussions spanning multiple documents? What about discussions without documents? Is there any way of doing that?

“Yes, email,” he said, chuckling. Clearly Google has taken to heart that email remains the de facto mechanism for most corporate collaboration. “We’ve also got Google groups. Obviously the manifestation of a group for many users is email, that’s how they interact with it, but there is also a destination site or page for that group.”

Might Google develop its own equivalent to Salesforce.com Chatter, for Twitter-like enterprise messaging?

The idea of eventually being able to pull in other streams, the idea of social media inside the enterprise Is a powerful idea. I think Chatter is a good example of that, and others such as Yammer. I think those ideas will likely find their way into businesses. It is not clear to me that social will be a destination within an Enterprise. Rather I see it as, features will emerge in various products that leverage those social capabilities. Discussions is influenced heavily by a lot of those social media ideas, and so you can see that evolving into more integrated social capabilities across the app suite.

What about Google spreadsheets, which seem great for simple tasks and collaboration, but suffer performance and scalability issues when used with large data collections that work fine in Excel?

There’s always work to do. We have today some limitations in terms of spreadsheet size. Those are things we are actively working on. With browser technologies I actually think we have an advantage over desktop applications. If I told you I had a spreadsheet that had 5 million columns and a billion rows, there’s no desktop spreadsheet in the world that can handle that kind of volume, but because we have in essence supercomputers on the back end processing that, what you display is just a window of that large data. So we’re using clever technologies like pre-fetching the rows and columns that are just off the edge of the page, similar to some of the technologies we use with Google Maps.

But it’s an example where we have some artificial limitations that we are working to remove. Imagine doing really sophisticated non-linear calculations in a spreadsheet. We’ve got a supercomputer on the back end that can do that for you in seconds.

Google opens up discussions on docs

I attended a briefing today on Google Apps. Google is celebrating over 1 million business customers in EMEA (Europe, Middle East and Africa) since the launch of Google Apps just over 4 years ago, and over 3 million worldwide. An unknown proportion of those customers are small businesses using the free edition; but there are some well-known names which have signed up, including Rentokil Initial, Virgin America, Motorola, The Guardian, The Telegraph, and Jaguar Landrover.

The big announcement today is called Discussions in Google Docs, and I have had a quick try with a short document that I opened for discussion. One thing I learned is that if you want to allow public discussion on a document, you have to make it world-editable (like a wiki). It should be possible to have the document locked but still enable comments, but I cannot see how to do that; it seems that leaving a comment requires the same rights as editing the document.

Another oddity is that there are two comment panels, a narrow column on the right

image

and a big blue panel that appears if you select Show Discussions from the top menu.

image

If you are logged in, you can request notifications by email and even add comments by replying to email notifications.

image

There is also a per-comment feature mysteriously called Resolve. A resolved comment is semi-deleted; it is removed from the comment stream (narrow panel) but still appears in the full discussion (big blue panel).

My snap judgment is that these comments/discussions will be useful for document collaboration, which is already among the strongest features of Google Apps.

Microsoft’s code-first Entity Framework 4.1 nearly done

Microsoft has announced the release candidate of Entity Framework 4.1, the data persistence library for .NET, with a go-live licence. The final release to the web is expected in around one month’s time.

The big new feature is code-first, where you do not need to define a database schema or even a database model. You simply write classes that define objects you want to store, and the framework handles the work of defining the database for you.

Note that according to this article on MSDN:

The Entity Framework is Microsoft’s recommended data access technology for most types of applications.

Of course Microsoft has a long history of data access APIs and keeping up with the latest recommendation over the years has been a challenge. That said, the low-level ADO.NET data API has been in place since the first release of the .NET framework and has evolved rather than been replaced. There has been some confusion over LINQ to SQL versus Entity Framework; but note that LINQ (Language Integrated Query) works with Entity Framework as well.

So what is code-first? A good starting point is VP Scott Guthrie’s post from July last year, where he walks through a complete example using his Nerd Dinner theme. He writes classes to define two entities, Dinner and RSVP. Then he writes the following code:

image

Having defined this NerdDinners class inheriting from DbContext, he can go ahead and write a complete database application.

At this point there is still no database. In the simplest case though, you can just add a database connection to the project with the same name as the DbContext class – in this case, “NerdDinners”. The Entity Framework will use this connection, define a database schema for you, and save and retrieve objects accordingly.

The magic under the hood is an example of convention over configuration. That is, the framework will generate code and schema according to assumptions it makes based on the names used in your classes. For example, it picks up the field named DinnerID and makes it a primary key; and seeing a collection of RSVP objects called RSVPs in the Dinner class, the framework creates a relationship between the two generated tables. You can override the default behaviour with code mapping rules. There is also provision for updating the schema if you need to add or modify the fields, though this is a point of uncertainty in Guthrie’s post.

It looks fantastic; though there are a few caveats. One is that Microsoft tends to assume use of its own database managers, SQL Server or for simple cases, SQL Server CE. That said, there are drivers for other databases; for example devart has code-first drivers for Oracle, MySQL, PostgreSQL and SQLite.

Another point is that there is a trade-off when working at such a high level of abstraction. There is less code for you to write, but a large amount of generated code, which can make debugging or optimizing an application harder. This is a familiar trade-off though; and you could say that hand-rolled SQL is no different in principle from hand-rolled assembly code; you can get fantastic results but the amount of effort and skill required is greater, as is the risk of errors if you get it slightly wrong.

The Mono team has said that it does not intend to implement Entity Framework currently; there is a summary of work needed here. If you want to write .NET code that ports easily to Mono it is best avoided.

Are you using Entity Framework in new .NET projects? I would be interested to hear from .NET developers what approach you take to data persistence.