GNU Hackers Meeting 2013

This page contains video recordings from the seventh GNU Hackers Meeting which took place in August 2013 in Paris, France.

The GHM 2013 web page has more information about the event.


All videos, locally-hosted slides and transcripts are published under the Creative Commons Attribution-ShareAlike 3.0 Unported license, unless otherwise specified. Videos are in the WebM format.

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)