Gerrit activity feeds :: a design and infrastructure sneak peak

Gerrit provides nice views by changes, but doesn’t offer synthetic and consolidated views.

Activity feeds will be timelines to offer these views;

  • What are the users’ last activities (commits, patchsets, merges) on Gerrit?
  • What’s going on on the mediawiki/extensions/SemanticMediaWiki repository?

Here the homepage dashboard:


And here the wireframe of the project activity feed:


About the design

This code is built on the top of Foundation, a responsive CSS framework. This allows to provide a smooth experience for your phone or tablet: columns will collapse into a more linear view if resolution width is narrow.

Avatars uses Gravatar. When an user doesn’t have a Gravatar account, identicons are used.

About the infrastructure and code

A Node service acts as proxy, and mirrors the Gerrit events stream, so it’s available to any simple TCP connexion instead to require a SSH connection.

I’ll provide access to this Node server to the community, so any tool with socket and JSON support with be able to interact with Gerrit events. If you’ve a need for a push model, ie to post notifications, please let me know the format and I will take care of that.

Then, a script reads the stream and write the XML feeds. It also monitors the Node -> SSH connection, to relaunch the service if needed (e.g. if the Jenkins server is rebooted). These XML feeds are publicly accessible, so you can also create a service based on them.

Finally, XSLT will be used to render these feeds in HTML and RSS documents. That’s for the humans and the most generic tools..

It will be at this moment time to take care of special needs, like combined feeds for Google Summer of Code or the Outreach Program for Women.

What do you think of this and do you need?

Please tell me what you think of this tool, and what you would like to find on this tool.

We also need a cool name for the application.


This week, I’m preparing a site to host some tools and web services.

It will be built on the top of:

Here a snapshot the design I prepared, called Ralf falls into foundation:


Enlarge to visit, this is the only page warranted to operate.

Minimal SQL schema for Keruald and Pluton

I’m creating a new site for tools (see next post) built on the top of Keruald/Pluton.

This is the opportunity to refresh the SQL schema.

It supports 16 777 215 users account, is IPv6 and salted password compliant.

Here the new minimal SQL schema for MySQL:

How to use TclSOAP 1.6.7 in 2013

TclSOAP is a library to create or consume SOAP WebServices. It also allows to consume XML-RPC stuff.

Unfortunately, strange versionning choices (it search precises versions of the dom TCL package, and of course, these versions bumped with the years) broke the package require mechanism.

This patch solves that and allows you to use it:

Bonus for FreeBSD users: I’m currently submitting a net/tclsoap port, with these patches included.

Get the Wikimedia configuration on IRC

If you’re on Freenode #wikimedia-tech or #mediawiki, you can query the Wikimedia site configuration. This is an alternative to browse this 12 227 lines file.

Usage: .config <configuration variable> <local project> [key…]

06:36:48 < Dereckson> .config wmgEnableLandingCheck
06:36:49 <Daeghrefn> false

If the configuration value is an array, you can dump it:

06:28:47 <+Dereckson> .config wgExtraNamespaces frwiki
06:28:48 <Daeghrefn> 100 => Portail / 101 => Discussion_Portail / 102 => Projet / 103 => Discussion_Projet / 104 => Référence / 105 => Discussion_Référence

Or you can append the key you want to fetch (as many subkeys as you want):

07:39:34 <+Dereckson> .config wgExtraNamespaces frwiki 104
07:39:36 <Daeghrefn> Référence

Source code: Wikimedia.tcl

Note: Dæghrefn has currently some bits of code allowing it to communicate with Gerrit and Bugzilla support is imminent. If you have any need of an IRC command to interact with these services, drop the idea and I will code you that.

I18n: TCL is a language full Unicode since April 1999 (version 8.1). Internally, it treats characters as UTF-16. From an user perspective, it reads and write UTF-8 by default. On the other hand, Dæghrefn is an eggdrop. The eggdrop performs an UTF-8 to ISO-8859-1 conversion of the partyline and the message queues. So we lost non ASCII chars. I recompiled it with an UTF-8 encoding instead, but it’s a stable product, so deployment will wait the server/eggdrop crash.

Update edit: the eggdrop name is now Dæghrefn (2015-03-27).

OPW office hours: Mon Wed Thu Fri 14:00 PST

During the Outreach Program for Women, I’m scheduling office hours each Monday, Wednesday, Thursday and Friday at 14:00 (pacific time) / 22:00 (UTC) / 23:00 (CET).

I’ll be available on Freenode #wikimedia-dev for my mentoree, and by extension to any people needing help on the following topics:

  • General PHP language questions
  • Git repository
  • Gerrit code review
  • MediaWiki-related questions
  • Licensing issues
  • Open source culture

The Friday, I’ll also be available on the Mumble server for a more vivid audio chat.

Mumble has been chosen as it allows everyone to come, more like an IRC channel, instead to require to call people like Skype. And because it’s open source. And also as the comfort use is wonderful once configured (it sends your voice only when you speak).

This is not to be confused with the Wikimedia IRC office hours.

Relevant links


The valspeak is a variant of American English spoken in California.

Let me rewrite that correctly:
The valspeak is ya know, like, a variant of American English, fer shure, spoken in California.

In 1986, someone asks on the net.sources newsgroup the source of a small software to make this kind of conversion.

To celebrate the new year, I repackaged it.

Test it

Clone it
hg clone

Understand it
Valleyspeak on the English Wikipedia

Decompress it

Install it
pkg_add -r # This is a FreeBSD i386 package [1].

This post is dedicated to Matma Rex.

[1] If you prefer a FreeBSD port instead of a package, it will be misc/valspeak and it’s currently available here.