Sunday, 23 March 2008

iPhone SDK

Just like six million other bloggers out there, I feel it is important to discuss the iPhone SDK. Since it's finally giving people the opportunity to write native applications for the widely anticipated handset, I think it's worth a look just at how Apple have approached this developing perspective.

To start with, I log onto the iPhone Dev Center website at http://developer.apple.com/iphone/. Fair enough, it's a page that says "Hi, you can have the iPhone SDK", but not before "registering to become an iPhone Developer". As if having to log in with an Apple ID wasn't bad enough, they actually expect people to register their interest as a developer before they will be allowed to even read the introductory documentation. A typical hobbyist developer with an undeveloped interest in the iPhone SDK would immediately be put off at this point by the need to hand over their details. What's the deal? And as much as people like to complain about the Windows Mobile platform, let's face it. There's none of this registration rubbish. MSDN openly provides documentation about the Windows Mobile platform, the programming APIs and whatever you need to get started.

But then we move onto the following problem. After you've learned how to write your program, deploying it is the next step. As well as your application being only available through the iTunes Store at Apple's discretion, Apple also want to make sure that you aren't making any programs that include IM functionality (goodbye, MSN and AIM), voice chat functionality (goodbye, Skype) and anything that interprets anything else (goodbye, Java). Now, let's think carefully about this. Where's the interest in a "breakthrough Internet device" that doesn't let you send or receive instant messages, or place internet calls? These are two vital parts of modern Internet use, yet Apple don't want you doing those things.

The bottom line of it is that if Apple don't want you to, you aren't in a position to argue, since your offending program will be taken off the iTunes Store like a shot when they find out it's violating the "agreement". Because it's no longer on the iTunes Store, nobody can download it and use it.

It's important to understand that the whole iPhone relationship from consumer to manufacturer to mobile operator is a very fragile one. Apple have a very expensive handset that they want people to use. This means the network operator needs an incentive to carry the handset on their network. Now what better incentive is there to a network than to make them money? Why let people send IMs when they can send text messages instead? Why use Skype when they can make phone calls? It's all a part of the greater plan, and without these benefits to the network, it's not in their interest to carry such an expensive fashion utility. By letting people distribute their applications outside of the iTunes Store, this means that people can invent IM software and get away with it - Apple aren't a part of the chain so they can't stop it. If Apple can't stop IM software from being produced, operators won't even consider taking on such an expensive product.

But surely this is true of Windows Mobile handsets too, that come preloaded with Windows Live Messenger? Not quite. Y'see, the Windows Mobile approach is quite different. Microsoft create the Windows Mobile OS and release all the specs, and say to the manufacturers, "there you go, create something". The manufacturers then create the handset and market it to operators just like any other phone. They aren't so expensive as to require extra subsidizing like the iPhone does. Because the typical Windows Mobile handset won't come with an "unlimited" data plan, then people's use of Windows Live is at their own expense. If they want the privilege of "unlimited" use, they have to pay for it. Because the iPhone is religiously marketed with unlimited data plans, though, people realise that there's an opportunity for abuse there. Why send expensive text messages when I can send IMs for free, for example.

What's better about the Windows Mobile approach is that the operator doesn't need to maintain a relationship with the manufacturer; if someone wants to install a program on their handset, it is the customer's responsibility. End of story. It's for this reason that the freely available documentation and resources approach works for Windows Mobile, and that's because the operator and the manufacturer don't need to get involved for it to work. Providing the handset they create can run the Windows Mobile OS, they've already done everything they need to do to accommodate the installable applications too. Now, let's imagine that iPhone SDK users were allowed to create and distribute programs as they please. Would this reduce the interest in the handset because it would be costly to operators, or would it increase the interest because it's that extra bit of personal freedom?

The iPhone SDK programme is a strange one, and let's face it, it's a totally undesirable solution. But unfortunately, because of it's symbol status in the phone world, punters will fall to it's feet and obey. The iPhone has a long way to go before it will ever match up in terms of market share, but in the mean time, at least Apple have inspired other manufacturers to create equally innovative and more affordable alternatives.

It's not very often that I would put Microsoft above Apple, but this time, Microsoft have got the right idea whereas Apple have got it all very wrong.

Saturday, 15 March 2008

Location-Based Services

Location-based services are inevitably going to become a part of our daily lives, where you can access rich data of various descriptions just based upon your physical location in the world. Sounds like a pretty convenient idea. After all, just think of the possibilities.

