Why free software applications are a priority on mobile platforms (not device drivers)

Bradley wrote about mobile software freedom, a field that I’m obviously deep into because of my work at Funambol. His quite long article Musings on Software Freedom for Mobile Devices contains an analysis of the situation, which mobile platforms are more freedom-promising and why (in short: Maemo/Moblin merged as Meego and Android/Linux). I only disagree with Bradley on the priorities he sets. He says:

The challenging and more urgent work is to replace lower-level proprietary components on these systems with FLOSS alternatives,

I don’t think that device drivers are really the first problem the free software movement needs to tackle. I believe that the most important issue is to have good applications, with superb usability and that are innovative in order to attract users, fast. Some of the tactics used in the GNU project will need to be adapted to the speed of mobile, while others are not applicable.

Stallman’s project started in a time when PCs were slowly becoming relevant in society. It took almost 10 years before they were cheap enough to be in the bedrooms of young, smart programmers for them to easily contribute to the project. GNU also started developing applications first, and it took almost 10 years to start working on kernel and device drivers. The early adopters of GNU were highly skilled users, in a world with few computers with a clearly winning platform (the standard/commoditized platform IBM/Intel x86). Stallman and the whole free software movement had a lot of time to develop a nice free-as-in-freedom operating system and applications on standardized hardware. They also had the Unix design to follow: how the system had to look was pretty clear, it only had to be ‘better’.

Compare those first ten years and the quantity of computers in the ’80s/’90s to today’s speed and the quantity of mobile devices in everybody’s pocket (not just in developed countries), without a clear plan to follow(like Unix was for GNU): the game is radically more challenging. Take Google’s G1 as an example: it’s only one year old but its operating system version is obsolete (and customers are complaining). With users changing phone every 18 months in the US, the lifecycle of a free driver is too short to justify the effort.

On the other hand there are many applications that need to be liberated, like social applications that respect freedom in the cloud, mobile email client that don’t suck, mobile music players with stores that are not defective-by-design. And many more need still need to be imagined.  Developer’s focus should be on what appears in freedom-giving mobile applications markets: we made the application market concept popular (apt-get repository anyone?), now we need to move to mobile and to fill them with good and free applications first. Device drivers can come at later stage, eventually after hardware manufacturers will have battled each other to the death and one winner will emerge (like it happened with x86).

Eben Moglen’s Freedom in the Cloud Talk

I watched Eben’s speech but now I can quote it too thanks to the transcript done by the friends at Software Freedom Law Center. Talking about the problems of the cloud services, Eben hits Facebook hard with his rhetoric:

The human race has susceptibility to harm but Mr. Zuckerberg has attained an unenviable record. He has done more harm to the human race than anybody else his age. Because he harnessed Friday night, that is, ‘Everybody needs to to get laid,’ and turned into a structure for degenerating the integrity of human personality and he has to remarkable extent succeeded with a very poor deal, namely ‘I will give you free web-hosting and some PHP doodads and you get spying for free all the time’. And it works.  How could that have happened? There was no architectural reason. Facebook is the web with, ‘I keep all the logs, how do you feel about that.’ It’s a terrarium for what it feels like to live in a Panopticon built out of web parts. And it shouldn’t be allowed. That’s a very poor way to deliver those services. They are grossly overpriced at ‘spying all the time’, they are not technically innovative. They depend on an architecture subject to misuse and the business model that supports them is misuse. There isn’t any other business model for them. This is bad. I’m not suggesting it should be illegal. It should be obsolete. We’re technologists we should fix it.

As Nicole says, Facebook is Internet for the lazy people that don’t know or want to setup a blog on their own and learn how to use search, RSS or even email. And there are many of those.

So what do we need? We need a really good web server that you can put in your pocket and plug in any place. It shouldn’t be any larger than the charger for your cellphone. You should be able to plug it into any power jack in the world or sync it up with any wi-fi router that happens to be in this neighborhood […]
This is stuff we’ve got. We need to put it together … I’m not talking about stuff that’s hard for us. We need to make a free software distribution guys.[…]
Great social networking, updates automatically, software so strong you couldn’t knock it over if you kicked it, and you know what, you get ‘no spying’ for free. We can do that …

