Issues related to the Nest, i.e. this website. The source code for the Nest is not yet public.

#5 Problems to opening the code

Opened by notramo on December 30, 2020
notramo on December 30, 2020

Why is it closed-source? I know you mentioned elsewhere that you don’t have the resources yet, but you plan to open the code if you had. I don’t understand why one developer is better for a project instead of a group of developers.

pmeunier on December 30, 2020

Good question. “Resources” here mean multiple things, including time, money and stress. I don’t have an unlimited amount of either. Pijul is moving fast, this is great, but at the same time a bit stressful, since I now have many things to do, both technical and nontechnical, and checking for fires to put out in a server or a discussion has been part of my morning routine for about two months now. I’m accepting the trade-off, but I’m also conscious that it’s a trade-off: when I was an academic researcher, I also had long work days, but my early morning routine used to include things like “meditation”, “workout” and “cycling”, not “prometheus”, “ssh” and “emails”. This isn’t only due to Pijul though, Covid-19 has its share of responsibility.

Also, I think others are expecting answers to their bug reports, reviews on their contributions, etc. in a reasonable amount of time.

More generally, most people who give stuff away have a reason to do so. When I decided to start working on Pijul, I was interested in (1) the theory of asynchronous work and (2) having a tool I could use for myself. I’m super happy to share that with others, for many reasons: I think the world could be a better place if tools were more welcoming, more reliable and scalable at the same time, so sharing it was the “maximal impact” decision (this is my main metric for choosing projects to work on, btw). Also, it was the right thing to do for the project, since I’m receiving great contributions, and the project is now in a phase where it’s moving faster with external contributions than without.

The current situation isn’t going to last forever though: I’ve been working full time on Pijul for a few months now, because I was in between jobs, living off my savings. However, in one day plus a few hours, I’ll be officially starting a new job (I’ve already been working for that company for some time, but I now have a more formal contract), which will leave me with considerably less time to work on Pijul.

Things are different for the Nest. I built it because:

  • I wanted to learn how this sort of stuff actually worked “at scale/in production”, but the things I learned there are probably not particularly novel for any experienced engineer.
  • I needed a tool to collaborate on Pijul itself, and I knew nobody else was going to build it, for many reasons.
  • It has been very helpful to debug Pijul so far, by providing public use cases, and a common place to share experience about how actual users want to use this new tool.
  • It can be used as a source of funding for the rest of the project, so that engineers, designers, community managers, etc. can be hired, and work together to provide the best user experience ever imagined.

If I gave it away now, I feel it would restrict my freedom, because I would have one more public project to manage, and that means I would get ten times more awkward bug reports that are impossible to debug (because they’re on a remote machine and depend on all the fragile bits of a particular configuration), but still need a rigorous examination and a polite answer. It would also make later updates to the protocol near impossible, at a time where I’m still routinely re-cloning everybody’s repositories on the Nest to upgrade them to the latest Libpijul, Sanakirja, etc.

Another reason is that I’m getting lectured quite often about how to run a project. A small fraction of that unsolicited advice is actually interesting, but I feel that web servers, unlike maths-based software like Pijul, is something any anonymous troll on HackerNews has an opinion about, and I don’t believe this would make my life better. I’ve also learned that good advice on how to run a project is scarce, as people who can give it are generally busy running their own projects.

When I decided to keep it closed for the moment, I also read about how others (who were actually running projects bigger than Pijul) managed similar decisions, for example from the early days of the Signal protocol (see https://lwn.net/Articles/687294/).