Open season for patent litigation makes case for reform

It seems to be open season for software patent litigation. Oracle is suing Google over its use of Java in Android. Paul Allen’s Interval Licensing is suing AOL, Apple, eBay, Facebook, Google, Netflix, Yahoo and others – the Wall Street Journal has an illustrated discussion of the patents involved here. Let’s not forget that Apple is suing HTC and that Nokia is suing Apple (and being counter-sued).

What’s next? I was reminded of this post by former Sun CEO Jonathan Schwartz. He confirms the supposition that large tech companies refrain from litigation – or at least, litigate less than they might, refrain is too strong a word right now – because they recognize that while they may have valid claims against others, they also most likely infringe on patents held by others.

The gist of Schwartz’s post is that Microsoft approached Sun with the claim that OpenOffice, owned by Sun, infringes on patents held by Microsoft thanks to its work on MIcrosoft Office:

Bill skipped the small talk, and went straight to the point, “Microsoft owns the office productivity market, and our patents read all over OpenOffice.”

Sun’s retort was in relation to Java and .NET:

“We’ve looked at .NET, and you’re trampling all over a huge number of Java patents. So what will you pay us for every copy of Windows?”

following which everything went quiet. The value of .NET to Microsoft is greater than the value of OpenOffice to Sun or Oracle.

Oracle, however, seems more willing to litigate than Sun; and I doubt it cares much about OpenOffice. Might we see this issue reappear?

That said, Microsoft also has a large bank of patents; and who knows, some of them might be brought to bear against Java in the event of legislative war.

The risk though is that if everyone litigates, the industry descends into a kind of nuclear winter which paralyses everyone. Companies like Interval Licensing, which seemingly exist solely to profit from patents, have no incentive to hold back.

Can any good come of this? Well, increasing software patent chaos might bring some benefit, if it forces countries like the USA to legislate in order to fix the broken patent system.

Protecting intellectual property is good; but against that you have to weigh the potential damage to competition and innovation from these energy-sapping lawsuits.

We need patent reform now.

Font does not support style regular – a fix for this annoying error

This is one of those strange Windows things. You’ll be working away, try to perform some action that would normally open a dialog or window, when you see a message like this:


In this case it is Font ‘Lucida Sans’ does not support style ‘Regular’; but the font varies and other common ones are Courier New, Arial, Times New Roman.

So what does this mean? In my experience, it means the font is present on your system but incorrectly registered. The fix is simple: remove the font and then reinstall it. I can’t promise that this will always work, but it has always worked for me, and I’ve encountered the problem a few times.

For example, this is what I did in this particular case. In Explorer, I navigated to c:\windows\fonts. I noticed that Lucida Sans was installed, but the only styles showing were Demibold Italic, Italic, and Demibold Roman. Not Regular.

Next, I opened an administrative command prompt. I navigated to c:\windows\fonts. I copied the file LSANS.TTF to a temporary location – anywhere that is NOT in the fonts folder – I used my Documents folder. Then I deleted the copy in the fonts folder.

Finally, I went back to Windows Explorer, found my copy of LSANS.TTF, selected it and chose Copy. Then I navigated to c:\windows\fonts and chose Edit – Paste. Presto! Lucida Sans Regular appeared in the font list and the error message in the application disappeared.

One thing that might not be obvious is what file name represents the font you need. You can normally figure it out though; if in doubt, try all the likely candidates until you find it.

Review: Tapworthy – designing great iPhone Apps by Josh Clark

Developing for iPhone is a hot topic. Many developers are not only having to learn Apple’s Objective C and the Cocoa application framework, but are also new to mobile development. It is a big shift. Josh Clark is a iPhone designer, and his book Tapworthy is about how to design apps that people will enjoy using. It is not a programming book; there is not a single snippet of Objective C in it.

His book illustrates the power shift that has taken place in computing. In the early days, it was the developer’s task to make an application that worked, and the user’s task to understand how to use it, through manuals, training courses, or whatever it took.

