Category Archives: VMWare

VMWare and virtualisation

Developing for Android

Regular readers will realise that I’ve been rather quiet recently. The reason is that over the last couple of weeks I’ve bitten the bullet and started seriously developing an “app” for Android. As always when I have a programming project in progress other uses of my “project” time tend to take very much a back seat, so apologies if you’ve been watching for photos or words of wisdom… 🙂

I don’t want to say too much about the application itself until I have something ready to put on the market place. Suffice to say I think I’ve spotted an odd gap in the market where the weaknesses of iOS force a number of good solutions to one problem of information management, whereas Android’s more flexible architecture ironically mean the problem goes unsolved. Watch this space.

I was initially a bit worried that the learning curve for Android development might be very steep, especially when I started working through the standard Java-based examples in the official Google development toolkit. Like all Java development that approach seems to require a vast amount of “scaffolding” code, which must be constructed with very little environmental help, to achieve very simple results. This didn’t look good.

Then, thankfully, I discovered Basic4android. This is a remarkable toolkit developed by a small group in Israel which allows the development of Android software using a powerful but very accessible language and IDE based on Visual Basic. Behind the scenes, this is compiled into standard Android Java code, so ongoing delivery of applications is standard, but the coding and design process is close to “pure VB”.

The development environment has all the features you could reasonably ask for, including code completion, syntax highlighting, background compilation and the like. Remote debugging extends to devices connected over the Internet as well as via cable or local networks, and has a cunning feature where you can “hot swap” the code behind a running application allowing a range of changes to a running test application without restarting it. These are very impressive abilities for a product from a relatively small company.

Just as with the original VB, Basic4android has a model which allows developers to supplement the platform capabilities with shareable components, libraries and code snippets, and a very active community has rapidly built a library of “donationware” which provides easy access to the majority of Android features. I’ve had to be a bit ingenious in a few cases, but even as a newbie on my first project I haven’t yet found a requirement which can’t be met with a few lines of code.

On a slightly more negative note, Basic4android doesn’t seem to provide a good solution to the problem of supporting multiple screen sizes and orientations, except by writing multiple hard-coded scripts for the various options. This problem has been solved for websites with the concept of the “responsive grid”, and it ought to be possible to arrange the UI of an Android app with similar logic (e.g. “arrange these two controls side by side with the label taking 75% of the width, unless the screen is narrower than X, in which case arrange them vertically”). If this can be done in Basic4android I haven’t yet worked out how.

Debugging on a physical device connected directly to the PC is very straightforward, but of course limited to the devices you own, and a bit clumsy if you fancy doing a spot of work when travelling. While the Android development kit includes an emulator for the PC, it runs so slowly as to be completely unusable, even on a high-spec machine like my AlienWare M17x. I may have discovered a better compromise, in Android-x86, a port of Android which runs happily in a VMWare virtual machine. Installation was easy, but there are a few foibles I haven’t yet conquered. Again, watch this space.

Overall my adventure into Android development is shaping up well. More news later.

Posted in Android, Code & Development, Galaxy Note, VMWare | Leave a comment

The VMWare Disk IO Problem – Fixed At Last

Regular readers will know that I’m a great fan of VMWare desktop virtualisation, but my enthusiasm has for a long time been muted by an odd problem. After shutting down or suspending a VM my laptop was thrashing its disks for 5-10 minutes, for no apparent reason, making the system almost unusable in the interim. I’d tried all sorts of variations on disk arrangements but to no avail.

Finally today in desperation I tried googling, which hadn’t worked previously, and I lucked on the solution. The following site wasn’t the first reference I found, but it probably offers the best explanation:
http://olafd.wordpress.com/2010/12/12/heavy-disk-io-after-shutdown-in-vmware-workstation/

The solution seems to be to simply add the following to each vmx file:
mainMem.useNamedFile = "false"

The difference is little short of miraculous. Not only has the disk IO problem vanished, but I can now attempt operations such as starting or shutting down two VMs simultaneously, which would previously have rendered the system completely unusable, or even crashed it.

It’s early days, but so far the only downside seems to be that the visible time to suspend or resume a VM has gone up from a couple of seconds to about 15, but that’s a tiny price to pay.

What annoys me is that if this fix is known, and its effect so dramatic (even if not for every user), then why don’t VMWare make it more visible on their own sites, and provide it as an option in the WorkStation UI?