A small, personal, portable device, connected to the Internet with a simple and easy way to receive updates via a push mechanism and sync data between different sources. Something similar to what Funambol’s CEO said in Five Reasons To Care About Mobile Cloud Computing and I sketched earlier thoughts about the same topic. We’re facing interesting and busy times ahead.

Read there rest of Highlights of Eben Moglen’s Freedom in the Cloud Talk – Software Freedom Law Center.

Mobile Cloud Computing, Part II: Where do We go From Here?

Mobile cloud is going to be big, according to a study published by ABI research. And they’re not the only ones to say so.

In this second part of my thoughts about mobile cloud — which I hope we can all talk about at OSCON — I’ll try to find answers to this question: as a developer commited to free-as-in-freedom software, what would you need to do to get started?

In this who’s who in mobile open source, Funambol and Volantis are shown as the only companies offering service delivery platforms, demonstrating that there are many ways to develop free software applications but only a few solutions to build open mobile services with.

Linux support packages Wind River (also one of the most prominent integrators for mobile Linux stacks), MontaVista
Operating systems for feature phones: Purple Labs; for smartphones: Azingo, Access Linux Platform, A la Mobile, OpenMoko; for MIDs: Intel Moblin, Ubuntu Mobile. Also OKL4 is virtualisation (hypervisor) software for mobile phones.
Middleware GNOME’s GTK+ and related projects (e.g. D-Bus, Gstreamer), the graphics subsystem of Nokia’s Qt and the db4o database engine.
Application environments Google’s Android, Nokia’s Maemo, Nokia’s Qt, Eclipse eRCP, Sun’s Java phone ME, Motorola’s Java MIDP3, AOL’s Open Mobile Platform and Nokia’s Web Runtime
Browsers Apple’s WebKit (on the verge of becoming a de facto standard for web-centric service delivery) and Firefox Mobile
Service deliv. platforms Funambol (consumer email sync), Volantis (content adaptation)
Development tools Eclipse Foundation (manages the Eclipse IDE, used as the basis for Nokia’s Carbide, Wind River tools and many others). Plus RhoMobile – a new set of open source developer tools for creating connected enterprise apps on smartphones.
Industry initiatives Symbian Foundation (EPL license), Open Handset Alliance (APL2 license), LiMo Foundation (open source as it builds on top of Linux), GNOME Mobile and Embedded (LGPL-licensed GTK+ and related software)

On the other hand, proprietary mobile services are blossoming everywhere. Funambol recently listed and reviewed 11 mobile cloud sync services, from Apple MobileMe to Vodafone Zyb.

A minimum requirement are interoperable services implementing open standards, because users’ data must be preserved at all costs. Proprietary walled gardens create small monopolies that sometimes grow big and take away personal data from the users. Two recent cases demonstrated that users of mobile cloud services are exposed to serious problems: one with Amazon Kindle and the other with Palm Pre. Both are mobile devices, both rely on mobile cloud services for most of their usefulness. Kindle users that buy electronic books are realizing that they don’t end up owning anything and Amazon can too easily prevent users from enjoying the books they’ve bought.  The other disturbing news story reports that Palm Pre owners cannot access the music that they bought and stored in Apple’s iTunes: Apple still wants to own the music it sold its users and keep their data hostage.  I think these are just a visible signal of  proprietary services battling to own the users’ data.  If Kindle and iTunes used interoperable and open standards, which could be safely implemented in free/libre open source software, their users would not face much of these problems.

The pure mobile service frameworks available for freedom conscious developers are Funambol, which offers push notification, synchronization and device management, and Volantis, which offers content adaptation to mobile browsers. Rhomobile is another options, a mix between a development tool and a service delivery platform. Funambol is fully based on the Open Mobile Alliance (OMA) open standards Data Synchronization and Device Management, therefore services built with Funambol can easily respect users’ rights. The server aspect is complemented by the Java and C++ SDKs to develop native mobile applications for the devices. Rhomobile is based on Ruby and can be used to develop applications that act as being native but use the local web browser.

