‘Scripting languages are designed for gluing’, wrote John Ousterhout, the
creator of Tcl, in 1998. 1 What Ousterhout had in mind
was writing an application in a scripting language and having it delegate
certain functions to components written in system programming languages. A
similar idea inspired the wrapper generator SWIG ,
developed for scientific computing. 2…

 Overview # 
 This post is a brief illustration of some database optimisation techniques,
using the BRÉF (Base Révisée des Élu·es de France / Revised database of
representatives elected in France) , which
contains data about representatives elected in France from 1948 to 2020. The
BRÉF is based on French public data, in which a team of researchers has
corrected many…
I wrote a little Rust program,
 sqlstopwatch , to compare the
performance of different SQL queries. I
was inspired by the article Benchmarking SQL 
published by the jOOQ project, where they write the test code in SQL. I wanted
something similar, but with a few additional requirements: 
 
 A command-line program with a simple
 TUI showing a
progress bar. 
…

 Overview # 
 As my second exercise for learning Rust (after
 OrganicLox ), I decided to implement a client for
 Bittorrent , the communication
protocol for peer-to-peer file sharing. The Bittorrent clients I’ve used have
complex GUIs that seem to be designed for users who download and upload torrents
all day, rather than for the occasional user like me, who just…
[English version of the text published in Spanish. 1 ] 
 Mona Salem Said Ja‘bub, قيادة المجتمع نحو التغيير: التجربة التربوية لثورة ظفار
(1969-1992) [ Leading Society towards Change: The Educational Experience of the
Dhofar Revolution (1969-1992) ], Beirut: مركز دراسات الوحدة العربية [Centre
for Arab Unity Studies], first edition 2010, second edition 2023, 368 pages. 
 This…

 Overview # 
 To help me learn Rust, I decided to implement an interpreter for Lox, the
scripting language in Robert Nystrom’s book Crafting
Interpreters . I’ve been interested in
scripting languages that are designed to be embedded in applications, and this
seemed like a good way to learn more about how such languages are made. 
 Nystrom’s book walks…
I thought it would be interesting to try some basic network analysis of the Paris métro (rapid transit) and RER (commuter rail) systems , starting with some centrality indices. These are metrics that rank the nodes in a graph according to their importance, for some definition of importance. For example, in a transport network, the centrality of a station could give an indication of the likelihood…
While reading Khaled Khalifa’s beautiful, elegiac novel No One Prayed Over Their Graves , I noticed something that may not matter in the context of the novel, but is worth thinking about if you’re interested in the history of social categories that are taken for granted today. The narrator talks about a party thrown by a Christian woman in Istanbul to welcome the new century on the…
In 2024 I did the English subtitles for the short film Mal partum (English title: The Sound of Crying ), a beautiful documentary about postnatal depression. Émilie D. used her personal experience to make a film that provides practical knowledge that we can all use. 

The novel On the Greenwich Line , by the Egyptian writer Shady Lewis, came out in 2019. Since reading it in Arabic in 2023, I have given the original Arabic version or the French translation to several of my friends (there’s also a German translation ), and now I will be giving other friends the English translation that is due out next month. With great sensitivity, Lewis has written a very…
[English version of the text published in Spanish. 1 ] 
 Sherif Younis, الزحف المقدس: مظاهرات التنحي وتشكل عبادة ناصر [The Sacred March: The Demonstrations Against Nasser’s Resignation and the Formation of His Cult], 1st edition, Cairo, Dar Mirit, 2005. 2nd revised edition, Beirut and Cairo, Dar al-Tanwir, 2012, 196 pages. 
 In June 1967, when Gamal Abdel Nasser’s military…
Here’s one way to write Arabic articles in Markdown format and typeset them as PDF files. This assumes you’re using Linux or a similar environment, and are comfortable with the command line. The basic idea is to to use pandoc to convert the Markdown to $\mathrm{\LaTeX}$ markup, and tell pandoc to run LuaTeX to generate the PDF. 
 You’ll need: 
 
 A Markdown editor…
In 2020 I started a project called Tondauer , to make Creative Commons licensed editions of sheet music. It happened because of the Covid-19 lockdown that year: I was learning to play Felix Mendelssohn’s Prelude Op. 104a, No. 2 (MWV U 123) , because it suited my mood of restless frustration at the time. 
 I started with a 19th-century edition that could be downloaded for free. Then I…
I’m a software developer and ex-academic (sociology, conceptual history,
cognitive linguistics, Arabic culture, digital humanities). I live in Paris. 
 A short essay about my professional life, written in 2018: An Accidental Career . 
 A more detailed interview from 2017: Surviving sociology in Egypt and elsewhere . 
 
 Open-source software # 
 Codeberg 

…

 
 

 
 In 1841, Fanny Hensel 
(1805–1847) wrote Das Jahr (The Year), a
large-scale piano cycle with a movement for each month of the
year. She published ‘September’ in 1846 as part of her Op. 2, but Das
Jahr was first published in its entirety in 1989. Subsequently, a
magnificent revised autograph
manuscript 
was discovered, in which…


 
 J. S. Bach, Ich ruf’ zu dir,
Herr , piano
transcription by Ferruccio
Busoni . 
 Benjamin Geer, piano. 
 Recorded 8 July 2021. 

I started playing jazz guitar around the time I went to university. I
wanted to combine the improvisational tradition of jazz with non-tonal
harmony and large-scale structures. But I thought I should start with
bebop. 
 In 1995–96, while working as an English language teaching assistant in
France, I had the opportunity to play in an amateur big band as well
as a quintet:…