Addendum

Interesting little “gotcha” on this, recently uncovered. If you have a VM with a lot of RAM, and/or your working files are on a slow disk it can take some time for saved state to write completely to disk after VMWare says that saving is complete. If you power the host down while this is happening you will corrupt the saved state and have to completely reboot the VM. I assume that if you wait for the disk to quiesce before powering down the host then things will be OK. Just be careful out there!

Posted in VMWare | Leave a comment

Break Compatibility, Lose Loyalty

For almost 20 years I have been a fan of, and borderline apologist for, Microsoft. One of the main reasons was their focus on software usability, backed up by a visible intention to preserve backwards compatibility wherever possible. While each new release of Windows, Office, IE and Visual Studio brought new features, these were by and large an extension to rather than a replacement for that which already worked. When a compatibility break was absolutely necessary, such as with the transition to VB.NET, it was well signposted and the option to parallel run the old version well supported.

Sometime around 2007-8, maybe by coincidence just when Bill Gates retired, this all went to hell in a handcart, and since then I’ve been cursing new Microsoft software versions as much as praising them. Each release has brought frustrations, and in many cases they have been sufficiently severe to drive me to adopt a competitor’s product, or at least a third party add-on.

XP SP 2 broke WMA format so it is incompatible with most third party players. My car was new in 2008, but I have to rip CDs using an XP SP1 virtual machine. Vista broke the reliable and flexible ntbackup. It took a bit of effort to get it working again, and it’s still part of my (more complex) backup strategy, but the “heavy lifting” is now done by Acronis rather than Windows.

The disruptive user interface and file format changes of Office 2007 have been widely discussed elsewhere. Suffice to say that I never used Office 2007, and run Office 2010 only with a third party add-on which restores the old menus. The compatibility-breaking changes to follow up flags in Outlook 2010 are extremely annoying, but as yet insufficient to drive me to an alternative product.

The same is not true of the changes to Virtual Machine support in Windows 7. Before that move, I used Mirosoft’s own Virtual PC extensively. However, the loss of compatibility, features and reliability were so severe that I now only use and recommend VMWare WorkStation/Player for this purpose. You can read about my experiences here.

The latest problem, and what has prompted this blog, is the appalling state of Internet Explorer 9. I have been a faithful user of IE since V1, and have lived, fairly happily, with its limitations through to IE8. However, since “upgrading” to IE9 I have become completely disillusioned, because it just isn’t reliable enough. Here are a sample of the things which just don’t work properly:

  • Downloading dynamically-generated PDF files, such as bills from BT,
  • MasterCard SecureCard authentication. This one’s a real pain if you’re at the end of a long online purchase, and you find your main credit card won’t work,
  • The combined address / Google search bar. If I type in a valid www…. address, I expect the browser to at least attempt to use it , not do a search!
  • Printing. Some long text pages, especially from typepad blogs, get mashed with the main font/character set replaced by something unreadable,
  • Rendering some web sites readably at all. Some of the worst offenders, ironically, are Microsoft’s own “support” forums.

By direct contrast, Google Chrome seems to do a decent job of all the above. I am hereby announcing my intention to make it my primary browser whenever I have a choice.

I’m now really scared about Windows 8, with it’s so far half-hearted changes to the desktop. What will that wreck?

Now in fairness, Microsoft are not the only, or maybe even the worst offenders in this space. For example Bibble/Corel have just pushed through a change to their AfterShot Pro software which no-one wanted and which breaks a plugin I’ve written, and I suspect in that community I have some influence to say “the new version is broken, don’t use it.”

I really don’t understand Microsoft’s behaviour here. Are all these compatibility wrecks conscious decisions? If so, do the conquest sales related to cool new features really outweigh the loss of loyalty from existing users? If not, have they just got lazy and complacent? Who knows?

Posted in Agile & Architecture, Thoughts on the World, VMWare | 1 Comment

Macs Are Really Easy? Ha!

There is a myth. The myth goes “Windows is complicated. Macs are really easy – they just work.”

Like most myths this may have started from an original truth, but is now a lie. I am it’s latest, but I suspect far from only, victim.

