Extended version

GNU Hackers Meeting 2013 — Paris, France

The seventh GNU Hackers Meeting took place from August 22 to August 25 2013 in Paris, France.

The GNU Hackers Meetings are a friendly and informal venue to discuss technical, social and organizational issues concerning GNU and free software.

Following the success of the 2011 edition we were again generously hosted by IRILL, the Center for Research and Innovation in Free Software. See the practical information below for directions.

The 2013 meeting is now over. Some of the practical information below will become out of date. But please read about future GNU Hackers Meetings.

Program

Thursday, August 22

Pre-meeting.

afternoon — Informal get-together and hacking session at the venue —
17:00 Key-signing party —
evening — Drinks / dinner, somewhere near IRILL
22:30 — Visit to the Paris Obervatory

Friday, August 23

First day of talks.

09:00 — Welcome —
09:05 GNU Guix, the computing freedom deployment tool Ludovic Courtès
10:05 The GNU Name System and the Future of Social Networking with GNUnet Christian Grothoff
11:05 Why Free Sofware activism matters for GNU Hackers, by April — promoting and protecting Free Software Frédéric Couchet (executive director), Jeanne Tadeusz (public affairs officer)
11:50 — Lunch break —
13:50 Short talk: Recent work in the Emacs XWidget branch Daimrod
14:10 Short talk: Notmuch mail David Bremner
14:25 Short talk: TeXmacs François Poulain
14:40 Short talk: GNU for Earth and Space Sciences Christopher Dimech
14:50 GNU epsilon tutorial Luca Saiu
15:50 The tailor's choice (pre-recorded talk, live Q&A) Frankie Onuong'a (live from Kenya)
16:50 GNU Guix: Package without a scheme! Andreas Enge
— Guix install party and hack fest —
20:00 — Dinner at Flams —

Saturday, August 24

Second day of talks.

09:00 GNU recutils José Marchesi
10:00 Maintaining and optimizing dependencies between statistical calculations John Darrington
11:00 Hurd recent developments Samuel Thibault
12:00 — Lunch break —
14:00 Freedom #0 for everybody, really? Samuel Thibault, Jean-Philippe Mengual
15:00 Python packaging the GNU way with pyconfigure Brandon Invergo
16:00 GDC — D frontend for GCC Iain Buclaw
17:00 Emacsy, An Embeddable Emacs-like Library for GNU Guile Scheme (pre-recorded talk, live Q&A) Shane Celis (live from the USA)
18:00 — Closing —
19:30 — Dinner at Palais d'Asie —

Sunday, August 25

Closed dicussion panel for GNU maintainers and contributors.

09:00 — GNU assembly — José Marchesi (chair)

Talks

Videos and locally-hosted slides are published under the Creative Commons Attribution-ShareAlike 3.0 Unported license, unless otherwise specified.

Luca Saiu: Welcome

(slides) (video)

Ludovic Courtès: GNU Guix, the computing freedom deployment tool

Guix is GNU's package manager and distribution. It seeks to empower users in several ways: by being a dependable system foundation, by providing the tools to formally correlate a binary package and the "recipes" and source code that led to it—furthering the spirit of the GNU GPL—, by allowing users to customize the distribution, and by lowering the barrier to entry in distribution development.
This talk will reflect on a year of development, show how far we've come toward this mission, and flaunt cool features in a demo. We will discuss challenges ahead in building a stand-alone GNU system, as well as opportunities for the larger GNU community.

(slides) (video)

Christian Grothoff: The GNU Name System and the Future of Social Networking with GNUnet

The Domain Name System (DNS) is vital for access to information on the Web. It is thus a target for attackers trying to suppress free access to information. This talk will introduce the design and implementation of the GNU Name System (GNS), a decentralized and censorship-resistant name system. It will then describe how we plan to use GNS as a public key infrastructure for secure social networking.

(slides [external link]) (video, available under the Creative Commons Attribution-ShareAlike 3.0 Unported; the attribution text should state "Christian Grothoff and the GNU Project")

Frédéric Couchet, Jeanne Tadeusz: Why Free Sofware activism matters for GNU Hackers, by April — promoting and protecting Free Software

