Category Archives: google

Anti-virus software continues to fail

I received an email from Trusteer noting that anti-virus detection rates for the latest Zeus variant are very low. This analysis shows that at the time of writing only Panda, among the major anti-virus products, picks it up. Does this mean we should all switch to Panda? No, because next time it will be one of the others that works, or none of them will work. You can only sympathise with users who imagine they are protected from malware because they have security software installed which tells them so.

The solution? Well, white-listing, visiting only trusted web sites, not opening attachments, keeping your OS fully patched, and so on. None of them perfect.

Alternatively, a new model of computing. One of the attractions of locked-in platforms like Apple’s iPhone and iPad is that they are harder to infect. Google’s forthcoming Chrome OS is even better designed from a security perspective. I am surprised that this aspect of cloud+device computing does not get more attention.

Ten ways the Android HTC Desire beats Apple’s iPhone

I’m just getting started with Android development, for which I got hold of an HTC Desire. And I’ve been using Apple’s iPhone 4 since its release in the UK. So which is better? There’s no satisfactory quick answer to that, though the two phones are certainly comparable; perhaps too much so, judging by Apple’s lawsuit. I thought it would be fun though to do a quick couple of posts on how they compare, of which this is the first. Reasons to prefer iPhone coming next. The following points are based on the Desire running Android 2.2 “Froyo”.

1. You can plug in a micro SD card to expand the storage. Apple does not support this with the iPhone; it may be because it wants to control what goes on the device, or because it uses storage space as means of selling more expensive versions of its devices.

2. Related to (1), you can copy a file to the phone by attaching it to a PC and using the filesystem. To do this with the iPhone you need additional software, or a solution like Dropbox which copies your document up to the Internet then down onto the iPhone.

3. You don’t need to install iTunes to get full use of the device. Some like iTunes, some do not; it is better on the Mac than on Windows, but it is great to avoid that dependency.

4. You can share your internet connection without fuss, either by creating a portable wi-fi hotspot, or through a USB connection.

image

5. Adobe Flash works on Desire. Coming soon is Adobe AIR, which will enable developers to create Flash applications as well as Flash-driven web content.

6. The platform is more open. Developer registration is only $25.00 (vs $99 for iPhone) and there are fewer restrictions concerning how you develop your application, what sort of app you create, or what language you use. The standard language is Java, which is easier to learn and more widely used than Apple’s Objective C.

7. The Desire has instant screen switching. Press home when already on the home screen, and you get thumbnails of all seven screens; touch a thumbnail to bring it to the front. Widget support means you can put those screens to good use too – not just for storing app shortcuts.

8. The battery is removable. The obvious advantage is that you can carry a spare with you.

9. It uses a standard USB cable. A small point perhaps; but it is easy to lose your cable or not have it with you, and being able to use a standard cable is convenient.

10. There’s no issue with the antenna when using the Desire without a case.

Getting started with Android – a few hassles

I’m setting myself up for Android development, and my HTC Desire arrived today. It is a lot of fun, though I have had a few hassles, partly because my device is locked to Orange and of course I wanted to upgrade to Android 2.2 “Froyo” right away. There are also a few issues with the Orange branding on a Desire, including the absence of Google Talk and applications like Orange Maps that you probably will not use. I went through a series of steps to unbrand the phone and install Android 2.2.

It is an odd situation, where mobile operators work hard at adding their branding and applications to the device, only for canny users to work out how to remove them. Branding also delays updates. If Android is updated, the operator has to receive the updated operating system image from the phone manufacturer, HTC in this case, add its customizations, and then apparently sent it back to HTC for packaging.

My guess is that if an operator decided to ship the standard Android image it would be a selling point and attract more customers. I even have a catchy name to offer: “Naked Desire”. How about it?

Still, all went well with my hacks; and eventually I was up and running with Android 2.2 and of course Flash 10.0:

image

That said, I had an annoying issue with Android Market. I selected an application, it would appear to start installing, but stuck on “Starting download” or “Downloading” with no actual progress.

It turns out this is a common problem – see here for one of many discussions. A popular fix is to change your account from someone@gmail.com to someone@googlemail.com, but this did not apply to me. I discovered the reason, which is that my wifi is behind Microsoft’s ISA Server. Android Market requires TCP outbound connections on port 5228. I configured ISA accordingly, and after cancelling and restarting the downloads they succeeded.

Finally, I wanted a screen grab or two to decorate this post. I used the method described here, fine for developers but not ideal for casual users.

image

I’ll report more impressions shortly, including no doubt the inevitable iPhone comparison.

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.

image

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.

image

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 apple.com”. 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.

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.

image

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.

Apple not Android is killing client-side Java – so why is Oracle suing Google?

