I've been working on Soylent practically all of my non-work, non-sleep time lately, since GUADEC is rapidly approaching. Here's the latest:Infrastructure
I took some time to get somewhat familiar with DBus and Telepathy, originally planning to hack together basic IM services integration directly on top of Telepathy. However, Xavier Claessens
convinced me to try out his excellent libempathy(-gtk)
libraries (included in the Empathy source). Wow! I'm surprised there isn't more buzz around them, because they seem to be very well-designed and easy to use. I guess I didn't expect "Just Works" in a library. Thanks again, Xavier! You saved me a lot of work.
Since libempathy handles the IM/Telepathy end of the theoretical libsoylent (mentioned in my Soylent Preview
), I'm instead planning to work with Xavier to eventually roll e-d-s integration/Person object cohesion into libempathy. At that point, libsoylent (and the work it would involve) becomes completely unnecessary. Hooray!Early IM integration
Now Soylent knows which if your Evolution addressbook contacts are online, we can show their availability. Currently, we append "[*]" to each person's name if they're available, "[...]" if they're away/busy, and do nothing if they're offline. It's really primitive, but I've got plenty of fancy ideas for the future. More once I implement some of them.
Of course, the core reason we care about availability is whether we'll be able to talk to a given person RIGHT NOW. I'm planning to hook up the actual IM functionality in the next few days.
Some other low-hanging fruit is the ability to populate peoples' icons from their IM buddy icons. Finally, something worth taking a screenshot of!
You can see a few of my friends' availability, as well as a few icons. I didn't set any of their icons manually.
(We don't yet save these buddy icons into Evolution Data Server, because I can't figure out how to translate a GdkPixbuf into an EContactPhoto. Anyone know how?)
This automatic metadata importation seems critical and amazingly compelling to me. There is so much information we can gather from our friends with amazingly little effort, so long as our apps pick up the slack. Eventually, I think we can get the per-contact overhead down to you entering a single email address, and them making a few clicks to grant you a pre-defined level of access to their information. Or even less
(if a mutual friend "introduces" you, it could just be a couple clicks on each end).Release
I haven't yet decided whether I'm going to do a first release of Soylent before, immediately after, or a short time after GUADEC. I haven't started a project before, so I don't yet have a feel for the ideal balance between "release early" and "don't release a broken pile of bugs". If any of the more experienced developers have any words of wisdom, I'd love to hear them!GUADEC
I'm going to be giving a lightning talk on Soylent at GUADEC
We'll see how much I can cram into the ~3 minute slot I'll have (according to my calculations). Last year was my first GUADEC (and first time meeting most Gnome developers in person), and I had an amazing time. The people certainly are an inspiration for working on Soylent in the first place. Anything to help bridge the gap between an email address and sharing stories with other hackers/friends/family/co-workers over a couple of local specialty beers!
I'm still trying to find someone to split a 3-person room in the Etap Hotel. I'll be there from Sunday, the 15th through the night of Friday, the 20th. If you're going to GUADEC but don't have housing yet, let me know! (Someone mentioned that the "3-person" rooms in Etap only have 2 beds, so I'm planning to just split the room with one other person, unless you and a friend are willing to split a double bed.)