![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
During my discussion of mobile phone options I was pointed at OpenMoko, a project to create an open-source phone. It looks intriguing, but I have to say that I have concerns.
Firstly, my experiences with open-source make me rather wary of what using such a device will be like. A mobile phone is a consumer gadget, and one that it's easy to become very reliant on. If it crashes or misbehaves, I don't want to be told that there's a user forum where enthusiastic geeks can help me diagnose the problem. I want the phone to work, to stay working, and to be returnable to a dealer for replacement if it stops working.
Secondly, what about security? Not so much of the phone itself - I acknowledge that open-source systems can in fact be more secure than proprietary ones - but of the network. If the phone is open and hackable, how long before hacks start appearing that fiddle around with elements of its configuration that network providers are usually very keen stay set to predetermined states? In the short term, users might get better call quality, but how long will a cell network stay up if this sort of abuse becomes common?
Finally, what I know about the mobile phone industry suggests to me that it is an extremely technically sophisticated area. I don't doubt the enthusiasm of the OpenMoko developers, but are they biting off more than they can chew? Looking at the project wiki, some four months after development phones became available the latest news is as follows:
The Openmoko snapshot from 20071113, when employing a few steps, can sometimes (depending on the moon) make and receive calls but the dialer is in early alpha-testing state! Also note that there NO graphical frontend for handling SMS is included. Power management (suspend) is still flaky.
This for a product that is allegedly going to user release early next year!
Say what you will about the iPhone; you can at least use it to make calls with.
Firstly, my experiences with open-source make me rather wary of what using such a device will be like. A mobile phone is a consumer gadget, and one that it's easy to become very reliant on. If it crashes or misbehaves, I don't want to be told that there's a user forum where enthusiastic geeks can help me diagnose the problem. I want the phone to work, to stay working, and to be returnable to a dealer for replacement if it stops working.
Secondly, what about security? Not so much of the phone itself - I acknowledge that open-source systems can in fact be more secure than proprietary ones - but of the network. If the phone is open and hackable, how long before hacks start appearing that fiddle around with elements of its configuration that network providers are usually very keen stay set to predetermined states? In the short term, users might get better call quality, but how long will a cell network stay up if this sort of abuse becomes common?
Finally, what I know about the mobile phone industry suggests to me that it is an extremely technically sophisticated area. I don't doubt the enthusiasm of the OpenMoko developers, but are they biting off more than they can chew? Looking at the project wiki, some four months after development phones became available the latest news is as follows:
The Openmoko snapshot from 20071113, when employing a few steps, can sometimes (depending on the moon) make and receive calls but the dialer is in early alpha-testing state! Also note that there NO graphical frontend for handling SMS is included. Power management (suspend) is still flaky.
This for a product that is allegedly going to user release early next year!
Say what you will about the iPhone; you can at least use it to make calls with.
no subject
Date: 2007-11-27 11:37 am (UTC)I think you know Mr daveon, I'm sure he will be along shortly to comment (allowing for time zone differences).
My impression is that a lot of open source people think things are easy because they are working at a level of abstraction which has been made easy by people doing the hard stuff (clearly some of the hard stuff is done by open source, but the majority of the open source blowhards in the noosphere aren't doing hard stuff - I am trying to promulgate the term 'froth jockeys' for them, on the basis that they are providing the thin layer of froth on top of the liquid (coffee / beer)).
call -n13346 -hangup
no subject
Date: 2007-11-27 12:09 pm (UTC)no subject
Date: 2007-11-27 12:21 pm (UTC)If I had to given an example I would say 'the internet' in all its messy physical glory, there is a lot more to it than passing a few TCP / UDP packets around.
no subject
Date: 2007-11-27 06:57 pm (UTC)Weenieware is something that some kid scrapes onto sourceforge and ignores the support requests for, but adds K3wl Th3M3Z0rZZZ!!!!" to.
no subject
Date: 2007-11-27 01:27 pm (UTC)Man's a gunw*nk c*nt. I object to the way he runs|ran the Jargon File, even.
no subject
Date: 2007-11-27 02:53 pm (UTC)no subject
Date: 2007-11-27 06:55 pm (UTC)no subject
Date: 2007-11-27 06:43 pm (UTC)no subject
Date: 2007-11-27 06:54 pm (UTC)I've still never found a major piece of systems work ESR has done that's found a wide user base. Fetchmail is something you could hack up in a weekend, not a serious piece of software engineering. He talks a good system... if you happen to think the 'bazaar' approach is anything other than contemptible ;P
no subject
Date: 2007-11-27 07:10 pm (UTC)Other painful levels of abstraction... handling hardware acceleration for core codecs, for example, correctly handling the AMR11 (I think) codec for voice on a GSM phone. This will normally be a silicon codec on the radio ASIC, so you need to handle data pass through to the codec and handle how that interacts with the rest of the device, if you want to then do something like voice recording, other video with sound (H.264) you need to work out sensible ways of using the right acceleration at the right time.
Graphics... interfacing graphics to the screen drivers is a nightmare. Don't know why, but it seems to take thousands of man hours of hard graft to get working right and debug. If you then add another graphics abstraction layer on top of that it can be equally painful as you try and test and check to make sure things render correctly
Video/Audio multimedia... on dual core phones, you'll (as I've mentioned) have the audio codec running in hardware on the radio processor and video running in software or hardware on the application processor. Synchronisation of audio with video is a nightmare in those architectures. This is comon to a lot of the Marvel and TI family of processors for phones. Of course, a lot of this goes away if you stick a PC processor in and give it a Gig of memory, but that's not the direction most phone developers (with one exception) want to go in.
There's lots and lots more of those, but I'm not an engineer, I just have to tell people how much it's going to cost them for us to fix the problems when they encounter them.
no subject
Date: 2007-11-27 12:06 pm (UTC)Coincidentally I just read: http://www.f-secure.com/weblog/archives/00001322.html about hacking the iPhone. Basically all phones of a certain level of sophistication are general-purpose computers on which any software can be run, it's just that the openmoko phone is designed to be particularly convenient.
The network itself is fairly well protected as on nearly all phones (including the openmoko phone and the iphone) the GSM logic is on a seperate processor which communicates with the UI one over a serial link. This makes it a lot easier to get regulatory approval for the design, because it guarantees reliability of the GSM level.
Phone software reliability by big names is hardly guaranteed: My T610 crashed a few times, necessitating removing the battery and rebooting it.
People want all sorts of different things from phones. An open source phone is for people with particularly individual wants. Myself, I'd settle for a phone with a fast user interface that has no visible delay between pressing a button and moving around the menus.
no subject
Date: 2007-11-27 07:18 pm (UTC)The problem of abstracting the radio is you end up with poor to middling radio performance. I've read and been told by insiders at AT&T that the iPhone is ok, the voice quality is average to poor and it's ok(ish) with dropped calls, missed calls etc... Of course, it is terribly shiny so that's ok.
The other thing is it isn't price sensitive unlike every other phone in the world. So having 2 processors etc... doesn't matter. Most of the phone companies are trying to move away from that even on smart "open" platforms, and the next generation of silicon from Qualcomm, EMP etc... is based around either dual core/single chip, or single core combined radio and application processors.
As you say the GSM network is reasonably well protected, but even on devices with separate integrated 3rd party radio modules, I've seen some collosal screw ups, so it's not a guarentee, likewise, there are even worse things you can do at a application level on WCDMA with Quality of Service demands.
no subject
Date: 2007-11-27 01:30 pm (UTC)I want software that's written by someone whose mortgage and livelihood depends on the quality, not something tossed off by some malodorous virgin student in a baseball cap, stonewashed jeans, an allegedly humorous Perl t-shirt and a crap moustache.
High-consequence software - only trust it if it's by someone to whom it has personally high consequences ;)
no subject
Date: 2007-11-27 01:42 pm (UTC)Generally open source works best when the user community and the developer community overlap. This is why there is lots of good open source network infrastructure software and no good open source calendaring software.
no subject
Date: 2007-11-27 02:02 pm (UTC)Equally true with the infrastructural stuff that came out of LJ (perlbal, mogile etc) too, come to think of it.
Sure, there are fanboys/fangirls, but doesn't everyone just channel them out? That's what Slashdot/Digg are for - fly-paper. The Django blogs anyone actually reads are http://www.b-list.org/ and http://www.simonwillison.net/ - both of which tend right towards the nitty-gritty.
And we both know doing the Web right is hard. You've read the REST book, yeah? The thing is, a lot of the complexity isn't in the code, it's in the design and information architecture. So maybe it's not "difficult" in the way hacking on the Linux kernel is, but that's just because the complexity's been moved, not abolished.
Sure, DHH, the lead developer of Rails, is spectacularly... opinionated, but that happens everywhere. In fact, the business he works for/part-owns, 37 Signals, is not backward about coming forward.
no subject
Date: 2007-11-27 02:56 pm (UTC)The best quote of all time was something on the lines of
Person A: Rails looks nice but I worry about the maintainability of the code
Person B: (in about March) Huh, nothing to worry about, I started a project in November and the maintainability's fine.
no subject
Date: 2007-11-27 03:06 pm (UTC)Anyway, you can usually spot them by mentioning AJAX (not that I have a problem with the technique, or the libraries - ones like JQuery are getting quite sophisticated and certainly very useful) and standing well back.
no subject
Date: 2007-11-27 03:30 pm (UTC)no subject
Date: 2007-11-27 03:34 pm (UTC)no subject
Date: 2007-11-27 06:57 pm (UTC)no subject
Date: 2007-11-27 10:01 pm (UTC)Clearly, as with anything (music / fiction ) there is the problem of finding the good stuff.
It is not the one developer one user ones that I mind. It is the ones where there are a lot of blowhards on the mailing lists talking about their wonderful plans for version 2.0 which lead one to download it only to discover that essentially it doesn't sodding work. And, of course, they have the perfect right to do this, my objection is primarily an aesthetic one about the tragic waste of human effort and ingenuity.
no subject
Date: 2007-11-27 07:22 pm (UTC)This is one of the reasons I'm such a skeptic about FOSS in something like the phone business. Phones are a cheap mass market consumer good. You want it to _just work_. You really really don't want to be reflashing your phone too often unless you're paid to do it for a living.
Developing a phone takes a significant man year investment of engineering effort to get it working and ready to ship at a quality a punter will like, once you've paid those engineers you actually find the cost of the software is a small fraction. It's why we're seeing a lot of traction in the market place for Windows Mobile because they make it easy to get a device ready to ship.
A good example of their new approach is the new Palm Treo 500v with the new UX.
no subject
Date: 2007-11-27 04:13 pm (UTC)I don't worry about the stability of such an open source phone, they'll get that right (or as right as any other major phone manufacturer does) but I do worry about UI design.
I'm not sure why I'm worrying though, I mean UIQ/SE appear to have completely fucked up the later P series phones as regards UI goes, and there's plenty of other awful examples out there, so it's not like supposedly well organised closed source teams with UI designers can't screw that side of things up just as well.
I do worry that there's an X windows box on openmoko's architecture diagram though.
no subject
Date: 2007-11-27 07:00 pm (UTC)Point 1:
So far, based on the projects we've done, there isn't a Linux phone out there yet that matches an RTOS (Real Time Operating System), Symbian or WinMo phone for general quality of finish. One of the core problems here is you, as the user, really don't want to be reflashing your phone ROM too much - it's not something I'd do with something I'd paid for, but I'll let people do it with test hardware I'm leant.
Of the several dozen live phone projects we're working on at the moment, only 1 or 2 are Linux and most of those have ended up "dumped" on the market in China because none of the European networks would accept them quality wise. It's why I'm agnostic about Android, there's been several Linux/Java platforms produced and most of them have flopped because in order to keep them working they have to be locked down to a certain extent to avoid somebody buggering up some of the hard stuff.
Point 2: Split into many little points...
This is a tricky one. As another person mentions, the easiest way to get around this is to have a second processor running the radio stack and have a command line interface to the OS - historically this would be AT commands, although most people are moving to an open API. This is easy to build, and is the approach Apple took, however, you'll find it won't be as reliable as a purpose build phone platform like you'd get from Sony Ericsson or Nokia. It also pushes the price up. From what I've been told, this is also true of the iPhone as an actual phone, but most people don't mind because it's shiny.
Having 2 cores also pushes the prices up and makes power management a nightmare, so what you see are most of the silicon providers pushing for single core where the radio and application processor are on the same chipset. This is harder to integrate and get to work, but the results are worth it. Of course, testing and debugging a phone to the expected quality of a typical user is a huge undertaking and requires access to a lot of really really expensive kit, like Anite or Rhode and Swartz network emmulators and a real Faraday cage. I worry that the open source people won't have access to these million dollar goodies.
Finally, network security and networks are a problem which is why, to a greater or lesser extent all the open source options will either be locked down or come without the network logic which will have to be added as a black box later. Manipulating, for example, the Quality of Service system on a WCDMA network can tear down a local cell and I don't think that the phone companies nor the government will be happy with people being sold a hacking tool for networks.
Even then, quality can be a problem. I know of a trial in 2003 where 20,000 test phones pulled down a major network's Base Stations in the London area.
Android is more likely to be a better bet and work better because Google are at least subsidizing the phones, but I just don't see true Open Source surviving an encounter with the demands of consumer quality mass market products with significant 3rd party dependancies.
no subject
Date: 2007-11-29 05:08 pm (UTC)Motorola have been using Linux on their phones for a while:
http://www.news.com/2100-1001-984424.html
However, this has not translated into any additional freedom for Motorola customers.
no subject
Date: 2007-11-29 08:00 pm (UTC)no subject
Date: 2007-11-28 02:00 am (UTC)note also that the recent discovery of a power-management hardware bug means that the final device has to be respun again; GTA02v5 is now looking to ship in early february. the aim of the game is to have good-quality code by ship-time; if things continue as they have, this is likely to happen.
and now, the wider question. the aim of the game isn't to deliver a slick consumer device. if you want one of those, oh consumer, then buy an iphone, a nokia, or your shiny-phone-of-choice, but for the love of Steve, *stop bloody complaining about how you can't run ${APP} on it, and how the vendor tries to punish you if you do*. the aim of this game is to offer a *choice* to users: if you want a sealed device, with a predictable user experience, then buy one, and live with the user experience you've plumped for; if you want an open device, which will require understanding and love and attention, but is at least as fixable as it is in need of fixing, then go openmoko.
why would i do this? personally, integration of spamassassin and SMS strikes me as a must-have; i am aware of no 'phone that offers anything remotely like this ("this" being a combined bayesian and rules-based inbound SMS filter). even just procmail for inbound SMS would make my life much better. i have no idea if anyone else on the planet wants this, but i do, and i can see how to do it on the openmoko. i expect that others who have strong feelings about what they want their devices to do, will have comparable, yet different, must-have lists. their lists will not impact on my 'phone, unless i really like something that (eg) simon likes on his 'phone, in which case i can put that on my device, too.
andy powell's must-have that he writes about at http://blog.automated.it/2007/11/21/here-i-am-right-here/ , code which can automatically contact his wife as soon as (but not until) he arrives at the Channel Tunnel, is a great example. i have no need for that, and i doubt most people will; but he does, and he can have it, without overloading my 'phone with bloaty code i don't use.
to briefly address daveon's fears about reflashing: i can't comment on openmoko _per se_, as i haven't got one yet, but rockbox (which i run on my ogg player) distinguishes between updates to the boot code (which is capable of allowing a new bootable image to be uploaded, and is itself updated very rarely) and updates to the bootable OS (which does most of what the device is supposed to do, and is updated continually). this tends to defuse most of the scenarios that end up bricking a device; if bleeding-edge doesn't work, upload last-known-good and continue with life until yet another bleeding-edge version is available to try. what i've read about openmoko's cramfs makes me think that they're taking this approach.
no subject
Date: 2007-11-28 04:55 am (UTC)Spam SMS? Do you get these? Seriously, you shouldn't be - SMS is a network protocol and anything being sent is via their kit and they charge for it. So, in theory, you shouldn't get any spam. Filtering on rules is something more interesting and possible with MS and Symbian stuff.
The problem for anybody working in this is that Phones are a shiny consumer product and the addressable market for anything else is going to be pretty small. Making phones work is massively expensive in terms of man hours and I just can't see the model for this. I just can't.
no subject
Date: 2007-11-28 02:08 pm (UTC)i'm not convinced that "making phones work is massively expensive in terms of man hours and I just can't see the model for this.". making operating systems is massively expensive in terms of man-hours, but these can be and are made for free (see http://www.dwheeler.com/sloc/redhat71-v1/redhat71sloc.html , a 2002 estimate that red hat 7.1 involved around eight man-millenia of effort).
i'm not saying that all complex things can be made successfully on the free-software model. i'm saying that some can; mere complexity is no bar to a free-software model.
i have used open devices in the past that were failures (my agenda PDA, for one), because the code, in the end, didn't shape up. i have used open devices that were very successful (my laptop, under linux; my iRiver ogg player, under rockbox). i don't know which of these openmoko will turn out to be. i hope it will succeed, but i'm aware it may not. i'm not prepared to concede, however, that the project is implicitly impossible.
no subject
Date: 2007-11-28 06:21 pm (UTC)As I've said in this thread, it's not just about software. A phone is a blending of Hardware and Software at a very low level. Getting all that to work together well and effectively is really really hard and takes a lot of time and the approval of third parties to agree that you can ship on their networks.
That costs a lot of time and effort and some very real upfront certification costs and typically the use of hardware that costs hundreds of thousands of dollars. This isn't something a group of individuals can generally do, unless they already have access to the equipment, or are prepared to be really generous.
no subject
Date: 2007-11-29 09:09 am (UTC)you're also right about a phone being a "blending of Hardware and Software at a very low level", but so is (eg) a music player - and rockbox merrily works on those, without the hardware being designed to support it (in most cases, the hardware has to be reverse-engineered first). so this, too, is no bar in principle.
the idea, as with all open projects, is that the project becomes self-sustaining across multiple combinations: once there's working hardware and working code, the code may be ported to other (more popular) hardware, and other codes may be ported to the hardware. this has been known to happen, and it's also been known, often, to fail.
you may well be right about openmoko failing. hell, it may not even come to market in february. but if it does, the *very, very least* i can do is buy one, and try to use it. if i don't even do that, the project fails, and we're all stuck with closed 'phones that do only what the vendor and the networks will permit until the end of time, i can't complain.
no subject
Date: 2007-11-29 09:22 am (UTC)Believe me, they'll do it, as MS found out a few years ago.
I've no issue with the hardware getting reverse engineered, but, at least in mobile phones, the effort to do that runs into tens of thousands of hours effort just to get a BSP loading the OS at sensible quality. I have serious doubts that anybody who isn't being paid is going to be prepared to do it.
To put this in perspetive. The last port to new silicon we did for an open OS took nearly 40,000 man hours of effort.
no subject
Date: 2007-11-29 10:31 pm (UTC)i know this may beggar belief, but it's true. i freely accept that doesn't mean that all tasks that take a million man-hours can be done with neither cost nor encumbrance to the end-user, but *some clearly can*.
i don't know whether openmoko is such a task, but that might make a more interesting discussion point than "i seriously doubt that such tasks exist", which isn't hugely convincing.
on the subject of QA, you've sunk a boat i wasn't floating. i happily accept that the networks will block _en banc_ devices which are shown to adversely affect network ops. my question is whether there's a strong correlation between devices which aren't tested on the expensive testbeds you describe and devices which adversely affect network ops.
i note also that the GSM hardware in the openmoko is pretty tightly tied-down on the network-facing side. even the wiki merely notes that "we cannot provide many details on the GSM chipset due to very tight NDAs", but they go on to add that "this is not neccessarily (sic) required, since it interfaces using a standard UART serial line with the S3C2410. On that interface, GSM 07.05, GSM 07.10 and other standardized protocols are used.". i'm no GSM protocol expert, and you sound like you might be, so it'd be interesting to hear your thoughts about that model of interaction with the GSM infrastructure.
WCDMA instabilities are sad but not relevant here, since openmoko don't propose to make a WCDMA 'phone.
no subject
Date: 2007-11-30 07:23 pm (UTC)I suppose it depends on what you actually want to do with the product at the end of the day and if you want to make any money off it as a consumer good. If you just want something that you can play with as a hobbiest and you're ok with hanging around waiting for hard stuff to be fixed or not then sure. But I work in mass market consumer goods which maybe have an 18 month useable life before the person upgrades them. They have to work out of the box. Industrialising a BSP for a new phone is 40,000 hours full time work - 8-10 hours a day, 5-6 days a week for months until it's good enough to ship to the consumers. That's separate to UI work, application integration or anything else. The last large whole phone project we worked on was almost 200,000 hours not included the OS and radio integration work. Doing all that for free and getting something that works? I don't see it.
Then there's stuff that isn't open source and is a royal PITA to work with and get working, like Bluetooth, Java and similar which just eats hours trying to debug.
If the goal is for something people can play with for fun, and somebody is underwriting the hardware and it doesn't really matter if it's a bit flaky, then fine. But we build mass market consumer goods that have to work when they hit the stores, hence we'll probably have 6 months of QA and certification work once we've finished the final build.
We really struggle to find enough people who really understand how a lot of this stuff works to do projects around phones so I'm not really clear on where the people will be coming from to do the hard low level engineering time. Or rather who have enough free time to do it.
my question is whether there's a strong correlation between devices which aren't tested on the expensive testbeds you describe and devices which adversely affect network ops.
In our experience of mobile phone development. The short answer is yes. There's also a strong correlation between the knowledge of the engineers doing the debug and the quality of the device that ships. Skip these steps and, well, you've a HTC phone. Lots of features, looks ok, works like a dog.
For the longest time Microsoft tried to avoid using test beds and expensive equipment - they saw it as something outside of the platform and therefore no their problem. The mental model used was that the radio was basically a wireless modem and therefore wasn't their problem. Consequence, the phones ran like dogs and companies had huge QA and debug overheads. Their solution was to start working with some new partners who took this stuff seriously, and to get in the Anite kit etc... that they didn't have. They did that in late 2005/early 2006. The next generation of software writen that way is _just_ starting to hit the stores now and most of it will be in 2008.
no subject
Date: 2007-11-30 07:26 pm (UTC)This is the easiest and, timewise, the fastest way to build a working phone. You have an OS running on an application processor and a GSM radio module running on a separate processor. Then there's a method of talking to the GSM radio typically over a serial connection.
Plus points:
Easy and fast to get working
Minus points:
Hard to get working well - as I understand it, this configuration can introduce random timing problems into the data transfers at the L2/L3 part of the radio stack where the network timing of packets and the TCP/IP handling in the OS can get confused - this can dramatically reduce your GPRS throughput.
Cost - doubling up on the processor stack costs more, the circuit board is more expensive because you're cramming more stuff on there. You also have to put more memory on for the radio processor or have a nasty kludge for sharing system meory which leads to performance problems.
Introduces Multimedia performance issues - to whit, typically you off load the digital signal processing in a phone to the hardware because a 200Mhz processor isn't up to the job in software. This usually sits on the Radio Processor which has a fast system for audio codec mashing. If you run the video on the application processor and the audio on the radion processor and you try to sync them for video - well, it's non-trivial
As I said, if you want a thing to experiment with that's based on a locked down GSM modem, then fine. It'll make a poor to average phone compared to something from Nokia, SEMC, Motorola, Samsung etc... but I doubt that it would ever make something that would be of sufficient quantity to box and sell to the mass market.
WCDMA instabilities are sad but not relevant here, since openmoko don't propose to make a WCDMA 'phone.
So, in all seriousness who is this aimed at?
I was reading some of the features people were talking about adding, you mentioned the automatically send an SMS one. You can do all that on S60 and WM, using public APIs.