There are still traces of this approach in the software industry, but when it comes to iPhone apps it has reversed completely. The app creator has to build an app that the user will find intuitive, useful and fun; otherwise – no sale.

An early heading reads “Bored, Fickle and Disloyal”. That’s the target user for your app.

Clark’s point is valid, and he does hammer it home page after page. You will get the message; but it can get tiresome. His style is frank and conversational: some readers will love it, others will find it grating after a chapter or two.

Even if you are one of the latter group, it is worth persevering, because there is a ton of good content here. There are also numerous short interviews with developers of actual apps, many of them well-known, discussing the issues they faced. The persistent issue: we’ve got a complex app, a small screen, and intolerant users, how on earth do we make this seem simple and intuitive?

Constraints like these can actually improve applications. We saw this on the web, as the enforced statelessness and page model of web applications forced developers to simplify the user interface. It is the same with mobile. Joe Hewitt, author of the first generations of Facebook for iPhone:

There is so much stuff that is actually better on the small screen because it requires designers to focus on what’s really important.

So what’s in the book? After a couple of scene-setting chapters, Clark drills down into how to design for a tiny touchscreen. Be a scroll sceptic, he says. Chapter 4 then looks at app structure and navigation. Chapter 5 takes you blow by blow through the iPhone controls and visual elements. Then we get a chapter on making your app distinctive, a chapter on the all-important start-up sequence and how to make seem instantaneous, and a chapter on touch gestures.

The last three chapters cover portrait to landscape flipping, alerts, and finally inter-app communication and integration.

Throughout the book is illustrated in full colour, and the book itself is a pleasure to read with high quality paper and typography. 300 pages that will probably improve your app design and increase its sales; a bargain.


Develop for Adobe Flash/Flex in Amethyst for Visual Studio

SapphireSteel Software is poised to release Amethyst, which lets you develop Flash and Flex applications with Microsoft’s Visual Studio 2008 or 2010.

Why bother? There’s two aspects to this. One is simply the comfort factor: if you are a .NET developer used to Visual Studio, but now working on Flash or Flex, this could be an easier way in than the Eclipse-based Flash Builder. There is a visual designer, a full-featured debugger, a property inspector with sections for properties, events, effects and styles, for example, and double-clicking an event generates an event handler as you would expect.

The other factor is areas where Amethyst can improve on what Flash Builder offers. One example is ActionScript refactoring, disappointing in Adobe’s product. Amethyst is not brilliant, but does have a few extras including Extract Method, Encapsulate Field and Extract Interface.


Another useful feature is that Amethyst can share projects with Flash or Flash Builder. Before you get excited, it does not do the magic you might want, Visual Studio editing of .fla files with embedded ActionScript. It does work reasonably seamlessly though: you can open .fla file in the Flash IDE by clicking within Amethyst.

This would have been even more interesting if Adobe had not added a measure of Flash Builder integration in Flash Professional CS5; and that is the challenge facing SapphireSteel – how to keep up with Adobe’s official development tools.

I’ve only played briefly with Amethyst but although I’ve been impressed with it in some ways, I also found myself missing features in Flash Builder, such as the Connect to Data wizards, and the view state management.

It is early days though; and I would be interested to hear from others who have tried Amethyst on what they do or do not like about it.

Price is not yet stated, but SapphireSteel also offer a Ruby product which is priced at $49 for a basic edition, or $199 for a professional version. Amethyst also comes in two editions so perhaps we will see something similar.

Cloud users get Microsoft Office Web Apps update first

Users of Office Web Apps have just been given some minor but welcome updates, described here.

They include printing in Word when in edit mode,new chart tools in Excel, and again in Excel the handy autofill tool, which lets you drag the bottom left corner of a selection to extend it automatically. In the example below, the blank cells fill with the remaining months of the year.


