modern programming is like,

"if you're using bongo.rs to parse http headers, you will need to also install bepis to get buffered read support. but please note that bepis switched to using sasquatch for parallel tokenization as of version 0.0.67, so you will need the bongo-sasquatch extension crate as well."

old-time programming is like,

"i made a typo in this function in 1993. theo de raadt got so angry he punched a wall when he saw it. for ABI compatibility reasons, we shan't fix the typo."

a lot of people on here are fans of bepis.rs

that's not a real website but it could be

it could be your website

@saddestrobots no, yeah. you have captured it.
@saddestrobots just call it creat, nobody’s gonna use it outside of bell labs anyway

@saddestrobots tired: they called it creat because of a linker limitation

wired: they called it creat so the syscall definitions would line up in a source listing and instantly regretted it when the Berkeley kids started mocking them

inspired: they called it creat because it creats files

@zzt @saddestrobots in B it was just reat, creat is the C version
@zzt @saddestrobots Two 'e's in a single word? In THIS economy??

@Andres4NY @zzt @saddestrobots linker error: duplicated tokens in definition:
`create`
` ^ ^`

If only markdown worked so I could point to both Es 

@saddestrobots Theo is still kinda like that TBH, though he is probably more likely to just address you using an insulting nickname from this day forward than get physically destructive. Moving mountains is still generally easier than breaking ABI compatibility.

But yeah apart from that particular bubble modern programming is a perpetually raging tyre fire.

@saddestrobots modern web programming is like:

use React...have the React core team change their mind each year and then gas lights everyone into thinking, "no yeah this was always the plan."

@saddestrobots "We're dropping this API feature as it looks like only one project relies on it." That's my project!!! Now I've got to spend a month hacking the hackiest hack
@saddestrobots Meanwhile, the build systems that they use.
@scottmichaud @saddestrobots when build systems are used as tools of monopoly they necessarily blur together and become faceless and of course the ones that do that end up sticking around long enough to annoy everyone else and the cycle continues
@saddestrobots me, every time I accidentally access a bsd system
@saddestrobots @scottmichaud my solutions to search stuff are:
find | grep bla
find | xargs grep bla
It doesn’t work of BSD and OS X. I try it at least five times a day as I use a Mac everyday. Sure I accept it was made to work this way, but really, would it hurt to allow me to type two characters less?
@chexum @saddestrobots @scottmichaud gave up on maintaining compatibility for scripts and started using #guile as an overall replacement

@morenonatural @chexum @saddestrobots I usually end up writing a python script or an executable and just running those on the command line.

One time I was asked to parse JSON in a bash script. They recommended that I used sed. I normally do as asked, but that time I just wrote a Python script because all the build servers had it. They accepted it, though. They apparently never thought of it.

@saddestrobots @scottmichaud
Yes. I try to work with the subset that is in common for my small projects, but downloaded code is always a crapshoot.

@saddestrobots @scottmichaud particularly ps!!

GNU ps seems to have an extremely weird idea of what "BSD ps" is and refuses to operate in "BSD mode" if you use dashes on your options; it just flat out chokes if you use some combinations of options, going "noooo you can't mix GNU and BSD styles!!". Meanwhile OpenBSD ps uses dashes on options perfectly fine and doesn't have any complications like this at all.

@saddestrobots @scottmichaud what's BSD coreutils? (I don't think I saw this in the FreeBSD ports tree, there's only the GNU one?)

@saddestrobots @scottmichaud

"find" vs. "find ." *grr*
My blood boils everytime. :<

@saddestrobots @scottmichaud just use the posix specs and it'll probably work in both most of the time, smh
@scottmichaud @saddestrobots it's difficult to Make new ones

@saddestrobots and then people wounder why I want just simple executeables ffs...

https://github.com/OS-1337/spm

GitHub - OS-1337/spm: simple package manager - the package manager for OS/1337

simple package manager - the package manager for OS/1337 - OS-1337/spm

GitHub
@saddestrobots Kinda makes me wonder about who invented version numbers, and when, and whether they anticipated the depth of the logical labyrinth they'd seeded.
@saddestrobots so that's why openbsd work under the "fuck backward compatibility" mentality...