Oracle is suing Google over Java in Android; the Register has a link to the complaint itself which lists seven patents which Oracle claims Google has infringed. There is also a further clause which says Google has infringed copyright in the:

code, specifications, documentation and other materials) that is copyrightable subject matter

and that it is not possible for a device manufacturer to create an Android device without infringing Oracle’s copyrights. Oracle is demanding stern penalties including destruction of all infringing copies – I presume this might mean destruction of all Android devices, though as we all know lawyers routinely demand more than they expect to win, as a negotiating position.

But isn’t Java open source? It is; but licensing is not simple, and “open source” does not mean “non-copyright”. You can read the Java open source licensing statements here. I am not a licensing expert; but one of the key issues with Google’s use of Java in Android is that it is not quite Java. Oracle’s complaint says:

Google’s Android competes with Oracle America’s Java as an operating system software platform for cellular telephones and other mobile devices. The Android operating system software “stack” consists of Java applications running on a Java-based object-oriented application framework, and core libraries running on a “Dalvik” virtual machine (VM) that features just-in-time (JIT) compilation.

Note that Oracle says “Java-based”. Binaries compiled for Android will not run on other JVM implementations. I am no expert on open source licensing; but if Google is using Java in ways that fall outside what is covered by the open source license, then that license does not apply.

Despite the above, I have no idea whether Oracle’s case has legal merit. It is interesting though that Oracle is choosing to pursue Google; and I have some sympathy given that Java’s unique feature has always been interoperability and cross-platform, which Android seems to break to some extent.

James Gosling’s post on the subject is relevant:

When Google came to us with their thoughts on cellphones, one of their core principles was making the platform free to handset providers. They had very weak notions of interoperability, which, given our history, we strongly objected to. Android has pretty much played out the way that we feared: there is enough fragmentation among Android handsets to significantly restrict the freedom of software developers.

though he adds:

Don’t interpret any of my comments as support for Oracle’s suit. There are no guiltless parties with white hats in this little drama. This skirmish isn’t much about patents or principles or programming languages. The suit is far more about ego, money and power.

The official approach to Java on devices is Java ME; and Java ME guys like Hinkmond Wong hate Android accordingly:

Heck, forget taking the top 10,000 apps, take the top Android 10 apps and try running all of them on every single Android device out there. Have you learned nothing at all from Java ME technology, Android? Even in our current state in Java ME, we are nowhere as fragmented as the last 5 Android releases in 12 months (1.5, 1.6, 2.0, 2.1 and recently 2.2).

Fair enough; but it is also obvious that Android has revived interest in client-side Java in a way that Sun failed to do despite years of trying. The enemy of client-side Java is not Android, but rather Apple: there’s no sign of Java on iPhone or iPad. Apple’s efforts have killed the notion of Java everywhere, given the importance of Apple’s mobile platform. Java needs Android, which makes this lawsuit a surprising one.

But what does Oracle want? Just the money? Or to force Google into a more interoperable implementation, for the benefit of the wider Java platform? Or to disrupt Android as a favour to Apple?

Anyone’s guess at the moment. I wonder if Google wishes it had acquired Sun when it had the chance?

Note: along with the links above, I like the posts on this subject from Redmonk’s Stephen O’Grady and Mono guy Miguel de Icaza.

Testing the Canvas element in Internet Explorer 9

I’m impressed by the demos at the IE9 Testdrive site, which is full of fun and interest. Of course it’s good to try the demos in other recent browsers, though as you would expect on a Microsoft site, IE9 tends to work best. For example the great Beatz demo scored 8510 in IE 9 versus 1560 in Google Chrome 6 (developer build):

image

But are these demos slanted to favour IE9? I looked around for some independent demos, especially for the Canvas element. Here’s one on developer.mozilla.org, for example:

image

Hmm, it looks like some of these demos do not allow for the possibility of Internet Explorer supporting Canvas. What about this one?

image

Not too good either. I tried downloading it and hacking it to work in IE9. I disabled the script that conditionally displays the Chrome Frame offer and tried again. Another failure, because IE9 loaded the page in IE5 document mode. When I have a moment I’ll work out why. I forced IE9 mode (Debug menu) and at last was in business, sort-of:

image

Chrome is on the left, IE9 on the right. This is an animation with speech bubbles, and there is some problem with the text handling because the bubbles do not appear in IE9. Still, it did run. I noticed that IE9 ran slightly faster than Chrome, but with nothing like the big Testdrive difference: 209fps versus 164 fps, for example, but varying considerably as the animation proceeded.

I also tried with Mozilla Firefox 3.6, which is much slower than Chrome on this example, around 71 fps.

