- cross-posted to:
- linuxfurs@pawb.social
- cross-posted to:
- linuxfurs@pawb.social
The two hardest problems in computer science are cache invalidation, naming things, and off by one errors.
A recent video I watched by Stand Up Maths about an off by one error 1200 years in the making:
TIL Wayland is named after a town
so is dracut and weston.
i think that naming software after towns in Massachusetts is somekind of red hat in-joke.
It’s even neater. The name of towns/cites cannot be trademarked. The safest thing you can do when naming a project is naming it after a town so you don’t run into legal troubles in the future.
You can eventually trademark once you get big enough. As with all things law it’s a bit tricky. However, the default is that geographic locations aren’t trademarkable.
For further reading on when you can trademark.
https://www.yospinlaw.com/2016/06/15/trademark-on-a-geographical-location
Who’s going to take this as legal advice and name a project Apple?
Openstack releases are named after the nearest town to conference that matches the next series in the alphabet.
I always thought it was the corp from the Alien series. 🤓
That’s Weyland-Yutani
In the Brolien universe it’s called Wheyland
In the mass obsessed universe it’s called Weighland.
In the map obsessed universe it’s called Wayland.
Very similar to our universe, that one.
I always thought this was the origin https://en.m.wikipedia.org/wiki/Wayland_the_Smith
And before Pidgin was named Pidgin, it was named GAIM, which was short for GTK AIM, which was short for GIMP toolkit AOL IM, which was short for GNU Image Manipulation Program toolkit America Online Instant Messenger, which was short for GNU’s Not Unix Image Manipulation Program toolkit America Online Instant Messenger and it never ends.
Which bible passage is that again?
Stallman 2:7-11
May his toes never jam
Does anyone still use pidgin in 2024 even?
With the new EU’s interconnection laws I hope I can WhatsApp from Pidgin, or even from irssi!
But no, I don’t use pidgin anymore. irssi, yes.
I could be wrong but my understanding of the EU interoperability laws is that they cover interoperability between services (for example, being able to message a Telegram user from WhatsApp and vice versa), not interoperability with third-party clients apps.
I use gajim/conversation/siskin spiritual successor
I’m trying very hard but this seems harder than my math class.
Also, almost all of that is written in C, which is a successor to B, which is a simplified version of the Basic Combined Programming Language. There was never an A.
Assembly.
Ding ding.
Is there a D?
Yes, but I’m not sure if we want to open the “programming language can of worms”.
There’s B, C, C++, C#, Objective-C, D, E, F, F#, F* and so many more. Also, they may or may not have anything to do with each other
But of course Java and Javascript are related /s
The number of job applications using Java as a shorthand for Javascript…
I once had a C# dev tell me they couldn’t run JavaScript because they didn’t have Java installed.
Also I’ve read that C# is C++++ (like put those + on 2x2 table, which in turns ressemble a #)
Hahaha I’ve never heard that before. Seems legit.
C# was originally “Java: The Good Parts” but but these days it’s a much more advanced language and runtime compared to Java.
As a dev who works on both Java and C# code, modern Java (17+) and C# feel almost exactly the same (not sure if Java has extension methods though).
Bonus points for using Kotlin instead tho. I dislike both Java and C# just because they both allow any object to be null and that’s usually a headache whenever a null exception shows up.
The only thing I like better about C# is the Fixture library for testing. I haven’t found any mature libraries like it for Java yet.
they both allow any object to be null and that’s usually a headache whenever a null exception shows up.
C# has nullable reference types now: https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references. If you enable it, you have to explicitly make reference types nullable (like
?string
) and you’ll get build warnings if you try to use a variable that’s potentially null.
Of course. Great, another D in programming.
Yes. D is pretty awesome.
Though there was a programming language called A Programming Language. Not the A programming language. A Programming Language.
@mindbleach @waigl APL?
Yes, A Programming Language.
Which requires a space-cadet keyboard.
(before it was Kool, KDE was a reference to CDE, the Common Desktop Environment)
The logo looks like an ASCII butt.
If your butt looks like that, please see a doctor.
Put the E at the front and a 3 on the end and you have exactly that.
Common is a pretty basic name, Kool is way cooler.
*Kooler
*kooler
I hate backronyms
im almost sad that its linux that became the dominating open source kernel instead of “GNU’s Not Unix! Hird of Unix-Replacing Daemons”
(hird stands for “Hurd of Interfaces Representing Depth”)and it goes HARD
GNU is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX[Maximum call stack size exceeded]
How is this a thing??
Yeah some kind of fucky configuration.
The root is:
Which, if the
ubuntu
link is clicked, then drops you into the the real archive root… but the link is “appended” to the new path, but the same link is reproduced in the “new” folder. Click it again, and another segment added to your current path even though you’re in the same root archive, ad nauseam.I couldn’t find this misconfiguration on stackoverflow, which leads me to believe someone at ubuntu is doing something especially special here.
I’d bet that they symlinked
/ubuntu
to the server’s home root - probably for continuity with some previous file structure. It sure looks silly, but I’m sure the reasons for doing it were pretty reasonable.
Wtf
That’s great, it even goes deeper
http://ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.ubuntu.archive.ubuntu.com/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/ubuntu/dists/mantic-backports/universe/debian-installer/binary-i386/by-hash/SHA256/e7ab72b8f37c7c9c9f6386fb8e3dfa40bf6fe4b67876703c5927e47cb8664ce4
Rofl amazing
GNU is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System
A tail-recursive version written in OCaml that should not reach stack limits easily. (Not an expert in OCaml, so this might be stupid. But I tried it with 10000 iterations, and it worked without any issues.)
let gnu = let rec aux s = function | 0 -> s | n -> aux (s^" is Not Unix") (n-1) in aux "GNU";;
Not an OCaml expert either but that looks tail recursive, you’re never going to blow the stack.
You can tell by how after the recursive call within aux, its result does not get used within the function. That means that the compiler doesn’t need to push a return address to the stack as the only code that would be at that address is instructions to pop another address and return there, we can short-circuit all that and jump from the base case (0) directly to where aux(10000) is supposed to return to instead of taking 10000 dumb steps (like practically all procedural languages do because they don’t have tail call optimisation).
This would’ve been different if you had concatenated the string not as an argument to aux.
I thought Tail recursion just gets turned into an iterative loop by the compiler? Hence why you won’t get a stack overflow. And since in procedural languages you can just use a loop in place of a tail recursive function you would never run into this problem, right? At least this is how it was taught to me when I was learning about it in lisp.
Yes you still need the loop part I skipped over that one, only focussing on the “why no return address on the stack” part. It’s what you need to focus on to see whether a recursive call is in a tail position and if it is the compiler does the rest no need to worry about that part.
That was the idea. But I’m not a functional programmer (not a programmer by profession at all lol), so I might’ve done something stupid. Hence the disclaimer. Thanks for confirming.
OCaml certainly isn’t a bad language to learn for a non-professional. It’s almost painfully sensible and well-engineered, you’re far away from hype train nonsense and startup production jank but also not out in the “the purpose of this language is to be beautiful and earn me a PhD” territory, OCaml definitely is a production language.
deleted by creator
Not gonna lie, took me a moment of thinking and waiting for a search engine to load before I realized Kool Desktop Environment is just KDE…
I always thought the K in KDE just stood for KDE.
KDE stands for KDE is not a Desktop Environment.
Yes, just as GNOME stands for GNOME has NO MErcy.
While looking it up, I’m pretty sure I read that Kool Desktop Environment was changed to K Desktop Environment. Either way, it’s absolutely Konfusing regardless of how you slice it.
Konfusing? Everything is krystal klear in KDE, or you kan make it opaque, too, as all konfigurations are exposed for maximum kustomization
Jep, always the K in KDE applications, like oKular and dolphin.
Some of the KDE apps are useful even on other OSes. KID3 is still my favourite MP3/FLAC tagger even on Windows.
Flawless victory.
Originally, it had no meaning. It was just the letter K. There are attempts to rewrite history, give it some purpose, but no.
It does now and has for years, but at first they didn’t realise how stupid Kool Desktop Environment sounded
deleted by creator
idk man it seems pretty kool
On second thought, let’s not move to Linux.
Yes, tis a silly place.
Never let programmers name things 😁
Web browsers: elinks, based on links, which I’m pretty sure was a play on words on lynx, which is a play on words on “links” on a web page.
Then there’s email. There’s mahogany and balsa and mulberry, which are in-jokes referring to pine, which was a joke referring to elm, which stood for ELectronic Mail. Pine has been forked to with alpine, in an entirely different play on words.
Open Watcom supports a debugging format called DWARF, which I assumed was a ridiculous acronym, until I learned it only works on ELF binaries.
The big one is how there was a programming language called A Programming Language. There is a B programming language, but it’s unrelated, being developed for Multics… Multics being the inspiration for Unix, a joke about castration. The developers of B went on to develop C. C was followed up by the command to increment a variable: C++. Except some interdisciplinary dorks thought it was a musical note and created C#. D is somehow a sequel to both of those.
There’s a reason why-- look. Nicholas Metropolis, namesake of the raytracing method, was sick of mainframe computers with ridiculous acronyms like ENIAC, AVIDAC, and ILLIAC, so he named his university’s new machine MANIAC. Absolutely no-one got the joke. All computer scientists are broken in the same peculiar way, and it is impossible to satirize how stupid we get when asked to name a thing.
Pine has been forked to Alpine
Wonder if it runs on Alpine the Linux distro.
In other news, I never knew pine’s genetic code still lives on; but I miss elm more. Can we do uw-imap too? Dovecot annoys me.
I’ve run alpine on alpine, it works just fine
Naming things is hard, and everyone remembers these names, so they must have done something right.
Yes, naming things one of the three hard computing problems left along with cache invalidation.
I feel bad that you’ve been left hanging there.
What’s the third one? :)
Probably off-by-one errors
Yea no kidding. Gnome is pronounced Guhnome, Mate DE is pronounced Matay, Open Suse is susuh not soos, and Qt is to be pronounced as “cute” instead of just… Q-T. Many such cases.
Wait for real? I don’t think I’ve heard many say those terms out loud, i pronounce them in my head Nome, Mate, Soos, and q-t
My favorite part of the AI boom is how all the stupid internal names become public. It moves so fast that there’s no time to rebrand from the dork-ass things engineers come up with.
This sounds like it was written for a medical research journal.
Linux lore is my favourite
I have a slightly higher appreciation for recursive acronyms now.
With just little bit of formatting, it would communicate the information infinitely better. Why don’t people make the minimal effort, once, when not doing leads to each and everyone having to figure out what the fuck it’s actually trying to say.
Apologies. I’m grumpy after a three hour meeting.
the real problem is this sentence contains no formatting no punctuation and no capitalization it must be a failure of our public education system in america that kid dont get the proper education they need in this day and age to use proper gramer and formatting where needed i bet most of you cant tell me the proper time to use a semicolon vs using a colon and thats ok because i dont either i do try my best to put it in the right place sometimes looking it up and failing to understand comas are also frequently used to much by people im sure your not alone in this assumption it could also be that english is hard and schools spend more time teaching us to consume and parse english rather than a balance of both reading comprehension and writing skills
A semicolon is used when you’re separating sentences that are themselves part of a list. Typically you would use commas to separate list items, but when the list items are complete sentences with commas in them, you use a semicolon to separate them. A colon is used when you have to poop
Typing this thing was admittedly hard on the phone. Without selecting any suggestions, it still manages to get the capitalization and punctuation right.
Let’s not forget about Ian and his wife, Debbie.
Edit: Now ex-wife, apparently.
Ex wife and ex Ian
Bruh
Linux claimed another victim ✊😔
Holy shit! Is this real?