Your mobile phone would become the center of this location-aware universe. The clock hits 7 AM, and the alarm goes off. You get up, have a shower and get dressed. Having had breakfast, you go to catch the bus. You're stood at the bus stop, and the bus is late. You can tell because your portable device already knows which bus stop you're waiting at, and downloads the appropriate timetables. You also know how imminent the bus is because you can see it on a realtime digital map. You step onto the bus, and your phone changes to vibrate mode instead of the obnoxiously annoying loud profile we so frequently encounter on public transport. You arrive at your destination and you step off the bus, and into the office. Automatically your calls are diverted to your office phone until you leave again. It reaches lunchtime and your handset knows your favourite lunch spot, which is why your messaging presence status is automatically set to busy while you're there at midday. It's been a long day in the office and you return home to get a bite to eat before going out with some friends. They're coming imminently, and you are optionally alerted when they are a couple of minutes away. You go out looking for a nightclub. Walking down the highstreet, your phone alerts you about geotags people have previously placed. "Five star club. Recommended." Nice one. You take some photos while you're there, which are not only tagged with your location, but can also be added to the nightclub's location album that anyone can access while they're there. Oh, and another friend of yours is in the nightclub; you're alerted so you can go and say hi.

This is the sort of technological future we could look forward to. One where you aren't asked for your location before you can be given any information. One where your location can automatically bring you practical information, social data and convenience controls.

Of course, the problem is that the big media zealots would try and push context advertising. But we can dream about the ad-free location-based world, right?

Thursday, 7 February 2008

The Perfect Mobile Social Situation

Mobile social networking is awesome. At least, the concept of mobile social networking is awesome. I'm one of those Windows Mobile device owners, with a data plan that supports Windows Live Messenger being almost permanently signed in, and an awful lot of visits to Facebook. I'm going to explore what I believe creates the perfect mobile social network, and why the existing services just don't quite cut it.

But first, we need to understand what makes up existing mobile social networks. Facebook, in this case, is a fine example. It provides two methods of being used on a mobile phone: either by SMS, or by using your phone's browser to access a cut-down version of the website. The former proves to be an incredibly frustrating experience, and the 160 character limit to an SMS doesn't even pretend to help the situation. The latter, however, is a much nicer experience, providing a greater amount of functionality and overall usability. But even then, you still have to reload the page every time you click something, and even on EDGE 200kbps connections, that can be quite a slow experience.

Windows Live Messenger on Windows Mobile, however, takes a slightly different approach. They have their Messenger and email functionality as native applications running on the handset, which connect to the Windows Live servers and stay updated for the duration of the session. This makes for an incredibly pleasant IM and email experience, as messages are delivered to you instantly and you have a lovely speedy responsive client, but obviously, Windows Live Messenger is lacking the sorts of social functions provided by others like Facebook. After all, Windows Live's Spaces are all going back to the browser's "Reloading the page for every function" problem, which is neither fun, nor cost-effective.

So, what exactly would make an ideal mobile social network application?

The application, first of all, must be a native clientside application running on the device. Windows Live Messenger does this very well, and it means that data is only transferred by the client when necessary, and that the rest of the time, the client is responsive and infinitely more interactive.

Secondly, it must also provide the sort of functionality that people have come to expect from social sites. The ability to snap a photo and quickly upload it, tag photos, send both single messages and broadcast messages, update statuses, send out and respond to event invitations, y'know.

Thirdly, the network must be straight-forward and integrated into other functions of the phone where possible. Windows Live Messenger on Windows Mobile has the advantage of integrating itself with your contacts list. If you add someone's MSN address to a contact, you can IM them just as easily as you can send them a text message. Because mobile devices are, generally speaking, small (and therefore with small screens), the user interface must be finely tweaked so that keypresses are kept to a minimum, while being able to keep a small but sufficient amount of data on the display at any given time.

Finally, the user shouldn't have to check themselves for messages. There should be instant delivery options by default, so that the device alerts the user of a message being sent to them, or being tagged in a photo, or being invited to an event. There's nothing more handy than having the option to be notified when the event is actually happening.

So, have any of the networks quite got there yet? Facebook certainly hasn't, nor has MySpace, and despite Windows Live's forward-thinking attitude, it's still not quite there either due to a lack of social functionality. However, an experimental project by Microsoft called "SLAM", is quite promising, providing many features you'd expect from a social network while still being straight-forward to use, and with a nice clientside interface.