@saddestrobots

also "the comments contain a recipe for french onion soup passed down by my dad's grandmother that, if deleted, cause the project to stop compiling for some reason. we have investigated at length but have no idea why. possibly a segment issue. delete/modify the comments at your own risk"

@saddestrobots Funny and I agree with the overall sentiment, but #OpenBSD breaks ABI with every release.

I don't know Theo de Raadt, so can't say whether he would punch a wall, but he would likely have responded so gruffly as to make the typoist punch a wall.

@saddestrobots woah. Version 0.0.67?? That’s bleeding edge - everyone is still on 0.0.32 ffs. Next you’ll want us to use a 0.1.x release. We are YEARS away from this people.
@saddestrobots My experience has been solidly the latter. You sure this isn't just webdev vs systems programming?
@[email protected] @saddestrobots webdev is both the former and the latter at the same time. fixing typeof null === "object" would break the internet, so instead we need 600 libraries on top to fix it instead
@saddestrobots modern programs have the fortunate of not being deployed on a trillion machines and mainlined in thousands of distributions too. someone said "adoption is a feature you cannot design for" and it's been breaking my heart ever since I read that

@saddestrobots

Old time programming is like being handed a stack of headerless tapes with no formats or identification.

US social security file. Population level. Decades. Straight EBCDIC.

Just the starters….

@saddestrobots yea I'm getting way too much into JS lately, and when I looked up a library for something I got onto it's github repo, and it say'd "last release 5 years ago" and ngl

that made it so much more compelling to me

@saddestrobots Theo, of course, wrote about the incident in chapter 6 of his seminal 1996 book "The Circuit Revolution".

Following the depreciation of sasquatch, bepis migrated to ponk2 for parallel tokenisation. In order to upgrade to bepis 0.0.70 or later, users must also migrate from bepis-sasquatch to bepis-ponk2.

@saddestrobots this shit in rust has been annoying me so much lol
How All YouTube Ads Sound to Me

YouTube
@problemsdog @saddestrobots scrolling through replies until this popped up 😆
HTTP referer - Wikipedia

@negative12dollarbill And it must stay like that forever.

Like: U+FE18 - PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET

There's a bunch of these, apparently.

https://www.unicode.org/notes/tn27/

UTN #27: Known anomalies in Unicode Character Names

@saddestrobots

This... Is accurate. And disturbing. Mostly disturbing, to be honest, but also very accurate.

Interview with Senior JS Developer 2024 [NEW]

Javascript programming languageRust part soon on ?: https://www.patreon.com/ProgrammersAreAlsoHumanJS Stack merch: https://www.redbubble.com/i/sticker/SATAN-...

YouTube
Microservices

it's because of the way our backend works // merch: https://merch.krazam.tv// https://www.instagram.com/krazam.tv // https://twitter.com/krazamtv

YouTube
Honestly I prefer the old-time approach. Much of modern software is a ridiculous mess of a dumpster fire.

@saddestrobots

In my mind the difference that really stands out is compiler friendliness. It used to be HARD to change your toolchain.

Today: If you want to build this, you need to use the 2024.04.01 or higher patch release of weelang. 2024.06.x may work, I haven't tested those yet.

Once upon a time: If your cc doesn't understand function prototypes, set the KRSTANDARD define. If your system doesn't have /usr/include/floob.h but uses usr/include/sys/floob.h, set the SYSFLOOB define. If...

@saddestrobots This is why I will never program
@silverwizard @saddestrobots I've taken courses and read books on programming and I feel like none of that has had much of anything to do with what developers actually do.
Jack Wellborn (@JackWellborn) on X

You should use Scrungi. But to connect to it you’ll also need Widget, which is maintained in Flubber. After installing, you’ll want to bundle your Florps in a self contained Shrubbery.

X (formerly Twitter)
@jackwellborn @saddestrobots
Sure you think you want to bundle your Florps but with Chenti 1.2 you can federate them instead to avoid the overhead.