Office Web Apps also work on SharePoint 2010 deployed internally. However, the version of Office Web Apps for SharePoint has not been updated, so these users (who have to pay for Office licenses) now have an inferior version to that available for free users on SkyDrive.

Automatic and incremental bug-fixes and updates are one of the inherent advantages of cloud computing.

Visual Studio LightSwitch – model-driven architecture for the mainstream?

I had a chat with Jay Schmelzer and  Doug Seven from the Visual Studio LightSwitch team. I asked about the release date – no news yet.

What else? Well, Schmelzer and Seven had read my earlier blog post so we discussed some of the things I speculated about. Windows Phone 7? Won’t be in the first release, they said, but maybe later.

What about generating other application types from the same model? Doug Seven comments:

The way we’ve architected LightSwitch does not preclude us from making changes .. it’s not currently on the plan to have different output formats, but if demand were high it’s feasible in the future.

I find this interesting, particularly given that the future of the business client is not clear right now. The popularity of Apple’s iPad and iPhone is a real and increasing deployment problem, for example. No Flash, no Silverlight, no Java, only HTML or native apps. The idea of simply selecting a different output format is compelling, especially when you put it together with the fast JIT-compiled JavaScript in modern web browsers. Of course support for multiple targets has long been the goal of model-driven architecture (remember PIM,PSM and PDM?) ; but in practice the concept of a cross-platform runtime has proved more workable.

There’s no sign of this in the product yet though, so it is idle speculation. There is another possible approach though, which is to build a LightSwitch application, and then build an alternative client, say in ASP.NET, that uses the same WCF RIA Services. Since Visual Studio is extensible, it will be fun to see if add-ins appear that exploit these possibilities.

I also asked about Mac support. It was as I expected – the team is firmly Windows-centric, despite Silverlight’s cross-platform capability. Schmelzer was under the impression that Silverlight on a Mac only works within the browser, though he added “I could be wrong”.

In fact, Silverlight out of browser already works on a Mac; the piece that doesn’t work is COM interop, which is not essential to LightSwitch other than for export to Excel. It should not be difficult to run a LightSwitch app out-of-browser on a Mac, just right-click a browser-hosted app and choose Install onto this computer, but Microsoft is marketing it as a tool for Windows desktop apps, or Web apps for any other client where Silverlight runs.

Finally I asked whether the making of LightSwitch had influenced the features of Silverlight or WCF RIA Services themselves. Apparently it did:

There are quite a few aspects of both Silveright 4 and RIA services that are in those products because we were building on them. We uncovered things that we needed to make it easier to build a business application with those technologies. We put quite a few changes into the Silverlight data grid.

said Schmelzer, who also mentioned performance optimizations for WCF RIA Services, especially with larger data sets, some of which will come in a future service pack. I think this is encouraging for those intending to use Silverlight for business applications.

There are many facets to LightSwitch. As a new low-end edition of Visual Studio it is not that interesting. As an effort to establish Silverlight as a business application platform, it may be significant. As an attempt to bring model-driven architecture to the mainstream, it is fascinating.

The caveat (and it is a big one) is that Microsoft’s track-record on modelling in Visual Studio is to embrace in one release and extinguish in the next. The company’s track-record on cross-platform is even worse. On balance it is unlikely that LightSwitch will fulfil its potential; but you never know.

Ten things you need to know about Microsoft’s Visual Studio LightSwitch

Microsoft has announced a new edition of Visual Studio called LightSwitch, now available in beta, and it is among the most interesting development tools I’ve seen. That does not mean it will succeed; if anything it is too radical and might fail for that reason, though it deserves better. Here’s some of the things you need to know.

1. LightSwitch builds Silverlight apps. In typical Microsoft style, it does not make the best of Silverlight’s cross-platform potential, at least in the beta. Publish a LightSwitch app, and by default you get a Windows click-once installation file for an out-of-browser Silverlight app. Still, there is also an option for a browser-hosted deployment, and in principle I should think the apps will run on the Mac (this is stated in one of the introductory videos) and maybe on Linux via Moonlight. Microsoft does include an “Export to Excel” button on out-of-browser deployments that only appears on Windows, thanks to the lack of COM support on other platforms.

