Last week I talked about how Apple’s CEO, the inimitable Steve Jobs, predicts that the Flash platform is a dying technology, shortly to be consigned to the mausoleum of history.
Predicting the future is notoriously difficult; those that practice such dark arts often produce proclamations that are vague, misleading, or ultimately entirely wrong. Any meaningful prediction is merely educated guessing, and so I’m not going to bore you with my ultimate view of how Jobs is wrong.
Instead, I’m going to bore you with 4 possible scenarios in which he is wrong – or right.
I haven’t been a fan of Adobe products ever since Creative Suite became a total pain in the backside to install on a network, and when they took over Macromedia and inherited Flash, I liked them even less. Nor am I a fan of Google, whose laissez-faire attitude to privacy runs utterly contrary to their stated company ethics, and whose Windows software is too often amateurishly designed with support for managed networks either not present at all, or added several months late as an afterthought.
My own distaste, however, pales in comparison to that of the CEO of Apple, as reported by Gizmodo:
“That ‘Don’t be evil’ slogan Google’s known for?… ‘Full of cr**,’ Jobs said, after which he was reportedly rewarded with a big round of applause from the gathered throng of Apple employees… ‘Make no mistake, they want to kill the iPhone. We won’t let them.'”
The attacks became more specific when it came to Adobe:
“Jobs also criticized Flash for being buggy. When a Mac crashes, it’s usually because of Flash, he reportedly told the crowd. ‘The world is moving to HTML5’, he said.”
I’d have to agree with the first part of his assessment: Flash, along with other Adobe software, has more bugs than a world-class entomologist. I cannot recall a single instance of my browser crashing within the last year that wasn’t down to Flash or Adobe Reader. That said, if a browser plugin is taking down the whole system, Jobs needs to level some rage at his own developers, since the OS should be able to cope with one piece of miscreant user-mode software.
However, the world ‘moving to HTML5’? I think that’s a little premature…
While trying to patch Adobe InDesign earlier today, I ran into the following error:
I checked Task Manager and confirmed the obvious. No prizes for guessing which program is the ‘Patcher Application’.
(The workaround is to extract the update using something like 7-Zip and running the enclosed PatcherApplication.exe manually).
The XPS document format is one of the most half-baked attempts to destroy a competitor that Microsoft have ever made.
Designed to counter Adobe PDF‘s dominance of the portable document market, it was introduced with Vista and has never caught on, despite the XPS Document Writer setting itself as the default printer on any new install of Windows. This is partly because the reader software for XPS is (for no good reason) a plugin for Internet Explorer, which means that when you open an XPS document, it opens your web browser. If you are one of the 34% of people in the world not using Internet Explorer as your web browser, then the plugin never runs and you can’t open the document. This has been changed in Windows 7, but it’s too little, too late.
All of this is a shame, because Adobe Acrobat is a bug-ridden and overpriced piece of junk that is more bloated than a lactose-intolerant hippopotamus after eating a metric tonne of Stilton. Microsoft Office and Windows Vista are often accused of this; Acrobat is worse than both of them. Combined. I’d be quite happy for Microsoft to crush Adobe PDF utterly, but if XPS is their answer, they are going to fail miserably.
But, I digress. Today I discovered that the XPS system in Windows not only hates anyone not using Internet Explorer, it also hates anyone not in the United States. Regardless of the locale Windows is installed using, it will always set itself to create documents using US Letter sized paper by default. Very few printer drivers have this problem, even ones made by HP. It’s a schoolboy error, and an extremely irritating one at that. Almost any printer driver made in the last 5 years will have the common decency to recognise when the user has set a locale other than United States, and set the default paper size accordingly (to A4, if you are in Europe).
You might think this would only affect you if you were stupid enough to actually create an XPS document. You would be wrong. Because it sets itself as the default printer, it affects the default page setup of a multitude of programs. In the case of Microsoft Office 2007, the problem goes deeper still. Even if your Office document is set to a different paper size, when you try to save a PDF (yes, a PDF, not an XPS document), it will end up sized as Letter paper, because the paper size is being read from the default printer. Incredibly, this even happens if you use the Adobe Acrobat PDF writer plugin, and not just the Microsoft one that comes with Office 2007.
I wasted a good 45 minutes today trying to work out why all my PDFs were coming out on Letter paper. There was much swearing and gnashing of teeth. When I discovered the cause, let us just say that I was… displeased.
It is a source of endless astonishment to me how many software companies will invest huge sums of money to craft their perfect product, then fail at the last hurdle by shipping it using an install program that doesn’t work properly.
The Windows Installer (.msi) format in particular is a fabulous software install system that, when properly executed, allows me (the system administrator) to automatically install the required software on hundreds (potentially thousands) of computers with no manual intervention.
Sadly, the vast majority of companies use mangled versions of this system that incorporate unreliable third-party addons, often to do things that Windows Installer itself is capable of without any help. Even when they don’t use these, the open nature of the Windows Installer format means that a variety of tools exist to create .msi files, and many of them do not follow the specification correctly.
This often means that while the software will work fine for a manual, single-computer install, it performs unpredictably when used for an automated install. At best, the install will not work correctly. Our Adobe Acrobat deployments tend to have about a 5% failure rate even though the install is identical for every computer. At worst, it can stop the entire computer from booting up. I once had to remotely kill the Flash Player plugin setup on more than 200 machines in one day because it popped up an invisible modal dialog box at system boot.
As a result, I have spent the last few years becoming intricately acquainted with the internal format of Windows Installer files, the various stupid ways in which systems like InstallShield muck them up, and the various ways in which they can be fixed.
On rare occasions, an installer will be so bad I will start over from scratch and build my own. I’m not prone to blatant product recommendations, but I have been using the freeware version of Advanced Installer for a couple of years now, and it’s sheer reliability cannot be ignored. I have never managed to create an installer that did not work first time, which only begs the question as to why so many install programs I deal with work so poorly when making a good one is so easy.
If you have a product that requires a particular version of another piece of software in order to work, and you know that it doesn’t work with, say, version 3, but does work with versions 4 and 5 (5 being the latest), may I suggest a radical new way of implementing the code that checks these conditions are met?
I give you: the greater-than sign:
Would you like to see how it works? Here’s how!
If OtherProductVer > 3 Then DontScrewUp
Exciting, isn’t it? Much better than:
If (OtherProductVer = 4) Or (OtherProductVer = 5) Then DontScrewUp
The first advantage is that the code is simpler. Second, when version 6 of that other bit of software comes out, which will almost certainly work with your software, your customers won’t be completely hacked off that your software refuses to even start up because some near-sighted idiot didn’t know what a greater-than sign was for.
Love and kisses,