[ Home | Diaries | Account | Members | Projects | FAQ ] 

Advogato now has an XML-RPC interface available at the URL http://www.advogato.org/XMLRPC. To test it, try calling one of the test functions below. If you are using Python, for example, try the following:

>>> import xmlrpclib
>>> server = xmlrpclib.Server("http://www.advogato.org/XMLRPC")
>>> server.test.sumprod(5, 7)

It should return [12, 35].


string cookie = authenticate(string user, string pass)
Returns a cookie which is used as the first argument to all methods requiring authentication.

Diary manipulation

int length = diary.len(string user)
Return the number of entries in a diary.
string html = diary.get(string user, int index)
Return a diary entry. The index is zero-based, so if diary.len() returns 2 then valid indices are 0 and 1.
date created, date updated = diary.getDates(string user, int index)
Return the creation and last updated dates of a diary entry. If the entry has not been updated then the updated date will be the same as the creation date.
diary.set(string cookie, int index, string html)
Set a diary entry. Use -1 as the index to post a new entry, although the value returned by diary.len() is also acceptable.

Test functions

string s, int i = test.guess()
Guess a number
int result = test.square(int x)
Square a number
int sum, int product = test.sumprod(int x, int y)
Return the sum and product of a pair of numbers
int len = test.strlen(string s)
Return the length of a string
string s = test.capitalize(string s)
Capitalize a string

Advogato Certification

One of the more interesting features of Advogato is its mechanism for certifying free software developers. The current system recognizes the combination of talent and dedication in three levels: Apprentice, Journeyer, and Master. All these levels are determined by peer certification. These certificates are entered in individual records from the People page. This document explains what the levels mean, and guidelines for deciding what level of certification to use.

Please feel free to certify all of the free software developers you know who have accounts here, especially those without many certificates to begin with. The trust metric used to evaluate the certificates is most robust when the certificate graph is dense.

All of these levels are based on free software only, as defined by the Debian Free Software Guidelines. In general, you should base the level on work done in the last year.

To certify someone, make sure you're logged in, then go to the person's page and use the pulldown form.


A Master is the principal author or hard-working co-author of an "important" free software project, i.e. one that many people depend on, or one that stands out in quality. A Master has command of the tools and is an excellent programmer. Generally, a Master works equivalent to full time (or more) on free software. Ideally, a Master writes clearly about the work and its broader context, and serves as a mentor to others in the free software community.


Journeyers are the people who make free software happen. A journeyer contributes significantly to an important free software project, or is the author of a useful or technically innovative project. A Journeyer is generally a competent programmer, but significant contributions of documentation, artwork, or other non-code goodies counts too. Ideally, a Journeyer works with others in the free software community to polish and refine the library of free software. While not necessarily the equivalent of full time, a Journeyer spends a significant amount of time on free software.


An apprentice is someone who has contributed in some way to a free software project, but is still striving to acquire the skills and standing in the community to make more significant contributions. Ideally, the Apprentice is in touch with either an individual mentor or a community that helps to gain these skills. An Apprentice spends a significant amount of time learning the craft of software development, whether by hands-on practice, academic study, or careful observation.

Evaluation of the certs

The certificates are evaluated using a trust metric, which I'm working on implementing and documenting right now. A few things to keep in mind: all certs have "at least" semantics, so an Apprentice ranking is always better than None.

22 Feb 2000: I now have a write-up of the trust metric used by Advogato.

Show me the code

As promised, mod_virgule (the code to drive Advogato) is now released under GPL, and is available in https://github.com/steevithak/mod_virgule . Feel free to play with it, although it's probably a good idea to coordinate with Steven Rainwater before making nontrivial changes, as there are some core changes he had in mind.

You'll need recent versions of glib and libxml2 to build and install mod_virgule.

Most important, have fun!

Adovgato Syndication

Advogato headlines are now available in RSS format at http://www.advogato.org/rss/articles.xml.

A wave of the paw to Martijn van Beers for adding the feature. He asked for it, I responded "well, why don't you add it?" And in true free software style, he did.

Advogato is now syndicated on tigert's fabulous portal(?) page.

 [ Home | Diaries | Account | Members | Projects | FAQ ]