While Funambol and Rhomobile in theory can be used to develop free as in freedom mobile cloud services, there is still one big issue to solve: locked down devices. Network operators don’t want the users to be too free so almost all of them prevent users to run applications that are not digitally signed. RIM, Apple and to some extent also Symbian devices are all locked down, which renders users’ freedom in the mobile cloud a balancing act: on one hand a developer needs to obey the rules dictated by network operators and device manufacturers; on the other hand the same developer needs to find ways to deliver freedom to the users. In Funambol’s case, for example, the official iPhone client can only sync contacts because the official Apple SDK only allows that. Nonetheless, Funambol client for iPhone can sync also calendar accessing directly the sqlite database, but such version cannot run on the device unless it is unlocked (breaking Apple’s warranty).

This is only scratches the surface of the mobile cloud services for the freedom-concerned developers and users.  There are further issues to talk about, including:

  • device management,
  • how to push software updates to the devices,
  • security of data (since people tend to lose their phones),
  • how to keep data secure while transfering.

The free software movement should take the lead to address and solve these issues. I hope we can spark the discussion at OSCON. I’ll be available all days ping me any time. Follow me on identi.ca or twitter.

The cost of monopoly in the cloud

Reading of the latest cyber attacks against South Korea and USA digital systems, I remembered a rather old post from Gen Kanai @Mozilla, the cost of a monoculture. It’s about monopoly, government decisions and security in the cloud.

[South Korea] is also a unique monoculture where 99.9% of all the computer users are on Microsoft Windows.

The post tells what is happening in the country since the South Korean government decided that the whole digital infrastructure of the nation would have to depend on non standard technology and ended up with only one IT supplier. That was a really bad choice that may have made the whole country vulnerable to become a base for large scale cyber attacks.

Whether or not South Korean computers will be destroyed today (it seems that they are), the point that should be clear is that the ‘cloud’ is not a virtual environment, but it’s part of everybody’s life. Government decisions on technical issues have tremendous impact and real open standards should be mandated. With so many more mobile phones than computers, the mobile cloud must have its own standards in order to avoid monopoly and the cost associated with it. If you’re interested in the discussion about mobile cloud come to the free BoF session at OSCON2009.

via Mozilla in Asia » Blog Archive » the cost of monoculture.

Google plans to own you. More.

Finally Google revealed its plans to enter the operating system market. The first thing that comes to mind are chairs flying in Microsoft offices 🙂 The other thing comes from this statement:

“All Web-based applications will automatically work and new applications can be written using your favorite Web technologies,” the company said.

It means cloud computing, the kind that makes desktop computers a dumb terminal. Since Google OS will target highly portable devices like netbooks, the issues of mobile cloud computing gain importance. I hope you’ll join the birds of a feather session at OSCON I’m coordinating to discuss what the free software movement can bring to mobile cloud computing.

via Google Plans a PC Operating System – NYTimes.com.

Thoughts on mobile cloud computing

Mobile cloud computing represents an opportunity for the free/libre open source software movement that is just as big and radical as cloud computing, maybe even moreso. This is part 1 of a post about it, part 2 will follow shortly.

By the end of 2009, 4 billion people will use mobile phones. By 2013, that number is projected to grow to 6 billion. That is many times the number of personal computer users. By definition, mobile phones that access the internet are performing mobile cloud computing: handsets need to borrow storage and computing power from the cloud because of their limited resources.

Just as Free/Libre Open Source Software played a major role in the growth of the Internet and cloud computing, sparking issues about openness and freedom, the Free Software movement has the potential to provide a similar yet different impact on mobile cloud computing.

To mitigate the power of the cloud computing vendors and reduce the risk of lock-in the free/libre software community and proprietary vendors are discussing policies and proposing standards. Various communities, from Open Cloud Manifesto to Autonomo.us think-tank, are searching ways to guarantee interoperability, security, privacy for users of the cloud services.

