Felix Elsner

Projects, Interests and Initiatives

My contributions to open source software have been somewhat dwarfed by my recent research into material related to the Russian invasion of Ukraine. This research can be found at the Ukraine War project page.


I've compiled a small list of my contributions below to give you an idea of what a hobbyist developer might be working on.

I like coordinating with others, distributing work and responsibilities, testing and tinkering, setting up build systems and building new tools where needed.

Projects & Contributions

Android Work

Working on Android projects is an interesting endeavour spanning many technologies, companies, people and languages.

My focus lies on the Sony Xperia line of devices.

In regognition of my contributions, Sony named me "Hero Developer" in 2019.

Visit my Open Devices Logo Mobile Projects page to learn more about AOSP, SailfishOS, LineageOS and other facets of my work.

tango interface

Video management and annotation interface, conceived to augment Argentine Tango lessons and practice.

I used to dance myself and created this tool for noting down lessons, concepts and inspiration, intersecting the visual with the textual.

See this more detailed page showing its use: tango interface page.

If you know the password, you can also view an exported static archive at tango.ix5.org

flask-admin jinja2 misaka youtube-dl

sleek-tern

Theme for the static site generator pelican, available at git.ix5.org. Supports lots of plugins and customization options. Nice typography, sleek and elegant.

Although the generated site is static, comments are available via a custom isso instance, see further down below.

Used for my "thoughts" section.

pelican python jinja2

sixfive

My own small blogging engine. Running at ix5.org/stream. If I had a twitter, that's what I'd post there.

Source unavailable, but it is very unremarkable. Using flask-admin for editing and frozen-flask for creating a static version to upload and serve with nginx.

Reworked the styling in Feb of 2020 to use stronger colours coupled with better typography, see Stream rework.

flask-admin jinja2 misaka

FachschaftW Homepage

I re-launched the homepage of my old student union "Fachschaft W" with a custom-written theme "fsw", including updated German translations, auto-updating configuration, custom plugins, auto-backups, live monitoring.

Using PHP and SASS, a CSS preprocessor.

Also overhauled the hosting from the last solution and saved a good bit of dough…

wordpress sass css

FachschaftW Wiki

Created and wrote the initial articles for the FachschaftW Wiki, based on MediaWiki. Used for knowledge management, a passion of mine.

Running Visual Editor with parsoid instance to allow easier editing for all members.

mediawiki php

Member Cloud

Created the FachschaftsCloud (internal), based on Seafile. Used for file revisioning, GDPR compliant. Supports team integration tools, configured automatic deduplicated backups.

Upstream commits:

python django file-synchronization

Ansible Roles

Created and improved lots of roles for use with the Ansible automation tool.

…and many more!

automation python ansible

MusicBrainz Picard Plugin

Created a plugin to get metadata from tango.info for the music tagging editor MusicBrainz Picard, available at the plugins site.

This was my introduction to cleaner python code and team code review. Having your changes scrutinized can seem like a blow at first, but then you realize what a great favour you're being done by having people give feedback and teach you.

python picard

Dark Mode rework

Reworked most of my pages to work with a system-wide dark theme.

See Dark Mode rework.

css

NeoVim

I of course use Vim, NeoVim to be exact, as my day-to-day file editor. My configuration is available at dotnvim to enjoy.

Also contributed to a few plugins:

Rview

An Android app to interact with Gerrit code review servers.

Upstream: rview.

I added a few small improvements and made the app more friendly for freedom-minded people.

I also packaged the app for listing on the F-Droid app catalog, see New app: Rview 1 2.

android code-review

Running Services

I like small and self-sufficient over large and centralized, that's why I host my own services.

gitea

Self-hosted git service. Upstream: gitea.io.

My own instance is available at git.ix5.org.

GitHub is great for attracting contributors, but having a gatekeeper has too many downsides. Bit ironic that most of the links on this page point to GitHub…

self-hosted go git

isso

Self-hosted commenting service, used for comment areas under my statically generated sites, for example here.

Website: posativ.org/isso - Development at github.com/posativ/isso

Own upstream commits:

As of late 2021, I've become a maintainer of isso! I've managed to close over 40 issues and helped rejuvenate the project, encouraged more active contributors and steered the development towards more modern practices, including automation.

self-hosted python

syncthing

Self-hosted file syncing service.
Upstream: syncthing.net.

I run my own discovery server and provide bandwidth for other users and businesses via my own relay server, see the list on relays.syncthing.net.

self-hosted go file-synchronization

Telegram bots

Telegram, while proprietary, has somehow managed to provide a great platform for developers.

Together with another developer, I run a small bot that trawls a specific news site, extracts information and posts it to a channel. I have written a bit about it at The joy of Telegram bots.

Source: sonybot, deployed via ansible of course.

python bot

zulip

Team chat solution. Lightweight, productivity-enhancing threading model, mobile apps available. Fully open source and way faster than Slack.

Upstream: zulipchat.com.

I run a small instance for an internal development team.

python self-hosted

Pelican

Used for my "thoughts" blog with the sleek-tern theme.
Upstream: pelican.

Own upstream commits:

static site generator python markdown

goaccess

Privacy-friendly log analyzer, available at goaccess.io.

No need to place javascript on websites when nginx logs already give you plenty of information.

go self-hosted

funkwhale

Federated audio server, nice to share music and playlist with friends.
Upstream: funkwhale.audio.

The federated model allows you to share music with other instance owners, building a mutual catalog and discover great new music. Music streaming services like Spotify with their pointless restrictions are a spit in the face of our arts and culture.

The open governance model ensures this project will last. This is what happens when people are doing things the right way.

No version hosted by me any more, but still a nice project.

python self-hosted

Closing

Contributing to varied projects will teach you the ins and outs of collaborative development. You will learn to write good code, write even better commit messages, test your code before submission, keep an eye on maintainability, and all the while gain insights into team dynamics and the inevitable politics that permeate even declaredly nonpolitical groups. Fun stuff!

Of course, this isn't for everyone. This type of commitment will require time - or more accurately, the (financial) freedom and willingness to devote sufficient amounts of it - while not aligning with your best interests. There are lots of other ways to improve the world apart from implementing yet another version of The Same Thing. I have chosen this "hobby" as part of my portfolio of interests, but realize that it by far shouldn't be the only one.