Andrey Petrov

@shazow.net

A doodler and computerer. I like permissive/permissionless open source, smart contracts, p2p systems, room-scale VR, and NixOS. 🇨🇦 Also on: https://shazow.net https://github.com/shazow https://farcaster.id/shazow.eth

Vibecoding is not the future, it is a commoditization of the past. The future of software engineering is building robust bug-free software, in a world where the cost of each bug is dramatically higher than before. The "lean Ethereum" megaproject is an example of what this looks like.

How open source projects leak the top of the funnel: Anyone who worked at a tech company with a license policy (any company that builds software) has muscle memory to look for a few popular licenses. 1. Click project link 2. Glance at license 3. Not a license you use all the time? Close link

The only useful distinction between slop or not is whether we're committing to maintain the thing. If it's disposable and going to rot in a few weeks, then it's slop (whether written by meat or otherwise). If it's reviewed and someone commits to owning it, then it's fine. bsky.app/profile/shaz...

Andrey Petrov@shazow.net · 9mo ago

PSA for the open source maintainers in the house: Big undesirable drive-by haphazard PRs are not new. Maybe AI is making them more common, but IMO the correct way to handle them rests on whether we're willing to maintain this code or not, regardless if it's written by vibes or meat. Eg from 2018:

Screenshot of a Github PR where the contributor submitted a large inventory of changes and was politely declined.

## PR body (+340 lines)

Added new rank: Administators (or masters). This rank can add or delete operators, but cannot add or remove another administrators. Administrators rank is designed by public key on server startup.
Added "vim mode". With this mode you can use commands as ':' instead of '/'. As you can see in the code, the Prefix parameter of Command structure was changed by a neutral parameter for future introductions of prefixes.
New Help function. This function add help for admin rank.
Added the following commands:
setnick: Administrators can change the nick of another user.
private: Users can stablish privates conversations. This conversations are permanent until they execute endprivate command.
endprivate: Finish private conversation.
welcome: Prints motd. Only admins can execute this.
whois: In whois only admins can see ip.
delop: Allow admins to delete an operator (or moderator as is mentioned in some parts of the code).
Changed historyLen and roomBuffer vars.
In cmd tool have been added fsnotify to update public key files (admin and moderator public key files). This is to prevent to restart the server everytime we want to add an administrator.
Added new prompt mode. In this mode you can see in which room you are talking. As default is 'general'. If you start private conversation the room will be the name of the another user. This part has been introduced for future implementations.
As I said before now exists private conversations (unlike msg command).


## Response

Hey, I'm glad you're having fun with the codebase and building what you need! I'd rather you kept these changes on your own repo.

I added your fork here so other people can find it: https://github.com/shazow/ssh-chat/wiki/Interesting-forks

did:cow: Another idea to billionaire-proof ATProto IDs, also "art of using a blockchain without using a blockchain". Blockchain-managed wrapper ID, no tx to create, points to a did:plc/did:web but you can move it if something goes wrong. Got carried away and made a resolver and front-end cow.watch

did:cow

cow.watch

Edmund Edgar@goat.navy · last yr.

Wrote up an idea to improve the DID:PLC system to protect us from the inevitable corporate enshittification phase when the centralized server stops serving mirrors for a bit then starts screwing us over. It's kind of "art of using a blockchain without using a blockchain" github.com/edmundedgar/...

🛜 wifitui v0.11.0 is released! Do you dream of managing your wifi in a terminal? Now is your time. Made for Linux, but has experimental macOS support! Please open an issue if it can be improved. :) It even has a non-interactive mode for your beloved scripts/molts. github.com/shazow/wifit...

Screenshot of wifitui showing a bunch of mocked funny wifi names in a TUI.Output of `wifitui --help`, showing the non-interactive mode with commands like connect, list, radio, show, tui.WiFi connection details, includes a QR code for phone sharing.

There's only a few ways to deal with attacks on permissionless networks: 1. Increase the cost to the attacker 2. Reduce the cost to the defender 3. Reduce the value to the attacker

