Well known KDE developer Nate Graham is out with a blog post today outlining his latest Wayland thoughts, how X11 is a bad platform, and the recent topic of “Wayland breaking everything” isn’t really accurate....
Over on Nate's other blog entry he indicates this:
The fundamental X11 development model was to have a heavyweight window server–called Xorg–which would handle everything, and everyone would use it. Well, in theory there could be others, and at various points in time there were, but in practice writing a new one that isn’t a fork of an old one is nearly impossible
And I think this is something people tend to forget. X11 as a protocol is complex and writing an implementation of it is difficult to say the least. Because of this, we've all kind of relied on Xorg's implementation of it and things like KDE and GNOME piggyback on top of that. However, nothing (outside of the pure complexity) prevented KWin (just as an example) implementing it's own X server. KWin having it's own X server would give it specific things that would better handle the things KWin specifically needed.
Good parallel is how crazy insane the HTML5 spec has become and how now pretty much only Google can write a browser for that spec (with thankfully Firefox also keeping up) and everyone is just cloning that browser and putting their specific spin to it. But if a deep enough core change happens, that's likely to find its way into all of the spins. And that was some of the issue with X. Good example here, because of the specific way X works an "OK" button (as an example) is actually implemented by your toolkit as a child window. Menus those are windows too. In fact pretty much no toolkit uses primitives anymore. It's all windows with lots and lots of text attributes. And your toolkit Qt, Gtk, WINGs, EFL, etc handle all those attributes so that events like "clicking a mouse button" work like had you clicked a button and not a window that's drawn to look like a button.
That's all because these toolkits want to do things that X won't explicitly allow them to do. Now the various DEs can just write an X server that has their concept of what a button should do, how it should look, etc... And that would work except that, say you fire up GIMP that uses Gtk and Gtk has it's idea of how that widget should look and work and boom things break with the KDE X server. That's because of the way X11 is defined. There's this middle man that always sits there dictating how things work. Clients draw to you, not to the screen in X. And that's fundamentally how X and Wayland are different.
I think people think of Wayland in the same way of X11. That there's this Xorg that exists and we'll all be using it and configuring it. And that's not wholly true. In X we have the X server and in that department we had Xorg/XFree86 (and some other minor bit players). The analog for that in Wayland (roughly, because Wayland ≠ X) is the Compositor. Of which we have Mutter, Clayland, KWin, Weston, Enlightenment, and so on. Which that's more than just one that we're used to. That's because the Wayland protocol is simple enough for these multiple implementations.
The skinny is that a Compositor needs to at the very least provide these:
wl_display - This is the protocol itself.
wl_registry - A place to register objects that come into the compositor.
wl_surface - A place for things to draw.
wl_buffer - When those things draw there should be one of these for them to pack the data into.
wl_output - Where rubber hits the road pretty much, wl_surface should display wl_buffer onto this thing.
wl_keyboard/wl_touch/etc - The things that will interact with the other things.
wl_seat - The bringing together of the above into something a human being is interacting with.
And that's about it. The specifics of how to interface with hardware and what not is mostly left to the kernel. In fact, pretty much compositors are just doing everything in EGL, that is KWin's wl_buffer (just random example here) is a eglCreatePbufferSurface with other stuff specific to what KWin needs and that's it. I would assume Mutter is pretty much the same case here. This gets a ton of the formality stuff that X11 required out of the way and allows Compositors more direct access to the underlying hardware. Which was pretty much the case for all of the Window Managers since 2010ish. All of them basically Window Manage in OpenGL because OpenGL allowed them to skip a lot of X, but of course there is GLX (that one bit where X and OpenGL cross) but that's so much better than dealing with Xlib and everything it requires that would routinely require "creative" workarounds.
This is what's great about Wayland, it allows KWin to focus on what KWin needs, mutter to focus on what mutter needs, but provides enough generic interface that Qt applications will show up on mutter just fine. Wayland goes out of its way to get out of the way. BUT that means things we've enjoyed previously aren't there, like clipboards, screen recording, etc. Because X dictated those things and for Wayland, that's outside of scope.
One of the specific issues from those who've worked with Wayland and is echoed here in Nate's other post that you mentioned.
Wayland has not been without its problems, it’s true. Because it was invented by shell-shocked X developers, in my opinion it went too far in the other direction.
I tend to disagree. Had say the XDG stuff been specified in protocol, implementation of handlers for some of that XDG stuff would have been required in things that honestly wouldn't have needed them. I don't think infotainment systems need a concept of copy/paste but having to write:
Is really missing the point of starting fresh, is bytes in the binary that didn't need to be there, and while my example is pretty minimal for shits and giggles IRL would have been a great way to introduce "randomness" and "breakage" for those just wanting to ignore this entire aspect.
But one of those agree to disagree. I think the level of hands off Wayland went was the correct amount. And now that we have things like wlroots even better, because if want to start there you can now start there and add what you need. XDG is XDG and if that's what you want, you can have it. But if you want your own way (because eff working nicely with GNOME and KDE, if that's your cup of tea) you've got all the rope in the world you will ever need.
I get what Nate is saying, but things like XDG are just what happened with ICCCM. And when Wayland came in super lightweight, it allowed the inevitably of XDG to have lots of room to specify. ICCCM had to contort to fit around X. I don't know, but the way I like to think about it is like unsalted butter. Yes, my potato is likely going to need salt and butter. But I like unsalted butter because then if I want a pretty light salt potato, I'm not stuck with starting from salted butter's level of salt.
That's just the Web at this point. Like IRC has it's bit of toxic, but there aren't Ads, and the niche stuff is fairly good. Gemini and gopher are seeing a pretty healthy resurgence, but clearly there's just dozens of us. Oh and there's always telnet MUDs out there, those are fun every so often.
The Internet is a lot more than just the web. Though the web is mostly the internet at this point. I think the upshot though is all this Fediverse stuff looks really promising. But we ought to support our instances otherwise they'll just start adding ads.
Also as an aside, I'd love for NNTP to make a comeback, but I also understand why it hasn't.
I am so sorry this got so long. I'm absolutely horrible at brevity.
Applications use things called libraries to provide particular functions rather than implement those functions themselves. So like "handle HTTP request" as an example, you can just use a HTTP library to handle it for you so you can focus on developing your application.
As time progresses, libraries change and release new versions. Most of the time one version is compatible with the other. Sometimes, especially when there is a major version change, the two version are incompatible. If an application relied on that library and a major incompatible change was made, the application also needs to be changed for the new version of the library.
A Linux distro usually selects the version of each library that they are going to ship with their release and maintain it via updates. However, your distro provider and some neat program you might use are usually two different people. So the neat program you use might have change their application to be compatible with a library that might not make it into your distro until next release.
At that point you have one of two options. Wait until your distro provides the updated library or the go it alone route of you updating your own library (which libraries can depend on other libraries, which means you could be opening a whole Pandora's box here). The go it alone route also means that you have to turn off your distro's updates because they'll just overwrite everything you've done library wise.
This is where snaps, flatpaks, and appimages come into play. In a very basic sense, they provide a means for a program to include all the libraries it'll need to run, without those libraries conflicting with your current setup from the distro. You might hear them as "containerized programs", however, they're not exactly the Docker style "container", but from an isolating perspective, that's mostly correct. So your neat application that relies on the newest libraries, they can be put into a snap, flatpak, or appimage and you can run that program with those new libraries no need for your distro to provide them or for you to go it alone.
I won't bore you on the technical difference between the formats, but just mostly focus on what I usually hear is the objectionable issue with snaps. Snaps is a format that is developed by Canonical. All of these formats have a means of distribution, that is how do you get the program to install and how it is updated. Because you know, getting regular updates of your program is still really important. With snaps, Canonical uses a cryptographic signature to indicate that the distribution of the program has come from their "Snaps Store". And that's the main issue folks have taken with snaps.
So unlike the other kinds of formats, snaps are only really useful when they are acquired from the Canonical Snaps Store. You can bypass the checking of the cryptographic signature via the command line, but Ubuntu will not automatically check for updates on software installed via that method, you must check for updates manually. In contrast, anyone can build and maintain their own flatpak "store" or central repository. Only Canonical can distribute snaps and provide all of the nice features of distribution like automatic updates.
So that's the main gripe, there's technical issues as well between the formats which I won't get into. But the main high level argument is the conflicting ideas of "open and free to all" that is usually associated with the Linux group (and FOSS [Free and open-source software] in general) and the "only Canonical can distribute" that comes with snaps. So as @sederx indicated, if that's not an argument that resonates with you, the debate is pretty moot.
There's some user level difference like some snaps can run a bit slower than a native program, but Canonical has updated things with snaps to address some of that. Flatpak sandboxing can make it difficult to access files on your system, but flatpak permissions can be edited with things like Flatseal. Etc. It's what I would file into the "papercut" box of problems. But for some, those papercuts matter and ultimately turn people off from the whole Linux thing. So there's arguments that come from that as well, but that's so universal "just different in how the papercut happens" that I just file that as a debate between container and native applications, rather a debate about formats.
Agree to disagree. I find the Kamala Kahn character to be an effervescent relief to a series that's taking itself way too seriously or trying too hard for slap stick. Does that make this particular movie great? No. The movie itself is a pretty flimsy plot. The main trope of the movie is someone makes a mistake, the group comes together to resolve the mistake, and develop themselves during that resolution. So with that said, it's not really good at delivering that, it's not Trolls bad (the original one which the plot sucks, the music is quite good) but yeah there was a lot of room for lots of character development that was just not included in what was delivered. To me the movie pulled its punches on what it could have delivered.
But in these kinds of tropes you see classic character stereotype traits, in this case Kamala Kahn plays the lighthearted comedic foil and does so quite well through the movie. Needless to say the Captain Marvel character is our person who brings the conflict to be resolved and towards the end you are left with a pretty unsatisfying result. Like the issue is indeed resolved, but it's about as exciting as how I might feel when I've completed my taxes. Hooray, I got that done. Maria Rambeau is our power character consistently pushing the accelerator for the characters to resolve the matter. And she's pretty good at it, but there was absolutely more opportunity for her to flesh that out that they kept sacking her personal past to keep that in check. Which at some point one might go, yeah we get it, she's troubled and doesn't want to talk about it. There's a degree of too much "I'm the aloof character in this movie". I will say the final fight scene is actually good for the level of just skirting the level of frenetic and follow-ability. I've gotten to a point where I just tune out superhero fights when it just becomes a lightshow and camera pandemonium (ala the most recent Ant Man movie).
Like I said, it's not a horrible movie. I went to the 10am showing of it on Friday (with one other friend) and that was $40 and that's where I would say "Do NOT go see this movie for $40". But I really enjoy the Kamala Kahn character and the level of energy the actress brings to the character. It reminds me a bit of how bubbly my twenty-two year old niece is sometimes and that serves as a nice refresher given the backdrop of generally everything else. So, I will acquiescence, there's a likely bias on my part for the character.
Again, absolutely not disagreeing with your position on the character. I think Marvel (and this touches just every so slightly on the superhero saturation) has gotten so big that not every character is going to be widely welcomed by everyone. I think there's a point that the Marvel Superhero movies get so numerous that you have to start considering sub-genres for the movies. And perhaps Marvel should pull back a bit on the distribution (it's their ship ultimately to sail and sink if need be). But I really enjoyed the Kamala Kahn character in the same way that I enjoyed the Katy character from the Shang-Chi movie. I good comedic foil is like pepper, you need just enough to flavor the food and not too much to over power the food and both of those characters have carried that role quite well thus far. But like anything, Disney has every chance to run that straight into the ground.
I posted this as a comment in another post but when I got done I realized it would probably just be better as its own post. I’m sure I could find the answers I need myself but frankly I trust the userbase here more than most online articles....
I’m also nervous about using an OS I’m not familiar with for business purposes right away
Absolutely STOP. Do not go with Linux, go with what you are comfortable with. If this is business, you do not have time to be uncomfortable and the learning curve to ramp up to ANY new OS and be productive is something that's just a non-negotiable kind of thing.
If you've never used Linux, play with Linux first on personal time. For business time, use what you know works first and foremost.
All OSes are tools. You do not just learn a tool when your job is waiting for a bed frame to be made or whatever.
TL;DR
If you are not comfortable with Linux, do NOT use it for business.
Legit, some dude in US Congress is wanting to crack down on China via..... RISC-V exports, because oh no, the technology is too open and might give China some of our IP. Oh and by the way, dude has a pretty big Intel portfolio, but nevermind that!!
As an aside, why the hell are lawmakers allowed to trade stocks?
KDE: Welcome to Linux. Do you like the UI of Windows? Well we have an excellent offering for you if that’s your choice. There’s also other DEs that you may select from if that’s your choice.
Or just don’t ever sign in to YouTube and always clear cookies when you close the browser. And out of curiosity, why do people actually sign into YouTube? For “favorites” I just use my browsers bookmarks and it’s not like “hitting that bell” actually helps me because usually I won’t watch a just published video until I’m ready to actually watch something. So struggling to think of a reason to sign in except for the one time I need to increase the subscriber count for them. And even then, I promptly log out.
Hey, does this drink taste like quaaludes to you? (lemmy.zip)
Why can't we get our shit together? (lemmy.zip)
KDE's Nate Graham On X11 Being A Bad Platform & The Wayland Future (www.phoronix.com)
Well known KDE developer Nate Graham is out with a blog post today outlining his latest Wayland thoughts, how X11 is a bad platform, and the recent topic of “Wayland breaking everything” isn’t really accurate....
My hand are normal, and loook (lemmy.world)
Crackers (lemmy.world)
The state of the internet in 2023. (lemmy.world)
As we look back on 2023, I feel we should take stock on what the internet is like for the average person today.
OnlyFlans (lemmy.ml)
JPEG (lemmy.world)
https://www.smbc-comics.com/comics/167225794620221228after.png
Mandrake Linux 10.0, from 2004. They still work too. Had to buy them on disc, slow dialup internet in those days. (mastodon.africa)
Don't worry about it. (mander.xyz)
Linux mint = best beginner distro (lemmy.ml)
Box Office: ‘The Marvels’ Gets Grounded With MCU’s Second-Lowest Opening Day Ever (variety.com)
Sell Me on Linux
I posted this as a comment in another post but when I got done I realized it would probably just be better as its own post. I’m sure I could find the answers I need myself but frankly I trust the userbase here more than most online articles....
Harry Mudd does not represent the best of humanity (startrek.website)
Two Party System. Why. (lemmy.zip)
EDIT: To the people downvoting this post because democrats > republicans: you’re missing the point.
'Motormat' drive-in restaurant, Los Angeles, 1949 (lemmy.world)
Where do you see yourself in 10 years? (lemmy.ml)
Noticed Edge was the default browser (lemmy.world)
Sugar, spice and too little nice (lemmy.world)
That is fun! (lemmings.world)
18+ More like 658 by my measurement (lemmy.ml)
is it a unit of length? Or is it weight?
deleted_by_author