For close to 30 years, GNU hackers have been creating a lot of free software. Each software componement of the GNU project is an important contribution to ensure that all software users have the freedom to control their computers.
Free software use has been increasing, but impediments to its development still exist today. From copyright threats to patents, including treacherous computing, bundled sales of computer with software, FUD, the threats to net neutrality, ... the causes for concern are numerous.
Free Software cannot develop fully without a benevolent political and legislative environnment. That is where April plays a crucial role, along with allied organisations. Its actions, thanks to its volunteers and its staff, is precious for everyone who produces and/or use Free Software. It is the organisation's small contribution to the Free Software movement.
Jeanne and Frédéric will present April, how it operates, the current issues they are working on and the future perspectives.

About April:
Founded in 1996, April is the main French advocacy association devoted to promoting and protecting Free/Libre Software. Its goals are to promote Free Software towards individuals, institutions and companies in the French-speaking space, to protect the rights of Free Software users and authors, and to encourage knowledge sharing. April has greatly contributed to public awareness that computer freedom is a societal issue and that free software goes beyond technical issues.

(slides: PDF, LibreOffice source; available under a choice of the Creative Commons Attribution-ShareAlike license version 2 or later, the Free Art License version 1.3 or later, and the GNU Free Documentation License version 1.3 or later) (video)

Daimrod: Recent work in the Emacs XWidget branch (short talk)

Emacs XWidget is the name of an experimental branch of Emacs which permits users to embed GTK+ widgets inside a graphical Emacs window.
It is currently possible to embed applications that support the XEmbed protocol within Emacs and other classical widgets such as buttons, sliders and Webkit browsers.
In this talk I'll present the recent progress on the XWidget branch and the current approach used to experiment with new widgets.

(slides: org, LaTeX, PDF) (video)

David Bremner: Notmuch mail (short talk)

Originally inspired by the sup mail user agent (MUA), Notmuch is a GPL3+ set of tools for for dealing with your mail (stored in Maildirs or similar) via searching and tagging. On top of the C bindings and a scriptable command line interface, the project directly supports user interfaces based on Emacs and VIM as well as integration with Mutt. We also support Python, Ruby, and Go bindings. Other projects based on Notmuch include curses based frontends written in Python and Mercury, a fork of Mutt using Notmuch as a the backend, a web interface, and a virtual Maildir filesystem. In this short talk I'll give a tour of the Notmuch set of utilities, concentrating on the Emacs interface and command line tool.

(slides) (video)

François Poulain: TeXmacs (short talk)

GNU TeXmacs is a structural editing software with special features for scientists. It aims to provide a unified and user-friendly framework for editing documents with different types of content (text, mathematics, graphics, interactive content, etc.). For this purpose, TeXmacs includes a text editor with support for mathematical formulas, a small figure editor, and also numerous features like a presentation mode, an orthographic corrector, an interface to revision control system, etc.
Since it has been intended to render formulas, GNU TeXmacs can also be used as an interface to many external systems for computer algebra, numerical analysis, statistics, etc.
The presentation is an opportunity to highlight these different features.

(slides, under a choice of the Creative Commons Attribution-ShareAlike 3.0 Unported license or the Free Art License 1.3) (video, under a choice of the Creative Commons Attribution-ShareAlike 3.0 Unported license or the Free Art License 1.3)

Christopher Dimech: GNU for Earth and Space Sciences (short talk)

The capabilities provided by today's geophysical and astrophysical instruments allow us to study our planet and the universe with greater detail and precision. This situation empowers us to join along the exciting new frontiers in earth and space sciences and do our own computations. In this talk, I present a plan to provide a GNU platform encouraging the dissemination of computational methods for geophysical and astronomical studies in a free software environment. I also review the challenges ahead, propose ways to solve them, and show how individuals or groups of individuals can contribute.

(no slides) (video)

Luca Saiu: GNU epsilon tutorial

A recipe for building a powerful programming language is to start from a core language which is as small as possible, add macros and code-to-code transformations, and let programs be reflective and self-modifying. 4,000 lines of code later you get a quite impressive thing. My ε1 "personality" built on top of the core has a Lispy feel, but you can use it to build another one, possibly very different.
In this intensive practical tutorial you'll learn ε1 from scratch, including cool things like unexec and native compilation; in the mean time you'll get a hint of how each language form is defined on top of another, yielding a powerful system built on a foundation of almost nothing.
I vote for simplicity. In the joyless world of "modern" programming where each language equals all the others, untyped low-level programming will make you smile again.

(no slides) (video)

Frankie Onuong'a: The tailor's choice (pre-recorded — live Q&A)

Taking threads and needles from stranger to mother of trade.

(slides: LibreOffice) (video)

