As you can read in this announcement, there
will be another [slight] delay in the release schedule for OpenMoko and the Neo1973 phone.
I'm really sad and sorry about this, since the core team has been working
_very_ hard for the last couple of months to get this project somewhere.
However, a combination of Murphy's law, our high demands on quality at every
level, communication problems and a lack of FOSS-experienced developers
have made progress quite a bit slower than expected. I won't even tell you how
far we are behind the original internal schedule [It's an internal schedule, after all].
For somebody like me, who has primarily worked with and in the FOSS community,
even in his day by day professional career for the last decade, there have
been many cultural problems in this project.
I've originally been hired to take care of the low-level aspects of the system,
i.e. boot loader+kernel porting, driver development, and last but not least the
GSM communication infrastructure, as well as general consulting with regard to
FOSS matters.
In the end (up to now) I have been doing tons of more things. I've been doing
hardware related debugging, hot-fixing and consulting, providing lots of
support for our internal development team, doing all the system administration,
configuration and maintenance of our four physical and about 15 virtual
machines (wiki, lists, gforge, svn, build server, etc.). Today I even spent a
lot of time on web related issues [hey, I haven't done much web stuff since
HTML4 and CSS1 came out], since we have committed to go public with our web
sites public at some point.
We've had to teach people how to use request tracker, bugzilla, subversion,
mailing lists, IRC. Those basic means of communication, natural for everyone
ever involved in a FOSS project are all things that we had to bootstrap here.
Many of the things that are a complete given for me (and even us, the rest of
the core team consisting of Sean, Werner, Mickey and myself) are not at all
known, valued and/or respected [yet] by the various people and entities we had to
relate in this project.
To give you a short outline about some of the issues we have been fighting
to create our vision of a truly open device, targeted by developers for developers:
So e.g. for web designers, it's hard to cope with the demand that web pages
should fully scale, not have any fixed-pixel width graphics/style, not contain
flash, only make careful use of javascript, and should always pass XHTML / CSS
validation. We don't want 'hacks', but clean themes/styles/templates in the
native drop-in format that the respective applications (mediawiki, mailman,
bugzilla, gforge, etc.) support.
For source code, people who have always worked in closed-source environment,
and even with a concentration on embedded 'one time throw away' devices, it is
a cultural change that the source code has to be maintainable, that it has to follow
coding style rules, and that it has to be "pretty", since people will read it,
and it will make a bad impression if the code quality sucks.
Our code is not OK if it builds once on some system, but the applications need
to use autotools or similar mechanisms, be packaged for OE use, the package
description needs to be verified and debugged, and the resulting builds need to
be reproducible one everyone's system.
We do not use a vendor-supplied toolchain, but rather build our own. And yes,
that toolchain also needs to be built 100% from scratch, and that process
has to be solid and reproducible, just like the packaging.
For the hardware, we have to provide the interfaces that usually nobody wants
to give people access to (serial console, JTAG, ..). We have to make it easy
for people to update their firmware, rather than hard. We have to have
safeguards in hardware, since we can't prevent people to reconfigure the
battery charger algorithm in software. The battery should still survive this,
no matter what happens.
Preferably using hardware components with open documentation (versus "the
cheapest available that does the job") is a design criteria that almost nobody
in the industry will be used to.
Also, whenever we use hardware with specs under NDA (which we tried to avoid in
all place, the source code has), we have to submit that code to the vendor, and
ask whether it is fine to release it.
All in all, this is a quite exciting thing. Making people think different, trying
to get the values of Free Software into their mind set, even if only for this project.
Most of the people (as in numbers of people) involved in the development so far
have not had any relation to FOSS before. They might have done Linux based
development, but only because somebody asked them to get something done, cheap
and quickly. But that's now what we're after.
But this process takes time, and a lot of strength. And it's hard to scale if you
only have three to four people who actually have a clue about all those things.
So on the one hand, we have to learn how to scale better. We have to involve
more people from the community, with the FOSS/hacker background, both as paid
developers and the excited volunteers. So far Sean, Werner, Mickey, and myself
have been powerful but 'lonesome' fighters in the corporate world with whom we
had to interact.
I'd like to express my deepest thanks to FIC for funding this endeavor that
must appear like strange little experiment to them. I'd like to thank for all
the support we have received from the FIC hardware and software development
teams. I know we've been always very critical, and probably still seem
unsatisfied with many things. But it's nonetheless a unique chance to be able
to do this at all.
I've suffered a lot during the last seven months, and I've never worked as hard
in my entire life, spending at least 80 hours per week on this. Despite that,
if you look at the actual results, both in software and hardware (in the
upcoming days), you will probably see way more things that need to be done
rather than have been done. You will probably think: What, you haven't written
more code in that entire time frame? All I can do is ask you to read this mail
to get a grasp about what has been going on.
From now on, I hope we can lead this project more into the community. Make it
like any other FOSS project. Work will be way more fun. More creative people.
More cool hacks. More freedom.
Please consider this as the beginning, not the end. We're just bootstrapping
the world of as-open-as-possible mobile devices. There will be much cooler
devices, and there will be much cooler software. I'm honoured to be given the
chance to take a leading role in this.