## Mathkaba : my tool for managing bibliography

I recently decided to systematically conserve a backup copy of articles I am downloading. But what if I want to use these backup copy: I usually only remember the title of the article, or the name of the author. If I was not really working on the article, I may forget the author, or even the title, if I only remember that “somewhere it is written that…”. You may know Mendeley: I tried to use it for some time, but it is not open source, has too many features for what I need, and could be better suited to a mathematical use, by supporting, for example, the MSC classification, or by having specific interfaces with MathSciNet or zentralBlatt.

Hence I decided writing my own program to do the job. For the moment, it may probably crash at any time, and seriously lack essential features, but it satisfies my daily purposes, which are:

• have a quick overview of the articles I have on my computer
• have a way of opening them without having to know where it is
• in case it is not stored on my computer, open a suitable URL without having to search through MathSciNet

The result is called Mathkaba, and is hosted on GitHub. For the moment, it works by reading metadata which is not stored in a database as usual (I hate databases), but in plain text files along with the PDF files, which should have the same syntax as the ASCII output of ZentralBlatt. MathSciNet can also output entries in the endNote format, which seems equally interesting. Any comments are welcome.

## Creating executables for Windows from a Linux box

When writing a program, especially a graphical one, you may feel some compassion towards Windows users and wonder whether it would be possible to give them a chance of using it. Famous toolkits like GTK and Qt provide good support for Windows and an abstraction layer for OS-dependent vital functions, so it becomes easier to write OS-independant code.

Next you need a cross-compiler: it’s just a compiler, except that instead of creating executable files you could run, it creates executables in another format (e.g. Win32 .exe files). But since Windows is very different from GNU/Linux, some code or one of its dependencies has to use Windows-specific functions: so you need source headers, and maybe additional libraries.
(more…)

## Changing default applications, for developers

When not using those uber-featured desktop environments (such as KDE or Gnome) out there, it can sometimes be challenging to find a simple, text-based way of configuring things. For example, I am currently writing a GTK2 program, which uses the method gtk_show_uri to open files using default programs: on the computer I am using at work, this results in opening Acrobat Reader over an XDMCP connection, which is really distasteful. Even using GNOME’s control center, there does not seem to be a way to change that. What should I look at?
(more…)

## Merry Christmas from a dying blog

To anyone still reading me, I wish a merry Christmas. May it be free from any gratuitous consumerist madness and proprietary software. I may still have several things to talk about in the near future.

Mikael Vejdemo Johansson, who was at the Operads conference in Luminy (which I also attended), wrote in only one week a Haskell module computing Gröbner bases for operads. Nice work !

## Elliptic curves for high school students

I had to give a talk to high school students about some mathematical notion: I decided to tell them something about elliptic curves, but not the usual speech about cryptography, finite fields and the group law on a cubic curve…

Instead, I talked about the perhaps less known appearances of elliptic functions as solutions of classical ODEs (even if I don’t really know much about these myself). The simplest mechanical system whose motion is governed by an elliptic curve is the pendulum: the reason for this is that the ODE $\ddot{x} + \sin x = 0$ which classically describes the time evolution of the angle of the pendulum is best rewritten in terms of the altitude of the pendulum: the law of energy conservation is then written as
$p^2 = q(q-q_0)(q-2l) = P(q)$
where 0 and 2l are the extremal values of the altitude $q$, $q_0$ is the highest altitude which can be reached with a given energy (even if $q_0 > 2l$, which corresponds to the pendulum make full rotations around its axis), and $p$ is the vertical momentum of the pendulum.

In this setting, there are classical Hamilton relations $dq = p dt$, $dp = P'(q) dt$, so the differential form $dt = dq/p$ turns out to be the canonical non-vanishing abelian differential on the elliptic curve. This explains why the period of the pendulum is an elliptic integral, which can be calculed by an arithmetic-geometric mean, and why the position of the pendulum at $t = t_1 + t_2$ can be deduced from its position at times $t_1$ and $t_2$ by the classical secant-tangent law.

The notes for the talk (in French) are available here.

## Cardboard associahedron

After the dodecahedron comes the cardboard associahedron : it represents the combinatorics of moving parentheses to calculate an associative product of five things step by step. The vertices of the associahedron are thus the 14 different binary trees with 5 leaves.

Given four factors, there are exactly five ways of multiplying them using a binary operation: by moving parentheses according to the associativity rule, you go through five different trees in a cyclic way. This is known as MacLane’s pentagon coherence rule, which states that in not too weak notions of monoid, checking coherence for pentagon diagrams ensures that the definition of the product is well-behaved.
(more…)