diff --git a/articles/finances.html b/articles/finances.html new file mode 100644 index 0000000..6f75ade --- /dev/null +++ b/articles/finances.html @@ -0,0 +1,410 @@ + + + + + + + + Robur's blogHow has robur financially been doing since 2018? + + + + + + + + +
+

blog.robur.coop

+
+ The Robur cooperative blog. +
+
+
Back to index + +
+

How has robur financially been doing since 2018?

+

Since the beginning, robur has been working on MirageOS unikernels and getting +them deployed. Due to our experience in hierarchical companies, we wanted to +create something different - a workplace without bosses and management. Instead, +we are a collective where everybody has a say on what we do, and who gets how +much money at the end of the month. This means nobody has to write report and +meet any goals - there's no KPI involved. We strive to be a bunch of people +working together nicely and projects that we own and want to bring forward. If +we discover lack of funding, we reach out to (potential) customers to fill our +cash register. Or reach out to people to donate money.

+

Since our mission is fulfilling and already complex - organising ourselves in a +hierarchy-free environment, including the payment, and work on software in a +niche market - we decided from the early days that bookeeping and invoicing +should not be part of our collective. Especially since we want to be free in +what kind of funding we accept - donations, commercial contracts, public +funding. In the books, robur is part of the non-profit company +Änderwerk in Germany - and friends of ours run that +company. They get a cut on each income we generate.

+

To be inclusive and enable everyone to participate in decisions, we are 100% +transparent in our books - every collective member has access to the financial +spreadsheets, contracts, etc. We use a needs-based payment model, so we talk +about the needs everyone has on a regular basis and adjust the salary, everyone +agreeing to all the numbers.

+

2018

+

We started operations in 2018. In late 2017, we got donations (in the form of +bitcoins) by friends who were convinced of our mission. This was 54,194.91 €. +So, in 2018 we started with that money, and tried to find a mission, and +generate income to sustain our salaries.

+

