Sunday, 21 June 2009

Push Notifications + Twitter

There have been many tweets floating about requesting Twitter applications for iPhone OS 3.0 that sport push notifications. I am writing this post to let you know that it's not as easy as that.

Firstly, the reason is because this requires the direct cooperation of Twitter. With the thousands of tweets being posted every second, it is important that Twitter have some mechanism for notifying people when tweets are posted that are relevant to them. Currently this does not exist; getting data from Twitter is an entirely pull-style technology. You need to poll for new information.

Secondly, Twitter are unlikely to implement push notifications directly in their own service because it's just not profitable for them to do so. In fact, it is very likely that developers are going to have to pay for push notifications in the future (although it is more likely that the cost will be levied onto the users). The only other option is for each client author to maintain their own server to watch the tweets and send push notifications like that, but this is very impractical: typical application authors do not have the huge amount of server resources available for this kind of work. We're still talking thousands of tweets per second. That would require ultimately huge bandwidth and processing time. It is a hideously inefficient way of doing it.

So, the moral of the story is, don't get your hopes up, kids. Twitter is most likely still a very long way from push notifications on the iPhone.

Wednesday, 17 June 2009

iPhone OS 3.0

Software update released in iTunes (in the UK, at least).

Tuesday, 8 July 2008

Multimedia Messaging

I don't know whether I want to punch HTC or O2 more for breaking my MMS capability.

Thursday, 1 May 2008

Community Wireless

Wireless networking has been, by far, one of the most successful technologies of the 21st Century. Giving the average person at home the ability to sit anywhere in their home and still be connected to the Internet is a lot to shout about, and lately, the focus has moved slightly away from the home users, but more towards the community sense that wireless networking provides.

While wireless networking wins awards for innovation, it almost certainly doesn't win enough awards for convenience. There's a lot about WiFi that the average person at home simply doesn't know about. For instance, two or more wireless-enabled computers can connect to each other in a peer-to-peer "ad-hoc" fashion without a wireless hub. And what's more, is that they can do it effortlessly and almost instantly. People sat around a table in a meeting certainly don't want to have to mess about with network cables, so an ad-hoc network is ideal, especially since the network topology is managed automatically and everyone automatically is connected to everyone else. That's pretty awesome.

Larger companies and Internet Service Providers (ISPs) are starting to realise that there's a lot of money in the wireless market. After all, why provide slow Internet access through a phone line or expensive cabling when you can simply just provide a wireless signal and let clients connect to it? Not only is it cheaper for the ISP, but it's also more convenient both for the ISP and the average home user. To add to this, using wireless as a backbone for a new network means that cabling doesn't have to be installed to support it. Hell, you could stick wireless routers to lamp posts, use the electricity from the lamp post and just let the routers configure themselves and connect to each other to form a bigger network.

While there's a lot of money to be had in the internet-through-WiFi world, but it's not all about commercial value. An increasingly popular trend worldwide is something called "municipal WiFi", or "community wireless". That is, a wireless network that is installed to cover a whole community or area with wireless signals that everyone can connect to and use. Install a route to the Internet at some point in the community network and everyone can get online. And usually, it's a lot less expensive, if not free.

I'm sure you already think this is a pretty good idea. But it doesn't stop there.

In a world where more mobile phones, PDAs, portable music players and other devices are becoming WiFi-equipped, community wireless networks are invaluable. Skype has already proven to be a very popular product; imagine if you could still use it while walking around the area that you live in. Push email is also becoming pretty popular over mobile phone networks, but often hefty subscriber fees make it unsuitable for the typical home user. A community wireless network can ensure that anywhere around home or the immediate area benefits from the same push technology, in all likeliness, without those subscription charges.

Because wireless networks are generally high-speed by nature, this helps to provide more opportunities for providing multimedia content, such as streaming video (either standard or high-definition), audio or even Voice-over-IP as already mentioned before. Quality of Service (QoS) deployment also means the network can prioritise certain types of information so that a wireless voice call will not be interrupted by someone downloading a large file at high speed.

Generally speaking, if a community network is set up properly, it should also be pretty secure, easy to maintain and cost-effective. There are already many projects across the world aiming to set up city-wide wireless networks, which are proving to become very popular, but they do rival commercial networks and ISPs. Community networks are usually covering smaller areas, but city-wide networks are very possible and, with the development of WiMAX and similar 4G technologies, new wireless networks would certainly move us into the future of communications. Community/municipal wireless networks are advantageous in many ways, but with ISPs pressuring to compete and city councils and local governments hesitant to invest in a solid network, will we ever experience a truly wireless city?

Wednesday, 16 April 2008

"This is in the dictionary"

I'm not sure exactly which dictionary Mac OS X is referring to, especially since knowing Apple, it could be anything. However, if it's referring to any typical English dictionary, I might beg to differ. You've got to admit, though, this is at least impressive.

Friday, 28 March 2008

RFID Tagging

RFID is a near-field communication method. In essence, an RFID tag is a very simple circuit that beams out a small amount of information over weak radio frequencies, when prompted to by nearby scanners. The idea is that things don't need to make actual contact with anything else to be identified. For example, a car parking pass that you could sit by the windscreen in your car, and would automatically open the gate and clock you in as you drive up.

RFID technology is very real, and it's happening right now. An increasing number of everyday things are starting to become RFID-based, including passports and driving licenses, ID cards and permits of various descriptions, even commercial products tagged for security reasons. In a world where a primary focus is on convenience, this seems like a pretty good idea, right?

