I’m not colourblind, and I’m not really a mobile developer, so maybe there’s something I’ve missed, but I’ve got an idea for an app and I thought I’d run it by you guys to
see if there’s something I’ve missed.
Mobile processing power is getting better and better, and we’re probably getting close to the point where we can do live video image manipulation at acceptable framerates (even 10
frames/sec would be something). So why can’t we make an app that shifts colours as seen by the camera to a particular different part of the spectrum (depending on the user’s
preferences).
For example, a deuteranomat (green weak, difficulty differentiating through the red/orange/yellow/green spectrum) might configure the software to shift yellows and greens to instead
be presented as purples and blues. The picture would be false, of course, but it would help distinguish between colours in order to make, for example, colour-coded maps readable.
I was thinking about how video cameras can often “see” infa-red (try pointing a remote control at a video camera and pressing the button), and present it to the viewer as white or
red, when I saw a documentary with some footage of “how bees see the world”. Bees have vision of a similar breadth of spectrum to humans, but shifted well into the infa-red range (and
away from the blue end of the spectrum). In the documentary, they’d filmed some flowers using a highly infa-red sensitive camera, and then they’d “shifted” the colours around the
spectrum in order to make it visible to normal humans: the high-infa-reds became yellows, the low-infa-reds became blues, and the reds they left as reds. Obviously this isn’t what
bees actually experience, but it’s an approximation that allows us to appreciate the variety in their spectrum.
Can we make this conversion happen “live” on mobile technology? And why haven’t we done so!
The first of the two apps mentioned in this article – “Gmail Notifier” – sounds perfect, but doesn’t seem to exist any
more.
GMail Notifier + Widgets looks like it might do it (it’s designed to do different icons
depending on labels). Does anybody have any experience with this?
Or any other suggestions? I’m running CM7.1 on a HTC Sensation, in case it matters.
In my review of my new HTC Sensation earlier this month, I tried to explain how
my new phone – with it’s swish and simple interface – didn’t feel quite… geeky enough for me. I picked up on the way that it’s process management works, but I’ve since
realised that this is only symptomatic of a deeper problem. This is entirely to do with the difference between traditional computers (of which my old N900 was one) and modern consumer-centric devices (which, inspired by the iPod/iPhone/iPad/etc.) try
to simplify things for the end-user and provide strong support for centralised repositories of pre-packaged “apps” for every conceivable purpose.
To take an example of the difference: my N900 ran Linux, and felt like it ran Linux. As a reasonably-sensible operating system, this meant that all of the applications on it
used pretty much the same low-level interfaces to do things. If I wanted, I could have installed (okay, okay – compiled) sshfs, and be reasonably confident that every application on my phone, whether it’s a media player or a geocaching application
or whatever, would use that new filesystem. I could store my geocaching .gpx files on an SSH-accessible server somewhere, and my phone could access them, and my geocaching
app wouldn’t know the difference because I’d have that level of control over the filesystem abstraction layer.
Similarly, if I installed a game which made use of Ogg Vorbis to store
its sound files, which therefore installed the Vorbis codecs, then I can expect that my media player software will also be able to make use of those codecs, because
they’ll be installed in the standard codec store. This kind of thing “just works”. Okay, okay: you know as well as I do that computers don’t always “just work”, but the principle is
there such that it can “just work”, even if it doesn’t always.
On these contemporary smartphones, like the iPhone, Android devices, and (I assume) modern BlackBerrys, the model is different: individual applications are sandboxed and packaged up
into neat little bundles with no dependencies outside of that provided by the platform. If you have two applications installed that both use sshfs, then they both have to
include (or implement) the relevant bundle! And having them installed doesn’t automatically give sshfs-like functionality to your other filesystem-accessing tools.
It’s not all bad, of course: this “new model” is great for helping non-technical users keep their devices secure, for example, and it means that there’s almost no risk of dependency hell. It’s very… easy. But I’m still not
sure it quite works: I’ll bet that 90% of users would install an application that demands dubious levels of permissions (and could, for example, be stealing their address book data for
sale to scammers) without even thinking about the risks, so the security benefits are somewhat nullified.
In summary:
Pros
Cons
Traditional-computing device (e.g. N900)
User actually “owns” device
Applications to be combined (e.g. pipes, automation, new middleware)
More secure (in theory) as platform exposes little
Centralised “app store”/”marketplace”
Potentially limiting for technical users
Only as secure as the user is savvy.
Centralised “app store” store can act as a “lock in”
Needless to say, the new model devices are winning, and already tablet computers powered by the very same platforms as the mobile phones are beginning to be seen as a simpler, easier
alternative to conventional laptops. It’s to be expected: most of today’s users don’t want a learning curve before they can use their smartphone: they just want to make some calls, play
Angry Birds a bit, keep up with their Facebook friends, and so on.
But I hope that there’ll always be room for a few folks like me: folks who want to tinker, want to play, want to hack code for no really benefit but their own pleasure… and without
having to shell out for a developer license in order to do so!
I’ve recently gotten a new phone – a HTC Sensation running
Android 2.3, and I thought I’d offer up a few thoughts on
it. But first…
Hang on: what was wrong with your old phone?
Well-remembered! You’re right, of course, that last year I got a Nokia N900, and that it was the
best mobile communications device I’d ever owned. I don’t care so much about a slim profile or an “app store”, but I do care about raw power and geeky hardware features, and the N900
delivers both of those in spades. I’ve had several phones that have, at the time, been the “best phone I’ve ever owned” – my 7110 and my N96 both also earned that distinction, whereas my 7610 and my C550 – the latter of which had only one redeeming feature – fell far short.
Awesome though it is, with it’s beautiful hardware keyboard, mighty processor, FM receiver and transmitter, Bluetooth and IR, etc., and completely unlocked,
tamper-friendly architecture, the N900 suffers from one terrible, terrible flaw: for some reason, the engineers who built it decided to mount the Micro-B USB port (used for charging,
tethering, mounting etc. the phone) not to the hard plastic case, but to the fragile inner circuit board. Allow me to illustrate:
Why is this a problem? Well, as Katie explained to me at the New Earth housewarming party,
most of her other friends who’d had N900s had encountered a problem by now, whereby the USB cable used to charge the device eventually puts a strain on the connection between the port
and the board, tearing them apart. “Nope,” I told her, “I’ve never had any such problem with mine.”
Looks like I spoke too soon, because that very week, I managed to break my N900 in exactly this way. My theory: that girl is cursed. I shall be attempting to
exorcise the anti-technology demons in her the very next time I see her, possibly in some kind of ceremony involving high-voltage direct current. In any case, I found myself with a
phone that I couldn’t charge.
So you replaced it?
No, of course not. My N900 remains a fantastic palmtop and a great device. It’s just got a minor problem in that it’s no longer possible to charge or “hard”-tether it to anything any
more. The latter problem was an easy one to fix: a separate battery charger (I already carry a spare battery for it, so this was no hardship), bought for about £4 on eBay, made it easy
to keep the device rolling. The second problem’s not so much of an issue, because I tend to do all of my synchronisation by Bluetooth and WiFi anyway. But even if
these were an issue, it looks like a pretty
simple job to re-solder the USB port (and epoxy it to the case, as it should have been to begin with!). I might give it a go, some day, but my current soldering iron is a little big
and chunky for such fine and delicate work, and I’m a little out of practice, so I’ll save that project for another day.
However, I’m a big believer in the idea that when the Universe wants you to have a new phone, it finds a fault with your current phone. Perhaps this is the geek equivalent of thinking
that “When God
closes a door, He opens a window”.
So: I’ve got myself a HTC Sensation, which narrowly beat the Sony Ericsson Xperia Arc after carefully weighing up the reviews. I’d always planned that I’d try an
Android device next, but I’d originally not expected to do so until Ice Cream Sandwich, later this year. But… when the Universe closes your USB Port, it
opens a Gingerbread shop… right?
The New Sensation
After a few difficulties relating to my name – it turns out that my mobile
phone network has recorded my name correctly in their database, and I can’t change it, but whenever I use their web-based checkout it asks me to enter a longer surname even though I
don’t have a surname field to change – I finally received my new phone.
The first thing one notices about this phone is that it’s fast. Blindingly fast. I’ve used a variety of Android-powered HTC devices before, as well as other modern
touchscreen smartphones like the iPhone, and I’m yet to use anything that consistently ramps up high-end graphics and remains slick and responsive like this does. Its mighty dual-core
1.2GHz processor’s the cause of this, little doubt. I originally worried that battery life might be limited as a result – I don’t mind charging my phone every night, but I don’t want to
have to charge it during the day too! – but it’s actually been really good. Using WiFi, GPRS, GPS, playing videos, surfing the web, and other “everyday” tasks don’t put a dent in the
battery: I’ve only once seen it dip to under 10% battery remaining, and that was after 40 hours of typical use during a recent camping weekend (with no access to electricity).
It’s also been really well-designed from a usability perspective, too. Those familiar with Android would probably just start using it, but I’ve not had so much exposure to the platform
and was able to come to it with completely fresh eyes. Between Android 2.3 and HTC Sense 3, there’s a nice suite of “obvious” apps, and I didn’t have any difficulty synchronising my contacts, hooking
up my various email accounts, and so on. There are some really nice “smart” touches, like that the phone rings loudly if it thinks it’s in a bag or pocket, more quietly after you pick
it up, and silences the ringer completely if you pick it up from a table and flip it from face-up to face-down. These simple gestural touches are a really nice bit of user interface
design, and I appreciate the thought that’s gone into them.
The Android Marketplace is reasonable, although I feel as though I’ve been spoiled. On the N900, if there was an application I needed, I usually already knew what it was and where I’d
find it: then I’d either apt-get it, or download the source and
compile it, right there on the device. For somebody who’s already perfectly confident at a *nix command-line, the N900 is fab, and it feels a little restrictive to have to
find equivalent apps in a closed-source environment. It’s not that the pricing is unreasonable – most of the applications I’ve wanted have been under a quid,
and all have been under £4 – it’s just that I know that there are FOSS alternatives that would have been easy to compile on my old device: I guess it’s just a transition.
On the other hand, the sheer volume of applications so-easily available as the Android Market is staggering. I’ve been filled with app ideas, but every idea I’ve had but one or
two already exist and are just waiting to be installed. It’s a little like being a kid in a candy store.
It’s also taking me quite some time to get used to the way that process management works on an Android device. On Android devices, like the iPhone/iPad, returning to the home screen
doesn’t (necessarily) close the application, but it might – that’s up to the developer. If it doesn’t, the application will probably be “paused” (unless it’s
a media player or it’s downloading or something, then it’ll likely keep going in the background). And when you re-launch the same application, it could be
simply unpausing, or perhaps it’s relaunching (in which case it may or may not restore its previous state, depending on the whim of the developer)… You see
all of the keywords there: might, probably, likely, could, perhaps. Great for most users, who don’t want to have to
think about what their phone is doing in the background, but it feels like a step backwards to me: I’m used to being able to ALT-TAB between
my currently-running applications, to know what’s running, when (and I can always use top and find out exactly what resources a process is eating). Putting all of this process management into the hands of
developers feels to me like giving up control of my device, and it’s a challenging change to undergo. Yes: despite the openness of the platform, Android feels just
a little out of my control compared to what I’m used to.
Switching from a physical to a virtual keyboard for the first time is a significant change, too, and it’s slowed me down quite a lot, although applications like SwiftKey X – with its incredibly intelligent personalised predictions – and Hacker’s Keyboard – which gives me back some of the keys I was “missing” – have helped to ease the
transition a lot.
In summary: the HTC Sensation seems to be a fantastic device, and I’m really enjoying using it. I’ve got a few niggles to contend with, but these are all things that were destined to
catch me out upon switching away from a platform as open as the N900, and they’re not severe enough to make me give up and get an N950 instead: I’m reasonably confident that I’ll come
to love the Sensation and we’ll go on to be very happy together.
But will it become my latest “best phone ever”? Time will tell, I guess.
I recently came across the Mobile One-Time-Passwords project, which aims to make a free, secure alternative
to commercial two-factor authentication systems (like SecurID). The thinking is pretty simple:
virtually everybody now carries a mobile phone capable of running basic applications, so there’s no reason that such an application couldn’t provide the processing power to generate
one-time-passwords based on a shared secret, a PIN number known only to the authenticating party and to the server, and the current date and time stamp.
Great!
But it turns out that despite there being libraries to produce server-side implementations of the technology in PHP, Perl, and C, nobody had yet bothered to write one in that most
marvelous of programming languages, Ruby.
Well, now I have. So if anybody’s got the urge to add one-time-password based security to their Rails or Sinatra
app, or would like to write an MOTP client for their Ruby-capable smartphone: well, now you can.
Claire and I are leaving Aberystwyth for Norfolk! Off to spend Christmas with her folks before heading up to Preston on Boxing Day to be with my family.
Have barely begun wrapping presents. For that matter, I still haven’t had delivered my mum’s present. Or one of Claire’s. Damned freaky postmen. Or something.
In any case, I’ll be in and out of internet access (well, technically, I’ve now put my Psion 5mx back into
active service, which, combined with my funky GPRS mobile phone, puts me online ‘everywhere’, but hey: I think I’ve downloaded a telnet client so wherever I go I *theoretically* have
e-mail access… we’ll see).
As I promised a few days ago, I called Orange today to complain that I hadn’t ever received the two messages for which I’ve had the cost refunded. The
first couple of people said that there was nothing that they could do, but a lot of harassment and a few calls later, and I persuaded them to send me the latter of the two messages,
which is apparently a Christmas greeting.
A few minutes later, my phone beeped to let me know that a new message had been received. A new multimedia message. The body of which was as follows:
You
have received a Multimedia Message, which your handset unfortunately
cannot support. Please refer to the accompanying text message and follow
the instructions to view the message from the web.
WTF???
Did I miss something here?
Orange send me a message to apologise for having charged me for receiving some messages from them, and give me a refund, even though I never received said messages. Can’t find any
mention of them on my bill, either.
I complain at length to Orange that I never received the messages that I wasn’t billed for (I don’t mention that I don’t seem to have paid – they might take the refund back out of
my next bill or something), and they promise to re-send it.
The message arrives on my multi-media phone – the phone that they know I have and apparently already sent this message to, once, but it’s in a format that my phone can’t
understand.
Today, Orange sent me a text message apologising for charging me for two picture messages earlier this year, and have apparently credited me 80p
as a gesture of compensation. The Register reports that this has happened to others, too, but I can’t help but feel that
Orange’s mistake is even larger than they thought it was – I never received these picture messages in the first place!
I’m tempted to call them and complain that I didn’t ever receive the two picture messages for which I’m having my money refunded, but as I’m not even sure that I was charged for them,
either (can’t see it on my bill), I’ll probably lose me free 80p if I do. Decisions, decisions.
I can understand the warnings that you should not drive while talking on your mobile phone, but this extract from a
report by the BBC about phone usage in Japan really says it all:
“People in Japan use their mobile phones to do much more than talk… …only this weekend, newspaper ads warned phone users to avoid walking and writing emails at the same time.”