May 08, 2008
Mickey already
blogged
about it. This is something we talked about a lot lately. Sometimes frustrated
sometimes with hope. It is something we never got right since the beginning.
Ease the development of new applications and services. Build your kick ass stuff
on top of a good fundament. And if it does not give you what you need, extend
it. It's not like other commercial frameworks where you have to deal with what
you get. It's open, take it, extend it, send patches. :)
Let's hope the framework team get the resources they need for getting it done. I
also have some private ideas how to contribute here. Once I have something ready
I let you know.
As code is better then words, take a look at their
git repos.
May 05, 2008
I have not been posting about my work for Openmoko for quite a while. There are multiple reasons for that, ask me privately if you want to know… Today though, I want to post about a high-priority project inside Openmoko, Inc. — the new framework and middleware initiative which me and some guys will be working on.
I have been talking privatly about this to people on conferences, but now it’s going to be an official project. It’s something we attempted to do when we started back in 2006, but for some reason, we did it the wrong way. We tried taking existing components to make them fulfill our usecases and to fit our needs, which in some cases turned out to be impossible. This time we’re moving the other way round. We will take our usecases as the goal and create the necessary infrastructure to make it happen. If — while we’re on the way — can integrate existing efforts, even better. If not, we will eventually see how to merge with existing efforts. The goal is to get things done — now!.
Basically all this is about two components, which are independent, but closely related.
- The framework.
- A bread-and-butter application.
The Framework
The purpose here is:
- Give people the infrastructure to create solid and exciting software products based on the Openmoko platform,
- Support competing UIs while collaborating on developing services, and
- Encourage framework users (e.g. application developers) to also contribute to the framework.
With this in mind, we define the following requirements:
- Make it simple,
- Concentrate on core services,
- Be programming language agnostic,
- Be UI toolkit agnostic, and
- Try to reuse existing technologies as much as possible, but not at the cost of a bad API.
Our way to achieve this on a technical level is through dbus:
- Chose dbus as the collaboration line. Below dbus, we can work together. Above dbus, we can differentiate.
- Expose features through dbus APIs implemented by UI-agnostic and language-agnostic services (daemons).
- Optimize for Openmoko devices, but support multiple architectures (OpenEZX, Xanadu, …) and purposes through plugin interfaces and suitable hardware abstraction mechanisms.
- Be not afraid of reinventing the wheel for a wheel-barrow if all the existing wheels are made for sports cars.
The framework is not going to cover everything but the kitchen sink though, especially it’s not about:
- Bootloader, Kernel, or System Init.
- X-Window-System, Window Manager, UI Toolkits,
- Application Launchers, Applications, or Fancy UIs.
The Bread-and-Butter application
The framework initiative is related to developing an application that uses the framework to turn a Linux-phone into a usable feature phone. The main goals for this application are:
- Make it simple,
- Concentrate on core features,
- Have a beautiful, efficient and consistent UI,
- Be easily extensible through scripting, and
- Show the power of the framework.
This application is developed in tandem with the framework, because when you write framework APIs, it’s important to have existing API consumers. Without API consumers, APIs are just specs, could be awkyard, or plainly unusable — that’s why this bread-and-butter application is of central importance to the framework project.
I’m looking forward to spend a lot of time on this project and I invite all of you to participate. Most of the discussions will happen on the Openmoko developers mailing list and the FreeSmartPhone standards list We already have achieved some important basics thanks to great contributions by the moko underground people that are grouped around the neo1973-germany.de site and the IRC channel #neo1973-germany. I’m also looking forward to great results from this years’ Openmoko Google Summer of Code.
As for the current status, we will update the wiki page OpenmokoFramework frequently and sent status updates once and then to the mailing lists.
Good speed!
May 03, 2008
學生時代就相當敬佩的自由軟體精神領袖 Richard Stallman 要來台灣了。Richard Stallman 在就讀哈佛大學時,於麻省理工人工智能實驗室發展 Emacs 軟體,也就是在這個時期,他體驗到駭客文化的可貴與精神,從此成為悍衛自由軟體的鬥士。Sam Williams 也寫了一本「自由軟體的聖戰」[1],內容在描述 Richard Stallman 的自由軟體運動。
以下引述 Openmoko 的新聞稿:
自由軟體基金會創辦人、同時也是知名軟體 GNU Compiler Collection (GCC) 與 GNU Debugger (GDB) 的原始作者與開發者 Richard Stallman 將於 5 月 12 日來台並發表演說。Richard 於 1984 年發動 GNU operating system 發展計畫,並在 1985 年成立 Free Software Foundation(自由軟體基金會),接著在 1989 年寫出第一個 GPL (GNU General Public License)條款。GPL 至今已是最重要的自由軟體授權條款,至今有超過 60% 的自由軟體都是採取 GPL 授權規範。因應商業化需要,GPLv3 在經過長時間的討論後,也於 2007 年 6 月正式釋出,並受到產業界高度重視與討論。
睽違三年,Richard Stallman 再度來台,將在台北與新竹各發表一場公開演說。Richard 提到「希望能讓大家了解 GNU operating system,以及自由軟體(free software)的真正意義。」除了發表與自由軟體相關之演說外,Richard Stallman 也會和現場聽眾進行公開討論,這是一個向 Richard 當面請益的好機會。
Richard 本次來台預計將發表與「自由軟體運動」以及「軟體專利威脅」有關之演說。所有活動都是免費參加,Richard 同時也非常想聽到來自各界對自由軟體的聲音。詳細活動資訊請參閱 Openmoko Wiki 活動頁面。
* 活動頁面:http://wiki.openmoko.org/wiki/Richard_Stallman/zh_tw
延伸閱讀
2008.04.30: 嵌入式系統廠商不能不懂的自由軟體授權 GPLv3
[1] Free as in Freedom: Richard Stallman's Crusade for Free Software, http://www.faifzilla.org/
May 01, 2008
It's now ok to read the SWF spec and create an independent SWF decoder? I don't know if there are any catches here, but taking this at face value, that's great, right?
April 29, 2008
I must never forget to pay attention to the small things…

...nature is always smiling.
April 28, 2008
The guys from INdT posted the Bossa Conference promotional video for next year’s installment:
Yours truly can be found a couple of times… so — how many appearances do I have in this video?
Last week I charged the different batteries and took a GTA01 Neo, a GTA02 Neo and a Nokia N810 with me to enable their GPSes on my way home from school. Then I saved the traces they logged and loaded into JOSM to have a look (GTA01, GTA02, N810 - gpx files converted using gpsbabel from nmea)

The devices made respectively 11.28km, 12.12km and 11.07km routes (sitting in the same bag the whole time).
All in all I like the GTA01 accuracy the most although all three sometimes have horrible errors. They all three have accuracy about near the bottom line of usability for OSM mapping for a city, so if you get a GPS with that in mind, it may be slightly disappointing. All three are quite good at keeping the fix while indoor but everytime there’s not enough real input available they will invent their own rather than admit (if you had physics experiments at high-school and had to prove theories that way, you know how this works), resulting in run-offs to alternative realities - especially the N810 likes to make virtual trips. They all three apparently do advanced extrapolation and most of the time get things right, but the GTA01 GPS (the hammerhead) very notably assumes in all the calculations that the vehicle in which you move has a certain inertia and treats tight turns as errors. I’m on a bike most of the time and can turn very quickly and it feels as if the firmware was made for a car (SpeedEvil thinks rather a supertanker).
It’s suprising how well they all three can determine the direction in which they’re pointing even when not moving (the GTAs more so). The firmwares seem to rely on that more than on the actual position data sometimes. This results in a funny effect that the errors they make are very consistent even if very big - once the GPS thinks it’s on the other side of a river from you (or worse in the middle), it will stay there as long as you keep going along the river.
I’m curious to see what improvement the galileo system brings over GPS.
UPDATE: I was curious about the precision with which the altitude is reported, which can’t be seen in JOSM. First I found that the $GPGGA sentences on my GTA01 have always 000.0 in the elevation field, but the field before it (normally containing HDOP) has a value that kind of makes sense as an altitude, so I swapped the two fields (HDOP value should be < 20.0 I believe?). Then I loaded the data into gnuplot to generate this chart:

The horizontal axis has longitude and vertical the elevation in metres above mean sea level. Err, sure? I might have screwed something up but I checked everything twice. Except the GTA01 which might be a different value completely - but the is some correlation. I’m not sure which one to trust now.

April 25, 2008
So, a couple more changes and updates to my images. First of all I’ve taken out the Oh-puzzles because they don’t work due to this bug - once that’s sorted they’ll go back in.
There’s a new little script too which allows you to switch themes. I’ve removed some of the themes that are installed by default essentially because the panel in the top right dies and never returns if you try to use them. So at the moment you get to pick between Moko, ScaredyCat and the original Openmoko theme, openmoko-standard-2. By default the ScaredyCat theme is active. So, no excuses now. Get designing some killer themes.
The next change is due to a request from Taki asking for tangogps to be preconfigured to use the sd card for map and track storage. So now, by default, maps on my builds are stored in:
/media/card/tangogps/Maps/OSM/
and track logs are stored in
/media/card/tangogps/logs/
This should be a little more useful and wont fill up your flash with tiles.

April 24, 2008
前一篇日記「iPhone 改變工程師設計嵌入式裝置的思惟」提到 iPhone 在 UI 方面的卓越表現。稍早前,[Trolltech Labs] 發表一項新的實驗項目:新的 Qt 4.4 已經可以在 Windows Mobile 以及 Embedded Linux 二個平臺上執行了。

