programming

(incomplete) full list my contributions, extended whenever I remember a contribution. Where possible and applicable, I will link to the bugs, commits, and other discussions details. Since I contribute to many projects, this page is notoriously outdated.

competency

I consider myself an experienced user of:

  • languages:
  • documentation: ngroff, mdocml, Texinfo
  • VCS: git
  • OS:

I consider myself a competent user of:

  • languages: Python, C, html, css
  • frameworks: jinja2
  • VCS: CVS, mercurial, Subversion
  • OS:

GNUnet

Since 2015 I have been contributing to GNUnet as a developer. Major contributions include:

  • build-system:
    • Porting python2.7 code in the test suite to python3.
    • Moving almost all shell scripts in the test suite from Bash to portable POSIX sh.
    • Restoring initial NetBSD support (and continued work on more *BSD support).
  • code:
    • Removal of the outdated win32 code (plibc, cygwin, win32), a couple of thousand lines of code.
  • documentation:
    • I rewrote all ngroff manpages to use mdoc/mdocml
    • I did the majority of the work to move the Drupal HTML book documentation to Texinfo (docs.gnunet.org)
    • During the infrastructure changes to gnunet.org our extensive bibliography had to be considered in the move as well. Initially based on freehaven anonbib and with talks to sync back changes between freehaven/tor and GNUnet, I created a new (hopefully intermediate) replacement for our Drupal integrated bibliography section (visible at bib.gnunet.org). Since its initial base on anonbib code it has been largely rewritten but spared the move to python 3. I consider this codebase a necessary emergency hack.
  • website:
    • Initialy based on the jinja2 + python3 + gettext framework for the taler.net website, I created a new version of the gnunet.org website and synced changes between taler.net and gnunet.org in both directions.
  • packaging:
    • major improvements to and rewrite of the Gentoo packages
    • major improvements, contribution and maintenance of the Guix packages
    • contribution and maintenance of the pkgsrc packages

Taler

Public visible contributions during my contract work for Taler SA include:

GNU Guix and Guix System

Between 2015 and 2019 I made about 548 commits, including:

  • adding many desktop managers and window managers, including Mate, Enlightenment/e11, LXDE
  • a couple of games, including 0ad and xonotic
  • many fonts
  • a couple of languages
  • some editors, including a full variant of vim
  • neomutt, alpine
  • many terminal emulators / shells
  • Fish completions for guix itself, now part of Guix

You can see the full list in a link here in the future. I have about 100 to 200 more contributions which were created as part of my experiments with the second prototype for infotropiqueOS/core.

libmicrohttpd

  • During Google Summer of Code 2019 I refactored and optimized setsockopt, getsockopt, sendfile, and sendfile64 usage across different Operating Systems (report).

gnurl / libgnurl

I maintain a microfork of curl which is mostly used by GNUnet and Taler and some other applications developed within these communities.
It enforces a build of curl against GnuTLS and some restricted features, which can be installed side by side with curl as packaged by your Operating System developers (website). This build ensure that certain cryptographic dependencies are present in the dependencies used by these applications.

surfraw

  • elvi for searx

nsm

source repository at github, website.

NetBSD

I maintain a couple of packages for pkgsrc, at the moment (2019-10-21) including:

  • wip/cwm: Portable version of the window manager from OpenBSD (git)
  • www/libmicrohttpd: Small C library to run an HTTP server as part of another app
  • www/gnurl: Client that groks URLs (micro fork of curl)
  • wip/go-argv: Go library to split command line string into arguments array
  • wip/tokei: Displays statistics about code
  • wip/gnunet: Framework for secure P2P networking
  • fonts/ibm-plex-ttf: IBM plex typeface (TrueType)
  • fonts/ibm-plex-otf: IBM plex typeface (OpenType)
  • textproc/py-markovify: Simple and extensible Markov chain generator
  • www/nsm: Cross-platform git- and LaTeX-like command-line website manager
  • wip/oneko: Neko (cat) or other animals follow your pointer
  • wip/go-bytebufferpool: Implementation of a pool of byte buffers with anti-memory-waste protection for Go
  • wip/cfiles: Ncurses file manager written in C with vim like keybindings
  • wip/guile-json: JSON module for Guile
  • wip/guile-gcrypt: Guile bindings for libgcrypt
  • wip/py-zbar: Python bindings for the ZBar bar code reader
  • wip/guile-commonmark: Implementation of CommonMark for Guile
  • wip/guile-syntax-highlight: General-purpose syntax highlighting library for GNU Guile
  • wip/mescc-tools: Tools for the full source bootstrapping process
  • wip/guile-reader: Extensible reader framework for GNU Guile.
  • wip/guile-haunt: Functional static web site generator
  • wip/mes-nyacc: NYACC (Not Yet Another Compiler Compiler) with patches for mes
  • wip/guix: Functional package manager
  • wip/go-pkgconfig: Go clone of pkg-config(1)
  • wip/go-cpuid: CPU feature identification for Go
  • wip/go-fasthttp: Fast HTTP package for Go
  • wip/go-xxhash: Go implementation of the 64bit xxhash algorithm XXh64
  • wip/go-compress: Optimized compression packages for Go
  • wip/go-tcplisten: Customizable TCP net.Listener for Go
  • wip/py-cgen: C and Cxx source generation from an AST
  • wip/nix: Purely functional package manager
  • wip/go-sqlite3: Sqlite3 driver for Go using database/sql
  • wip/libgabe: Ciphertext-Policy Attribute-Based Encryption library, fork of libbswabe
  • wip/zola: Static website generator
  • wip/go-mux: URL router and dispatcher for Go
  • wip/powwow: Client to play MUDs
  • wip/go-spew: Deep pretty printer for Go data structures
  • wip/guile-git: Guile bindings of libgit2
  • wip/guile-gash: POSIX-compatible shell written in Guile Scheme
  • wip/termbox: Library for writing text-based user interfaces
  • wip/nary: Npm in Rust
  • wip/pijul: Distributed version control system
  • wip/pack: Vim package manager
  • wip/alacritty: Cross-platform, GPU-accelerated terminal emulator
  • wip/rust-bindgen: Automatically generate Rust FFI bindings to C (and some C++) libraries
  • wip/cargo-audit: Audit Cargo.lock files for crates with security vulnerabilities

other contributions

Too many contributions to remember, a selection of those which I do remember are listed here:

  • Erlang - documentation
  • Go - add more allowed variants to the linker call