Andreas Enge: GNU Guix: Package without a scheme! (short talk, followed by install party and hack fest)

One of the seducing features of the Guix GNU distribution is that the package management system as well as the package descriptions themselves are written in Guile, a GNU implementation of the Scheme language. But what if you do not know Scheme? Then you can still contribute by packaging your favourite GNU and other free software, and maybe learn a bit of beautiful functional programming en passant.
This talk gives an overview of what is already packaged in GNU Guix, demonstrates the creation of a new package and asks the audience to come up with schemes of what to package for the next releases.

(slides, available under a choice of the Creative Commons Attribution-ShareAlike 3.0 license or the GNU Free Documentation License version 1.3 or any later verion published by the FSF, with no Invariant Sections, no Front-Cover texts and no Back-Cover texts; the sources are also available)

José Marchesi: GNU recutils

(slides) (video)

John Darrington: Maintaining and optimizing dependencies between statistical calculations

Statistical calculations involve iterating a (possibly very large) dataset one or more times. The designer of a statistical analysis tool wants to ensure that no more iterations than necessary are performed. Whereas, on a case by case basis, a statistical calculation can be optimised by inspection this is not practical in a general purpose statistics tool where a set of several statistical calculations are to be determined and the elements of the set are, at time of design, unknown. This presentation shows how caching, and a dependency graph can be used to determine the optimal number and order of iterations.
An implementation is presented, which demonstrates how the use of lisp can obviate the need for the programmer to maintain the dependency relationships. Instead, they are extracted from the implicit information contained within the program itself.

(slides) (video)

Samuel Thibault: Recent developments in the Hurd

This talk will go through the nice developments in the GNU Hurd that have been done over the past few years. This will include work on the text console, on network virtualization, on automatic translator startup, and on general support improvements on languages, bugfixes, etc. I will notably explain how we now run Linux network drivers in a userland process, how a user can run his own TCP/IP stack and make only some applications use it.

(slides) (video)

Samuel Thibault, Jean-Philippe Mengual: Freedom #0 for everybody, really?

Freedom #0 is "to run the program, for any purpose". However, being allowed to run a program does not necessarily imply that one is able to use it. A lot of software is just completely unusable for a non-negligible part of our users, due to accessibility issues, i.e. because they can not see the screen, or have only one hand to type shortcuts, or can not hear the sound effects, or have cognitive issues to understand the complexity of the interface, etc. Of course, freedom #1 permits to modify the program, so users "just" have to make it accessible to their needs, but that just can not happen. We would like to explain the situation, and discuss: is Freedom #0 only about a legal right, don't we want to extend it "for the real world"?

[This speech has the unfortunate problem of conflating the issues of software freedom and practical usability. The absence of useful functionality, which in free software can be corrected by doing work, should not be equated to imposing restrictions on users. See this article for more explanation. Nonetheless the GNU Project urges developers to think about providing accessibility in the initial design of a new free program.]

(slides: PDF, LibreOffice, HTML) (video) (transcript)

Brandon Invergo: Python packaging the GNU way with pyconfigure

The GNU coding standards outline a robust and convenient method for packaging and installing software. These standards are intimately familiar to anyone who has installed software on a GNU system before: ./configure; make; make install. Python-based packages typically break away from this standard by using tools specific to the language, such as distutils. GNU pyconfigure makes it simpler to package Python software in a standards-compliant manner by providing convenient Autoconf macros and flexible templates, which are quickly and easily integrated into new and existing projects alike.

(slides) (video)

Iain Buclaw: GDC — D frontend for GCC

