On Sat, Jul 21, 2012 at 08:45:26PM +0200, Simon Busch wrote:

> I would be really happy to hear what other people are thinking about
> the idea behind FSO since it was started back in 2008. What are your
> missing features? What do you like and what not?

I'm happy to give you my personal experience.

I tried to use the FSO stack back then in 2008 and eventually gave up,
for reasons that you seem to want to address. It might be too late, it
might not be: mainstream linux distributions aren't really used for
making phone calls on mobile phones, except for rare cases, although
they do run on mobile phones, so there may be a gap to fill.

I gave up trying to integrate GSM-related functions in the software I
run in my FreeRunner for several reasons:

 - the API changed all the time. I would spend 2 days implementing some
   feature, and it would stop working the following week.
 - an unstable API based on dbus is insanely frustrating. If I could
   have had a library-based version of FSO, at least I could see linker
   errors after, say, you rename a method. Dbus instead just
   successfully does nothing, because there's nothing on the bus to
   accept that message.
   And if (sorry: when) something changed in the chain of asynchronous
   ping pong that was needed to turn on the GSM chip and go online with
   my phone provider, things would stop working and it was hard to
   figure out what would need to be changed. This is in fact where I
   gave up: at some point I wasn't bothered anymore to start another
   quest to find out yet again how to turn on the GSM chip.
 - the whole software stack exploded into shrapnel-like daemons and
   libraries, and eventually I found myself unable to trace the list of
   dependencies (and interdependencies) I'd need to satisfy and care
   about in order to properly my software. And I thought that the
   learning effort required to catch up wasn't worth it, because my
   feeling was that there was clearly something insane going on.
 - I wanted to limit dbus interaction as much as possible, since the
   FreeRunner couldn't do task switching efficiently. However, I was
   smelling a trend of solving library issues by introducing yet another
   higher level daemon that talks dbus with middle level daemons which
   talk dbus with lower level daemons. I didn't think that 10 task
   switches for function call were something I wanted to do on a
   FreeRunner.

My needs were rather simple: all I wanted was a tool that would log
incoming calls and SMS messages. I would put my Italian SIM into it when
I was in the UK, then call people back with my UK SIM which offered
cheap calls abroad. The fact that I eventually decided to give up with
something that simple, which I had already implemented and which was
working, is a good description on how insane FSO had become at some
point.

Fast forward to now. If your target is allowing, say an EmDebian disto
installed on a phone to become a viable platform for developing a usable
phone interface, I suggest to pick some basic phone features and ensure
that they work in the stack, that they are easy to code with, and that
they are easy to deploy.

These features are things that I use my N900 for, but that don't work
well/at all in my main laptop:

 - making and receiving one to one calls;
 - sending and receiving SMS messages;
 - mobile data connections;
 - a wake up alarm, which works when the system is suspended.

For contact lists, GPS, cameras and so on, there is already software
that works. It might not be well integrated with the rest, but it seems
to me like they are problems to be solved at a later stage.

If in the early days the FreeRunner could have had a stable stack that
was only able to keep a mobile data connection open reliably, it would
have been a fantastic platform to develop fleet tracking devices. I've
never agreed that the main goal of the project should have been
competing with the trendy smartphone of the day, and it still shouldn't
be today.

What I think is needed now are components that give existing
distributions capabilities they didn't have before. Then to see what
people develop on top of them.

But to be appealing to developers who are new to the system (which
basically means, all of them), such componends need to be: few, simple,
reliable, stable, easy to deploy, and if not documented, at least coming
with some working example code.

Should I mention they should also be compilable with the *stable*
release of the compiler they need? In the past, and for years, I would
even have needed to mention that. I want to believe that at least that
has already changed :)


Ciao,

Enrico

-- 
GPG key: 4096R/E7AD5568 2009-05-08 Enrico Zini <enr...@enricozini.org>

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Smartphones-userland mailing list
Smartphones-userland@linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-userland

Reply via email to