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.
Who’s going to take this as legal advice and name a project Apple?
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
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. 🤓
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.
That’s Weyland-Yutani
(before it was Kool, KDE was a reference to CDE, the Common Desktop Environment)
Common is a pretty basic name, Kool is way cooler.
*kooler
*Kooler
I hate backronyms
The logo looks like an ASCII butt.
If you’re butt looks like that, please see a doctor.
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…
idk man it seems pretty kool
I always thought the K in KDE just stood for KDE.
It does now and has for years, but at first they didn’t realise how stupid Kool Desktop Environment sounded
@ReCursing@kbin.social @callmepk@lemmy.world @AceFuzzLord@lemm.ee @smackjack@lemmy.world
Maybe they should call it “Kool-Aid Desktop” since so many fan boys are worshipfully in awe of it.
Not sure if this is directly aimed at us but, I don’t know much about different desktop environments (with this being the maybe 2nd or 3rd one I’ve used), but I l just like plasma because it looks good without much tweaking. I’m still learning Linux, so I just want something that looks good out of the box.
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.
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.
Wait why didn’t they keep unpacking the recursive acronym further? GNU’s Not Unix’s Not Unix’s Not Unix’s Not Unix I’d say that’s a pretty good amount although if there’s a mathematical way of formulating the unpacking of acronyms in a text I’d like to see the that repeated until infinity.
i tried that and the stack overflowed
This sounds like it was written for a medical research journal.
“GNU is Not Unix Image Manipulation Program Tool Kit” is still a better name for GTK than “GIMP ToolKit”.
It’s a name that will definitely raise some eyebrows in the less technically inclined circles. (and maybe a few “Pulp Fiction” references about “bring out the gimp”)
All these years I thought GTK stands for Gnome Tool Kit…
It’s pretty common for people to think that, since the GNOME Foundation adopted it. It was originally created for GIMP though - the developer didn’t like Motif so they built their own replacement for it.
GNU IS NOT LINUX
I like 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 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 Network Object Model Environment
On second thought, let’s not move to Linux.
Yes, tis a silly place.
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.
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.
Is there a D?
Of course. Great, another D in programming.
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.
Yes. D is pretty awesome.
Assembly.
Ding ding.
It’s not GNUIMP it’s GIMP
GNU is Not Unix is recursive
You’re recursive
You’re recursive
You’re recursive
It is you who is the one who is recursive.
It’s not GNUIMP it’s GIMP
what do you think the G is for
Gnu, expanded once not twice.
Don’t worry, it won’t be long before you find this sort of programmer humour more tiresome than charming.
Not everyone becomes a joyless spoilsport.
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]
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 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 r 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.
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.
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’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
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
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