Go on wplace and guess from the drawings where they live. Apparently it’s full of femboys and furries where I live, but I haven’t found any yet
Go on wplace and guess from the drawings where they live. Apparently it’s full of femboys and furries where I live, but I haven’t found any yet
That’s also slower than most of the stuff you could come up with, it is so slow that there is no hyperoperation fast enough to describe it. There were other approaches that were almost worse though, like “the function is a switch-case that returns false by default. As complaint tickets are opened, more cases get added to the switch-case”
Please don’t do that, I was stupid when I wrote that. But still, in very dynamic languages like python or js everything is an object, including functions, so you can just do object stuff on them.
The implementation is not very exciting, I capture a variable in python. It could have been done more cleanly.

The proof is this. But, I could have made mistakes, it was many years ago.

Note that in python you’ll never be able to run is_even(5) the stack cannot handle it
Edit: daaaamn, that variable is ugly as hell. I would never do things like that now.
For a time on Reddit (some years ago when I still used it) there was a trend of finding the worst way of implementing is_even(x: int) -> bool. My contribution to that was a function that ran Ackerman(x,x) flipping a Boolean at every iteration, and check if it was true or false at the end.
It works btw, I will find the proof later


my cheap ass salvaged speakers. I got them from a friend who got them from her father who got them from a school janitor who got them from a school that was throwing them out. Each of those step did some “repair”, until they got to me and my roommate, and we undid every previous “repair”. we are still using them
What did it say originally?
Nah, it specifically says dumb boys, not boys in general
Maybe ask for a demonstration, hands-on experience is always the best way of learning
Wouldn’t it be cool tho? You could go up to a tree that’s super old and ask it about the world, and it would take an entire day to spell a word in a language you don’t understand. And house plants would be chit chatting and making all kinds of noise inaudible to us, kinda like WiFi, but with sound instead of light. It’s like a fantasy setting
Is that the issues your project is solving?
That’s exactly it, and also the fact that git doesn’t follow symlinks. Just a word of warning, If you are still inexperienced I suggest you run my tool manually instead of automating it with git hooks, as it is inherently less secure. In the post I linked in the description you can see some of the precautions I took to make it more secure. Still, running it manually is fine.
Feel free to give some feedback if you start using the tool 🙂


Noooooo 😭
It’s not the kind of validation I do tho 🤓😉


For my computer science internship I just dodged a drone-shaped bullet… I’m working on abstract verification of access policies instead
Yes, that was one of the tools I considered before making this. I do not remember the precise detail on why, but much like gnu stow is only good for versioning user dotfiles and not system config. Etckeeper is good for storing either your system config files or user’s dotfiles, but not both at the same time. copicat doesn’t care what you use it for because you explicitly tell it all the locations and permissions that you want.
Yeah, it’s cool, people are mostly looking for something like your usecase. I got suggested stow or stow-like tools a lot when exploring this. And when they understood what I wanted, they just suggested ansible… Which would work when starting from scratch, but wasn’t right for me. I made copicat mostly because I am actually using it, and then decided to make it public because really I didn’t find anything like it.
Say you want to store /etc/ufw/sysctl.conf which is owned by root:adm and has permission 644 in your repo, but also /etc/ntfy/server.yml which is owned by ntfy:ntfy with permissions 664. How do you keep track of this with gnu stow?
That is a good question. I have considered using gnu stow before building this. But there’s a couple of problems with that.
Git doesn’t follow symlinks, it stores them as links in the repo, so your only option is to keep the files in the repo, and symlink from the config file location to the repo. This is fine for user config files (like from your .config folder), but if you want to keep system config files (like those from /etc) then the git process needs to run as root to modify those files, because symlinked files share permissions and ownership. And even then, git will always create everything as root because it only tracks permission bits, not ownership, so you will need to constantly fix up ownership of your files.
With this tool instead you explicitly tell it the ownership and permission of files, and it takes care of that for you (it still needs root permissions of course).
Who would buy a transphobic Christmas card? Even if you are a conservative, what’s the point of a transphobic Christmas card, what does it have to do with festivity? Like, you gift it to friends and family and they go “oooooh, this is so hateful! merry Christmas!”