(圖片來源:http://dist.trolltech.com/video/wince/qtembedded44video.html)
Trolltech Labs 提供一段 demo 影片,Windows Mobile 平臺使用 HTC Touch Cruise 手機,Embedded Linux 平臺則是使用 Openmoko 的 Neo1973 手機。不過,最引人注目的不是「Qt Everywhere」的表現。新的 Qt 在 UI 方面最令人驚豔的是它的「iPhone like graphics」。
我們都知道,未來的智慧型手機開發方法論,會是以使用者為導向的一個體系,包含如何讓應用程式之間更緊密地結合(coherent)以及如何提昇使用性(usability),因此 UI 將會是決定這個部份的關鍵。Nokia 在收購 Trolltech 公司後,在 UI 這一段看來已經有一些不錯的成果了。
April 23, 2008

In a few weeks I will start to work with the great people of the
OpenMoko project.
The goal of this project is to produce a totally open source mobile phone that everyone can modify at will.
You can learn more from the
web site, download the sources, and even the CAO files !
My job will start in a few weeks, for the moment I am still working for Taiwan university, but I start to have a look at the huge
mailing list archives of OpenMoko to get a better idea of the project and the people involved.
I'll post more on the subject when I will actually start working. I guess this will be a great experience for me, and I will do my best to contribute to the project.
Welcome to Charlie137 (aka Guillaume Chereau) new blog.
I start this new blog in addition to my
other blog.
This blog will be more tech oriented. I will talk about the things I like in computer science, and also about my new job for
OpenMoko.
So get ready to hear a lot about linux, OpenMoko,
Python,
D,
Vala,
Stellarium (among other things.)
I'll keep updating my old blog with drawings and video games stuffs when I'll get the time. I have been pretty busy (and sick) recently so I didn't take time to post anything.
Enjoy,
-gui
April 22, 2008
April 21, 2008
April 17, 2008
It's over 13 months now since I started to work for OpenMoko. Wednesday was my
last day.
I'm not leaving with bad feelings. Still over the last months I disagreed with
decisions and directions, got frustrated with the work I had to do. Not the
best conditions for a productive work environment.
However I still like to see OpenMoko success. As open as possible mobile phone
hardware on which I can flash all kind of software I like. Not fighting against
vendor policies but having almost all options I like. Still sounds great to me.
Over the last 13 months I learned a lot. For both, coding and business. Working
with some great people from the FOSS community from all over the world and with
great taiwanese engineers. (Watch out for these guys, they are awesome but shy)
Made new friends and had to deal with an interesting different culture.
It was an awesome but exhausting trip. It's over for now.
I plan to do no paid work for the next 1-2 months, perhaps even longer. In this
time-frame I need to come back to the study life I had before and take some rest.
Read some good books, hang out with friends and don't worry about deadlines.
After that we will see what kind of work will come in. At least it must be not
as much time consuming as OpenMoko was. Need to focus on my studies.
April 16, 2008
I totally missed this until now, but my colleague, Samuel Ortiz, wrote up some information about implementing the Wifi driver for OpenMoko:
http://labs.o-hand.com/2008/02/05/openmoko-wifi-driver/
I’m pleased to say that during my own testing I had no problems and it even works with WPA encryption. Good job Samuel!
April 14, 2008
As in the last year, some people in our company have just started to play around with their Neo’s and Nokia Internet Tablets to get some cool robots for Linuxtag running. In the last year, we had a booth with N800-controlled robots as showcase for Jalimo, our Java platform.


Beyond the platform showcase, people got so much fun with their robot ideas, that they have started the freedroidz project, just to play around with this nice toys. So, feel free to play with us, either now, or at Linuxtag - only six weeks left!
April 10, 2008
Before I took my FreeRunner prototype along to Ole’s OpenMoko talk in London yesterday, I hacked up a little demo application in python/pygtk to display various new features in the FreeRunner (Wifi, accellerometers, LEDs). If you where there yesterday, you probably saw this live in action:

On my previous post OpenMoko post, someone asked about the LEDs on the FreeRunner. Obviously, you can’t see any proof of the LEDs in screenshots, so I took some very quick photographs:



Desktop:
$ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
91 cd
75 ls
49 svn
45 ssh
37 vim
37 make
13 ./test-notes
11 svn-prepare-ChangeLog.pl
11 ./openmoko-messages
11 ./openmoko-dialer
Laptop:
$ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
91 vim
53 sh
52 svn
47 cd
40 ls
31 find
21 git
18 ssh
11 su
11 make
April 08, 2008
April 07, 2008
Benjamin Otte shares my observations about forum users and reporting problems:
"It almost never occurs to the forum members to file bugs, check the homepage of upstream projects or otherwise interact with the distribution. Instead, they spend most of the time with anecdotal stories of how they fixed problems and hearsay about what they think happens in the Linux world. In short, they’re as well informed about their distro as the tabloid press is."
I have given up on trying to get people to file bugs at the right bugtracker and have adopted the rather cynical filosophy of "If you don't care enough to file a bug, I don't care enough to look into your supposed problem".
Spurred on by the positive comments in my last little theme experiment for the OpenMoko, I have made a few adjustments based on some of the comments. It’s also now available in OpenMoko svn.
If you have a OpenMoko build set up, you can try it out. Firstly you need to build the package and then rebuild the package index:
bitbake moko-gtk-engine && bitbake package-index
You may have issues if you have built this before, because I did made some changes to the repository that svn can’t handle very cleanly, so if you have problems, wipe your svn checkout and start again.
Then you need to ssh into your neo and run the following commands:
- opkg upgrade
- opkg install moko-gtk-engine
- dbus-launch gconftool-2 –t string -s /desktop/poky/interface/theme “Moko”
- /etc/init.d/xserver-nodm restart
Here are some more screenshots of the theme running on the device. There are still some bugs with colours in a few places, so testing would be much appreciated.



I think the GPS icon is green because the GPS chip was on when I took the screenshots. I’ve been testing a couple of the peripherals on my GTA02 lately and I’m happy to report so far Wifi, GPS, accellerometers and the LEDs all seem to be working correctly. I got a fix from the GPS today which according to Google maps, was within 1 meter of my actual location.
April 06, 2008
While eating lunch today I noticed myself in a trance, mesmerized by the leaves of an urban tree blowing in the wind.

Relaxation breathed through my fatigued body. For months now, I’ve been in a state of growing frustration over the complexity of my latest undertaking. Ideas have more or less stopped in my head. Each night I still dream. Occupied only with the same tasks I struggle with during the day. Day after day.
Openness, to me, means interchangeability, interlinkedness, fluidity, continuity. Nature is open. Nature can generate leaves with infinite variations blowing in the wind.
I’m beginning to feel inspired again. With a new dream; to mass produce something that is open. One simple idea reproduced in infinite interlinked variations. Like nature.