The technology is not without it's drawbacks. For example, RFID tags are very easy to read, and anyone with the right bit of kit (not expensive, I should note), can read an RFID tag. Yes, including someone who is walking down the street trying to zap your driving license ID number as you walk past. It goes without saying that radio technologies are inherently insecure to a certain degree; after all, a radio transmission is broadcasted to just about anything in the broadcast vicinity. If there's a device in that vicinity capable of receiving and interpreting the transmission, that's pretty unfortunate.

Reading an article on theregister.co.uk brought it into perspective a bit, where a US state feels it is important enough to make data theft by means of RFID illegal, and punishable by up to ten years in prison. For something that is supposed to make our lives easier and revolutionise the way we identify ourselves, that's a pretty big protective step to take, albeit, a necessary one. RFID data theft will be a pretty big problem if one day, we all find ourselves having an RFID identity chip injected into us at birth.

Tuesday, 25 March 2008

The Browser Battle

One of the biggest constantly on-going battles on the Internet has been going on for a number of years, almost from the start of the Internet as the average person knows it. And that, is which Internet browser should we use while online.

The problem dates back some time. At the beginning of the Internet's popularisation, there were only very few browsers that were actually fit-for-purpose. The leading browser of the time, NCSA Mosaic, shaped our modern browsing experience by providing a graphical page, with common page navigation functions such as Back, Forward and even bookmarks/favourites.

Later on, our story draws the spotlight towards Netscape Navigator, and Microsoft's own Internet Explorer browser. At the time, Netscape Navigator was the de-facto standard for surfing the Internet. It was a user interface that people were familiar with and would find almost anywhere that they wished to get online. Microsoft, wanting a slice of the market share, released Internet Explorer as a direct competitor to Netscape. The trouble came when Microsoft started bundling Internet Explorer with their Windows operating system, quickly meaning that the typical computer user at home would already have Internet Explorer on their system without having to install Netscape. As such, people started adopting Internet Explorer as their new standard browser.

But there's a very good reason now why Internet Explorer still struggles for standards compliance and never quite reaches it; back in the Netscape vs Internet Explorer days, the IE development team added certain features quirks into Internet Explorer that would make pages render slightly differently to other browsers. Since Internet Explorer was so widely distributed, the average web developer would develop using Internet Explorer and expect their target audience to be using the same browser (hence the "Page designed for ..."-type things that you would commonly find on webpages). In making your page fit the IE quirks, the page would then look broken in other browsers. This was fairly integral to Microsoft's game: make the page look broken in other browsers so people would look at it in IE instead.

Microsoft even had an agreement with Apple, which made Internet Explorer the dominant Mac browser at the time, which was shipped with all Macs for five years. For a while, Microsoft had a huge juicy portion of the browser market share.

Just like that, the dominant browser became Internet Explorer. It was widely available, and it was easy for people to find. It also became used frequently due to the amount of pages on the Internet that were designed to be viewed in Internet Explorer. But some years later, we are now presented with another browser battle.

A lot of recent discoveries found Internet Explorer to be very potentially unsafe, and other browsers started to pop up as competitors. Examples are Apple's Safari browser (originally on the Mac platform, but these days ported to Windows also), Mozilla Firefox (originally the Mozilla Suite project, which is cross-platform), and Opera's browser (also cross-platform), all boasting superior performance, compatibility and security.

Firefox recently has gained a lot of media interest as the "perfect browser", which is standards compliant and secure, claiming to be stronger against threats on the Internet. Because of this, the competition between Firefox and Internet Explorer has soared. Millions of people have chosen to adopt Firefox instead.

Then there's the Mac world, where the relatively new Safari browser has taken a stand. Based on the WebKit (KHTML) engine from the Konqueror project, Safari claims to be one of the fastest and most standards-compliant browsers available. For Mac users, it is certainly the most reliable browser, although it has just recently found itself brought over to the Windows platform also to compete with Firefox and Microsoft Internet Explorer.

But the browser battle isn't just limited to desktop and laptop computers as we know it now, but it's also extending to mobile devices. The iPhone boasts complete Safari compatibility - that's a pretty high standard web browser for a mobile device, as well as Nokia adopting the same WebKit functionality for their browsers. Microsoft have stayed to their own in creating a mobile version of Internet Explorer for it's Windows Mobile devices, and Opera have taken a pretty good stab at taking their browser to every platform they can get their hands on.

The iPhone actually brought a huge amount of interest towards the Safari browser, with hundreds of web-based applications being designed for the handset that work perfectly in Safari, but not in other competing browsers. Likewise, other software vendors are writing software that works perfectly either in Internet Explorer, or in Firefox or Safari, without always being able to support all of the major browsers.

This is no surprise; every browser works differently and uses different rendering methods, which often means that the same web application must be edited four different times to support each major browser. Just imagine how wonderful it would be if every page on the Internet worked in every browser. It's here that the possibility of rendering engine solidity comes into play. Is it possible that every browser in the future will use the same rendering engine, meaning that the entire Internet is compatible everywhere?

A number of people suspect that WebKit could become the basis for future Firefox versions, which creates a huge stand against Microsoft Internet Explorer in terms of compatibility. And in a world where web applications work on Safari and Firefox but not on Internet Explorer, will people continue to use IE, or will Microsoft have to take the same type of action, accept defeat and use a foreign rendering engine in their browser also?

The browser war is an interesting one, and there are so many arguments for and against each browser, but with mobile devices heading straight into the spotlight and web applications becoming a Web 2.0-style must, the fight for which browser will ultimately prevail will be a long and active one.

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.