Download Xmarks bookmarks in Python

Xmarks is currently the only viable solution for synchronizing bookmarks across all web browsers over Internet, including Firefox / Iceweasel, Google Chrome, and Apple Safari. I attempted to setup the Mozilla Sync server, but it is so poorly packaged that it isn’t possible to install it cleanly without big efforts. So the only viable alternative … [Read more…]

Logtilla and GeoIP: analyze the geolocation of web clients

This article presents a simple Logtilla log analysis module, log_geoip_stats, which gives the top N client countries, in terms of hits, from web access log files. This module uses the libgeoip-erlang library to get geolocations from clients’ IP addresses. libgeoip-erlang installation Install pre-requisite software: Mercurial, and the GeoIP library. On Debian, those are packages mercurial, … [Read more…]

Logtilla’s internals: a tutorial on using ASN.1 and linked replies to interact between Erlang and port programs

I have recently released Logtilla, a framework for parsing and analysing web access log files, and showed in a previous article how to use Logtilla with a simple example. One of the most interesting aspects of Logtilla is in the inside. Logtilla demonstrates how to use ASN.1 to communicate between an Erlang program and a … [Read more…]

Collection of reusable web designs

I just found the Open Source Web Design (OSWD) web site, which offers a collection of reusable web designs contributed by many authors. They currently have 1620 web designs, and all those I have seen are very nice! My only concern is about licensing. As stated on the web site, the choice of a license … [Read more…]

Here is a feed crawler again…

Again, yesterday and today we get hits in our server’s log from what looks like a robot with IP address – – [03/Jan/2006:18:44:19 +0900] “GET /~lenglet HTTP/1.0” 301 324 – – – [03/Jan/2006:18:44:20 +0900] “GET /~lenglet/ HTTP/1.0” 200 31782 – – – [03/Jan/2006:18:44:20 +0900] “GET /atom.xml HTTP/1.0” 404 282 – … [Read more…]

Problems with Feedster’s robot

Starting from yesterday, I have found many hits in our web server’s logs (four hits every 30 minutes) from a robot at IP address According to whois(1), this address belongs to “Feedster”. This is how I have discovered the existence of the Feedster blog search engine… Special note to the person who registered my web … [Read more…]

Secrets of good hypertext

The Art. Lebedev Studio are the designers of the wonderful Optimus keyboard and Mus computer mouse, among other things. In addition, they publish many interesting in-depth articles about design on their web site, some articles concerning web design. Article number 83, titled “Secrets of good hypertext”, is about how to add good hyperlinks into web pages. … [Read more…]

How to disable a plugin in NanoBlogger in Debian GNU/Linux

To disable a plugin in NanoBlogger version 3.2 one must rename the plugin script,, to modify its extension (by convention into .off). In the nanoblogger Debian GNU/Linux package, plugins are installed in the/usr/share/nanoblogger/plugins/ directory. In order to enable/disable plugins, it is therefore necessary to rename files in that directory, e.g. for the plugin: … [Read more…]

Script for publishing BibTeX bibliographies as NanoBlogger articles

I have written a script in Bourne Shell (, available under the GNU GPL license, to publish sets of bibliographic entries as NanoBlogger articles from .bib BibTeX files. It generates only XHTML1.1-compliant UTF-8-encoded bibliography articles. This script is based on bibtex2html, iconv and sed.