Email or username:

Password:

Forgot your password?
Alex P. 👹

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."

91 comments
[object Object]

@saddestrobots just call it creat, nobody’s gonna use it outside of bell labs anyway

[object Object]

@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

aburka 🫣

@zzt @saddestrobots in B it was just reat, creat is the C version

doboprobodyne

@stiiin @aburka @zzt @saddestrobots

Oh my God, that's it.

If anyone ever invents The Great New Quantum Computing Language and asks me what they ought to call it, I'm going to tell them to call it "D".

#quantum #coding #C #qubits23

doboprobodyne

@stiiin

Argh!

And if we ignore G because of G-code, the next available letter is I (which looks the same as a lower case L), and then everything's taken up to N.

Holy smoke.

Thank you for warning me before I gave terrible advice!

GwenTheKween :verifiedtrans: :neofox_nom_verified:

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

If only markdown worked so I could point to both Es :neofox_sad:

Mina

@saddestrobots (also, the hole in the wall is now part of the ABI and can't be fixed either)

Alex P. 👹

@meena
it's a load-bearing feature now

[the whole wall begins to sag dangerously as the structural damage takes its toll]

load-bearing, i say

Mark Shane Hayden

@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.

Robert Roskam

@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."

Alex ☕🇨🇦

@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

Azuaron

@saddestrobots Ten years ago, I worked for a company with "Reimbursement" in the name of the company. We had a DB table column where it was spelled: reimbrusment

It's in the name of the god damn company, and someone couldn't spell it right. And since it was in a vital (and quite large) table, we couldn't just fix it without massive database downtime.

I bet it still hasn't been fixed.

David Taylor

@Azuaron
@saddestrobots

Easier to change the name of the company to match, surely.

Yellow Flag

@Azuaron @saddestrobots I’ve analyzed applications with millions of users that had the application name (which is also the company name) misspelled internally. Clearly, this was a load bearing typo.

Yeshaya Lazarevich

@WPalant
I feel like the process of transition to becoming a professional SE is to a large degree the process of attempting to develop a relaxed attitude to typos
@Azuaron @saddestrobots

Azuaron

@iacore @saddestrobots While I was there, we switched from Rackspace to a cloud hosting service*. This is how I learned that the database only worked if the whole thing, all 80 GB of it, was in memory. The new cloud host didn't have a database with that much RAM, so we shipped them our server from Rackspace and they connected it to their cloud.

* that cost twice as much as AWS and had half as many features; the engineers suspected the CTO had some kind of personal kickback arrangement.

DELETED

@Azuaron @saddestrobots r.i.p. no corporate structure to stop this?

using number of features on AWS as a comparison... no. just no. they literally promote anyone who make a feature in some obscure market space that's barely usable.

Azuaron

@argv_minus_one @saddestrobots Holy shit. I was pretty new to databases when I worked at that company, so when the senior engineers said, "It will take a long time to rename the column because the table is big," I just believed them. But, yeah, that's not how that works.

So, the question is, were they--the SENIOR engineers---as clueless as I was, or were they lying so they didn't have to fix the typo (and everywhere in the code the typo had propagated to)?

argv minus one

@Azuaron

Yeah, I was thinking it wouldn't be database downtime as such, but rather downtime for all of the applications that use it. All of them have to be brought down before the column is renamed, and then updated and brought back up.

I take it there are many applications using this database, not just one, so yeah, that could add up to a lot of downtime.

@saddestrobots

Azuaron

@argv_minus_one @saddestrobots No, just one. 😂

When they added another application, they added a new database, with a series of cron scripts to sync the data between the applications.

d@nny "disc@" mcClanahan

@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

Pieter Lexis

@saddestrobots me, every time I accidentally access a bsd system

IoT is the grey goo

@lieter @saddestrobots The BSD utils are primitivist. Their skill seems to be in rejecting features that 85% of their colleagues are using.

chexum

@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?

GeePawHill

@scottmichaud @saddestrobots Talk about an open fucking problem. Everybody out there AI'ing, but I can't check out a six-month old project and get it to just PLEASE GOD build.

Kevin Karhan :verified:

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

github.com/OS-1337/spm

Alex P. 👹

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

tedward@sfba.social

@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.

gkrnours

@saddestrobots so that's why openbsd work under the "fuck backward compatibility" mentality...

RalfMaximus

@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"

Morgan Aldridge

@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.

Googly Eyed Peas

@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.

DELETED

@andymoose @saddestrobots the bleeding edge is used to cut people amiright

KnottEye
@saddestrobots My experience has been solidly the latter. You sure this isn't just webdev vs systems programming?
thorsummoner

@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

PC

@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….

Mia Rose Winter :v_greyace:​

@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

chris48s

@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.

j0

@saddestrobots this shit in rust has been annoying me so much lol

Phillip K Name

@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.

unicode.org/notes/tn27/

Parade du Grotesque 💀

@saddestrobots

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

Григорий Клюшников

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

Eli the Bearded

@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...

Wolf480pl

@liw @saddestrobots exceot you don't get to choose the level of stability that suits you. Others choose it for you. And you choose it for everyone else.

Lars Wirzenius

@wolf480pl @saddestrobots Hmmm. I choose my dependencies, and part of that is evaluating their stability. I don't allow others to impose work on me, such as by requiring the stability I provide, unless they compensate me, or I feel like it.

Wolf480pl

@liw @saddestrobots where do you find those stable dependencies? IIRC even gcc isn't fully backwards-compatible these days

Lars Wirzenius

@wolf480pl @saddestrobots I think you are trying to make a point, but I am entirely failing to understand what it is. However, I'm not interested in combat by debate, so I'll bow out of this discussion now.

Wolf480pl

@liw @saddestrobots
Sorry, that was a bit too combative on my part.

What I meant is that I find it difficult and frustrating to try to find dependencies that have similar stability guarantees to the kernel.

What's even more frustrating is that often the programming languages in which those dependencies are written aren't themselves stable.

Which is why I feel like I don't have much choice in deciding how much change comes my way from upstream.

Haelwenn /элвэн/ :triskell:
@wolf480pl @liw @saddestrobots Reminds me of why I avoid Python/Ruby/… and so by elimination ended up picking Perl (when I'm not targetting shells that conform to POSIX), because yeah the language is the biggest dependency of all.

That said I'd say C is pretty close to "linux doesn't breaks userspace" as the linux kernel actually does, but it is very very rare (mostly with old APIs being removed, or like a.out being removed), and for C it's mostly a case where you have to pay attention to warnings and use things like UBSan.
@wolf480pl @liw @saddestrobots Reminds me of why I avoid Python/Ruby/… and so by elimination ended up picking Perl (when I'm not targetting shells that conform to POSIX), because yeah the language is the biggest dependency of all.

Matt Christensen

@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.

Ölbaum

@saddestrobots If you love modern programming, you’ll love HTML9 Responsive Boilerstrap.

html9responsiveboilerstrapjs.c

jade

@saddestrobots our k8s cluster is called “poggers”

Brian Holley

@saddestrobots there’s a good reason this remains one of my favorite tech talk slides of all time.

darn tootin

@saddestrobots I just went to make a final release of an old python module so I can archive the repo and be left alone. Apparently python setup.py sdist upload can't be done any more because the standard library didn't keep up with the official package index changing their auth mechanism. You have to be a goddamn professional in packaging and release engineering to get anything out there.

As ugly as the rollout was, go modules really can't be beat these days.

🐀 ␆

@saddestrobots The best header to parse with bongo.rs is of course Referer: because it mixes in some of that old timey flavor

Mack Slevin

@saddestrobots losing my goddamn mind over “version 0.0.67” 🤣

splatt9990

@saddestrobots I mean this is literally what happened to the 'Referer' header in HTTP: en.wikipedia.org/wiki/HTTP_ref

tl;dr, it should be spelled 'Referrer', but since it got baked into the spec back in the 90's we still have to use the misspelled version.

Go Up