Starting with an introduction to GDC, what of the D language is implemented (and what isn't). Will give an overview/insight into implementing a new GCC Frontend for a language that has only started to come out of academic mode, along with challenges faced along the way. Will go on to talk about future developments, in particular focusing on the expansion of D, including targeting more architectures, future shared library support in the runtime, and implementing the D frontend for GCC itself in D.

(slides) (video)

Shane Celis: Emacsy, An Embeddable Emacs-like Library for GNU Guile Scheme (pre-recorded — live Q&A)

In this talk I will give an overview of what Emacsy is, its goals, what is planned, a demo, and an outline of current technical issues. Briefly Emacsy is an embeddable Emacs-like library aimed at non-textual applications. Emacsy is the "Emacs OS" minus the text editor. Its aim is to provide keymaps, a minibuffer, recordable macros, history, tab completion, job control, and a comprehensive help system that integrates easily with C/C++ applications. Emacsy is not a text editor; it's an attempt to bring "The Emacs Way" to other applications. As a side-effect, it may help increase the number of other Guile libraries.

(slides) (introduction video, screencast video)

Attendance

Registration

If you want to attend please contact us via the public mailing list ghm-discuss@gnu.org, or write to Luca Saiu's personal address positron@gnu.org.

Attending is free of charge, but you are welcome to make a small donation if you want to support future GNU Hackers Meetings.

The FSF has kindly set up a small fund to help finance (documented) travel expenses for GNU maintainers and contributors, past and present. In case you qualify and you need financial assistance to attend, please mention this fact in your registration e-mail, along with all the relevant details including the minimum amount that would permit you to attend the event, no later than June 24 2013.

Practical information

IRILL also has a page with information for guests.

Venue

IRILL: 23, avenue d'Italie, 75013 Paris, France. For Parisians, it's in the 13th arrondissement.
GPS coordinates: 48.8283604, 2.356641 N48° 49.7016', E002° 21.3985'.
IRILL's access page may also be useful.

IRILL is located in the same building as Inria, on the third floor. The entrance of IRILL and Inria is the first door on the left you can see in this picture, to the left of the post office ("La Poste") entrance.

The talks took place in the room "Algorithme".

Hotels

The prices listed on the IRILL page with information for guests might be slightly out of date, as of Summer 2013.

See also http://hostelbookers.com.

Restaurants

We did not reserve restaurants for lunch; we just went to some place near the venue.

Public transportation

Paris has an extensive public transportation network including the famous Métro system, surface trains, trams and buses, all operated by the state-owned RATP group. If you plan your travel in advance you'll find the RATP website very useful; otherwise you can get a pocket paper map of the whole network at many stations. You may also like the Transilien web site.

The Métro station closest to IRILL is Place d'Italie, served by Line 6 and Line 7. Line 5 will not serve the stations between Bastille and Place d'Italie (normally one terminus) during July and August 2013 because of renovation works; a replacement bus service will be in place, but rail transport is usually quicker.

Web banner

We made a web banner to help people promote the event on web sites and blogs, in cases where ordianry text is too little and the animated intro is too much.

web banner

We release the banner in source format and already exported to PNG and GIF, under a choice of three licenses: the Free Art License, the GNU Free Documentation License version 1.3 or later, and the Creative Commons Attribution 3.0 unported license.

You'll probably want to make an HTML link similar to:

<span style="display: block; text-align: center;"><a href="http://www.gnu.org/ghm/2013/paris/"><img src="ghm-2013-banner.gif" alt="GNU Hackers Meeting 2013 banner" style="border-style: none"/></a><p style="font-size:80%">Banner released under <a href="http://artlibre.org/licence/lal/en">FAL</a>, <a href="http://www.gnu.org/copyleft/fdl.html">GFDL-1.3+</a>, or <a href="http://creativecommons.org/licenses/by/3.0">CC-BY-3.0</a>. See metadata for full legal notices.<br/>Copyright &copy; 2013 Sylvain, Luca Saiu. Copyright &copy; 2010 Wladyslaw [<a href="http://artlibre.org/licence/lal/en">FAL</a>, <a href="http://www.gnu.org/copyleft/fdl.html">GFDL</a> or <a href="http://creativecommons.org/licenses/by/3.0">CC-BY-3.0</a>] via Wikimedia Commons.<br/></p></span>

Translations

Ineiev kindly contributed translated versions of the banner:

Translation changes are Copyright © 2013 Free Software Foundation, Inc.; please add the copyright notice. Still tri-licensed under FAL, GFDL-1.3+ and CC-BY-3.0.

Visit to the Paris Observatory

Kindly invited by Alain Coulais, we were able to perform a nocturnal visit to the Paris Observatory and even to observe the moon in stunning detail through the Grande Lunette, a refractor dating back from the nineteenth century, still in working condition.

T-shirts

We had custom-made t-shirts for the meeting:

Contact us

This web interface lets you subscribe to the public mailing list ghm-discuss@gnu.org. You're invited to write to the list and ask questions. Past discussions are archived here.

If you want to ask a question in private, please write to Luca Saiu's personal address positron@gnu.org.

Thanks

We wish to thank IRILL and particularly Sylvestre Ledru, who graciously offered to host the meeting at his organization and operate the recording equipment, Thomas Preud'homme who volunteered to help him, and the FSF for funding.

Sylvain contributed the intro animation and substantially helped with the graphic banner as well.