No conclusions yet, but watch this space. It would also be helpful if more of the folk doing Canvas demos would test with IE9 as well as Chrome, Firefox, Safari and Opera. The experience bears out what Microsoft is preaching: test for the feature, not the browser version.

Microsoft and the NHS: what went wrong?

Microsoft UK’s John Coulthard, Senior Director Healthcare and Life Sciences, has posted a comment on the decision by the NHS not to renew its EWA (Enterprise Wide Agreement) with Microsoft. His summary:

The bottom line is the NHS benefited from the productivity gains delivered through a suite of Microsoft software worth in excess of £270m per year. The actual cost to the NHS was £65m per year, delivering a saving of saving of £205m to the NHS and British taxpayers. For the next three years the cost would have risen to £85m as the NHS deploys more and more technology while the National Programme rolls out.

Software supplier whinging at loss of a lucrative contract? Of course; but at the same time I’d be interested to know whether this results in greater expense for UK taxpayers, of which I am one, and what is the real reason for the contract’s termination.

I’d like to think the decision is part of a strategy to end vendor lock-in and promote both competition and use of open source systems; but the truth may be less inspiring.

What are we to make of this report in Computer Weekly which says:

“Out of the blue, the Cabinet Office rejected the cut-down version of the renewal," said a source. "The noise from the top is that they are not sure national agreements work. It will be down to the trusts to make sure they are fully licensed."

One of the odd things reported is that the cut-down agreement was to have cost £21m, I presume annually; but the government is paying an immediate £50m to Microsoft:

The Cabinet Office did agree to pay Microsoft about £50m to cover software used in the previous agreement that was not licensed, but attributed the spend to the last administration’s budget.

That does not sound like a strategy to save money, when you consider the licensing costs now facing NHS trusts who no longer have an agreement in place.

Now, it is possible that the long-term effect will be to reduce lock-in, though that is optimistic; I do not know if any NHS trusts are actually planning to move away from Microsoft’s platform and even if they are, it is not something that can be done quickly. Another scenario is that most of them make their own agreements with Microsoft, the total cost of which exceeds what the EWA renewal would have cost.

Still, the outcome will probably please Google which has its own idea about how to provide IT for healthcare.

Nothing I’ve read really explains the decision and I would like to know more.

Google App Inventor – another go at visual programming

Google has put App Inventor for Android on Google Labs:

To use App Inventor, you do not need to be a developer. App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app’s behavior.

Sharon Machlis at Computerworld says it is a breakthrough:

App Inventor has the potential to do for mobile app creation what VisiCalc did for computations — move it out of the exclusive realm of specialists in glassed-in data centers (or, in the case of mobile apps, programmers who can use a conventional SDK) into the hands of power users as well as make it easier for IT departments to create corporate apps.

I’d like to believe this but I do not. It is visual programming; it is interesting; but it is similar to other visual programming tools that we’ve seen in the past. These tools have their place for learning, and there is probably some small sub-section of programming tasks for which they are ideally suited, and some small sub-section of developers for whom they work better than text-based tools, but for most of us textual code is easier and more productive when we are coding the logic rather than the user interface of an application.

I took a look at the Quiz Me tutorial. Here’s a code snippet – it is a click event handler:

image

and here is the complete application. Note the navigator at top right, which would be vital for finding your way around a more complex app:

image

It is often a problem with visual programming tools: scaling an app beyond a few simple blocks introduces difficulties with navigation and project management. Our text-based tools are highly evolved for managing large projects with thousands of lines of code.

What about democratisation of programming through visual tools like this, coding without coding, that will allow domain specialists to develop apps without involving developers? Is visual programming really easier for the non-specialist than textual programming? I’m not convinced. It should be easier to get started: no syntax errors, no language reference to consult. In the end though, is a purple “if” block with jigsaw connections for “test” and “then-do” much easier than typing if (test) {code block}?

It is just a different way of presenting the same thing, but less concise and less flexible. I suspect the domain specialist who can succeed with App Inventor will also succeed with code; and that people who struggle with code-based programming in an accessible language like Basic will also struggle with visual programming.

Where this gets interesting is when you have powerful components that expose a simple interface. A high-level non-specialist programmer can drag a component onto a design palette and do amazing things, because of the smarts that are hidden inside. Components do democratise development. One reason for the success of Microsoft’s development platform is that from Visual Basic through COM and then .NET, the company has always made it easy to use components and fostered a strong third-party market for them. If App Inventor provides a great way to deliver components to high-level developers, it could succeed.

That said, components do not require visual programming. Microsoft has flirted with visual programming – like the abandoned PopFly – but despite using the name “visual” everywhere, Microsoft has never delivered a mainstream visual programming tool.

