Contact sync between K800i, and

Today I’ve finally figured out how to syncronize my contacts, calendar, bookmarks, tasks and notes between my Sony Ericsson K800i mobile phone and Gmail, learning how to synchronize them with the data utility in in the way.

I’ve googled around and read so many web pages that I can’t list all them here. I’ll just post the result here as a recipe for people having a similar phone model:


Just go to , create an account, tell them your phone model and number and follow the instrucions. They will send you an SMS, but if you don’t receive it (as it was for me), there’s a link to get the connection instructions by hand. These are my settings:

  • Server address:
  • User name: A random alphanumeric sequence that they create for you
  • Password: Another random alphanumeric sequence that they create for you
  • Connection: Choose your default internet connection here
  • Applications: Contacts, Calendar, Tasks, Notes, Bookmarks (choose the ones you want to sync)
  • Apps. settings: Use the following database names for each one of the services: con, cal, task, pnote, bmark
  • Sync interval: disabled
  • Remote initialization: Always ask
  • Remote security: leave it empty

For Gmail:

  • Server address:
  • User name: Your gmail name without “”
  • Password: Your gmail password
  • Connection: Choose your default internet connection here
  • Applications: Contacts, Calendar, Tasks, Notes, Bookmarks (choose the ones you want to sync)
  • Apps. settings: Use the following name for the contacts database: contacts. i don’t know if the other services are available.
  • Sync interval: disabled
  • Remote initialization: Always ask
  • Remote security: leave it empty

I hope this post to be useful for other people struggling around out there to do the same task. I’d liked very much to have found it while I was googling. If this info is useful to set up other phone models/brands with slight variations, I’d also like to know about them. Please, post a comment about your own experience.

Enjoy it! 🙂

Meiga 0.3.0 released

After some inactivity time, I’ve started to devote time to Meiga again and developed a set of new cool features, apart of solving some bugs. The result is this new 0.3.0 release.

The most significant new feature is the support for multiple forwarding backends. Now the user can choose not only UPnP, as before, but also SSH forwarding or no forwarding at all (direct connection). What the new SSH forwarding backend does is to connect to a central SSH server and forward the Meiga serving port on it. This way, all the users in the remote SSH server or having direct connection to it, can access to the forwarded port. This connectivity for users having direct visibility of the server is only possible if it’s allowed by the SSH server configuration, though.

The second new feature is the addition of “Share on Meiga…” context menus for Nautilus and Konqueror. That way you don’t have to bother about finding the right folder path in the file selector. For improved security, this context menu will only work if Meiga is already running. No share will ever be served without the user noticing it by seeing the Meiga icon shown in the system tray.

The rest of the changes are minor fixes or collateral changes needed to implement the main ones.

I hope you to enjoy this new version. As always, it’s available for download from:

Guadec 2009 conclusions

This has been a very intense week at Gran Canaria Desktop Summit. I’m very glad about the good reception that Meiga talk had among the Gadec-ES public. Now it’s time for taking advantage of all this work and update the Meiga website with the slides prepared for the talk. I’m sure that anyone wanting to contribute or to understand the project will find valuable information on them.

But not everything has been about explaining our work. I’ve learnt a lot of new things and found new ideas to improve Meiga in the future. I’m not going to talk here about the rest of the talks given by Igalia people. You can read about that on the planet. I prefer to focus on some of the other most interesting talks I’ve attended to:

  • Profiling and Optimizing D-Bus APIs (Will Thompson): Will showcased a graphical profiling tool that shows that D-BUS can be a slow protocol when there is a high amount of calls. One alternative to speed up things is to expose methods to do vectorized calls, performing multiple queries and getting multiple results at once, instead of doing N consecutive calls.
  • Sipping Mojitos and thinking RESTful thoughts (Rob Bradford): Rob spoke about Mojito, an interesting library to access remote REST web services in a convenient way.
  • I can has aliens too? Client side windows in Gtk+ (Alexander Larsson): Alex and his workgroup are making the effort to collapse some X-Window windows into a single big one managed by the client. This reduces flicker and has interesting applications for offscreen rendering.
  • Thinking Outside The Box (Bringing the Network back into GNOME) (John Palmieri): Apart from being a good guitar player, John reflected about some interesting ways for the desktop apps to interact with online services. It’d been nice to integrate the Meiga ideas of “offering directly from the desktop” instead of relying on central services, as he exposed.
  • Vala: Compiler for the GObject type system (Jürg Billeter): The Vala author showed the language I’m in love with. Apart from the already known features, I could see the new asynchronous programming features, which implement coroutines in some way. This concept is a very interesting tool to do clean asynchronous programming and could solve one of the problems I found in Meiga when coding a serie of asynchronous action. My alternative was to code a programmable step interpreter.
  • The Hynerian Empire and beyond (Zeeshan Ali): Zeeshan showed us the features of Rygel, a UPnP media server for Gnome.
  • Let’s make GNOME a collaborative desktop (Guillaume Desmottes): People is using Telepathy (XMPP) to exchange not only messages, video and audio, but also files and using the framework for other kind of communication/sharing uses between applications.
  • Personal Media Networks with Coherence and Telepathy D-Tubes (Philippe Normand): This guy demonstrated Coherence, a framework that is able to link two UPnP networks (eg: two homes) by using one of the UPnP devices in each network as a proxy. This proxy would forward the UPnP messages encapsulating them into DBUS calls and transmitting them over the Internet using D-Tubes, a networked implementation of DBUS. This D-Tubes technology also appeared in other talks and seems to be very interesting.
  • How to play libnice-ly with your NAT (Youness Alaoui): This guy explained how libnice uses NAT punching to make NAT traversal possible for UDP packets. They are currently trying to make it work for TCP also, which would be of immediate application on Meiga. Anyway, in that talk I knew about the existence of TURN servers that play the role of a central communication point as a last resort when direct visibility isn’t available between the peers.