Let me explain. For over a year now I have been developing a plugin for the RAW developer Bibble and it’s recent successor, Corel AfterShot. These plugins are developed using c++ and the Nokia QT framework, which theoretically allows the same code and user interface design to compile and run on Windows, Linux and Mac.

As a died in the wool Windows developer, that’s where I started. There’s a QT add-in to Visual Studio, so with a bit of juggling I managed to get one of the examples to load into VS, build, and run using Bibble as the target executable, and I was off. I was on a fairly steep learning curve in respect of the programming model, but I had very few problems compiling and running things.

When it got to the stage that I had something to share with the Bibble community I published the Windows version, and another member of the community kindly cross- compiled for the other platforms. There was another learning curve to make sure my code compiled cleanly on the other platforms, but nothing too drastic. For over a year I sent code updates to Jonathan, and got compiled Linux and Mac libraries back.

Although Jonathan still provides a very helpful service, it became apparent that if I wanted to have full control over the application versions I support, and be able to verify my plugin’s portability, I needed the ability to compile and run each version myself. I wasn’t prepared to buy and carry extra hardware around, but maybe VM technology would work.

I started with Linux. I had a couple of false starts but quickly found a site which has pre-built VMs for most Linux distributions (http://www.trendsigma.net/vmware/), and homed in on Lubuntu – based on Ubuntu but with a quite Windows-like shell. I downloaded and installed AfterShot and QT Creator, loaded up a copy of my code, and clicked “build”. And it worked first time! Getting a completely slick solution took a bit more effort, but it works so well I don’t now even copy the Windows code, I just open the same directory from my Linux VM and run the Linux builds in place.

So far so good. Now for the Mac. What could go wrong?

Continue reading

Posted in Code & Development, Thoughts on the World, VMWare | Leave a comment

Mac OSX–A Third-Class OS?

A recent post on The Online Photographer (More Planned Obsolescence: Evil Lion) really chimed with me. Apple’s implacable opposition to virtualisation is a significant opportunity lost.

I’m a Windows user, spending much of the working week away from home. I get a vast amount of value from virtualisation. It allows me to carry just one PC with multiple “client specific” images, and enables me to keep running legacy software almost indefinitely. My main client uses the same technology to provide legacy support for essential software, which in long-cycle engineering businesses can easily be 20-30 years old, as physical assets in such businesses age many times more slowly than the computing equipment around them.

I also develop plugins for the Bibble RAW processor. The same code should work on Windows, Mac and Linux, but you have to compile and test on each platform to confirm this. I’ve recently added a Linux Virtual Machine to my kit. This was remarkably painless, just a few hours work, and I can now rapidly cross-compile and test my Windows-based developments under Linux. If there’s an issue which means having to support more than one flavour or version of Linux adding it would be trivial.

I just can’t do this for the Mac. I don’t want to buy and carry another laptop (which would be useless for any other purpose), and you can’t get virtualised OSX, either as a VM or as a service, through any legal and “safe” route. The result: as far as I am concerned OSX is a “third-class” OS, almost a “technical ghetto”, and I have to rely on the good offices of other developers to deliver my plugins for it.

People will put up with a lot in the name of love. Maybe Mac users “love” their computers enough to tolerate this behaviour. But looking in from outside I find Apple’s attitude perplexing and very annoying.

See http://theonlinephotographer.typepad.com/the_online_photographer/2012/02/more-planned-obsolescence-evil-lion.html
Posted in Code & Development, PCs/Laptops, Thoughts on the World, VMWare | 1 Comment

I Thought They Were Supposed To Be Getting Smaller?

I’m in the process of replacing my laptop, and yet again finding that the alleged miniaturisation and convergence of digital solutions is nothing more than a figment of marketeers’ fevered imaginations. I suppose that after the experience of my last desktop replacement (see here) I should have expected nothing more, but hope springs eternal…

I’ve been very happy with my 15″ Toshiba Satellite Pro, new in early 2009, but recently it’s been showing some signs of reaching the end of its economic life, plus the way I now develop my photographs is very compute-intensive, and a faster device would speed that activity up considerably. I also find that the relatively slow single 2.5″ disk leads to very slow startup times and virtual machine operations, both of which slow down my professional use.

Thus my first decision was that my new device should support an Intel Core-i7 processor and 64-bit Windows, at least 8GB RAM and ideally have solid state disks, at least for the boot drive.

The next driver was forced on me by the vagaries of the market. Prior to 2007, most laptops had a 4:3 (=16:12) aspect ratio, but suddenly the market decided that all laptops should be “widescreen”, with a 16:10 aspect ratio. This was great for viewing movies, but meant that for a given diagonal size the new devices were more than 10% smaller than before. Not much good if you’re working on text documents (usually of vertical orientation), or digital images with <3:2 aspect ratio, which is most of them… That’s one reason why my next laptop went from 12″ to 15″, just to maintain the vertical size of the display.

Now they’ve done it again! Almost all new laptops have a 16:9 aspect ratio, which means a further reduction of about 8% screen height for a given diagonal size. This is a right royal pain in the neck, particularly as it is typically accompanied by an increase in pixel resolution, which combine to make text and icons much smaller, just as I’m getting to that age where my eyes are starting to change, and slightly larger text would work better. There are other disadvantages too: a given laptop model is around 8% longer than it’s predecessor, so it may not even fit in the same bag.

This all appears to be driven by fashion, and targeted solely at those who watch movies on their laptops. The goal appears to be “true HD”, and hang the consequences. After some brainstorming, I can only think of three things short wide screens are good for:

  1. Watching films
  2. Browsing spreadsheets or other tables with lots of columns
  3. Working on photographic panoramas

On the other hand, they are much worse for:

  1. Reading and writing documents (most pages are portrait orientation, and the human eye has problems tracking across very long lines of text)
  2. Developing – you want to see plenty of lines of code and diagnostics, and most lines of well-written code are quite short
  3. Working on any normal image, especially if it’s portrait orientation
  4. Working with any application which has multiple top and bottom toolbars, or a Microsoft “ribbon”
  5. Everything else…

So where does this put my laptop choice? After rather more agonising than usual, I’ve gone for a desktop, or should that just be “desk”, replacement system :), an Alienware M17x. This is very fast, has the usual stunning Alienware looks, and importantly supports dual disks, with a highly-rated quality screen. The screen is just slightly taller than the Toshiba, but the laptop is a full 5cm wider, and over 1kg heavier. It’s a good computer, but portability is definitely down a notch. The thing which makes it feasible, of course, is the iPad, which now fills the role of the portable, meeting-friendly launch to the Alienware cruiser. Admittedly carrying two devices increases the weight of my computer bag, but usually only until I have decanted the laptop into its base location for the day, and maybe it justifies the weight training…

