Archive for the 'technology' Category

Where People fits in GNOME

July 20, 2008

Right after our GUADEC presentation, Ali Sabil and I met with Owen Taylor, Marina Zhurakhinskaya (both from Red Hat’s Online Desktop project), Robert McQueen (Telepathy) and Travis Reitter (Soylent). The goal of that quick meeting was to define how to integrate all those pieces of technologies together. Even if People aims to define a data model and a D-Bus API to be used on all the free desktops, we are also part of the GNOME community, thus particularly eager to see People integration with GNOME technologies happening.

It’s been always difficult to make people understand what People is. Moreover, our project is quite unknown. We are not present on GNOME’s main communication channel (Planet GNOME) and that’s something you feel also at GUADEC when the conference room isn’t very populated. In that blog post, I’ll try to explain what is People and what it will be for GNOME.

The best explanation I can give to begin with is maybe that People is actually like “libsoylent”, which has been announced few time ago. The main goal is the same: provide first-class people objects to applications. Our approach is different: we designed People from the backend to application level, which allows us to consider whatever contact source, while libsoylent, based on what is done in Soylent, only uses Evolution Data Server and Telepathy as sources (for now). I think that our development is more advanced and our solution wider, hence even Soylent should use People.

On the next diagram, you can find several components that are part of the GNOME ecosystem. It is based on the GUADEC after-talk meeting result and is not meant to be exhaustive.

  • Green boxes are what we call contact sources. Any application, service or data source handling and exposing objects referred as contacts, friends, persons, people is a potential contact source. Those contact sources are plugged into the People framework through a backend system. That interaction is represented as dashed arrows on the diagram. Each contact source provides partial information about some contacts to People.
  • The blue box is the framework. It contains the backend system, a mechanism to gather partial contact informations into high level contact object (often called meta-contacts) and a D-Bus daemon to expose those high level contacts to applications. At some point, we’d also like to expose backend directly to allow synchronization solutions to use them.
  • Yellow boxes are a few possible applications that could use the framework.
People in GNOME

People in GNOME

Concerning Empathy, the current contact list could be turned into a people list, where each item wouldn’t be an instant messaging contact anymore but just a known person, that you may reach using instant messaging. That list would contain some friends you have in Facebook and you could actually subscribe to them on Jabber directly from Empathy, as People would provide to Empathy the information saying that your friend has a jabber account.

This is what People does, it provides contact information to application, and then applications should know how to use that information. People won’t tell you to launch Evolution to write an e-mail, it’ll just tell you that you can reach a certain contact through e-mail. We then need sort of an “activity launcher” and I think that’s what Soylent should be. Using the people list provided by the Empathy widget set, Soylent should allow you to start activities with the people you know. At some point, maybe Empathy’s client and Soylent are meant to be the same application.

Our demonstration at GUADEC was an application containing a list of high level contacts built from local (sqlite database) and distant sources (lastfm and friendfeed web services). The list exposed contact information such as the full name of the contact, a picture, an e-mail address, a phone number, an icon per social network he’s susbscribed to, all those information being provided by People. At some point, Ali brought his mobile phone next to the laptop and his phone’s addressbook automatically became a contact source (over bluetooth) for the application, adding contacts from the phone in the list. This was supposed to show how flexible the backend system is and how cool are the things that People enables :) .

Yesterday we set up www.people-project.org which is currently a wiki that will be useful to collaborate on stuff that are not code. We are also releasing 0.0.5 “Smelly hotel lobby” (tribute to our hotel in Istanbul, where people still smoke in public places and People don’t) today, as dictated by our sprint schedule. We are currently developing more backends (Online Desktop, Telepathy, EDS, …) and trying to improve what we have for now. The backlog is huge but considering all the possible cool applications, will is around.

the Erlang thing went well

December 5, 2007

Yesterday, four of my classmates and myself gave an hour long lecture on Erlang/OTP. That lecture was followed by a two hours long lab. It’s been a while I wanted to share about Erlang, I read a lot about it but unfortunately, I never found some project I was interrested enough to dive in. I now have an idea but the usual problem is showing up : not enough time.

So the presentation covered the Erlang language, with its roots (the Ericsson lab, industrial use), its paradigms (functionnal and concurrency oriented) and syntax (that reminded Prolog and OCaml to the attendance). I mentionned the capabilities offered by the OTP framework (generic behaviours, supersivion trees, hot code swapping, …) linking all that to reliability and availability concepts as we got a fault tolerance lecture few weeks ago.