Today, @bsky.app + @atprotocol.dev devs can plug into XMTP to give users what they've been asking for: quantum-encrypted, secure group chats that scale to millions. With our XMTPID identity model, it's finally here. 1/5

I see people debating whether an AI agent will ever "try to escape a container" but that is the wrong concern. The agent will be tricked into installing a malware dependency designed to escape the container. Even with CVEs patched many months ago, at scale, enough people will be impacted.

Annual urllib3 report is out! Illia is taking over as lead maintainer, facilitated our first professional security audit, and we continue to raise funding for work on HTTP/2. Gentle reminder to ask your employer to help fund urllib3 work if you rely on Python. :) volochii.dev/blog/urllib3...

urllib3 entered the "Billion-a-Month" club in 2025

Welcome to the 2025 annual report for urllib3. I’m Illia, and this is my first time writing this update for the second most downloaded Python package. Long-time readers will recognize these reports fr...

volochii.dev

Blindly accepting PRs without the prompt is like blindly implementing features users ask for without understanding their underlying needs. Users usually ask for less pain and more pleasure. It's the maintainer's job to dig deeper, read between the lines, and find the cause/utility behind the ask.

Armin Ronacher@mitsuhiko.at · 7mo ago

Weekend thoughts on Gas Town, Beads, slop AI browsers, and AI-generated PRs flooding overwhelmed maintainers. I don't think we're ready for our new powers we're wielding. lucumr.pocoo.org/2026/1/18/ag...

❌ Social Network ❌ Social Media ✔️ Social Venue it's time we change our vocabulary, our words have become encumbered with business models when we really want to talk about a place that we visit for the people--a social venue.

are there any ongoing discussions around adopting did:ethr (or a new smart contract-based DID primitive) as a decentralized alternative to did:plc? seems like a great fit

hmm, wifitui got added to homebrew, but darwin/macOS backend support is an entirely vibecoded slop demo i made for my apple friends to be able to see what i'm working on, it barely works. would love for someone with a macOS device to help maintain the darwin backend... 👉👈 github.com/shazow/wifit...

wifitui/wifi/darwin/darwin.go at main · shazow/wifitui

Fast featureful friendly wifi terminal UI. 🛜✨. Contribute to shazow/wifitui development by creating an account on GitHub.

github.com

PSA for the open source maintainers in the house: Big undesirable drive-by haphazard PRs are not new. Maybe AI is making them more common, but IMO the correct way to handle them rests on whether we're willing to maintain this code or not, regardless if it's written by vibes or meat. Eg from 2018:

Screenshot of a Github PR where the contributor submitted a large inventory of changes and was politely declined.

## PR body (+340 lines)

Added new rank: Administators (or masters). This rank can add or delete operators, but cannot add or remove another administrators. Administrators rank is designed by public key on server startup.
Added "vim mode". With this mode you can use commands as ':' instead of '/'. As you can see in the code, the Prefix parameter of Command structure was changed by a neutral parameter for future introductions of prefixes.
New Help function. This function add help for admin rank.
Added the following commands:
setnick: Administrators can change the nick of another user.
private: Users can stablish privates conversations. This conversations are permanent until they execute endprivate command.
endprivate: Finish private conversation.
welcome: Prints motd. Only admins can execute this.
whois: In whois only admins can see ip.
delop: Allow admins to delete an operator (or moderator as is mentioned in some parts of the code).
Changed historyLen and roomBuffer vars.
In cmd tool have been added fsnotify to update public key files (admin and moderator public key files). This is to prevent to restart the server everytime we want to add an administrator.
Added new prompt mode. In this mode you can see in which room you are talking. As default is 'general'. If you start private conversation the room will be the name of the another user. This part has been introduced for future implementations.
As I said before now exists private conversations (unlike msg command).


## Response

Hey, I'm glad you're having fun with the codebase and building what you need! I'd rather you kept these changes on your own repo.

I added your fork here so other people can find it: https://github.com/shazow/ssh-chat/wiki/Interesting-forks

is there a vaguely standard lexicon for making chat rooms on atproto? a small part of me wants to make ssh-chat 2.0 but with atproto as a federating backend