Meiga 0.2.1 released

This is a minor release that includes a couple of bug fixes that will make Meiga to properly work on Fedora systems and also to work with those routers exposing a WANPPPConnection by UPnP instead of a WANIPConnection.

As always, you can download it from This time a new package for Ubuntu Jaunty on amd64 is also available for users having that architecture.

Meiga talk at Guadec-ES scheduled

The final schedule for Guadec-ES has been published. The talk “Meiga: compartiendo contenidos de forma ligera desde el escritorio” will be given on Thursday July 9th from 11:00 to 12:00.

El horario final para la Guadec-ES acaba de publicarse. La charla “Meiga: compartiendo contenidos de forma ligera desde el escritorio” será impartida el Jueves 9 de Julio de 11:00 a 12:00.

Simple HTTP server in Python

Reading blog comments about Meiga out there, I’ve found one particularly interesting. Python has an embedded HTTP server that can serve the current directory from a given port. It can be instanced for port 8282 simply issuing this command:

  python -m SimpleHTTPServer 8282

The funny thing is that… it works on the N810 also!

More info about SimpleHTTPServer here.

Meiga 0.2.0 released + talk at Guadec ES

A new version of the Meiga tool has been released. The new features in this version are:

  • File and share ordering
  • Port from libglade to GtkBuilder. Special thanks to Javier Jardón (torkiano) for his contribution.
  • Log showing in gui
  • Automatic refresh
  • Fixed bug: forbid empty or /rss share names
  • Spanish and galician translations

It can be downloaded from the project main page.

Meiga screenshot (log)

Moreover, the talk about Meiga presented for Guadec ES has been accepted. Don’t miss it if you’re going to take part in Guadec/GuadecES/aKademy and feel curious about this new tool.

Curiosities about parameters and variable declarations in Javascript

  1. <html>
  2. <body>
  4. <script type="application/javascript;version=1.7">
  6. function f1(parameter) {
  7.  alert(parameter);
  8. }
  10. function f2(parameter) {
  11.  alert(parameter);
  12.  let parameter = "value";
  13. }
  15. f1("hello");
  16. f2("hello");
  18. </script>
  20. </body>
  21. </html>

Continuing with the “Curiosities” serie, today I bring another one: Javascript doesn’t take too well the definition of a variable with the same name as a function parameter. If you do this, the parameter is lost.

Copy the code to a local file and try it yourself… Surprisingly, the second alert will print “undefined”.

Meiga 0.1.0 released

As presented on my last post, I’ve been working in Meiga, a lightweight content sharing tool for the desktop.

What you could find these days in the git repository was a beta. I’ve been working last days in the final details and now it’s ready to be released. Here it is:

There you will find packages for Ubuntu Hardy, Intrepid and Jaunty, as well as a link to the source code.

I hope you to enjoy it as much as I’ve enjoyed writing it. Of course, comments and improvement suggestions for next versions are welcome. 🙂

Meiga: lightweight content sharing from the desktop

No, this time I’m not going to talk about the wonderful new Igalia office opening party, nor about the Igalia summit that we’re going to have this weekend in a hotel near Santiago de Compostela. This time I’m going to talk about a new free software project I’ve been working on to take advantage of the paid hackfest ours that our company provides us. Ladies and gentlemen, I’m proud to present the Meiga project to you.

As all of you already know, the current trend in the Internet is to publish contents in centralized servers to be shared to other people. Nevertheless, sometimes it’s handy for users to be able to serve their own contents directly from their desktops in a convenient way (instead of using a pendrive, for instance). Why bothering about publishing your contents if you can share them directly from your desktop to the LAN or even to the whole Internet?

To satisfy this need we’ve created Meiga, a tool that makes possible to share selected local directories via web. But that’s only the beginning. In fact, the ultimate goal of the project is to serve as a common publishing point for other desktop applications, such as the file manager, picture viewers or music players.

Meiga is lightweight, easy to use, network friendly and also application friendly. It’s written in a mix of Vala and pure C code, using existing Gnome technologies to perform its tasks: libsoup is used as a simpler alternative to fat web servers, libgupnp is in charge of doing port redirections if the network router supports UPnP, and DBUS exposes a public API to allow the GUI and third party applications to control what is served. Some advanced publishing features are already implemented, like the feed server that can render an RSS view of a given directory.

From the educational point of view, the source code of this project is a live example of Vala technology usage: pure Vala programming, different alternatives to interface Vala with pure C code (using Vapi files or running a child executable program) or the usage of a “programmable context” to handle sequentiation of asynchronous operations. An autotools based build system completes the set of interesting features. This system uses a Vapi file to pass configuration parameters from the config.h to the Vala program. Finally, some additional rule files allow the building of a Debian package, the last step to make the program available to final users in a convenient way.

Meiga is free software. It’s released under GPL 2.0 and can be downloaded just typing:

git clone