Thus far, I’m impressed with the beast. CPU performance is certainly as expected, and I’m pleasantly surprised by battery life, at almost 5 hours in light usage. This makes up for the fact that the main power supply is about the size of a house brick, and although the laptop will run off a smaller Dell supply, it won’t charge the battery. On the disk side I’ve installed a Seagate Momentus hybrid drive as the secondary data drive, and that seems to be working well, but my first attempt to install the SSD for the boot drive didn’t work, so that’s still pending. What is annoying is that like all my previous laptops, the LCD panel is nowhere near correct colour calibration with the default profile, so I have to sort that out before serious photographic use. Further updates will follow…

To wrap up, here’s the potted history of my laptops since I started buying my own, and why:

  • 1999-2001: Compaq Presario with 12″ screen. Worked for VB development and general office use, but slow
  • 2001-4: Dell Latitude LS400 with 10″ screen. I got the “light, portable” bug, and this little laptop fitted the bill, even if I did have to haul a separate CD drive and floppy drive around. It was good on the move, but never quick and I worked off an external screen when I could.
  • 2004-6: Toshiba Portege M200 with 12″ screen. The first decent convertible tablet, great in meetings (in tablet mode), and decent for development although you had to be patient…
  • 2006-9: Toshiba Portege M400: The only time I’ve done a straight upgrade, this was basically the M200 with built in CD and a dual core processor. CPU performance was fine, I/O was very limited. However, the thing which really started to frustrate me was the difficulty of getting accurate colours on the screen.
  • 2009-11: Toshiba Satellite Pro A300, 15″ screen. With the change of aspect ratios, I had to go to 15″ to get a screen as “tall” as the 12″ of the Porteges. This workhorse has served very well, it’s fairly light, and only the most extreme image processing or virtual machine work exceeded its abilities.
  • 2011-: Alienware M17x. Fast, elegant, and just about preserves the important vertical dimenion of the screen! Also heavy and expensive… The jury’s out.