Mobile social networking is popular already, and in an increasingly portable world, will continue to grow. Therefore, it's just as important that the network operators and the developers make a conscious effort to bring a smooth technology to the subscribing userbase.

Saturday, 15 December 2007

Windows

For the past two weeks or so, I've been stuck rather unfortunately with a Windows laptop. The DC In board in my iBook suffered some trouble, and as such, is being repaired. Despite using this computer for almost two weeks now, there are still some things that I just cannot get used to about Windows.

The main thing is the interactive focus of the system. On Mac OS X, the icons along the bottom refer to applications as a whole, just as Command-Tab and other icon references do. This means I can click a Dock icon, and it focuses the application, allowing me to easily manipulate it.

But this doesn't happen on Windows. The taskbar icons refer to application windows, which means that I can't focus on the application and easily flick between application windows without having to worry about other programs getting in the way.

The other major problem is window closing behaviour. On nearly all Mac OS X programs, closing the last window doesn't kill the program. Instead, it just sits there waiting until you close it, or until you next use it. Sensible, especially if you want to bring up a browser window at lightning speed. The problem with most programs on Windows, though, is that when you close the last window (let's say, for arguments sake, Internet Explorer), the program becomes unloaded from memory and thus, loses focus. I can't then just press Ctrl-N to spawn a new window. Instead, I have to wait for the system to load the program back into memory before I can use it again.

Seems insane. I would rather have control over what my system is doing exactly, but Windows takes a lot of that control away. Opening two Word documents opens two instances of Microsoft Word, which results in twice the memory usage. Closing those documents means that Word has to be loaded back into memory again!

The behaviour of Windows is odd, and quite frankly, all wrong.

Thursday, 15 November 2007

GPRS/EDGE

The mobile internet is the future. People will be able to receive IMs and emails, photos and RSS feeds, software and updates on their phone, while they are out and about. Chances are that the prices will come down, too. Flat-rate data plans overall work out pretty well. I've been using one on O2 for some time, and it's quite acceptable. Windows Live Messenger and push email are two definite positive points (being a Windows Mobile smartphone user). But where do the technical limitations draw the line?

On a good day, with a good signal with an EDGE connection, you are still looking at least 500ms ping. That can go up to an average of 700ms without EDGE (so instead, plain GPRS), and up to 1000 to 4000ms on lower signal strength. Obviously a second or two doesn't matter for your IMs or emails, but streaming of any kind is pretty difficult. 3G obviously was created for this purpose, but don't expect all of those non-3G handsets to ever do something like online radio too well. (Youtube via EDGE is bad enough.)

Mobile connections still aren't good enough to support a lot of more bandwidth-intensive or time-critical applications, but mobile connectivity is certainly progressing. If not, there's always WiFi, right?

Monday, 12 November 2007

Windows Blue Screen of Death

I was ultimately amused to find that Mac OS X Leopard's Network folder in Finder displays Windows machines with a Blue Screen of Death icon. Classy.

Sunday, 14 October 2007

BT Home Hub, Part II

Having decided that the state of affairs with the latest BT Home Hub software version was completely unacceptable, I decided it would make most sense to downgrade the software version back to 6.2.2.6.

I headed off to the BT website to find the recovery software, and downgraded using the software recovery utility. I also made entirely certain that I changed the configuration so that the automatic update would no longer happen, and that BT cannot update my software remotely.

If you are interested in downgrading your software, you should take a look here. In case BT update the firmware updater to use the latest version and it becomes inescapable, here are the direct links:

Much better.

Saturday, 13 October 2007

BT Home Hub

It's this sort of thing that inspired me to start this blog in the first place. Today, the BT Home Hub absolutely must be discussed. You'll probably have heard recently about the hype surrounding the BT FON Community Wireless agreement, which allows owners of the BT Home Hub to share a small portion of their internet bandwidth wirelessly, and receiving free access to the BT FON network elsewhere. Sounds like a pretty good idea, right?

Purely out of interest, I opted into the service. I waited a couple of days, and wake up one morning to find that the software on my BT Home Hub has been updated and that suddenly, my router is broadcasting a BTOpenzone access point too. Absolutely intrigued, I connect to the BTOpenzone network and try it out. Looking pretty good so far. Users connecting to the Openzone network can't access your network, so it's pretty secure in that respect, and the login and logout process was relatively harmless.