Mobile cloud services have similar issues, although the expected impact on the users is different. While a desktop user has the option to keep pictures in the cloud, on services like Flickr or use local storage, mobile user’s choice is limited by the device form factor.  Even if mobile devices are not exactly ‘dumb’ terminals, but they’re not ‘super-smart’ either. Usually the applications are resident on the device, but not all of the user’s data or the computing power can fit in there.  Therefore mobile cloud servicese ‘lend’ computing power to the handset when it connects to the service, which then can continue working ‘disconnected’. For example, a phone can use extra storage from the cloud for multimedia files, like pics or music. The mobile cloud service can then push to the device a special music playlist for a running workout when it’s needed.

Mobile cloud services are largely dominated by vendor specific walled gardens, and debate is not as intense as the numbers of cell phone users would suggest. Probably this is due to the fact that not only Free Software powered mobile phones are not easy to find, but also installing new software on phones was not an option for the mass market until recently. Now, after iPhone and with more and more ‘application stores’ emerging, the issue of mobile users’ freedom is showing up: billions of new handset users have the issue of freedom for the software on the device and freedom in the mobile cloud.

The Free Software community has to step in the mobile cloud debate or a large piece of digital citizens will not be able to enjoy the benefits that free software has brought to larger computer users.  The mobile cloud is pretty much an open territory where many vendors are already fighting to lock-in their users.

The birds of a feather session at OSCON is devoted to the idea of “open mobile” cloud computing. Some of the questions that we can discuss include:

  • What is open mobile cloud computing and what does it mean?
  • What components, solutions, technology, ecosystem and standards are involved?
  • What provisions are needed to safeguard everyone’s rights?
  • What tools are already available to build free as in freedom mobile cloud services?

If you would like to participate in this birds of a feather session @OSCON or this discussion, please contact me.

Locked devices, GPLv3 and the path to mobile freedom

iPhone lockedIn a recent discussion with friends I realized that tivoization is a sub-optimal world to describe the problem that the Free Software community has with freedom being controlled by those that control the hardware.  The word clearly targets one specific company, so the problem gets somewhat reduced in scope. The real issue is not limited to companies exploiting the hard work of free developers, removing with hardware constraints the very freedom that developers wanted to grant to all users. There is more than that, and this is especially visible in the mobile environment.

Almost all existing handsets require applications to be signed before they can be executed. Depending on the mobile platform, these signing keys can be cheap or expensive and given to all or only to selected people. All of them are personal and they’re not supposed to be shared with third party. GPLv3 and its sister licenses, Affero GPLv3 and Lesser GPLv3, require developers to release the full installation instructions which include the private keys to sign the application. This is not requested by the license only to the manufacturers of User Products, like the word tivoization seems to suggest, but to everybody distributing GPLv3 software on locked down devices, like iPhone or BlackBerry.

Free Software Developers that want to re-use or release new code under the GPLv3 licenses face a dilemma: decide not to support locked devices or circumvent the GPLv3 requirement to distribute the signing keys with an additional permission. Option one means that almost all of cell phone users out there (over 2 billion people in 2005) won’t get to know Mobile Free Software. Option 2 means surrendering to the power of AT&T, Verizon, Apple, Microsoft and the like. Funambol requires copyright assignment for all contributions, so it can distribute the source code of its mobile clients under the vanilla AGPLv3 license, and the binaries are under a different license. It’s a hack that works as long as developers trust the company not to breach the social contract and it has limitations.

On the other hand, the GPLv3 anti-lock provision is there to protect Free Software Users from the risk to be bullied by the network operators, since you can lose the warranty or be kicked out of the network if you run software that is not blessed by the gate keepers of the mobile cloud.

Is there a third option? Does relaxing the GPLv3 provision really mean surrendering to the powers of the telecom operators, who twist the arms of the proprietary manufacturers? How can the Free Software community change the broken rules dictated by the Evil Lords of the Wireless Cloud?