I still find this interesting, particularly since LightSwitch is presented as a tool for business applications without a hint of bling – in fact, adding bling is challenging. You have to create a custom control in Silverlight and add it to a screen.

Microsoft should highlight the cross-platform capability of LightSwitch and make sure that Mac deployment is easy. What’s the betting it hardly gets a mention? Of course, there is also the iPhone/iPad problem to think about. Maybe ASP.NET and clever JavaScript would have been a better idea after all.

2. There is no visual form designer – at least, not in the traditional Microsoft style we have become used to. Here’s a screen in the designer:


Now, on one level this is ugly compared to a nice visual designer that looks roughly like what you will get at runtime. I can imagine some VB or Access developers will find this a difficult adjustment.

On the positive side though, it does relieve the developer of the most tedious part of building this type of forms application – designing the form. LightSwitch does it all for you, including validation, and you can write little snippets of code on top as needed.

I think this is a bold decision – it may harm LightSwitch adoption but it does make sense.

3. LightSwitch has runtime form customization. Actually it is not quite “runtime”, but only works when running in the debugger. When you run a screen, you get a “Customize Screen” button at top right:


which opens the current screen in Customization Mode, with the field list, property editor, and a preview of the screen.


It is still not a visual form designer, but mitigates its absence a little.

4. LightSwitch is model driven. When you create a LightSwitch application you are writing out XAML, not the XAML you know that defines a WPF layout, but XAML to define an application. The key file seems to be ApplicationDefinition.lsml, which starts like this:


Microsoft has invested hugely in modelling over the years with not that much to show for it. The great thing about modelling in LightSwitch is that you do not know you are doing it. It might just catch on.

Let’s say everyone loves LightSwitch, but nobody wants Silverlight apps. Could you add an option to generate HTML and JavaScript instead? I don’t see why not.

5. LightSwitch uses business data types, not just programmer data types. I mean types like EmailAddress, Image, Money and PhoneNumber:


I like this. Arguably Microsoft should have gone further. Do we really need Int16, Int32 and Int64? Why not “Whole number” and “Floating point number”? Or hide the techie choices in an “Advanced” list?

6. LightSwitch is another go at an intractable problem: how to get non-professional developers to write properly designed relational database applications. I think Microsoft has done a great job here. Partly there are the data types as mentioned above. Beyond that though, there is a relationship builder that is genuinely easy to use, but which still handles tricky things like many-to-many relationships and cascading deletes. I like the plain English explanations in the too, like “When a Patient is deleted, remove all related Appointment instances” when you select Cascade delete.


Now, does this mean that a capable professional in a non-IT field – such as a dentist, shopkeeper, small business owner, departmental worker – can now pick up LightSwitch and and write a well-designed application to handle their customers, or inventory, or appointments? That is an open question. Real-world databases soon get complex and it is easy to mess up. Still, I reckon LightSwitch is the best effort I’ve seen – more disciplined than FileMaker, for example, (though I admit I’ve not looked at FileMaker for a while), and well ahead of Access.

This does raise the question of who is really the target developer for LightSwitch? It is being presented as a low-end tool, but in reality it is a different approach to application building that could be used at almost any level. Some features of LightSwitch will only make sense to IT specialists – in fact, as soon as you step into the code editor, it is a daunting tool.

7. LightSwitch is a database application builder that does not use SQL. The query designer is entirely visual, and behind the scenes Linq (Language Integrated Query) is everywhere. Like the absence of a visual designer, this is a somewhat risky move; SQL is familiar to everyone. Linq has advantages, but it is not so easy to use that a beginner can express a complex query in moments. When using the Query designer I would personally like a “View and edit SQL” or even a “View and edit Linq” option.