The lab was based on a simple messenger application from the Erlang getting started tutorial. Given the amount of time, I structured it as a “fill in the blanks” exercise. All went OK and people seemed happy with their working system, at the end. That was really a great feeling to explain processus interaction and deal with students mistakes while helping them. It’s also great to open their eyes on an unknown technology, as they now could choose to pick it up to solve some industrial challenges they could run into during their career.

On my side, I’m now gonna find time to start that Erlang project I think about. I really need to get skills on it as it’s definitively part of my fields of interrest. That could help to find a related job later.

filling the pymsn AddressBook

March 25, 2007

This weekend, I’ve started to implement methods as add_contact, delete_contact, add_group, delete_group, rename_group, etc. at the pymsn’s AddressBook level of abstraction. Things are getting cleaner and with hope, almost all of the soap stuff in WLM will be covered in pymsn in the next three weeks. Changes are merged on my personal branch.
Last week of school before holidays, I’m totally out of classes and I should get myself back into all the school stuff because it could hurt later with exams (at the end of May). I’m not really motivated to code on simmobil too. I’m going to Paris on the first week of holidays (Tuesday-Friday), attending Fostel and sleeping by my brother. I’ll maybe give a lightning talk at Fostel about pymsn (need, development, use) but I’m not really sure yet : first talk in english in front of skilled people, it could hurt : I need to prepare for it and we’ll see. The other week will be filled with school and pymsn work. Adrien should start working on halazoon soon, maybe we’ll work on the architecture this week so he could start coding. Since it’s based on telepathy-python, it’s not gonna be difficult. I have a urge need to play with cairo too :)

Well, trying hard to read my network course book… :(

Plans

March 15, 2007

No time to say anything but that enumeration :

  • Mar 15-18 CeBIT, Hannover : 18 hours in the bus (I take a copy of telepathy spec + Asimov’s Foundation with me), bier, friends, food, technologies ;
  • In two weeks, holiday again (two weeks long) : massive work on pymsn, foundations of halazoon, and Apr 4-5 Fostel, Paris with maybe a lightning talk about pymsn/halazoon ;
  • May 10th-13th Rock n’ Solex, Rennes : concerts and solex race ;
  • Summer : 3 months holiday, I plan to work a bit (like, a month) where I usually work at summer to earn money to feel comfortable to realize all of my others summer projects : July 15-21 GUADEC, Birmingham where we (the ospy/pymsn/butterfly/halazoon team) plan to give a talk. I’m looking forward to see Ali and meet Ole. August 10-12 La Route du Rock, St. Malo. I plan to spend several weeks in Olso, Norway. All that surrounded and mixed by full time development on pymsn ;
  • Back to school October 1st.

pymsn : some work is (finally) done

February 24, 2007

No school this week so one of my goals was to achieve some work for the pymsn project. pymsn, a free python library which allows you to connect to the MSN IM network, is being rewritten sticking to the 15th version of the MSN Protocol (MSNP15, which is the last one used by WLM). The protocol is getting more and more complicated and it took me a while to completely dive into new stuff like soap (a HTTP/XML way to set Web Services up). Ali and Ole being busy doing other things, I had to implement basic contact list operations like ‘add/remove a contact’ or ‘block/unblock a contact’. I’ve used Ole’s oSpy , a nice tool to do reverse engineering (I had to virtualize a XP OS to sniff WLM’s traffic). I’ve finally grabbed a bunch of soap operations which I’ve documentated here (I’ll add more information about the semantic of elements soon).

The week is nearly over but I’ve just succeeded in adding ‘Remove a contact’ and ‘Update a contact’ to pymsn, the first operation removing the contact from both MSN and Hotmail lists, the second one giving us the opportunity to remove the contact from the MSN list only and to change contacts’s aliases though the last action hasn’t been really tested yet. Changes can be merged from my bzr branch here : https://code.launchpad.net/~jprieur/+branch/cocoon/pymsn.rewrite

Anyway, still lots of work to achieve and a huge need to sleep.

Run rabbit run
dig that hole, forget the sun
and when at last the work is done
don’t sit down, it’s time to dig another one

Follow

Get every new post delivered to your Inbox.