Has anyone else noticed or suffered from this odd trend?

Posted in Humour, PCs/Laptops, Thoughts on the World, VMWare | Leave a comment

Not from My Cold, Dead Hand…

My regular correspondent Malachy Martin recently posed another of his “research” questions:

What would work look like if you only had an iPad as your computing device?

My first reactions focused on whether my iPad could replace my laptop. Then I had a horrible second thought:

“I hope he doesn’t mean taking away my phone!”

I suppose I could go back to carrying a separate phone (or bag of 20p pieces), diary, address book, alarm clock, notepad, dictaphone, GPS, map, camera (well, I do do that, but that’s different), puzzle book, music player…

Yes, the iPad can do all of these, but it’s just too big to carry around all the time. I’m certainly not going to strap it to my arm in the gym, or hold it to my ear in public. So let’s assume I’m allowed to keep my phone, and focus on my first interpretation of the question. Could the iPad replace my laptop? What couldn’t I do without the latter?

First, say goodbye to a lot of content creation. The iPad touch keyboard is just too slow and inaccurate for entering large amounts of text. The ZaggMate keyboard which comes combined with a cover for the iPad screen is great, and at least allows you to navigate and select text accurately, but it suffers from some nasty key bounce and the keys are a bit too small for my fingers. Even ignoring physical text entry problems, you’ve got the challenge that there’s no truly compatible version of MS Office for the iPad, so creating properly compatible structured Office documents is almost impossible.

The problem is even worse in respect of graphical content. Set aside the fact that I do a lot of image processing on my laptop, which requires both substantial horsepower and a proper PC-level operating system. The iPad just doesn’t hack it for fine graphical manipulation. I can reliably drive a PC with a mouse to an accuracy of 1-2 pixels (in 1280 on my laptop, and 1600 on my desktop). The iPad is designed for operation with a 1/2″ paintbrush, and is realistically limited to operations suited to such a tool.

I do a lot of development work, with 2 full scale databases, 2 web servers, various modelling tools, a Java development environment and no fewer than 6 versions of Visual Studio on my laptop, plus a couple of virtualised alternative PC operating systems. That’s not going to work on my iPad! I could cheat and move to “thin client” (Remote Desktop) access to the equivalent running on a server somewhere, but that would function only when I’m connected (I’m often not when I want to do such work), and the navigation and text entry limitations of the iPad would drive me bonkers.

Even for general “office” work the limitations of iOS would rapidly challenge my sanity and productivity. For example, when I’m developing complex documents I do a lot of multi-tasking, working across multiple open documents each of which needs to be in a fixed known state under my control. I also make a lot of use of drag & drop and working with multiple windows visible at once.

The other big problem is iOS’ lack of content management separate from the “apps”. I manage about 200GB of “content” on my laptop: client files, my own documents, photos, technical library, publications etc. This is all synchronized to the big desktop/server at home, but available offline. The thought of all of this being tangled up with individual applications is just horrific.

So no thank you Malachy, the iPad isn’t going to replace the laptop or the phone any time soon. Now if someone can come up with a Windows 7/8 slate with the same performance and capacity as my laptop, and the same battery life as my iPad, and capable of operation with either a finger or a stylus…

Posted in iPad, PCs/Laptops, Thoughts on the World, VMWare | Leave a comment

Tyrannies and Broken Business Processes

I’ve posted previously about the inadequacies of the iOS/iTunes architecture, and in particular the content management nightmare it creates, but I haven’t really reflected on the commercial model of the iTunes / App Store. I’m afraid I can hold back no more.

First, some ground rules. I’m very happy to spend money on software which works and provides me with value. I don’t like being at the mercy of a monopoly, and I don’t like being forced to spend money on things which I don’t want.

In the PC world, there’s a very simple model which meets these requirements. It’s called evaluation software. It works for something as cheap and cheerful as a tiny utility, or as complex and costly as Microsoft Office or VMWare. You download the evaluation, which is typically fully functional but time limited, and try it. If it does what you want, you pay for it. If it doesn’t, you delete it. Now there is inevitably a certain amount of “piracy”, as some people try to cheat the registration/payment process, but most people are pretty honest. I certainly always pay for anything I keep using if I can, but for every software item I retain there’s at least one I tried and threw away.

