English

Reproducible build of Freenet do-it-yourself: verify-build demystified

You might know the reproducible-builds project, which tries to allow users to verify that what they install actually corresponds to the released source. Or GNU Guix, which provides transparent reproducible binaries — along with a challenge-function.

Given that Freenet is made for people with high expectations for integrity, it might not surprise you that it has been providing a reproducible build and a verification script since 2012. However until release 1481, it was a hassle to set up, and few people used it.

But now that we’re on gradle, verifying that what I release is actually what’s tagged in the source is much easier than before.

The following instructions are for GNU/Linux, and maybe other *nixes, allowing you to verify the test release of 1482. You can easily adapt them for future releases.

The Freenet Web of Trust keeps communication friendly with total anonymity

In the past decade there hasn’t been a year without a politician calling for real names on the internet. Some even want to force people to use real photos as profile pictures. All in the name of stopping online hate, though enforcing real names has long been shown to actually make the problem worse. This article presents another solution, one that has actually proven that it keeps communication friendly, even in the most anonymous environment in the fully decentralized Freenet project.

And it does it without enabling censorship.

Copyright directive modal window for your website

The European Copyright directive threatens online communication in Europe. On September 12th the European parliament takes the crucial vote which can still fix it. But the parliamentarians (MEPs) need to hear our voices.

Relicensing a project from GPLv2 or later to AGPLv3 or later

Switching from GPLv2 or later to AGPL is perfectly legal. But if it is not your own project, it is often considered rude.

This does not relicense the original code, it just sets the license of new code and of the project as a whole.

Please accept the signatures from the petition against Article 13

Dear Antonio Tajani,

Please accept the signatures from the petition against article 13.1

In 2014 I contributed to the Public Consultation on the review of the EU copyright rules.2

I publish music online, I write online, I publish Free Software, and I share links to news.

Last month I wrote to my representatives in JURI and asked them to preserve internet freedom. 15 of them nontheless voted to destroy online freedom. I cannot understand how they could vote for a system which will enforce the widespread establishment of technologies which can form the foundation for censorship which lets chinese censorship appear like a paradise of free speech.

Therefore I now beg you to accept the signatures from the petition against article 13.

Please let the voices of the European citizens be heard. Please help us preserve the Europe we love.

The best of wishes,

Dr. Arne Babenhauserheide


  1. The petition against Article 13, currently with over 654,000 signatures: https://www.change.org/p/european-parliament-stop-the-censorship-machinery-save-the-internet 

  2. My answers to the public consultation on copyright in the EU: http://www.draketo.de/files/2014-03-04-eu-copyright-consultation-document_en-arne_babenhauserheide.pdf 

You cannot afford 1% predators

The discussion about sexual assault at conferences has been going on for a few years now. Moral reasoning has been discussed a lot, and I will not repeat that.1

Here I will give a dispassionate, cold and calculating reason why your community cannot afford to tolerate 1% predators:

If in a community of 50 men and 50 women, one person is a predator who attacks one woman every year and causes her to leave, and every year either a man or a woman joins, the community will be male-only after 100 years.

Even 1% predators is far too much.


  1. Just read the following twitter thread if you need a refresher on the moral issues: So I was at an academic conference this weekend and had to physically intervene to prevent a sexual assault by a male colleague on a female colleague who was drunk to the point that she was clearly not in control of herself, and unable to exercise judgment or consent.Brad Simpson (@bradleyrsimpson) (June 22, 2018) 

New Horizons for Science

Farewell to friends -- and a love.

Download: mp3 audio | webm video; Watch on youtube

Goodbye my love, I leave tonight,
I know you’re in new hands,
Though I would rather follow you,
That’s not the way that this is planned,
Our destiny will now be watched
by different eyes than mine,
I wish you just the best,
be sure we’ll meet again in time.

The princess is the ultimate representation of social and hierarchical power

Knight, do my bidding.

When I was with my family on vacation in spain, and my son was playing in a playground, a girl told him “I’m a princess, you’re a knight, fetch me a glass of water!”. It was then that I realized that a princess typically isn’t someone to save. I was so proud of my son when he said “no”, because I suddenly realized how hard it is to escape the shackles of that special story.

