Sign in

Johannes

@kuehlewindt.com
300 followers 714 following 126 posts

radicle.xyz, #rustlang, #decentralized, #localfirst, #Berlin He/Him

PostsRepliesMedia
Johannes @kuehlewindt.com · 28/09/2025
@swapfest.berlin 🎉
2140
Johannes @kuehlewindt.com · 11/09/2025
Experimental #CI for #rustlang projects hosted on @radicle.xyz Check out blog.liw.fi/posts/2025/c... Ambient, the CI engine in question, is maturing and could be an interesting contender as the default CI engine for radicle in the future. Learn about ambient here -> ambient.liw.fi
blog.liw.fi
callisto: free, experimental CI server, initially for Rust projects
081
Johannes @kuehlewindt.com · 26/08/2025
The butterfly in the Bluesky logo is dead and I can’t unsee it ever since reading this article: www.emilydamstra.com/please-enoug...
emilydamstra.com
Please, enough with the dead butterflies! - Emily S. Damstra
We all have pet peeves, even though there's a lot going on in the world that makes them pretty insignificant. While acknowledging that there are many more
050
Johannes @kuehlewindt.com · 14/08/2025
For all the fans of #jj-vcs 👇
040
Johannes @kuehlewindt.com · 11/08/2025
Time to move to @radicle.xyz ✨
060
Johannes @kuehlewindt.com · 02/08/2025
my talk from web3summit is up: youtu.be/W2FgDdmIyYA?... I've timestamped the end where I do a short demo of radicle and radicle desktop - but the quality is kind of bad, so I should probably do a proper screen recording sometime soon
youtu.be
Rethinking Developer Infrastructure - Johannes Kühlewindt - Web3 Summit 2025
YouTube video by Web3 Foundation
030
Johannes @kuehlewindt.com · 29/07/2025
After yesterdays Hacker News front page. Congrats for the achievement, iroh is doing great stuff, check it out!
040
Johannes @kuehlewindt.com · 26/07/2025
👇
020
Johannes @kuehlewindt.com · 23/07/2025
New Post on the @radicle.xyz blog by liw.fi. Using radicle with the ambient CI engine for #rustlang projects. Hands on and deeply technical. radicle.xyz/2025/07/23/u...
radicle.xyz
Radicle
Sovereign code infrastructure.
071
Reposted by Johannes
Daniel Norman @norman.life · 17/07/2025
Are you cypherpunk? @kuehlewindt.com at @web3summit.com
0166
Johannes @kuehlewindt.com · 07/07/2025
You can clone the archives from github.com/cryptoanarch... and use www.recoll.org for some #localfirst full text search if you are into that kind of stuff
recoll.org
Recoll
Recoll is a desktop document search application for Unix, Linux, Microsoft Windows and MacOS, based on the Xapian search engine library.
010
Johannes @kuehlewindt.com · 07/07/2025
That quote (1994) really captures my feelings around navigating content moderation in decentralized networks. The #cypherpunk mailing list archives are full of conversations that feel more relevant than ever.
100
Johannes @kuehlewindt.com · 07/07/2025
> We are not obligated to let any lunatic in the world use the network that we've painstakingly set up [..] I don't think we need to show how anti-authoritarian we are by putting out a welcome mat for saboteurs, provocateurs, or whoever. mailing-list-archive.cryptoanarchy.wiki/archive/1994...
mailing-list-archive.cryptoanarchy.wiki
13b21f30614aa5354574e599c3580814397c8f3854665aa493f479f608441e0c
Arise, you have nothing to lose but your barbed wire fences!
110
Reposted by Johannes
Brooklyn Zelenka @expede.wtf · 01/07/2025
It didn't work for me even a few weeks ago on a fresh Chrome download — tried now and it works 🎉 Finally: Ed25519 support in all major browsers (Chrome was the holdout) Thanks to @burrito.space , @igalia.com , @protocollabs.bsky.social & many others for ushering this multi-year process through 👏
A screenshot of caniuse.com showing Ed25519 support in all major browsers, importantly now including Chrome!
310528
Johannes @kuehlewindt.com · 27/06/2025
@protocol.berlin recordings are up at watch.protocol.berlin If you wanna discuss content moderation based on a trust graph, you should check out watch.protocol.berlin/65a90bf47932... 😉
watch.protocol.berlin
Moderation is not a bad word: Towards Decentralised Content Moderation in P2P-Networks
Moderation in peer-to-peer networks is often seen as incompatible with decentralization. Healthy, resilient distributed systems need tools to reduce spam and harmful behavior - without central authori...
1100
Johannes @kuehlewindt.com · 24/06/2025
I'm going to speak at @web3summit.com in Berlin I already saw @norman.life is also going to be presenting ✨ #developer #infrastructure #decentralised
Rethinking Developer Infrastructure: Decentralized and Democratized. Speaker announcement (Johannes Kühlewindt - web3summit 2025)
073
Johannes @kuehlewindt.com · 14/06/2025
Berlin showing its best side ☀️
010
Johannes @kuehlewindt.com · 13/06/2025
Recordings should on watch.protocol.berlin later
watch.protocol.berlin
StreamETH
The complete solution to host your hybrid or virtual event.
120
Johannes @kuehlewindt.com · 13/06/2025
I have another (different) talk tonight at lu.ma/7kts2ajf
lu.ma
Rad New World · Luma
Years of heads-down building have led to this moment. While the broader industry drifts into dark waters, we have been quietly building alternatives. Get ready…
120
Johannes @kuehlewindt.com · 13/06/2025
What an exciting day! Check it out 🖥️
190
Johannes @kuehlewindt.com · 13/06/2025
Thanks for coming!
240
Johannes @kuehlewindt.com · 10/06/2025
One of my favourite talks from the conference. @aaronboodman.com is a great speaker and the performance demo was pretty impressive.
030
Reposted by Johannes
Lorenz Leutgeb @lorenz.leutgeb.xyz · 08/06/2025
Sweet. Look at my fancy verification methods: plc.directory/did:plc:za67... I want to make this available more broadly via web app but am running into obstacles, see github.com/bluesky-soci...
plc.directory
031
Johannes @kuehlewindt.com · 06/06/2025
Perfect, then @lorenz.leutgeb.xyz can also join
000
Johannes @kuehlewindt.com · 06/06/2025
Sounds good. A couple of us are also in Berlin next week for protocol berg if you'd happen to be there as well.
120
Johannes @kuehlewindt.com · 06/06/2025
Exciting, ed25519 keys work now as did plc verification methods. This is great for @radicle.xyz users, because #radicle identities are just ed25519 key pairs. github.com/bluesky-soci...
github.com
Relaxing DID PLC Verification Method Constraints, June 2025 · bluesky-social atproto · Discussion #3928
We’ve made a minor change to the PLC Directory service, with the aim of expanding compatibility with non-atproto apps and services: “verificationMethod” keys can now be almost any key type, includi...
0143
Johannes @kuehlewindt.com · 05/06/2025
Advice really compresses poorly. “Talk to your users” is a true statement and good advice. But you won’t really understand after doing thousands of mistakes, learning a ton and in the end compressing all of your learnings into a simple: “Yeah, I guess we should just talk more to our users”.
030
Johannes @kuehlewindt.com · 02/06/2025
> 106 commits by 16 contributors 📈 Congrats to everyone involved
020
Reposted by Johannes
Rūdolfs Ošiņš @osins.bsky.social · 02/06/2025
Thanks for the encouragement and tip on writing blog posts @burrito.space! First post is out now 👉 www.radworks.garden/blog/001-rad...
radworks.garden
How we used Radicle with GitHub Actions
Quick guide to trying Radicle without dropping GitHub or whatever CI you’re using.
153
Johannes @kuehlewindt.com · 01/06/2025
Which post was it?
110
Johannes @kuehlewindt.com · 01/06/2025
See you at Protocol Berg ✨
0113
Johannes @kuehlewindt.com · 27/05/2025
Lots of fun at @localfirstconf.com, but it's always so hard to recognise people just based on their online profile pictures! @erlend.sh @bumblefudge.com
170
Johannes @kuehlewindt.com · 25/05/2025
This is how they got into the training data
020
Johannes @kuehlewindt.com · 24/05/2025
TIL what pee is serverfault.com/a/96259
serverfault.com
Linux/Debian - What does 'pee' in moreutils do?
I recently discovered the 'moreutils' package in Debian (and Ubuntu). It's a collection of convenient unix tools. One of the commands is 'pee'. The man page says: pee is like tee but for pipes.
130
Johannes @kuehlewindt.com · 24/05/2025
Great, yeah if it’s already permissive you’d only need to add it and your peers to the allow list and explicitly connect in case you aren’t.
000
Johannes @kuehlewindt.com · 24/05/2025
I see. If all the repositories are public, that’s the easiest thing to do. You’d just need the extra steps if you were to use private repos.
100
Johannes @kuehlewindt.com · 24/05/2025
The team experience currently involves issuing commands on a team node via ssh, running a private network for direct p2p connectivity or tor. But radicle.zulipchat.com is super responsive and helpful so you get help with most challenges. What else is missing for the team wide experience?
100
Johannes @kuehlewindt.com · 23/05/2025
State is diverging over time from what developer thought the state would be. Or in short: State :(
010
Johannes @kuehlewindt.com · 22/05/2025
Mermaid if you like to compile your diagrams. Also a bit more modern than GraphViz
020
Johannes @kuehlewindt.com · 21/05/2025
Really hyped for @localfirstconf.com! Who else is going to be there?
562
Johannes @kuehlewindt.com · 18/05/2025
The government ordered ban of the Microsoft Outlook account of a political opponent should be a wake up call everyone. We need digital sovereignty.
011
Johannes @kuehlewindt.com · 14/05/2025
> In a move that surprises absolutely noone, GitHub now requires users to login in order to browse public repositories (including open source projects). After a few (~10) requests, you get blocked infosec.exchange/@tomgag/1145... @radicle.xyz @tangled.sh forgejo
infosec.exchange
Tommaso Gagliardoni (@tomgag@infosec.exchange)
Attached: 1 image In a move that surprises absolutely noone, GitHub now requires users to login in order to browse public repositories (including open source projects). After a few (~10) requests, yo...
040
Johannes @kuehlewindt.com · 12/05/2025
about.ondora.xyz returns a 404. I’d be curious to see what it is. So a paragraph, or tagline on the landing page would be great. Congrats on the clarity otherwise!
about.ondora.xyz
100
Johannes @kuehlewindt.com · 12/05/2025
I’m not saying you should develop all your web apps in vanilla js. But maybe you could. Some of the good ideas of the last 10 years in frameworks have become open standards. plainvanillaweb.com #web #development #javascript
plainvanillaweb.com
Plain Vanilla
An explainer for doing web development using only vanilla techniques.
081
Johannes @kuehlewindt.com · 11/05/2025
It’s sometimes helpful though because otherwise you couldn’t just add type Width = u8; and type Height = u8; but they are more for readability than actual type checking. Hence alias would be a better name than type I guess
010
Johannes @kuehlewindt.com · 11/05/2025
That’s the difference between structural and nominal typing. You’ll need to create a new type for the type to be different. Type just creates an alias which points to the same type. Definitely can lead to errors like you’ve shown
110
Johannes @kuehlewindt.com · 10/05/2025
If you are using css variables properly, adding dark mode should just be one @media (prefers-color-scheme: dark) away
120
Johannes @kuehlewindt.com · 09/05/2025
Things you find in the streets of #Berlin A good ol’ Fortran programming manual full of wisdom. “Remember: Tests can only ever show you the presence of errors, they can never proof their absence” (Dijkstra) Let’s see how much more wisdom there is in here. #fortran #programming #testing
FORTRAN 77 book - 4th edition 1987A page of the book in German. “Before integrating modules, they need to thoroughly get tested ..”

Suggestions for how to better test:
* Separate the person writing the tests and the person writing the code
* Separate between blackbox and white box tests
* Tests should replicate the list of requirements
050
Johannes @kuehlewindt.com · 08/05/2025
👆the screenshot is from Bluesky btw
000
Johannes @kuehlewindt.com · 08/05/2025
(() => {let entries = Object.entries(Array.from(document.querySelectorAll("*")).reduce((acc,el) => {acc[el.tagName] = (acc[el.tagName] || 0) + 1; return acc},{})); entries.sort((a,b) => b[1] - a[1]); console.log(entries) })() Counts all elements by tagname. Most modern sites do poorly #javascript
A list of html elements and their count - 11.000 divs in that example. Buttons and image are used.
110