8. LightSwitch will be released as the cheapest member of the paid-for Visual Studio range. In other words, it will not be free (like Express), but will be cheaper than Visual Studio Professional.

9. LightSwitch applications are cloud-ready. In the final release (but not the beta) you will be able to publish to Windows Azure. Even in the beta, LightSwitch apps always use WCF RIA Services, which means they are web-oriented applications. Data sources supported in the beta are SQL Server, SharePoint and generic WCF RIA Services. Apparently in the final release Access will be added.

10. Speculation – LightSwitch will one day target Windows Phone 7. I don’t know this for sure yet. But why else would Microsoft make this a Silverlight tool? This makes so much sense: an application builder using the web services model for authentication and data access, firmly aimed at business users. The first release of Windows Phone 7 targets consumers, but if Microsoft has any sense, it will have LightSwitch for Windows Phone Professional (or whatever) lined up for the release of the business-oriented Windows Phone.

Google favours big brands over diversity

Google has made a change to its search algorithm that means most of the results shown for a search may now come from a single domain. Previously, it would only show a couple of results from one domain, on the assumption that users would prefer to select from a diversity of results.

The example chosen by searchengineland is a good one. Search for Apple iPod and you get a page that is mostly links to Apple’s site.


If you search for the single word ipod you get more diversity – odd, since only Apple manufacture the ipod so you could argue that the searches are the same. Some people use ipod as a generic name for MP3 player, but that doesn’t seem to be reflected; all the results still relate to Apple’s device.


Personally I’d rather see diversity. I don’t see the need for this change, since the site summary with deep links works well when a particular domain closely matches the search term. You can see an example of this in the top result for the ipod search above. Note that it even has a link for “More results from”. What is the value of suppressing the results from other domains?

The overall impact is that big brands benefit, while smaller businesses and new entrants to markets suffer. It also makes independent comment that bit harder to find.

While to most of us changes like these are only of passing interest, to some they make the difference between a flourishing business and a dead one. Google has too much power.

Incidentally, I generally find Google significantly better than Bing, now its major competitor. However in this case Bing impresses, with categories such as reviews, prices, accessories, manuals and so on; and in the case of the Apple ipod search, a better balance between the official site and independents.

Measuring start-up time for .NET, Java, C++

A comment here points me to this comparison by Decebal Mihailescu of start-up times for processes on Windows using different runtimes: .NET in several versions, Java 1.6, Mono 2.6.4, and Visual C++ 2010 (native code).


It is notable that native code is much faster than the runtimes, and that .NET is ahead of Java – to be expected, perhaps, since Windows is its native environment.

The test application is tiny and when we are talking about a time of less than a tenth of a second, users are unlikely to care much. I would like to see tests based on a larger application; on the other hand it becomes increasingly difficult to make a fair comparison.

It’s a shame Embarcadero Delphi was not included, though I’d expect similar figures to those for Visual C++.

Start-up time is critical to perceived performance. One reason I use an ancient version of Paint Shop Pro for simple image manipulation is that I can double-click an image and be editing it instantly, whereas alternatives like Adobe PhotoShop or the free make me wait. Unless I need the extra features these provide, I stick with fast and simple.

Oracle still foisting Google Toolbar on Java users

Oracle may be suing Google over its use of Java in Android; but the company is still happy to take the search giant’s cash in exchange for foisting the Google Toolbar on users who carelessly click Next when updating their Java installation on Windows. If they do, the Toolbar is installed by default.


This is poor practice for several reasons. It is annoying and disrespectful to the user, particularly when the same dialog has been passed many times before, bad for performance, bad for security.

Sun at least had the excuse that it needed whatever income it could get.

I know certain other companies do this as well with their free runtimes – Adobe is one – and I like it just as little. However, as far as I can recall Adobe only adds foistware on a new install, not with semi-automatic updates.