A princess is the one person in the country, who reigns surpreme in both hierarchy and social standing. People in stories might hate the king, but the princess is beloved by most.

the zen of tolerance

  • You are entitled to voice your opinion.
  • You are not entitled to force it upon everyone.
  • You are not entitled to force it upon a subgroup repeatedly.
  • You are also not entitled to hurl hate towards participants, since that would disrupt communication.
  • If you cannot stay respectful and friendly after being asked to, I will unsee you and advise others to do the same with a clear and brief explanation, so they can take an informed decision.

I will use technical means to realize the zen of tolerance.

Tolerance for intolerance is self-defeating. Continuous disruption of communication is censorship.

Towards a deterministic upper bound for the network load of the fully decentralized Freenet spam filter

Goal: Re-design the decentralized spam filter in Freenet (WoT) to have deterministic network load, bounded to a low, constant number of subscriptions and fetches.

Originally written as a comment to bug 3816. The bug report said "someone SHOULD do the math". I then did the math. Here I’m sharing the results.

This proposal has two parts:

  1. Ensuring an upper bound on the network cost, and
  2. Limiting the cost due to checking stale IDs.

counting scientific publications as metric for scientific quality is dumb

Scientific institutions1 currently base a large part of their internal evaluation, their comparison to others, and their hiring decisions on counting publication (with a number of different scorings).

And this is dumb.

On the surface this causes pressure to publish as many papers as possible2 which drives down quality of publications to the lowest standard reviewers accept.3 And it strengthens a hierarchy of publishers, where some publications are worth more than others based on the name of the journal. That simplifies funding decisions. But makes them worse. And it creates an incentive to get a maximum of prestige with a minimum of substance.


  1. For this article scientific institutions mainly means those state-actors who finance scientists and those private actors who employ scientists and compete for state funding. 

  2. The problem here is pressure to inflate the impact metrics of publications. Publishing should be about communicating research, not about boosting ones job opportunities. 

  3. This argument is based on discussions I had with many other scientists over the years, along with experiences like seeing that people split publications into several papers to increase the publication count, even though that does not improve the publication itself. It is also based on the realization that few scientists I met were still following all publications in their sub-field. For a longer reasoning see information challenges in scientific communication

Freenet Interview with Zilion

Zilion Web conducted an Interview about Freenet with me. Zilion asked interesting questions and I kind of went overboard in answering them. They include:

  • When did you become a freenet developer? Why?
  • Freenet has 18 years of continuous development, from here to there, how do you see your growth?
  • Frost vs. FMS, what is your choice and why?
  • What do you think about people who use Freenet just for illegal purposes? And what is your concept of freedom about that?
  • What to expect from the future in Freenet?
  • Can you tell us how Opennet and Darknet works, and its pros and cons?

To see the answers, just head over to the article:

Interview with Freenet Developer (ArneBab)
https://zilionweb.wordpress.com/2017/08/07/interview-with-freenet-developer-arnebab/

And do install Freenet and then connect confidentially to your friends to build the darknet one friend at a time.

Two visions of our future

storm shelter or forestry
    by Mike Perry (http://nodicemike.com)

Update 2018-09-03: As by Aengenheyster et al. 2018, we’re now at “⚀ or ⚁” (1 or 2): »However, reaching the 1.5 K target appears unlikely as MM would be required to start in 2018 for a probability of 67%.« MM means getting a 2% increase of the share of renewables every year.

I don’t know what we rolled, but I sure hope it’s not a 1.1

For the robust science behind the green future, see Hansen et al. 2017:

Young people's burden: requirement of negative CO₂ emissions.


  1. Not every place will become this uninhabitable. But almost every place will have huge adaptation cost. See Hansen et al. 2016. Let’s hope we rolled a 2-6; and let’s stop ruining our odds. We need to go green. 

Answers to “I can't use Freenet”

Short answers to questions from a message in the anonymous Freenet Message System:

Ultra-short answer: Go to https://freenetproject.org/pages/download.html and run the installer. It’s fast and easy.

Now onward to the message:

psst@GdwO… wrote :

ArneBab@-jtT… wrote : Yes. And that’s one of the reasons why we need Freenet: to wrestle back control over our communication channel.

Good luck getting people to use it though.

Yes, that’s something we need to fix. And there’s a lot we can do for that. It’s just a lot of boring work.

Let’s go through your points and see which we could fix:

I can't use Freenet. It's illegal! It isn't? How do you know?

It’s created by a registered tax-exempt charity1, how can it be illegal?


  1. The Freenet Project Inc is a 501(c)(3) non-profit organization, with the mission "to assist in developing and disseminating technological solutions to further the open and democratic distribution of information". It is registered under EIN 95-4864038. 

Hansen 2017: Young people's burden: requirement of negative CO₂ emissions

James Hansen et al. published a paper about the expected costs due to climate change, aptly named "Young people's burden".

Young people's burden: requirement of negative CO2 emissions

Temperature anomalies
(Hansen et al. 2017, License: cc-by)

Trajectories of Carbon from Tokyo

couldn’t resist this one ☺

I was only plotting trajectories of carbon dioxide from Tokyo, when this came up:

Trajectories of Carbon from Tokyo

How it began:

The deep ones!

Cthulhu fhtagn!

Unwanted pregnancy hits at random

If you do not want to have a child right now, but you want to have a fulfilled heterosexual sex-life, pregnancy is a risk which can hit anyone, however careful he or she is to avoid it. This is an answer I gave someone who equated unintentional pregnancy with questionable morals.

According to "How effective are condoms against pregnancy?":

If you use condoms perfectly every single time you have sex, they’re 98% effective at preventing pregnancy. But people aren’t perfect, so in real life condoms are about 82% effective — that means about 18 out of 100 people who use condoms as their only birth control method will get pregnant each year.

Other means of birth control are around 70-91% effective, with the sole exception of the implant which has 99% effectiveness, so even if people are perfectly hygienic and careful, there will be many pregnancies: if you are perfectly hygienic and careful for 10 years, there will be around one pregnancy per couple (on average).

IRC-chat via Tor with Emacs on Gentoo

As example: Connecting to #youbroketheinternet.

emerge privoxy torsocks net-vpn/tor
# rc-config start privoxy tor
# rc-update add privoxy default
# rc-update add tor default
mkdir -p ~/.local/EMACS_TOR_HOME/.emacs.d
echo "(require 'socks)" >> ~/.local/EMACS_TOR_HOME/.emacs.d/init.el
HOME=~/.local/EMACS_TOR_HOME torify emacs --title "Emacs-torified"
# M-x customize-variable RET socks-server RET
#   host: localhost
#   port: 9050
#   type: Socks v5
#   (C-x C-s to save and set)
# M-x erc-select
#   server loupsycedyglgamf.onion
#   port 67
# the welcome channel is good to go.

propagating changes; comment on "Time To Rethink Retractions And Corrections?"

A comment on Amending Published Articles: Time To Rethink Retractions And Corrections? (doi: 10.1101/118356) which asks for making it easier and less of a matter of guilt to change published articles.

Update: Leonid Schneider from forbetterscience notes that there’s a whole dungeon of misconduct which might be facilitated by “living papers”. We need investigate problems in depth before changing established processes. Scientific communication is a complex process. Publication is an important part of it.

Firstoff: The underlying problem which makes it so hard to differenciate between honest errors and fraud is that publications are kind of a currency in science.

Strengths and weaknesses of Python

a reply I wrote on quora.

Python is easy to learn and low ceremony. Both are pretty hard targets to hit. It also has great libraries for scientific work, for system scripting and for web development — and for most everything else. And it is pragmatic in a sense: It gets stuff done. And in a way which others can typically understand easily. Which is an even harder target to hit, especially with low ceremony languages.

minimal Python script

Over the years I found a few things which in my opinion are essential for any Python script:

  • A description,
  • useful logging
  • argument parsing and
  • doctests

Everything in this setup is low-overhead and available from Python 2.6 to 3.x, so you can use it to start any kind of project.

You can train to become really, really good in almost anything you decide to do.

Should you do what you’re good at, or rather do what you love? Should you use your talents or follow your passion?

To answer this question, let’s look at actual research instead of gut feeling.1 Is a talent how good you are at doing something? Then it is a function of training time. Is it how fast you move forward? Then you likely already learned from other tasks many of the things you need for your task at hand.


  1. The Role of Deliberate Practice in the Acquisition of Expert Performance, K. Anders Ericsson, Ralf Th. Krampe, and Clemens Tesch-Romer, Psychological Review, 1993 

arctic unraveling

Report: Arctic Is Unraveling, discusses assessment Snow, Water, Ice and Permafrost, notes the article rising tide — sounds more like Hansen was right.

Distributed censorship-resistant Wikipedia

Thanks to doublec, there are now distributed censorship-resistant Wikipedia mirrors in Freenet: Distributed Wikipedia Mirrors in Freenet

The current largest mirror is the Simple English Wikipedia (the obvious choice to fight censorship worldwide: it is readable with basic english skills).

With this mirror, information from Wikipedia can be accessed in high-censorship countries:

freenet:USK@m79AuzYDr-PLZ9kVaRhrgza45joVCrQmU9Er7ikdeRI,1mtRcpsTNBiIHOtPRLiJKDb1Al4sJn4ulKcZC5qHrFQ,AQACAAE/simple-wikipedia/0/

AlphaGo uses more power than 3000 humans

Update 2017-11: Alpha Go Zero consumes just about 1-2 kW. I definitely underestimated the speed of development — by around factor 20. Alpha Go Zero only consumes as much energy as 10-20 humans.

Update 2017: OpenAI used a single machine to beat a Dota champion → DENDI 1v1 vs BOT AI - TI7 DOTA 2. I may be underestimating the speed of development.

AlphaGo recently defeated the world Go champion.

Elegant commandline argument parsing on the shell

Parsing command line arguments on the shell is often done in an ad-hoc fashion, growing unwieldy as time goes by, but there are tools to make that elegant. Here’s a complete example.

I use this in the conf project (easy setup of autotools projects). It builds on the great solution by Adam Katz.

Writing a commandline tool in Fortran

Here I want to show you how to write a commandline tool in Fortran. Because Fortran is much better than its reputation — most of all in syntax. I needed a long time to understand that — to get over my predjudices — and I hope I can help you save some of that time.1


  1. After I finished my Diploma, I thought of Fortran as "this horribly unreadable 70th language". I thought it should be removed and that it only lived on due to pure inertia. I thought that its only deeper use were to provide the libraries to make numeric Python faster. Then I actually had to use it. In the beginning I mocked it and didn’t understand why anyone would choose Fortran over C. What I saw was mostly Fortran 77. The first thing I wrote was "Fortran surprises" — all the strange things you can stumble over. But bit by bit I realized the similarities with Python. That well-written Fortran actually did not look that different from Python — and much cleaner than C. That it gets stuff done. This year Fortran turns 60 (heise reported in German). And I understand why it is still used. And thanks to being an ISO standard it is likely that it will stick with us and keep working for many more decades. 

adapt plainnat bibtex natbib style to only show the url if no doi is available

Since the URL in a bibtex entry is typically just duplicate information when the entry has a DOI, I want to hide it.1

Here’s how:

EME in standards would mount enormous pressure on all free systems

→ comment to On EME in HTML5 by Tim Berners-Lee, taking a social angle to the problems of DRM via EME in web standards.

Dear Tim,

The previous commenters already addressed every technical comment I wanted to add. There is only one aspect I still feel missing here:

If you give EME your blessing, the social pressure on all free software communities to add proprietary blobs in their shipped browsers will rise enormously, because otherwise the proprietary developers will accuse them of not following the standard.

Live stream from the Guile devroom at FOSDEM 2017!

Update: Recordings are coming online at video.fosdem.org/2017/K.4.601/

Here’s the stream to the Guile devroom at #FOSDEM: https://live.fosdem.org/watch/k4601

Schedule (also on the FOSDEM page):

  • 09:45 10:30: Small languages panel Christopher Webber, Ludovic Courtès, Etiene Dalcol, Justin Cormack
  • 10:30 11:00: An introduction to functional package management with GNU Guix Ricardo Wurmus
  • 11:00 11:30: User interfaces with Guile and their application John D
Inhalt abgleichen
Willkommen im Weltenwald!
((λ()'Dr.ArneBab))



Beliebte Inhalte

sn.1w6.org news