As much as I think it’s a gimmick, I like the Siri adverts. Mostly because I like gimmicks. Anyone who knows me knows I will never buy an Apple product, so I’m looking for an Android alternative. The current front-runner appears to be Iris. I was looking through their blog, and found this post.
Their whole release flopped because the volume of requests took the server down. Apparently natural language processing is hard and so needs to be done by the server, however the server has to handle thousands of requests, and there is a network overhead. My phone is over 18 months old and has a 1GHz processor (HTC Desire) which is more powerful than a PC I had 10 years ago. Dividing server hardware (even chunky servers) by thousands of users comes out at less power being allocated to me than my phone has. New phones are dual core 1.2GHz plus, and there are rumours that phones around the corner will have quad core processors.
When building server apps at work, I’ve often wanted more processing power and have wondered about all the wasted processing power on the phone-monkey’s machines (this isn’t a derogatory comment – my day job splits me between being a code-monkey and a slide-monkey). Folding@home is all about distributed processing power, so when security of data is less important offloading tasks can be hugely beneficial, especially if the data processing is easily split into chunks and you have a large user base.
Surely these two things can be pulled together…
What would I do if I was building this application (and I’m tempted to try – let me know if you want to get on board)? I would first write my algorithm, making sure it could be coded in a number of languages. I would then build and test a phone and server version. Finally, I would route the processing to the optimal place – on a fast phone it would be done locally, and on a slow phone it would be sent to the server. Simples.