Also, already in 2017, we applied for funding from +Prototypefund on a CalDAV server, +and we received the grant in early 2018. This was another 48,500 €, paid to +individuals (due to reasons, Prototype fund can't cash out to the non-profit - +this put us into some struggle, since we needed some double bookkeeping and +individuals had to dig into health care etc.).

+

We also did in the second half of 2018 a security audit for +Least Authority +(invoicing 19,600 €).

+

And later in 2018 we started on what is now called NetHSM with an initial +design workshop (5,000 €).

+

And lastly, we started to work on a grant to implement TLS 1.3, +funded by Jane Street (via OCaml Labs Consulting). In 2018, we received 12,741.71 €

+

We applied at NLNet for improving the QubesOS firewall developed in MirageOS +(without success), tried to get the IT security prize in Germany (without +success), and to DIAL OSC (without success).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProjectAmount
Donation54,194.91
Prototypefund48,500.00
Least Authority19,600.00
TLS 1.312,741.71
Nitrokey5,000.00
Total140,036.62

2019

+

We were keen to finish the CalDAV implementation (and start a CardDAV +implementation), and received some financial support from Tarides for it +(15,000 €).

+

The TLS 1.3 work continued, we got in total 68,887.53 €.

+

We also applied to (and got funding from) Prototypefund, once with an OpenVPN-compatible +MirageOS unikernel, +and once with improving the QubesOS firewall developed as MirageOS unikernel. +This means again twice 48,500 €.

+

We also started the implementation work of NetHSM - which still included a lot +of design work - in total the contract was over 82,500 €. In 2019, we invoiced +Nitrokey in 2019 in total 40,500 €.

+

We also received a total of 516.48 € as donations from source unknown to us.

+

We also applied to NLnet with DNSvizor, and +got a grant, but due to buerocratic reasons they couldn't transfer the money to +our non-profit (which was involved with NLnet in some EU grants), and we didn't +get any money in the end.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProjectAmount
CardDAV15,000.00
TLS 1.368,887.53
OpenVPN48,500.00
QubesOS48,500.00
Donation516.48
Nitrokey40,500.00
Total221,904.01

2020

+

In 2020, we agreed with OCaml Labs Consulting to work on maintenance of OCaml +packages in the MirageOS ecosystem. This was a contract where at the end of the +month, we reported on which PRs and issues we spent how much time. For us, this +was great to have the freedom to work on which OCaml packages we were keen to +get up to speed. In 2020, we received 45,000 € for this maintenance.

+

We finished the TLS 1.3 work (18,659.01 €)

+

We continued to work on the NetHSM project, and invoiced 55,500 €.

+

We received a total of 255 € in donations from sources unknown to us.

+

We applied at reset.tech again with DNSvizor, unfortunately without success.

+

We also applied at NGI pointer to work on reproducible +builds for MirageOS, and a web frontend. Here we got the grant of 200,000 €, +which we worked on in 2021 and 2022.

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ProjectAmount
OCLC45,000.00
TLS 1.318,659.01
Nitrokey55,500.00
Donations255.00
Total119,414.01

2021

+

As outlined, we worked on reproducible builds of unikernels - rethinking the way +how a unikernel is configured: no more compiled-in secrets, but instead using +boot parameters. We setup the infrastructure for doing daily reproducible +builds, serving system packages via a package repository, and a +web frontend hosting the reproducible builds. +We received in total 120,000 € from NGI Pointer in 2021.

+

Our work on NetHSM continued, including the introduction of elliptic curves +in mirage-crypto (using fiat). The +invoices to Nitrokey summed up to 26,000 € in 2021.

+

We developed in a short timeframe two packages, u2f +and later webauthn for Skolem Labs based +on gift economy. This resulted in +donations of 18,976 €.

+

We agreed with OCSF to work on +conex, which we have not delivered yet +(lots of other things had to be cleared first: we did a security review of opam +(leading to a security advisory), +we got rid of extra-files +in the opam-repository, and we removed the weak hash md5 +from the opam-repository.

+
+ + + + + + + + + + + + + + + + + + + + +
CustomerAmount
NGI Pointer120,000.00
Nitrokey26,000.00
Skolem18,976.00
Total164,976.00

2022

+

We finished our NGI pointer project, and received another 80,000 €.

+

We also did some minor maintenance for Nitrokey, and invoiced 4,500 €.

+

For Tarides, we started another maintaining MirageOS packages (and continuing +our TCP/IP stack), and invoiced in +total 22,500 €.

+

A grant application for bob was rejected, +but a grant application for MirageVPN +got accepted. Both at NLnet within the EU NGI project.

+
+ + + + + + + + + + + + + + + + + + + + +
ProjectAmount
NGI Pointer80,000.00
Nitrokey4,500.00
Tarides22,500.00
Total107,000.00

2023

+

We finished the NetHSM project, and had a final invoice over 2,500 €.

+

We started a collaboration for semgrep, porting some of +their Python code to OCaml. We received in total 37,500 €.

+

We continued the MirageOS opam package maintenance and invoiced in total +89,250 € to Tarides.

+

A grant application on MirageVPN got +accepted (NGI Assure), and we received in total 12,000 € for our work on it. +This is a continuation of our 2019 work funded by Prototypefund.

+

We also wrote various funding applications, including one for +DNSvizor that was +accepted (NGI0 Entrust).

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
CustomerAmount
Nitrokey2,500.00
semgrep37,500.00
Tarides89,250.00
MirageVPN12,000.00
Total141,250.00

2024

+

We're still in the middle of it, but so far we continued the Tarides maintenance +contract (54,937.50 €).

+

We also finished the MirageVPN work, and received another 45,000 €.

+

We had a contract with Semgrep again on porting Python code to OCaml and received 18,559.40 €.

+

We again worked on several successful funding applications, one on +PTT (NGI Zero Core), a continuation of the +NGI DAPSI project - +now realizing mailing lists with our SMTP stack.

+

We also got MTE (NGI Taler) accepted.

+

The below table is until end of September 2024.

+
+ + + + + + + + + + + + + + + + + + + + +
ProjectAmount
Semgrep18,559.40
Tarides62,812.50
MirageVPN45,000.00
Total126,371.90

Total

+

In a single table, here's our income since robur started.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
YearAmount
2018140,036.62
2019221,904.01
2020119,414.01
2021164,976.00
2022107,000.00
2023141,250.00
2024126,371.90
Total1,020,952.54

Plot of above income table

+

As you can spot, it varies quite a bit. In some years we have fewer money +available than in other years.

+

Expenses

+

As mentioned, the non-profit company Änderwerk running +the bookkeeping and legal stuff (invoices, tax statements, contracts, etc.) gets +a cut on each income we produce. They are doing amazing work and are very +quick responding to our queries.

+

We spend most of our income on salary. Some money we spend on travel. We also +pay monthly for our server (plus some extra for hardware, and in June 2024 a +huge amount for trying to recover data from failed SSDs).

+

Conclusion

+

We have provided an overview of our income, we were three to five people working +at robur over the entire time. As written at the beginning, we use needs-based +payment. Our experience with this is great! It provides a lot of trust into each +other.

+

Our funding is diverse from multiple sources - donations, commercial work, +public funding. This was our initial goal, and we're very happy that it works +fine over the last five years.

+

Taking the numbers into account, we are not paying ourselves "industry standard" +rates - but we really love what we do - and sometimes we just take some time off. +We do work on various projects that we really really enjoy - but where (at the +moment) no funding is available for.

+

We are always happy to discuss how our collective operates. If you're +interested, please drop us a message.

+

Of course, if we receive donations, we use them wisely - mainly for working on +the currently not funded projects (bob, albatross, miou, mollymawk - to name a few). If you +can spare a dime or two, don't hesitate to donate. +Donations are tax-deductable in Germany (and should be in Europe) since we're a +registered non-profit.

+

If you're interested in MirageOS and using it in your domain, don't hesitate +to reach out to us (via eMail: team@robur.coop) so we can start to chat - we're keen to deploy MirageOS +and find more domains where it is useful.

+ +
+ +
+ + + + diff --git a/articles/speeding-ec-string.html b/articles/speeding-ec-string.html index 09c3085..ae8552b 100644 --- a/articles/speeding-ec-string.html +++ b/articles/speeding-ec-string.html @@ -123,7 +123,7 @@

As a spoiler, for P-256 sign there's another improvement of around 4.5 with Virgile's PR using pre-computed tables also for NIST curves.

The road ahead for 2024

Remove all cstruct, everywhere, apart from in mirage-block-xen and mirage-net-xen ;). It was a fine decision in the early MirageOS days, but from a performance point of view, and for making our packages more broadly usable without many dependencies, it is time to remove cstruct. Earlier this year we already removed cstruct from ocaml-tar for similar reasons.

-

Our MirageOS work is only partially funded, we cross-fund our work by commercial contracts and public (EU) funding. We are part of a non-profit company, you can make a (tax-deducable - at least in the EU) donation (select "DONATION robur" in the dropdown menu).

+

Our MirageOS work is only partially funded, we cross-fund our work by commercial contracts and public (EU) funding. We are part of a non-profit company, you can make a (tax-deductable - at least in the EU) donation (select "DONATION robur" in the dropdown menu).

We're keen to get MirageOS deployed in production - if you would like to do that, don't hesitate to reach out to us via eMail team at robur.coop

diff --git a/atom.xml b/atom.xml index ab61eba..bdcc89d 100644 --- a/atom.xml +++ b/atom.xml @@ -3,12 +3,21 @@ https://blog.robur.coop/atom.xml The Robur's blog YOCaml - 2024-08-21T00:00:00Z + 2024-10-21T00:00:00Z The Robur Team + + https://blog.robur.coop//articles/finances.html + How has robur financially been doing since 2018? + 2024-10-21T00:00:00Z + How we organise as a collective, and why we're doing that. + + + + https://blog.robur.coop//articles/2024-08-21-OpenVPN-and-MirageVPN.html MirageVPN and OpenVPN diff --git a/feed.xml b/feed.xml index 0952334..7fd855a 100644 --- a/feed.xml +++ b/feed.xml @@ -1 +1,102 @@ -Robur's bloghttps://blog.robur.coopThe Robur cooperative blogyocamlteam@robur.coopMirageVPN and OpenVPNhttps://blog.robur.coop/articles/2024-08-21-OpenVPN-and-MirageVPN.htmlWed, 21 Aug 2024 10:00:00 GMTDiscoveries made implementing MirageVPN, a OpenVPN-compatible VPN libraryhttps://blog.robur.coop/articles/2024-08-21-OpenVPN-and-MirageVPN.htmlThe new Tar release, a retrospectivehttps://blog.robur.coop/articles/tar-release.htmlThu, 15 Aug 2024 10:00:00 GMTA little retrospective to the new Tar release and changeshttps://blog.robur.coop/articles/tar-release.htmlqubes-miragevpn, a MirageVPN client for QubesOShttps://blog.robur.coop/articles/qubes-miragevpn.htmlMon, 24 Jun 2024 10:00:00 GMTA new OpenVPN client for QubesOShttps://blog.robur.coop/articles/qubes-miragevpn.htmlMirageVPN serverhttps://blog.robur.coop/articles/miragevpn-server.htmlMon, 17 Jun 2024 10:00:00 GMTAnnouncement of our MirageVPN server.https://blog.robur.coop/articles/miragevpn-server.htmlSpeeding up MirageVPN and use it in the wildhttps://blog.robur.coop/articles/miragevpn-performance.htmlTue, 16 Apr 2024 10:00:00 GMTPerformance engineering of MirageVPN, speeding it up by a factor of 25.https://blog.robur.coop/articles/miragevpn-performance.htmlGPTarhttps://blog.robur.coop/articles/gptar.htmlWed, 21 Feb 2024 10:00:00 GMTHybrid GUID partition table and tar archivehttps://blog.robur.coop/articles/gptar.htmlSpeeding elliptic curve cryptographyhttps://blog.robur.coop/articles/speeding-ec-string.htmlTue, 13 Feb 2024 10:00:00 GMTHow we improved the performance of elliptic curves by only modifying the underlying byte arrayhttps://blog.robur.coop/articles/speeding-ec-string.htmlCooperation and Lwt.pausehttps://blog.robur.coop/articles/lwt_pause.htmlSun, 11 Feb 2024 10:00:00 GMTA disgression about Lwt and Miouhttps://blog.robur.coop/articles/lwt_pause.htmlPython's `str.__repr__()`https://blog.robur.coop/articles/2024-02-03-python-str-repr.htmlSat, 03 Feb 2024 10:00:00 GMTReimplementing Python string escaping in OCamlhttps://blog.robur.coop/articles/2024-02-03-python-str-repr.htmlMirageVPN updated (AEAD, NCP)https://blog.robur.coop/articles/miragevpn-ncp.htmlMon, 20 Nov 2023 10:00:00 GMTHow we resurrected MirageVPN from its bitrot statehttps://blog.robur.coop/articles/miragevpn-ncp.htmlMirageVPN & tls-crypt-v2https://blog.robur.coop/articles/miragevpn.htmlTue, 14 Nov 2023 10:00:00 GMTHow we implementated tls-crypt-v2 for miragevpnhttps://blog.robur.coop/articles/miragevpn.html \ No newline at end of file + + + + The Robur's blog + https://blog.robur.coop/ + + + Mon, 21 Oct 2024 00:00:00 GMT + https://www.rssboard.org/rss-specification + YOCaml + + How has robur financially been doing since 2018? + https://blog.robur.coop//articles/finances.html + + https://blog.robur.coop//articles/finances.html + Mon, 21 Oct 2024 00:00:00 GMT + + + MirageVPN and OpenVPN + https://blog.robur.coop//articles/2024-08-21-OpenVPN-and-MirageVPN.html + + + + https://blog.robur.coop//articles/2024-08-21-OpenVPN-and-MirageVPN.html + Wed, 21 Aug 2024 00:00:00 GMT + + + The new Tar release, a retrospective + https://blog.robur.coop//articles/tar-release.html + + https://blog.robur.coop//articles/tar-release.html + Thu, 15 Aug 2024 00:00:00 GMT + + + qubes-miragevpn, a MirageVPN client for QubesOS + https://blog.robur.coop//articles/qubes-miragevpn.html + + https://blog.robur.coop//articles/qubes-miragevpn.html + Mon, 24 Jun 2024 00:00:00 GMT + + + MirageVPN server + https://blog.robur.coop//articles/miragevpn-server.html + + https://blog.robur.coop//articles/miragevpn-server.html + Mon, 17 Jun 2024 00:00:00 GMT + + + Speeding up MirageVPN and use it in the wild + https://blog.robur.coop//articles/miragevpn-performance.html + + + + https://blog.robur.coop//articles/miragevpn-performance.html + Tue, 16 Apr 2024 00:00:00 GMT + + + GPTar + https://blog.robur.coop//articles/gptar.html + + https://blog.robur.coop//articles/gptar.html + Wed, 21 Feb 2024 00:00:00 GMT + + + Speeding elliptic curve cryptography + https://blog.robur.coop//articles/speeding-ec-string.html + + + + https://blog.robur.coop//articles/speeding-ec-string.html + Tue, 13 Feb 2024 00:00:00 GMT + + + Cooperation and Lwt.pause + https://blog.robur.coop//articles/lwt_pause.html + + https://blog.robur.coop//articles/lwt_pause.html + Sun, 11 Feb 2024 00:00:00 GMT + + + Python's `str.__repr__()` + https://blog.robur.coop//articles/2024-02-03-python-str-repr.html + + https://blog.robur.coop//articles/2024-02-03-python-str-repr.html + Sat, 03 Feb 2024 00:00:00 GMT + + + MirageVPN updated (AEAD, NCP) + https://blog.robur.coop//articles/miragevpn-ncp.html + + https://blog.robur.coop//articles/miragevpn-ncp.html + Mon, 20 Nov 2023 00:00:00 GMT + + + MirageVPN & tls-crypt-v2 + https://blog.robur.coop//articles/miragevpn.html + + https://blog.robur.coop//articles/miragevpn.html + Tue, 14 Nov 2023 00:00:00 GMT + + + \ No newline at end of file diff --git a/images/finances.png b/images/finances.png new file mode 100644 index 0000000..5c7fbc4 Binary files /dev/null and b/images/finances.png differ diff --git a/index.html b/index.html index d3caae2..a5e7ac8 100644 --- a/index.html +++ b/index.html @@ -25,6 +25,19 @@

Essays and ramblings

  1. + +
    + 2024-10-21 + How has robur financially been doing since 2018?
    +

    How we organise as a collective, and why we're doing that.

    + +
    +