So far, I'm quite impressed, not to mention that I am now also equipped with an account that lets me log onto wireless networks in other places for no additional cost. However! This new software update isn't set to please in other respects...

Okay. It boasts a few nice updates. Time servers are working well now (albeit without Summer Time options so most users are stuck in the past at the moment), and there's now additional support for BT Textphones when connecting through the BT Broadband Talk service. The admin interface has been slightly revised, and provides a few functions to make basic tasks like setting your wireless key easier. Not bad for a minor update.

What's the problem, then?

BT, in adding a few minor features, broke a few major ones. That's right. This new hub software takes more steps back than it does forward.

You have to give BT credit for making use of the MSSID (Multiple Service Set Identifiers) functionality in the hub, which has been there for a long time and has remained unused, although I would suggest that there is a fairly good reason that it's remained unused. The MSSID support in the BT Home Hub is awful. It's instability doesn't just affect the wireless, either, but can cause the entire device to reboot whenever it pleases. That's fantastic while you are trying to complete university applications using the UCAS e-wazabang online application process, of course. I know that the MSSID functionality is awful because I've experimented with it before, using the (somewhat) secret telnet admin panel, and my attempts to make it do anything useful resulted in the router rebooting and forgetting the MSSID settings that I'd put in. BT's attempt to use the MSSID functionality for the BT FON sharing has prompted the unprecented reboot of my hub several times now. Spiffing.

Now, this brings me onto my next point. The more tech-savvy BT Home Hub owners will probably be aware of the telnet interface that lets you play with all of the internal BT Home Hub settings (y'know, telnet api.home and all that). BT kindly took the liberty of blocking this functionality, so don't expect to be using that, either. Naturally, this is just fantastic when you are experiencing issues with your MSSID setup, that was nicely pushed to you with the latest software update, which can only be changed or fixed using the telnet admin panel.

Don't expect opting out of the BT FON service to immediately fix your problems, either. I opted out around 17 hours ago, and my BT Home Hub still believes that I am a member of the service and is still broadcasting the BTOpenzone wireless spot. My guess is that it could take anything from a few hours to a few weeks for this to flush out properly, so that I can return to my usual biddings without being interrupted by horrible horrible reboots.

Not to mention that the new unsecured BTOpenzone wireless network has confused every computer connected to my wireless network, since it is unsecured (and obviously the computer wants to try and connect to whatever it can), and using the same wireless channel as my own wireless network.

Now, I always considered the BT Home Hub a pretty nice piece of engineering because it allowed a great deal of control using the flexible admin control panel, just like any decent router should. However, I can't really vouch for that anymore knowing that this control panel is now, well, not there. This leaves me with a setup that is relatively unstable that I can't fix.

Thanks BT. You just destroyed my faith.

Friday, 12 October 2007

Why Windows Mobile developers suck

There is a simple reason that I just hate people who write software for Windows Mobile and Pocket PC devices. Is it that thy write bad code? No. Is it that they deploy bad user interfaces? No. Is it that the programs just suck? No.

It's that these developers keep distributing their programs in Windows-only .EXE installers, which means that any Mac or Linux user in the world can't install their programs onto their devices. It's important to remember that not everyone is using Windows, and not everyone has access to ActiveSync software which these .EXE installers are depending upon.

Sure, you're probably thinking "You should have bought a Palm; it is supported much better on a Mac". Quite frankly, I don't like Palm devices. I think that Palm OS is clumsy and is not intuitive, and I would prefer to use Windows Mobile over Palm anyday.

So, why should you distribute your Windows Mobile applications in .CAB files?

Simple. Because it solves many problems quite easily.

  • Any computer in the World can then send the file to your device (be it using Infrared, Bluetooth, Serial or USB cable, or even a memory card) without having to worry about whether the installer will work or not.
  • The device already knows what to do with the .CAB installer file. The user only has to tap it on their device and it'll install itself.
  • It makes it so much less frustrating when Mac and Linux users can actually install your program. Remember, we can't run Windows .EXE files, and if your application is packed inside of one, that means we can't install it.
  • It makes it possible to provide "OTA" downloads. This means that it's damn easy and fast for people who are downloading the file straight onto their device using a wireless connection, instead of people downloading the file onto their computer first.

The solution?

Don't distribute your Windows Mobile applications in .EXE files; .CAB files are clearly the way forward. It's frustrating when people using other operating systems can't use your software due to laziness in packing and distributing the software, and a bit of well-thought out distribution of .CAB files can make it easier for everyone to use your software.