Ploum.net En
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
January 2026
- 1 participants
- 4 discussions
THE DISCONNECTED GIT WORKFLOW
by Ploum on 2026-01-31
https://ploum.net/2026-01-31-offline-git-send-email.html
Using git-send-email while being offline and with multiple email
================================================================
accounts
========
> WARNING: the following is a technical reminder for my future self. If
you don’t use the "git" software, you can safely ignore this post.
The more I work with git-send-email, the less I find the GitHub
interface sufferable.
Want to send a small patch to a GitHub project? You need to clone the
repository, push your changes to your own branch, then ask for a pull
request using the cumbersome web interface, replying to comments online
while trying to avoid smileys.
With git send-email, I simply work offline, do my local commit, then:
> git send-email HEAD^
And I’m done. I reply to comments by email, with Vim/Mutt. When the
patch is accepted, getting a clean tree usually boils down to:
> git pull
> git rebase
Yeah for git-send-email!
Guide to setup git send-email (git-send-email.io)
https://git-send-email.io/
And, yes, I do that while offline and with multiple email accounts.
That’s one more reason to hate GitHub.
How GitHub monopoly is destroying the open source ecosystem (ploum.net)
https://ploum.net/2026-01-05-unteaching_github.html
We need to talk about your GitHub addiction (ploum.net)
https://ploum.net/2023-02-22-leaving-github.html
One mail account for each git repository
========================================
The secret is not to configure email accounts in git but to use "msmtp"
to send email. Msmtp is a really cool sendmail replacement.
In .smtprc, you can configure multiple accounts with multiple options,
including calling a command to get your password.
account 1 - pro
===============
account work
host smtp.company.com
port 465
user login(a)company.com
from ploum(a)company.com
password SuPeRstr0ngP4ssw0rd
tls_starttls off
personal account for FLOSS
==========================
account floss
host mail.provider.net
port 465
user ploum(a)mydomain.net
from ploum(a)mydomain.net
from ploum*(a)mydomain.net
passwordeval "cat ~/incredibly_encrypted_password.txt | rot13"
tls_starttls off
The important bit here is that you can set multiple "from" addresses for
a given account, including a regexp to catch multiple aliases!
Now, we will ask git to automatically use the right msmtp account. In
your global .gitconfig, set the following:
[sendemail]
sendmailCmd = /usr/bin/msmtp --set-from-header=on
envelopeSender = auto
The "envelopesender" option will ensure that the sendemail.from will be
used and given to msmtp as a "from address." This might be redundant
with "--set-from-header=on" in msmtp but, in my tests, having both was
required. And, cherry on the cake, it automatically works for all
accounts configured in msmtprc.
Older git versions (< 2.33) don’t have sendmailCmd and should do:
[sendemail]
smtpserver = /usr/bin/msmtp
smtpserveroption = --set-from-header=on
envelopesender = auto
I usually stick to a "ploum-PROJECT(a)mydomain.net" for each project I
contribute to. This allows me to easily cut spam when needed. So far,
the worst has been with a bug reported on the FreeBSD Bugzilla. The
address used there (and nowhere else) has since been spammed to death.
In each git project, you need to do the following:
1. Set the email address used in your commit that will appear in "git
log" (if different from the global one)
> git config user.email "Ploum <ploum-PROJECT(a)mydomain.net>"
2. Set the email address that will be used to actually send the patch
(could be different from the first one)
> git config sendemail.from "Ploum <ploum-PROJECT(a)mydomain.net>"
3. Set the email address of the developer or the mailing list to which
you want to contribute
> git config sendemail.to project-devel(a)mailing-list.com
Damn, I did a commit with the wrong user.email!
===============================================
Yep, I always forget to change it when working on a new project or from
a fresh git clone. Not a problem. Just use "git config" like above,
then:
> git commit --amend --reset-author
And that’s it.
Working offline
===============
I told you I mostly work offline. And, as you might expect, msmtp
requires a working Internet connection to send an email.
But msmtp comes with three wonderful little scripts: msmtp-enqueue.sh,
msmtp-listqueue.sh and msmtp-runqueue.sh.
The first one saves your email to be sent in ~/.msmtpqueue, with the
sending options in a separate file. The second one lists the unsent
emails, and the third one actually sends all the emails in the queue.
All you need to do is change the msmtp line in your global .gitconfig to
call the msmtpqueue.sh script:
[sendemail]
sendmailcmd = /usr/libexec/msmtp/msmtpqueue/msmtp-enqueue.sh --set-from-
header=on
envelopeSender = auto
In Debian, the scripts are available with the msmtp package. But the
three are simple bash scripts that can be run from any path if your
msmtp package doesn’t provide them.
You can test sending a mail, then check the ~/.msmtpqueue folder for the
email itself (.email file) and the related msmtp command line (.msmtp
file). It happens nearly every day that I visit this folder to quickly
add missing information to an email or simply remove it completely from
the queue.
Of course, once connected, you need to remember to run:
/usr/libexec/msmtp/msmtpqueue/msmtp-runqueue.sh
If not connected, mails will not be sent and will be kept in the queue.
This line is obviously part of my do_the_internet.sh script, along with
"offpunk --sync".
How I use Offpunk (by Ploum) (offpunk.net)
https://offpunk.net/workflow_ploum.html
It is not only git!
===================
If it works for git, it works for any mail client. I use neomutt with
the following configuration to use msmtp-enqueue and reply to email
using the address it was sent to.
set sendmail="/usr/libexec/msmtp/msmtpqueue/msmtp-enqueue.sh --set-from-
header=on"
unset envelope_from_address
set use_envelope_from
set reverse_name
set from="ploum(a)mydomain.net"
alternates ploum[A-Za-z0-9]*(a)mydomain.net
Of course, the whole config is a little more complex to handle multiple
accounts that are all stored locally in Maildir format through
offlineimap and indexed with notmuch. But this is a bit out of the scope
of this post.
At least, you get the idea, and you could probably adapt it to your own
mail client.
Conclusion
==========
Sure, it’s a whole blog post just to get the config right. But there’s
nothing really out of this world. And once the setup is done, it is done
for good. No need to adapt to every change in a clumsy web interface, no
need to use your mouse. Simple command lines and simple git flow!
Sometimes, I work late at night. When finished, I close the lid of my
laptop and call it a day without reconnecting my laptop. This allows me
not to see anything new before going to bed. When this happens, queued
mails are sent the next morning, when I run the first do_the_internet.sh
of the day.
And it always brings a smile to my face to see those bits being sent
while I’ve completely forgotten about them…
1
0
WHY THERE’S NO EUROPEAN GOOGLE?
by Ploum on 2026-01-22
https://ploum.net/2026-01-22-why-no-european-google.html
And why it is a good thing!
===========================
> With some adjustments, this post is mostly a translation of a post I
published in French three years ago. In light of the European
Commission’s "call for evidence on Open Source," and as a professor of
"Open Source Strategies" at École Polytechnique de Louvain, I thought it
was a good idea to translate it into English as a public answer to that
call.
Pourquoi n’y a-t-il pas de Google européen ? (ploum.net)
https://ploum.net/2023-06-27-un-google-europeen.html
European Commission issues call for evidence on open source (lwn.net)
https://lwn.net/Articles/1053107/
Google (sorry, Alphabet), Facebook (sorry, Meta), Twitter (sorry, X),
Netflix, Amazon, Microsoft. All those giants are part of our daily
personal and professional lives. We may even not interact with anything
else but them. All are 100% American companies.
China is not totally forgotten, with Alibaba, TikTok, and some services
less popular in Europe yet used by billions worldwide.
What about European tech champions? Nearly nothing, to the great sadness
of politicians who believe that the success of a society is measured by
the number of billionaires it creates.
Despite having few tech-billionaires, Europe is far from ridiculous. In
fact, it’s the opposite: Europe is the central place that allowed most
of our tech to flourish.
The Internet, the interconnection of most of the computers in the world,
has existed since the late sixties. But no protocol existed to actually
exploit that network, to explore and search for information. At the
time, you needed to know exactly what you wanted and where to find it.
That’s why the USA tried to develop a protocol called "Gopher."
At the same time, the "World Wide Web," composed of the HTTP protocol
and the HTML format, was invented by a British citizen and a Belgian
citizen who were working in a European research facility located in
Switzerland. But the building was on the border with France, and there’s
much historical evidence pointing to the Web and its first server having
been invented in France.
It’s hard to be more European than the Web! It looks like the Official
European Joke! (And, yes, I consider Brits Europeans. They will join us
back, we miss them, I promise.)
The Official European Joke (ploum.net)
https://ploum.net/the-european-joke/index.html
Gopher is still used by a few hobbyists (like your servitor), but it
never truly became popular, except for a very short time in some parts
of America. One of the reasons might have been that Gopher’s creators
wanted to keep their rights to it and license any related software,
unlike the European Web, which conquered the world because it was
offered as a common good instead of seeking short-term profits.
While Robert Cailliau and Tim Berners-Lee were busy inventing the World
Wide Web in their CERN office, a Swedish-speaking Finnish student
started to code an operating system and make it available to everyone
under the name "Linux." Today, Linux is probably the most popular
operating system in the world. It runs on any Android smartphone, is
used in most data centers, in most of your appliances, in satellites, in
watches and is the operating system of choice for many of the
programmers who write the code you use to run your business. Its
creator, the European Linus Torvalds, is not a billionaire. And he’s
very happy about it: he never wanted to become one. He continued coding
and wrote the "git" software, which is probably used by 100% of the
software developers around the world. Like Linux, Git is part of the
common good: you can use it freely, you can modify it, you can
redistribute it, you can sell it. The only thing you cannot do?
Privatize it. This is called "copyleft."
In 2017, a decentralized and ethical alternative to Twitter appeared:
Mastodon. Its creator? A German student, born in Russia, who had the
goal of allowing social network users to leave monopolies to have humane
conversations without being spied on and bombarded with advertising or
pushed-by-algorithm fake news. Like Linux, like git, Mastodon is
copyleft and now part of the common goods.
Allowing human-scale discussion with privacy and without advertising was
also the main motivation behind the Gemini protocol (whose name has
since been hijacked by Google AI). Gemini is a stripped-down version of
the Web which, by design, is considered definitive. Everybody can write
Gemini-related software without having to update it in the future. The
goal is not to attract billions of users but to be there for those who
need it, even in the distant future. The creator of the Gemini protocol
wishes to remain anonymous, but we know that the project started while
he was living in Finland.
I could continue with the famous VLC media player, probably the most
popular media player in the world. Its creator, the Frenchman Jean-
Baptiste Kempf, refused many offers that would have made him a very rich
man. But he wanted to keep VLC a copyleft tool part of the common goods.
Don’t forget LibreOffice, the copyleft office suite maintained by
hundreds of contributors around the world under the umbrella of the
Document Foundation, a German institution.
We often hear that Europeans don’t have, like Americans, the "success
culture." Those examples, and there are many more, prove the opposite.
Europeans like success. But they often don’t consider "winning against
the whole society" as one. Instead, they tend to consider success a
collective endeavour. Success is when your work is recognized long after
you are gone, when it benefits every citizen. Europeans dream big: they
hope that their work will benefit humankind as a whole!
We don’t want a European Google Maps! We want our institutions at all
levels to contribute to OpenStreetMap (which was created by a British
citizen, by the way).
Google, Microsoft, Facebook may disappear tomorrow. It is even very
probable that they will not exist in fourty or fifty years. It would
even be a good thing. But could you imagine the world without the Web?
Without HTML? Without Linux?
Those European endeavours are now a fundamental infrastructure of all
humanity. Those technologies are definitely part of our long-term
history.
In the media, success is often reduced to the size of a company or the
bank account of its founder. Can we just stop equating success with
short-term economic growth? What if we used usefulness and longevity?
What if we gave more value to the fundamental technological
infrastructure instead of the shiny new marketing gimmick used to empty
naive wallets? Well, I guess that if we changed how we measure success,
Europe would be incredibly successful.
And, as Europeans, we could even be proud of it. Proud of our
inventions. Proud of how we contribute to the common good instead of
considering ourselves American vassals.
Some are proud because they made a lot of money while cutting down a
forest. Others are proud because they are planting trees that will
produce the oxygen breathed by their grandchildren. What if success was
not privatizing resources but instead contributing to the commons, to
make it each day better, richer, stronger?
The choice is ours. We simply need to choose whom we admire. Whom we
want to recognize as successful. Whom we aspire to be when we grow up.
We need to sing the praises of our true heroes: those who contribute to
our commons.
Picture by Frans Snik of a LEGO version of the European Extremely Large
Telescope. Yes, LEGO is a European invention too.
https://commons.wikimedia.org/wiki/File:High-resolution_photo_of_the_E-ELT_…
1
0
19 Jan '26
GIVING UNIVERSITY EXAMS IN THE AGE OF CHATBOTS
by Ploum on 2026-01-19
https://ploum.net/2026-01-19-exam-with-chatbots.html
What I like most about teaching "Open Source Strategies" at École
Polytechnique de Louvain is how much I learn from my students,
especially during the exam.
I dislike exams. I still have nightmares about exams. That’s why I try
to subvert this stressful moment and make it a learning opportunity. I
know that adrenaline increases memorization dramatically. I make sure to
explain to each student what I was expecting and to be helpful.
Here are the rules:
1. You can have all the resources you want (including a laptop connected
to the Internet)
2. There’s no formal time limit (but if you stay too long, it’s a
symptom of a deeper problem)
3. I allow students to discuss among themselves if it is on topic. (in
reality, they never do it spontanously until I force two students with a
similar problem to discuss together)
4. You can prepare and bring your own exam question if you want
(something done by fewer than 10% of the students)
5. Come dressed for the exam you dream of taking!
This last rule is awesome. Over the years, I have had a lot of fun with
traditional folkloric clothing from different countries, students in
pajamas, a banana and this year’s champion, my Studentausorus Rex!
An inflatable Tyranosaurus Rex passing my exam in 2026
https://ploum.net/files/tyranosaurestudent.jpg
My all-time favourite is still a fully clothed Minnie Mouse, who did an
awesome exam with full face make-up, big ears, big shoes, and huge
gloves. I still regret not taking a picture, but she was the very first
student to take my words for what was a joke and started a tradition
over the years.
Giving Chatbots Choice to the Students
======================================
Rule N°1 implies having all the resources you want. But what about
chatbots? I didn’t want to test how ChatGPT was answering my questions,
I wanted to help my students better understand what Open Source means.
Before the exam, I copy/pasted my questions into some LLMs and, yes, the
results were interesting enough. So I came up with the following
solution: I would let the students choose whether they wanted to use an
LLM or not. This was an experiment.
The questionnaire contained the following:
> # Use of Chatbots
>
> Tell the professor if you usually use chatbots (ChatGPT/LLM/whatever)
when doing research and investigating a subject. You have the choice to
use them or not during the exam, but you must decide in advance and
inform the professor.
>
> Option A: I will not use any chatbot, only traditional web searches.
Any use of them will be considered cheating.
>
> Option B: I may use a chatbot as it’s part of my toolbox. I will then
respect the following rules:
> 1) I will inform the professor each time information come from a
chatbot
> 2) When explaining my answers, I will share the prompts I’ve used so
the professor understands how I use the tool
> 3) I will identify mistakes in answers from the chatbot and explain
why those are mistakes
>
> Not following those rules will be considered cheating. Mistakes made
by chatbots will be considered more important than honest human
mistakes, resulting in the loss of more points. If you use chatbots, you
should be held accountable for the output.
I thought this was fair. You can use chatbots, but you will be held
accountable for it.
Most Students Don’t Want to Use Chatbots
========================================
This January, I saw 60 students. I interacted with each of them for a
mean time of 26 minutes. This is a tiring but really rewarding process.
Of 60 students, 57 decided not to use any chatbots. For 30 of them, I
managed to ask them to explain their choices. For the others, I
unfortunately did not have the time. After the exam, I grouped those
justifications into four different clusters. I did it without looking at
their grades.
The first group is the "personal preference" group. They prefer not to
use chatbots. They use them only as a last resort, in very special cases
or for very specific subjects. Some even made it a matter of personal
pride. Two students told me explicitly "For this course, I want to be
proud of myself." Another also explained: "If I need to verify what an
LLM said, it will take more time!"
The second group was the "never use" one. They don’t use LLMs at all.
Some are even very angry at them, not for philosophical reasons, but
mainly because they hate the interactions. One student told me: "Can I
summarize this for you? No, shut up! I can read it by myself you stupid
bot."
The third group was the "pragmatic" group. They reasoned that this was
the kind of exam where it would not be needed.
The last and fourth group was the "heavy user" group. They told me they
heavily use chatbots but, in this case, were afraid of the constraints.
They were afraid of having to justify a chatbot’s output or of missing a
mistake.
After doing that clustering, I wrote the grade of each student in its
own cluster and I was shocked by how coherent it was. Note: grades are
between 0 and 20, with 10 being the minimum grade to pass the class.
The "personal preference" students were all between 15 and 19, which
makes them very good students, without exception! The "proud" students
were all above 17!
The "never use" was composed of middle-ground students around 13 with
one outlier below 10.
The pragmatics were in the same vein but a bit better: they were all
between 12 and 16 without exceptions.
The heavy users were, by far, the worst. All students were between 8 and
11, with only one exception at 16.
This is, of course, not an unbiased scientific experiment. I didn’t
expect anything. I will not make any conclusion. I only share the
observation.
But Some Do
===========
Of 60 students, only 3 decided to use chatbots. This is not very
representative, but I still learned a lot because part of the
constraints was to show me how they used chatbots. I hoped to learn more
about their process.
The first chatbot student forgot to use it. He did the whole exam and
then, at the end, told me he hadn’t thought about using chatbots. I
guess this put him in the "pragmatic" group.
The second chatbot student asked only a couple of short questions to
make sure he clearly understood some concepts. This was a smart and
minimal use of LLMs. The resulting exam was good. I’m sure he could have
done it without a chatbot. The questions he asked were mostly a matter
of improving his confidence in his own reasoning.
This reminded me of a previous-year student who told me he used chatbots
to study. When I asked how, he told me he would tell the chatbot to act
as the professor and ask exam questions. As a student, this allowed him
to know whether he understood enough. I found the idea smart but not
groundbreaking (my generation simply used previous years’ questions).
The third chatbot-using student had a very complex setup where he would
use one LLM, then ask another unrelated LLM for confirmation. He had
walls of text that were barely readable. When glancing at his screen, I
immediately spotted a mistake (a chatbot explaining that "Sepia Search
is a compass for the whole Fediverse"). I asked if he understood the
problem with that specific sentence. He did not. Then I asked him
questions for which I had seen the solution printed in his LLM output.
He could not answer even though he had the answer on his screen.
But once we began a chatbot-less discussion, I discovered that his
understanding of the whole matter was okay-ish. So, in this case,
chatbots disserved him heavily. He was totally lost in his own setup. He
had LLMs generate walls of text he could not read. Instead of trying to
think for himself, he tried to have chatbots pass the exam for him,
which was doomed to fail because I was asking him, not the chatbots. He
passed but would probably have fared better without chatbots.
Can chatbots help? Yes, if you know how to use them. But if you do,
chances are you don’t need chatbots.
A Generational Fear of Cheating
===============================
One clear conclusion is that the vast majority of students do not trust
chatbots. If they are explicitly made accountable for what a chatbot
says, they immediately choose not to use it at all.
One obvious bias is that students want to please the teacher, and I
guess they know where I am on this spectrum. One even told me: "I think
you do not like chatbots very much so I will pass the exam without them"
(very pragmatic of him).
But I also minimized one important generational bias: the fear of
cheating. When I was a student, being caught cheating was a clear zero
for the exam. You could, in theory, be expelled from university for
aggravated cheating, whatever "aggravated" could mean.
During the exam, a good number of students called me panicked because
Google was forcing autogenerated answers and they could not disable it.
They were very worried I would consider this cheating.
First, I realized that, like GitHub, Google has a 100% market share, to
the point students don’t even consider using something else a
possibility. I should work on that next year.
Second, I learned that cheating, however lightly, is now considered a
major crime. It might result in the student being banned from any
university in the country for three years. Discussing exam with someone
who has yet to pass it might be considered cheating. Students have very
strict rules on their Discord.
I was completely flabbergasted because, to me, discussing "What
questions did you have?" was always part of the collaboration between
students. I remember one specific exam where we gathered in an empty
room and we helped each other before passing it. When one would finish
her exam, she would come back to the room and tell all the remaining
students what questions she had and how she solved them. We never
considered that "cheating" and, as a professor, I always design my exams
hoping that the good one (who usually choose to pass the exam early)
will help the remaining crowd. Every learning opportunity is good to
take!
I realized that my students are so afraid of cheating that they mostly
don’t collaborate before their exams! At least not as much as what we
were doing.
In retrospect, my instructions were probably too harsh and discouraged
some students from using chatbots.
Stream of Consciousness
=======================
My 2025 banana student!
https://ploum.net/files/banane_exam.jpg
Another innovation I introduced in the 2026 exam was the stream of
consciousness. I asked them to open an empty text file and keep a stream
of consciousness during the exam. The rules were the following:
> In this file, please write all your questions and all your answers as
a "stream of consciousness." This means the following rules:
>
> 1. Don’t delete anything.
> 2. Don’t correct anything.
> 3. Never go backward to retouch anything.
> 4. Write as thoughts come.
> 5. No copy/pasting allowed (only exception: URLs)
> 6. Rule 5. implies no chatbot for this exercice. This is your own
stream of consciousness.
>
> Don’t worry, you won’t be judged on that file. This is a tool to help
you during the exam. You can swear, you can write wrong things. Just
keep writing without deleting. If you are lost, write why you are lost.
Be honest with yourself.
>
> This file will only be used to try to get you more points, but only if
it is clear that the rules have been followed.
I asked them to send me the file within 24h after the exam. Out of 60
students, I received 55 files (the remaining 5 were not penalized).
There was also a bonus point if you sent it to the exam git repository
using git-send-email, something 24 managed to do correctly.
The results were incredible. I did not read them all but this tool
allowed me to have a glimpse inside the minds of the students. One said:
"I should have used AI, this is the kind of question perfect for AI" (he
did very well without it). For others, I realized how much stress they
had but were hiding. I was touched by one stream of consciousness
starting with "I’m stressed, this doesn’t make any sense. Why can’t we
correct what we write in this file" then, 15 lines later "this is funny
how writing the questions with my own words made the problem much
clearer and how the stress start to fade away".
And yes, I read all the failed students and managed to save a bunch of
them when it was clear that they, in fact, understood the matter but
could not articulate it well in front of me because of the stress.
Unfortunately, not everybody could be saved.
Conclusion
==========
My main takeaway is that I will keep this method next year. I believe
that students are confronted with their own use of chatbots. I also
learn how they use them. I’m delighted to read their thought processes
through the stream of consciousness.
Like every generation of students, there are good students, bad students
and very brilliant students. It will always be the case, people evolve
(I was, myself, not a very good student). Chatbots don’t change anything
regarding that. Like every new technology, smart young people are very
critical and, by defintion, smart about how they use it.
The problem is not the young generation. The problem is the older
generation destroying critical infrastructure out of fear of missing out
on the new shiny thing from big corp’s marketing department.
Most of my students don’t like email. An awful lot of them learned only
with me that Git is not the GitHub command-line tool. It turns out that
by imposing Outlook with mandatory subscription to useless academic
emails, we make sure that students hate email (Microsoft is on a mission
to destroy email with the worst possible user experience).
I will never forgive the people who decided to migrate university mail
servers to Outlook. This was both incompetence and malice on a
terrifying level because there were enough warnings and opposition from
very competent people at the time. Yet they decided to destroy one of
the university’s core infrastructures and historical foundations
(UCLouvain is listed by Peter Salus as the very first European
university to have a mail server, there were famous pioneers in the
department).
By using Outlook, they continue to destroy the email experience. Out of
55 streams of consciousness, 15 ended in my spam folder. All had their
links destroyed by Outlook. And university keep sending so many useless
emails to everyone. One of my students told me that they refer to their
university email as "La boîte à spams du recteur" (Chancellor’s spam
inbox). And I dare to ask why they use Discord?
Another student asked me why it took four years of computer engineering
studies to get a teacher explaining to them that Git was not GitHub and
that GitHub was part of Microsoft. He had a distressed look: "How could
I have known? We were imposed GitHub for so many exercises!"
How GitHub monopoly is destroying the open source ecosystem (ploum.net)
https://ploum.net/2026-01-05-unteaching_github.html
Each year, I tell my students the following:
> It took me 20 years after university to learn what I know today about
computers. And I’ve only one reason to be there in front of you: be sure
you are faster than me. Be sure that you do it better and deeper than I
did. If you don’t manage to outsmart me, I will have failed.
>
> Because that’s what progress is about. Progress is each generation
going further than the previous one while learning from the mistakes of
olders. I’m there to tell you about my own mistakes and the mistakes of
my generation.
>
> I know that most of you are only there to get a diploma while doing
the minimal required effort. Fair enough, that’s part of the game.
Challenge accepted. I will try to make you think even if you don’t
intend to do it.
In earnest, I have a lot of fun teaching, even during the exam. For my
students, the mileage may vary. But for the second time in my life, a
student gave me the best possible compliment:
— You know, you are the only course for which I wake up at 8AM.
To which I responded:
– This is reciprocal. I hate waking up early, except to teach in front
of you.
1
0
How Github monopoly is destroying the open source ecosystem
by Ploum.net (English posts only) 05 Jan '26
by Ploum.net (English posts only) 05 Jan '26
05 Jan '26
HOW GITHUB MONOPOLY IS DESTROYING THE OPEN SOURCE ECOSYSTEM
by Ploum on 2026-01-05
https://ploum.net/2026-01-05-unteaching_github.html
I teach a course called "Open Source Strategies" at École Polytechnique
de Louvain, part of the University of Louvain.
As part of my course, students are required to find an open source
project of their choice and make a small contribution to it. They send
me a report through our university Gitlab. To grade their work, I read
the report and explore their public interactions with the project:
tickets, comments, pull requests, emails.
This year, during my review of the projects of the semester, Github
decided to block my IP for one hour. During that hour, I simply could
not access Github.
Github telling me I made too many requests
https://ploum.net/files/githubblock.png
It should be noted that, even if I want to get rid of it, I still have a
Github account and I was logged in.
We need to talk about your Github addiction (ploum.net)
https://ploum.net/2023-02-22-leaving-github.html
The block happened again the day after.
This gave me pause.
I wondered how many of my students’ projects were related to projects
hosted on Github. I simply went into the repository and counted 238
students reports in the last seven years:
> ls -l projects_*/*.md | wc -l
> 238
Some reports might be missing. Also, I don’t have the reports before
2019 in that repository. But this is a good approximation.
Now, let’s count how many reports don’t contain "github.com".
> grep -L github.com projects_*/*.md | wc -l
> 7
Wow, that’s not a lot. I then wondered what those projects were. It
turns out that, out of those 7, 6 students simply forgot to add the
repository URL in their report. They used the project webpage or no URL
at all. In those 6 cases, the repository happened to be hosted on
Github.
In my course, I explain at great length the problem of centralisation. I
present alternatives: Gitlab, Codeberg, Forgejo, Sourcehut but also
Fossil, Mercurial, even Radicle.
Radicle: peer-to-peer collaboration with Git (lwn.net)
https://lwn.net/Articles/966869/
From Git to Fossil (lucio.albenga.es)
gopher://lucio.albenga.es/0/lfa/en/articles/2025/20251112-from_git_to_fossil.txt
I literally explain to my students to look outside of Github. Despite
this, out of 238 students tasked with contributing to the open source
project of their choice, only one managed to avoid Github.
The immediate peril of centralisation
=====================================
As it was demonstrated to me for one hour, the immediate peril of
centralisation is that you can suddenly lose access to everything. For
one hour, I was unable to review any of my students’ projects. Not a
great deal, but it serves as a warning. While writing this post, I was
hit a second time by this block.
A few years ago, one of my friends was locked out of his Google account
while travelling for work at the other end of the world. Suddenly, his
email stopped working, most of the apps on his phone stopped working,
and he lost access to all his data "in the clouds". Fortunately, he
still had a working email address (not on Google) and important
documents for his trip were on his laptop hard drive. Through personal
connections at Google, he managed to recover his account a few weeks
later. He never had any explanations.
Et si vos comptes disparaissaient demain ? (ploum.net)
https://ploum.net/et-si-vos-comptes-disparaissaient-demain/index.html
More recently, Paris Buttfield-Addison experienced the same thing with
his Apple account. His whole online life disappeared, and all his
hardware was suddenly bricked. Being heavily invested in Apple doesn’t
protect you.
20 Years of Digital Life, Gone in an Instant, thanks to Apple
(hey.paris)
https://hey.paris/posts/appleid/
I’m sure the situation will be resolved because, once again, we are
talking about a well-connected person.
But this happens. All the time. Institutions are blindly trusting
monopolies that could lock you out randomly or for political reasons as
experienced by the French magistrate Nicolas Guillou.
The Judge at the End of Europe (www.project-syndicate.org)
https://www.project-syndicate.org/commentary/europe-enforcing-us-sanctions-…
Worst: as long as we are not locked out, we offer all our secrets to a
country that could arbitrarily decide to attack yours and kidnap your
president. I wonder how much Venezuelan sensitive information was in
fact stored on Google/Microsoft services and accessed by the US military
to prepare their recent strike.
Big institutions like my Alma Mater or entire countries have no excuse
to still use American monopolies. This is either total incompetence or
corruption, probably a bit of both.
The subtle peril of centralisation
==================================
As demonstrated by my Github anecdote, individuals have little choice.
Even if I don’t want a Github account, I’m mostly forced to have one if
I want to contribute or report bugs to projects I care about. I’m forced
to interact with Github to grade my students’ projects.
237 out of 238 is not "a lot." It’s everyone. There’s something more
than "most projects use Github."
According to most of my students, the hardest part of contributing to an
open source project is finding one. I tell them to look for the software
they use every day, to investigate. But the vast majority ends up
finding "something that looks easy."
That’s where I realised all this time my students had been searching for
open source projects to contribute to on Github only. It’s not that
everything is on Github, it is that none of my students can imagine
looking outside of Github!
The outlier? The one student who contributed to a project not on Github?
We discussed his needs and I pointed him to the project he ended up
choosing.
Github’s centralisation invisibilised a huge part of the open source
world. Because of that, lots of projects tend to stay on Github or, like
Python, to migrate to Github.
The solution
============
Each year, students come up with very creative ways not to do what I
expect while still passing. Last year, half of the class was suddenly
committing reports with broken encoding in the file path. I had never
seen that before and I asked how they managed to do it. It turns out
that half the class was using VS Code on Windows to do something as
simple as "git commit" and they couldn’t use the git command line.
This year, I forced them to use the command line on an open source OS,
which solved the previous year’s issue. But a fair number of the reports
are clearly ChatGPT-generated, which was less obvious last year. This is
sad because it probably took them more effort to write the prompt and,
well, those reports are mostly empty of substance. I would have
preferred the prompt alone. I’m also sad they thought I would not
notice.
But my main mistake was a decade-long one. For all those years, I asked
my students to find a project to contribute to. So they blindly did.
They didn’t try to think about it. They went to Github and started
browsing projects.
For all those years, I involuntarily managed to teach my students that
Open Source was a corner of the web, a Microsoft-managed repository of
small software one can play with. Nothing serious.
This is all my fault.
I know the solution. Starting this year, students will be forced to
contribute to a project they use, care about or, at the very least,
truly want to use in the long term. Not one they found randomly on
Github.
If they think they don’t use open source software, they should take a
better look at their own stack.
And if they truly don’t use any open source software at all and don’t
want to use any, why do they want to follow a course about the subject
in the first place?
1
0