Rob Bradford: GNOME web services integration: Introducing librest
When OpenedHand was first acquired by Intel I was asked to look into ways of making it easier to access web services from within GLIBish (i.e. Clutter & GTK) applications. We figured that as web services more important to the users of Moblin, and thus by extension, GNOME we needed some way to help developers access them.
So, I did some research, read up on RESTful. And thought yay, lots of services are claiming to be RESTful, let s see if we can come up with some kind of service description language that we can autogenerate code from (ala, dbus-glib). Turns out that very few services actually adhere to this RESTful definition and my attempts to produce some kind of description language resulted in more lines of XML than code, hmmm.
Anyway, I persevered and looked at building an API that I would fine easy to drive RESTful web services with. After a few iterations I decided upon designing something with a somewhat Cairo-esque API.

Marco thinking RESTful thoughts.
The API is comprised of two parts, the first half is for making the requests (and is based on libsoup.) Here is an example:

Marco thinking RESTful thoughts.
The API is comprised of two parts, the first half is for making the requests (and is based on libsoup.) Here is an example:
proxy = rest_proxy_new ("http://www.flickr.com/services/rest/", FALSE);
call = rest_proxy_new_call (proxy);
rest_proxy_call_add_params (call,
"method", "flickr.test.echo",
"api_key", "",
"format", "xml",
NULL);
rest_proxy_call_run (call, NULL, NULL); /* obviously can do async instead */
payload = rest_proxy_call_get_payload (call);
len = rest_proxy_call_get_payload_length (call);
Easy, huh? Anyway, enough rambling for today s blog post, next week i ll talk about the really interesting stuff we re (Ross and I) are working on to make parsing XML fun (yes, really, honestly, fun.)
Oh and and the source code can be found in git and it s licensed under LGPLv2.1, etc etc. (Yes, we have too many libraries, when mature perhaps we can move this into libsoup.)


It is funny the way things work out when you're looking for help.
Recently I was working on a Ruby + FUSE based filesystem and as part of the development I added simple diagnostic output via trivial code such as this:


You know, the more I ve been using Twitter the last week or so (













The phrase "Total Fire Ban" is bandied around a lot these days -- mostly
on days with high temperatures, low humidity, and high winds. To me, it
isn't a particularly hard concept to understand, either: in the immortal
words of Metallica, "Fire bad, Aircon goood!".
And yet, some people just don't seem to get it. This afternoon, my
brigade got a page for a fire call to a reported "smoking log" behind
town. When we got to where the log was, indeed, smoking, it was obvious
that a group of people had had a large party around a bonfire last night.
Given the prevalence of large-scale fire incidents at the moment, anyone
who feels that lighting up a bonfire, cracking open a large quantity of
alcohol, and then leaving the damn fire going in the morning, is a good
idea, really needs to have their head examined.
In other firefighting-related news, despite being the on-call brigade for
our district this week, we've not been called to assist at any of the
fires currently burning both to our north and south. It's frustrating
that having been trained to fight bushfires, and with so many areas
currently needing some serious firefighting, my district isn't getting
asked to help out. On the other hand, they don't appear to be hurting for
resources at these fires (with several hundred RFS personnel, not to
mention NSWFB and NPWS people, at the Peats Ridge fire; also, some 200 RFS
personnel have been dispatched to Victoria), so it's good to know that
there's plenty of bush firefighting volunteers around if things get bad
around here.
Dear all, I am currently assembling a talk that discusses if and how the
principles of free software can be applied to topics beyond operating
systems and software. The first things that come to mind are surely the
I don't remember where I saw this first - probably in the Debian Installer code. Anyway, given an n-tuple it can be somewhat unwieldy to unpack it: