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 and run the installer. It’s fast and easy.

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.

And thank you for that list!

Let’s go through these 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 charity, how can it be illegal?

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:


AlphaGo uses more power than 3000 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. Go was thought to be unbeatable for computers, but machine learning cracked it.

This year, AlphaGo will challenge multiple players — and support players at the Future of Go Summit in Wuzhen, China.

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 it 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 that Fortran is 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 being an ISO standard it is likely that it will stick with us and keep working 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

Here’s the stream to the Guile devroom at #FOSDEM:

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

News of the day — and using Freenet as decentralized, pseudonymous communication backend for applications

This is a proposal I wrote for the NLnet Open call for funding 2016-12. It got into the short list but was not selected, so I’m sharing it here. Maybe it spikes your interest or serves as inspiration for something exciting you want to realize with Freenet. I still plan to do this, but in hobby-time it will likely take a few years to realize instead of the 6 months I had planned. Initial work is available in pyFreenet/

The project


Organize! … That’s the thing that has a chance of preventing all of this, and of saving the most lives when that fails. — Yonatan Zunger

I’m not sure it is a good idea to reply to this article. I am doing it anyway, because it’s already on record that I read this article. Likely even at what pace I read it.

Thank you for this article, Yonatan Zunger. This is frightening, but in an important way. And organized well enough that the essential ideas stick. Important ideas.

With images of cute animals. Added with reason.

What “Things Going Wrong” Can Look Like

Reading deeply recommended.

Building the darknet one ref at a time

Freenet Logo: Follow the RabbitBuilding the darknet one ref at a time. That’s what we have to do. If you invite three people⁰ to Freenet and help those of your friends with similar interests to connect¹², and when the people you invited then do the same, we get exponential growth.

⁰: To invite a friend into Freenet, you can send an email like this:
    Let us talk over Freenet, so I can speak freely again.

¹: Helping your friends to connect works as follows:

In Circles / The memory of time

I feel the time pass in our circles,
each year another one changed,
a head has turned white,
a hand has gone wry,
growing older as time passes by.

In our circle the time is a slide-show,
each year adds a picture or two,
and our memories in vivid colors
show the changes within me and you.

Renaming a Mercurial branch with the evolve extension

Short version (rename from $OLD to $NEW):

ROOT="$(hg id -qr 'first(roots(branch('$OLD')))')"
MSG="$(hg log -r $ROOT -T '{desc}')"  

hg update $ROOT
hg branch $NEW
hg commit --amend -m "$MSG"
hg evolve --all

Mercurial records in which named branch a commit was created. This can be inconvenient when you choose temporary branch names like "foo" or "justworkdamnit".

The evolve extension enables safe, collaborative history editing which removes this inconvenience while preserving the reliability guarantees of Mercurial.

Here I show in a quick example how to rename a branch in Mercurial using the evolve extension.

You can use this method for all changes which you did not transfer elsewhere yet (they must be in draft or secret phase).

Note (2016): The evolve extension is still in testing. Do not use it for production yet. If you want to help stabilizing it, please join evolve-testers. I’ve been using it for more than a year, but I know how to fix things when I hit a bug in the evolve extension.

Thanks for all the fish

AGU publications published "The world's biggest gamble", a short commentary on how to go on with climate change.

I am hard pressed not to become sarcastic. Not because the commentary is wrong. It’s spot on. But because we, as a species, are …

I’ll stop speaking my mind for now. Let’s hope that hope wins against frustration and our children don’t have to pay too dearly for the idiocy of my generation and the generation before.

Oh well, Happy Halloween and enjoy Samhain.

Replacing man with info

GNU info is lightyears ahead of man in terms of features, with sub-pages, clickable links, topic-spanning search, clean html- and latex-export and efficient interactive navigation.

But man pages are still the de-facto standard for getting quick information on a GNU/Linux system.

This guide intends to help you change that for your system. It needs GNU texinfo >= 6.1.

Update: If you prefer vi-keys, adjust the function below to call info --vi-keys instead of plain info. You could then call that function iv

Storm through Rock

To the melody of Firesoul by Aryana. Text written 2016 by Draketo (Arne Babenhauserheide). A filk on Soul of Wind, for life is change and change reflects in living songs.

  e                        G
I sigh in the wind, for my soul wants to fly,  
   a                e             D
to wing through the storm just to look at the sky  
  e                        D           e
but choices are made and I stand by my word,
    a             e       D         e
and don’t care if anyone but me has heard.

I move on my path, I’ve chosen my way,
each crossing takes possible futures away,
but never to choose just worsens my need,
and a choice fast retracted does not make a street.

Soul of Wind

To the melody of Firesoul by Aryana. Text written around 2007 by Draketo (Arne Babenhauserheide).

  e                           G
I dance with the wind, for my soul needs to fly,  
  a                e             D
I move through the storm just to look at the sky  
  e                      D           e
I stay of my own will, I need to fly free,  
    a            e           D           e
and just one can bind me and that one is me.

I crave for the gusts, the wind on my wings,
In flight there’s no border, no queens and no kings,
I go where I want and you can’t keep me in,
I need to stay moving, leave friends and leave kin.

I know where I’m going, I’ve chosen my way,
Must heed only myself, whatever you say,
Don’t mourn for my passing, we might meet again,
just savor each moment, for struggling’s in vain.

I w̶a̶s̶ t̶a̶r̶g̶e̶t̶e̶d̶ got hit by an attack on GnuPG/PGP

Update: Might not actually be targeted. See Evil 32. Thanks to Ximin Luo for giving me more peace of mind!

Update: I’m not the only one hit by this. Here’s a conversation on GNU social with more people hit - though no one else reported yet having two keys faked and cross-signed.

Update: At the very least you should do this: echo keyid-format long >> ~/.gnupg/gpg.conf

On the 29th of August a colleague asked me “which key should I use to encrypt to you?” I was confused, because I only have one key for that email address. So he showed me the keys he saw:

$ gpg2 --list-keys --fingerprint arne.babenhauserheide
pub   2048R/A70DA09E 2011-10-07 [expires: 2016-10-05]
uid                  Arne Babenhauserheide <>
sub   2048R/39829E5F 2011-10-07 [expires: 2016-10-05]

pub   2048R/A70DA09E 2014-06-16 [revoked: 2016-08-16]
uid                  Arne Babenhauserheide <>

pyFreenet 0.4.1 with auto-spawn support in fcpupload

I just put up a new pyFreenet release (github):

If you have Python3 and pip >= 8 you can get it with pip3 install -U --user --egg pyFreenet3. It provides a cleaned up fcpupload script with --spawn support (requires GNU/Linux):

pip3 install -U --user --egg pyFreenet3
echo 1 > testfile
fcpupload --spawn --fcpPort 9486 testfile 

If you do what you love doing, it becomes what you are good at

comment to You’re Not Meant To Do What You Love. You’re Meant To Do What You’re Good At. by Brianna Wiest, who arguments that the skills of people are "a blueprint of their destiny". For support she describes experience with people who try to do something they do not actually enjoy doing.

This whole argument sits on the assumption that skills develop somehow on their own.

Skills develop, because you use them. So if you do what you love doing (note the nuance!), then — except in rare cases — this becomes what you are good at.

Are there 10x programmers?

→ An answer I wrote to this question on Quora.

Software Engineering: What is the truth of 10x programmers?
Do they really exist?…

Let’s answer the other way round: I once had to take heavy anti-histamines for three weeks. My mind was horribly hazy from that, and I felt awake only about two hours per day.

Inhalt abgleichen
Willkommen im Weltenwald!

Beliebte Inhalte news