Two days with Apple iPhone 4

I’ve been trying out iPhone 4 since its launch on Thursday this week. My main interest is software development, and I have a couple of ideas for apps. Apple’s platform is annoying in several respects, especially the App Store lock-in and the Apple tax, but it is unavoidable. Unfortunately when a company gets the idea that it should support the fast-growing mobile device sector with an app, the iPhone is the one they think of first, and iPad follows. Google Android is coming up fast, thank goodness, but has nothing like the mindshare or market share of Apple’s device platform.

image

Software developers have another reason to study the iPhone, which is as a case study in software design and usability. After using iPhone 4 for a couple of days, and watching friends try it even if they have not used one before, I am full of admiration for what Apple has achieved. There are a few basic concepts to grasp – home button, breadcrumbs, swipe and multi-touch – after which it is mostly delightful. There is hardly any documentation in the box – though there is a downloadable manual – just a brief leaflet describing a few essentials, but discoverability is good, especially with a little help from Google.

Need a screen grab, for example? Press and hold home and tap the top button. The grab turns up in the camera roll. It’s not something you would find out by chance, but only a search away.

Text input is a big deal for me. I am much faster on a real keyboard, but the iPhone is as good as many thumb keyboards. Again, there are things you have to discover. There are no cursor keys, but if you hold down an area of text a bubble appears, and sliding your finger left and right moves the cursor so you can easily correct an error.

image

The Exchange support, by the way, is excellent. I put in the settings for Outlook over HTTP; the iPhone complained briefly about my self-generated digital certificate and then connected without any hassles. The device picks up all the folders in the inbox without any additional configuration. The one feature I would like to add is the ability to select a different sending email address; if anyone knows a way to do this, let me know.

I am also impressed by iPhone Safari. After struggling with an old Windows Mobile browser, it is a relief to have a proper web browser restricted only by its small screen; pinch and zoom copes with most problems though it is always going to be a limitation; sites optimised for mobile work better.

Google Maps is great too. The GPS works well, and finding your way around is a snap.

The high resolution screen is lovely of course, and the camera is superb. I will do some comparisons against my Canon Ixus, but if I keep the phone it might save me the need to carry a separate camera when out and about, at least until the lens gets scratched.

Anything not to like? A few things. The price, for one, especially when supplemented by whatever scheme your mobile operator devises to separate you from your money. Many schemes offer only 500MB per month data allowance; not enough, especially as data usage can only increase.

There’s also the iTunes problem. I know others like it, but I personally don’t get on well with iTunes, finding it bloated and annoying. I don’t allow it on a PC, but keep a Mac Mini handy for when I need to do the Apple thing. It is absurd though that you cannot use an iPhone without activating it first via iTunes. What happens when a user decides that iPad plus iPhone plus cloud is all they need? I can’t help wondering if Apple simply wants to ensure that as many people as possible install its online store.

Whenever I connect the iPhone, iPhoto pops up and wants to import photos, even the ones that I’ve already imported. I have to check the option not to bother with duplicates every time. There must be a way of avoiding this annoyance, but I’ve not spotted it yet.

Then there’s the reception issue. It’s well known that many, possibly all iPhone 4 models have a bug where if you hold it in the normal way, your hand bridges a gap in the external antennas and damages reception. Steve Jobs says that reception issues when holding a phone in a certain way is “a fact of life for every wireless phone”; this is arrogant spin and I hope Apple gets lots of returns or at least hands out for free the bumper cases that apparently resolve the issue.

That said, my iPhone is on O2 and at home the reception is terrible however I hold the phone, even though I am in a high coverage area according to O2. At my desk I get only one bar and calls are not always possible – which means I will have to cancel the contract.

image

I did manage to fit the micro sim into my old Windows Mobile phone to see if it is just an iPhone problem. It was just about as bad, so no, it is O2. In general I’ve not been impressed with the O2 reception in my part of the world, though it is excellent in our local O2 shop; perhaps they have a booster under the desk.

There are little niggles elsewhere too. I tried Voice Control, for example, and found it useless; perhaps I have the wrong kind of voice.

image

If I speak to play a song, there is 25% chance that it plays, 50% chance that I get a “no match” error message, and 25% chance that it dials a random person in my address book. A hidden social media function?

A number of negatives then; but the iPhone contrives to be good enough that users overlook any faults because they like it so much. It’s certainly a better experience than the last Android device I tried; though that is well out of date now, and I intend to look closely at Android 2.2 “Froyo” as soon as the phones become available.

Update: As far as I can tell, if you buy your iPhone at a store it will be activated for you, so you don’t need iTunes to get started. However iTunes is necessary if you receive your iPhone by post and activate it yourself.