Archive for the 'Technology' Category

Google Android: How to kill a perfectly good platform

Sunday, November 18th, 2007


From what I can tell so far, Android seems to be a well thought out architecture that can seamlessly join lightweight application components today and scale well to better hardware in the future. Personally, I hope it will blow away J2ME (or JavaME?) including the long awaited MIDP 3.0 platform, by offering multi-process control and application interconnectivity out of the box.

At the time of writing, Google have released an SDK containing an early implementation of most API’s and have asked for feedback. We are told that any final implementations and the first actual devices are as much as a year away.

Going through the published material, it seems that not much detail is being given about the security implementation, which perhaps should scare me a little.

If you hire a room full of security experts, ask them to review your platform (much like in the early Java days) and make recommendations, they will provide you with a list of security requirements that will lock up the platform and kill off a lot of potential innovation.

As Security requirements tend to be overriding, the functionality is locked down now and only rolled back later under intense pressure (if ever?).

This post is an appeal for balance.

An open platform
What is an open platform when it is installed on a preparatory hardware device, distributed by network operators (with a financial interest in maintaining control over their customer’s behaviour) and integrated into pre-existing content controls and enterprise requirements?

Will we see open content?
I have no idea how DRM can be implemented within an open source environment, but right now most phones that I’ve encountered prevent the user from sharing content in a way they would expect to share files on their PC.

Most ‘non-smart’ phones will refuse to forward media, e.g. receive a picture and then send it to a friend’s phone via Bluetooth. Nokia phones will refuse to forward or save JAR files. Samsung phones (the worst offender I have seen) will refuse to run any Java application that has not been downloaded via OTA. As a developer I can tell you that this is a real pain.

I don’t agree with the limiting mechanisms, but many companies have made a good living supplying ring tones, wallpapers, games, etc via OTA downloads. As a developer who has made advertising content intended to be distributed for free, it breaks my heart to see my target audience of teenagers perhaps paying €3 to download a Bluetooth application they have already seen installed on a friend’s phone.

It just illustrates that the current system is so bad you can’t even give stuff away.

Will we see open APIs?
Say I want to write a client application that seeks out other phones over Bluetooth, finds a phone with a similar client, and then quietly shares content over a peer-to-peer connection. Updating content in the background throughout the day and giving it to the user upon request.

In J2ME this can’t be done, period.
Not because the hardware can’t support it, not because of a failure of the API (JSR-82 implemented this functionality quire well), but because the security people decided that it was a security threat.

That means that the users would have to approve every peer-to-peer connection (making the application pointless), or the application would have to be signed. Signed applications will only install on the phone within a specified time period (a certificate might last one year) and if the correct code signing certificate is already installed on the phone (good luck with that one). Just to make things more interesting, it’s considered a security threat to let the user install new certificates on their own devices.

Don’t you just love security consultants?

The current system seems to benefit few outside of Veresign, who have somehow managed to get their certificates installed on most devices that I’ve tested. A Veresign (or handful of other company’s) code signing certificate is a heavy upfront investment for a university/garage based project prototype (the sort that make history) and the fallback functionality of the application refusing to install is pretty ugly.

I don’t know how to best control API permissions.
Nokia (the first to implement this API on a mass market phone, the 6600), assumed that the user was too stupid to know whether to approve this functionality or not (is this a fair assumption?). Other manufactures differ slightly, but tend not to document permissions implementations which can vary between firmware versions.

Perhaps Google don’t need my advice, but as they haven’t released their Bluetooth API implementations yet I can only guess what kinds of things they are negotiating with interested parties while I write this.

More on the evil world of crippleware.

Android security permissions

Wednesday, November 14th, 2007

“A basic Android application has no permissions associated with it, meaning it can not do anything that would adversely impact the user experience or any data on the device. To make use of protected features of the device, you must include in your AndroidManifest.xml one or more tags declaring the permissions that your application needs.

At application install time, permissions requested by the application are granted to it by the package installer, based on checks with trusted authorities and interaction with the user. No checks with the user are done while an application is running: it either was granted a particular permission when installed, and can use that feature as desired, or the permission was not granted and any attempt to use the feature will fail without prompting the user.” source

I wonder if Google will do as bad a job as Sun when it comes to letting normal programmers access important API’s?

How to delete an “undeletable” file in Windows XP

Wednesday, October 31st, 2007

A quick guide click
Unlocker, a freeware took click

Microsoft PowerToys for Windows XP

Wednesday, October 31st, 2007

PowerToys contains Tweak UI, allowing customisation of the XP user interface including menu speed, window animation and other settings. click

Things to buy: TomTom GO 720 With European Mapping

Sunday, October 14th, 2007

Unlinke Germany (GO 720T) the UK version (GO 720) dosn’t automatically come with TMC, a service that costs in the UK but can be free in Germany. Odd.

Amazon.co.uk (current cost £272.49)
Product info
Apparently TomTom are having major problems with their TMC implementations. click
Price drop to £229.99 (November 2007) - seems it pays to wait.

How to convert an OTF file to TTF

Tuesday, July 24th, 2007

Java doesn’t currently support Adobe-flavoured CFF Opentype fonts (check for the string “OTTO” at the head of the file). So, if like me you have to integrate a fancy font into a Windows/Java based image processor then consider converting them to True Type format.

Do this quickly, using the excellent FontCreator 5.5 which is currently free for a 30 day trial, or if you plan on using it to convert more than just one file - $79 to purchase.

People with more time can use open source FontForge and this scripting tutorial.

Oh Graphic designers and their love of weird and wonderful fonts.

Series 60 Java & Symbian software for my Nokia 6600

Friday, April 27th, 2007

Download Opera Mini
Configure my Internet settings with O2 Germany
Defeat the obsolete Nokia Closed Content List pretend Digital Right Management (DRM) by using X-pore. This seems to be the best file manager for the 6600 currently available. Seems like a steal at $7.00 (as it’s currently $2 to 1 English Pound).

How to fix your parents computer from another country

Sunday, April 22nd, 2007

Learn about Real VNC and get them to tell you their IP address.

Windows Memory Diagnostic tool

Sunday, April 22nd, 2007

click

The On One Map

Friday, March 16th, 2007

Property search integrated into Google map. click


Geo Visitors Map