Hostea: a seed to create a constellation of Free Software forges

I’m a Free Software vegetarian, meaning I don’t use proprietary software. In the same way a vegetarian won’t eat meat, even when it is really good. My day job is to further forge federation, to allow forges to communicate with each other. To enable a developer to file a bug from the comfort of their forge even when the software project is located in another forge. I write software daily, run online services, fix problems sent my way by the monitoring service watching over services running in production, answer support requests, take an active role in the well being team and try my best to create an inclusive environment where diversity is cherished.

As can be expected, I’m often in a difficult position when trying to communicate or work with other developers because the easiest path requires the use of proprietary software. For instance I may have to send a patch via email to contribute to a project hosted on GitHub, and it will take a lot longer to be merged.

I’m however very happy to live in a universe where only Free Software exists. I can do things that would not be possible if proprietary software was around and I think every Free Software project deserves the same amicable environment. A universe made of a constellation of Free Software forges, each populated by hundreds of projects where thousands of developers work together. Everything there is grown locally and organically, in a way that would not be possible in a gigantic forge populated by millions of projects and tenths of millions of people.

Continue reading “Hostea: a seed to create a constellation of Free Software forges”

The inconclusive story of four failed project offers

In the world of Free Software some of the most treasured values are sharing and cooperation. When an idea emerges it is not uncommon to share it publicly and that’s what Aravinth and myself did a few weeks ago. Our primary motivation was to create a sustainable online service based on Free Software. Although there are not many examples to follow the technical and ethical part of the problem only took us a few hours to crack: this is what we do. But the marketing part of the equation turned out to be well above our paygrade.

Continue reading “The inconclusive story of four failed project offers”

Project plans for a hosted Gitea online service

When an organization asks me about Gitea, I would like to direct them to a provider where they can rent an instance and just use it, in the same way they can go to for a forum, or for storage. Instead of waiting for that to happen, Aravinth and myself decided to do something about it, in a way that is in line with our shared values: transparency and Free Software.

After doing some research we found counter examples that showed the pitfalls to avoid. GitLab because its business model heavily relies on selling proprietary licenses. CiviCRM because setting it up is complex and requires training: users can’t figure it out on their own. Gitea images provided by Digital Ocean because they do not include security upgrades. MySQL configured and run by AWS because of the vendor lock-in that makes it impossible to self-host.

Continue reading “Project plans for a hosted Gitea online service”

Radical transparency and funding

During the year 2021 I worked on grant applications to fund my work on Free Software and published everything in public, down to the last detail. All the drafts and discussions that led to the document submitted to the organization managing the grant, the contract that was signed after the grant was accepted, the reports submitted for milestones etc. It turns out to be unusual: one can hardly find any organization with such a radical transparency.

Continue reading “Radical transparency and funding”

On transparency, funding and efficiency

Earlier this year I applied for funding: a call was opened by the European Union and someone told me it was worth a shot for a project related to software forges. My lack of experience writing grant applications was a handicap but I went ahead anyway. I asked a friend if he would agree to apply with me because I felt it would increase the chances of success. I soon discovered that there was no example of grant applications to get inspiration from. Although people and organizations share such documents in private, within their own network, they are shy about publishing them for everyone to see. This was a handicap to get started. In the spirit of sharing, I then decided to be 100% transparent about my own work: not only by publishing the drafts of the grant application but also the discussions with everyone involved.

Continue reading “On transparency, funding and efficiency”

How do horizontal Free Software communities respond to a takeover?

In march 2021 the libreboot project was taken over by one of the core developers and went from a democratic governance to being controlled by a single person. In July 2021 the same happend to the misskey project. Such a “coup” is a bug in how a democratic project is setup: it should not be possible for a single person to take control of the entire project. But it is possible, by design, in horizontal communities such as Enough or fedeproxy.

Continue reading “How do horizontal Free Software communities respond to a takeover?”

Allocating pty in a shell script

When a command requires a tty although it should not (some OpenStack client subcommands do), it will fail when included in a crontab. Unfortunately there is no packaged utility such as ptyget to allocate a pty. Fortunately ssh -tt can be used instead:

-t‘ Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

$ ssh-keygen
$ cat .ssh/ >> .ssh/authorized_keys
$ ssh -tt $USER@ tty < /dev/null
$ ssh -t $USER@ tty < /dev/null
Pseudo-terminal will not be allocated because stdin is not a terminal.

Federated development and federated forges

I’m very new federation. Over the years I heard rumors that it was good without understanding why and how. I ran a mastodon instance for a few years but did not use it much: I’m a developer and not much of a microblogger (reading or writing). Beginning of last year I started using and was happy to see it work for real but did not use any of its federated features. But when was announced I thought it made a lot of sense to organize events in a federated way: smart move. And all along I thought I should read about fediverse but I still have no idea what it means (really).

Continue reading “Federated development and federated forges”

libvirt functions discovery in python

The C API of libvirt is well documented and one can easily understand how the virNetworkGetDHCPLeases function should be called. However, it is less straightforward with the python libvirt module despite the libvirt development guide. The example from the sources shows the corresponding python method is DHCPLeases

import libvirt
conn ="qemu:///system")
net = conn.networkLookupByName("default")
leases = net.DHCPLeases()

But how did virNetworkGetDHCPLeases become DHCPLeases?

Continue reading “libvirt functions discovery in python”

Volunteer work is not worth a dime

Even when nonprofit organizations publish their financial records (such as the mediawiki foundation), the work done by volunteers has an estimated financial value of zero. These organizations will however unanimously claim that volunteers are an essential part of society and have a very special place in their heart. While most of them are sincere, observation tells us a different story:

  • In the context of fundraising, volunteers are second class citizens compared to organizations who donate money
  • A lack of transparency excludes volunteers from decisions and day to day work

How is it that one year of a volunteer who is worth $60,000 on the market is considered less valuable than a $60,000 grant used to pay the salary of the same person?

Continue reading “Volunteer work is not worth a dime”