Down at the level of the small apps and plugins we even have the “donation” model. Now I am prepared to admit that the proportion of users who make a voluntary donation if the software will work without it is probably well short of 100%, but that can readily be compensated by the way in which genuine service or ingenuity are rewarded. For example, another Bibble user recently sent me €5 for a plugin which I had modified to meet his requirements. Now that’s not much by the standards of my usual professional fees, but I learned it represented about 2% of his monthly income. As far as I am concerned, that’s a really big “thank you”.

Then we have the Apple App Store model. You have to buy an app based on about 1 page of text, or less, and a maximum of 5 screenshots, which may or may not portray the functionality you’re interested in. There’s no systematic “try before you buy” model – a few applications have a free evaluation version, but these don’t always reliably indicate the functionality or stability of the full version. When you’ve paid, you can try an application. Perhaps 33-50% of the time it works, and you’re happy. The rest of the time, the app doesn’t do what you want, and you’ve effectively wasted your money.

How about a refund, I hear you say? In theory, there is a refund concept in iTunes. In practice, it seems to have about the same status as the Easter Bunny. For a start, you can’t do anything on the web, or from the iPad itself, so if you have a problem when you’re away from your main PC/Mac, tough. Assume you are sitting at your PC, you open iTunes and navigate through the account areas to find the iTunes receipt which includes the problem item, and click “report a problem”. You have to choose the nature of the problem from a drop-down: there isn’t an obvious choice, the best one is something like “the software doesn’t work properly”. You then type in a description of the problem, including something like “I want a refund”, and press the OK button. In response a little message pops up, saying something like (I’m working from memory here) “Apple are not responsible for application functionality. Your message has been filed.” That’s it. No confirmation email. No reference number. No options for further action. So you go back and try and click “report a problem” to try again, but now you can’t, because “you’ve already reported a problem”. So you email the application developers and explain what’s wrong and the fact that they really should have disclosed certain key information in the App Store advert rather than immediately after purchasing the app, and they email you back very politely saying “we’re sorry you don’t like our software. refund requests have to be processed through iTunes”.

I’m not making this up! This is not a broken business process, it’s a process which has been deliberately and systematically ground into tiny pieces under the tracks of a tank driven by the ghosts of Franz Kafka and Joseph Heller.

OK so Apple don’t give a stuff about their customers. This is not news. But the model doesn’t work very well for developers either. There’s no way to reward a developer for special effort, e.g. to meet a specialist requirement, although I might often do so through the donation model. There’s also no way to charge for an upgrade, except by creating a separate new application edition, which will have to be purchased at full price, will have its own data set etc.

This is frustrating at many levels. Although most individual apps are inexpensive, evaluating applications to find the best fit to your own requirements can become very expensive. I can afford a few wasted pounds, especially as a business expense, but that’s not true for the man who donated for my plugin from a €240 monthly income. The worst thing is that it seems to be down to laziness or callous disregard on Apple’s part. Surely with the centralist control of iTunes it wouldn’t be difficult to provide full versions which are disabled after a trial period, but for which a license is only an app store click away?

Apple’s tyrannical control makes Stalin’s Russia and Hitler’s Germany look like models of libertarian freedom by comparison. This market desperately needs some competition to an abusive monopoly provider.

Location:Hill Drop Ln,,United Kingdom

Posted in iPad, Thoughts on the World, VMWare | Leave a comment

Virtual PC vs VMware Player – Further Thoughts

I’ve added a brief addendum to my piece on Virtual PC technologies. It turns out that VMware Player seems to be able to “fix” unreliable VMs. Microsoft’s lack of attention to compatibility has led me to a better product, and could easily make me a complete convert to VMware!

Read the full article
Posted in Thoughts on the World, VMWare | Leave a comment

Windows Virtual PC – Breaking Compatibility

Having for years been an exemplar of how to maintain compatibility between software versions, Microsoft have recently suffered some horrible aberrations in this area. Setting aside the user interface horrors of Office 2007, my worst recent challenge has been Microsoft’s Virtual PC technology. This short article recounts the challenges I’ve had with the new version in Windows 7, and how I’ve ended up resolving the problems with a combination of the old version, and a competitor’s product!

Read the full article
Posted in Thoughts on the World, VMWare | 2 Comments