• 61 Posts
  • 2.11K Comments
Joined 1 年前
cake
Cake day: 2023年9月1日

help-circle


  • IMO, GUI applications should be written as agnostic libraries first and GUIs second. That way, anybody with time, skill, and will, can slap on an alternative UI on top.

    Firefox in this example should’ve written a library that allow calling a tab.previous(), updating the internal state, sending events like rerenderStarted, rerenderEnded, navigationStarted, navigationEnded, and so on, that the UI responds to like updating what the back button looks like, the rendered page, and so on.

    It would then be possible to have firefox Qt, Gtk, egui, or whatever else kind of frontend and it wouldn’t be required for Gtk4 to somehow interfere in the rendering code. Furthermore, it would allow embedding firefox nearly anywhere. But firefox is legacy at this point and such a change would be monumentally large. It’s just a pity that servo (firefox’s WebEngine successor) does the same thing firefox is doing, making it difficult to embed with tight coupling between UI and everything else.

    Anti Commercial-AI license








  • Like many others, I thankful for the contributions to Linux. It is great to be able to leave proprietary systems. But the Linux kernel has a major maintainer and leadership problem that is holding back possible contributors. It quite simply isn’t living up to its potential.

    The Linux Foundation seems to prioritise everything but Linux, the kernel still uses technologies and tools from another era (mailinglists, C), and from the outside the kernel looks like an uninviting, unwelcoming, and uncomfortable place to participate in.

    With more focused allocation of resources, there could be lots more people making a living working on Linux. Imagine being able to intern there because of an internship programming. Imagine being able to be able to apply as a junior developer with little kernel knowledge to apply there and learn the ropes to become a fully fledged kernel dev. Imagine their being training courses and introduction sessions, kernel workshops, and live kernel dev sessions multiple times a day to cover every timezone where devs and non-devs alike could join to learn more about the kernel and how to contribute or get a job there. Imagine companies could talk to teams at the Linux foundation’s to help them get their drivers into the kernel or even be guided to affiliated companies to write drivers for their devices.

    The kernel of course doesn’t just need devs It needs technical writers, marketing teams, outreach programmes at school, universities, government institutions, and it needs an arm that somehow talks to the public to get feedback on features they require or request and a way to get feedback from users (private and corporate alike).

    Just imagine the possibilities if things we run and prioritised differently. The potential to spread opensource far and wide would be amazing. Maybe we can still get there and I hope we do. Having someone as motivated as Marcan being nearly burned out from internal conflict is regrettable.

    Anti Commercial-AI license



  • If selecting a server is too much, then directing them to a random on that fits their criteria should solve the problem. Which joinlemmy, joinmastodon, joinoixelfed, and so on do.

    If even that is too much, then I’m totally fine without those people as I question what kind of stuff they’ll be saying.

    And this isn’t even elitist. It’s not “you have to have the ActivityPub spec memorised” or even know what ActivityPub is. It’s like “which email host should I pick”. No deeper than that.

    If Facebook and Apple have eroded people’s brains to the point where such a simple question cannot be answered without freaking out, then we’re in trouble.

    Anti Commercial-AI license


  • What’s there to understand? Does the average person understand that reddit consists of a frontend written in a frontend framework that compiles to HTML, CSS, and JS? Do they understand that HTTPS is used to make the request between the client and server on port 443? Do they know that the request is processed by a back end connecting to postgresql and redis or memcache for faster responses? That most assets are probably delivered by a CDN?

    Probably not. And why should they? They don’t need to understand how the fediverse works, nor do they have to understand how email works. All they need to do is select a server, create an account, and start interacting. Same as email.

    There’s no mystery. The fediverse isn’t complicated unless you freak out and start realising that the entire internet is more complicated than the shiny, glossy thing on top of it - which doesn’t need to be understood to have simple interactions with.

    Anti Commercial-AI license


  • Honestly, if picking a server is too difficult, how have you survived this long? It’s literally like picking an email host. That’s the UX people are complaining about. How far have we fallen that making a choice is now a problem? “Pick what you like” leads to people going “OMG, this is terrible, I have to make my own decisions😭😭” No wonder people love AI, because they can’t think for themselves.

    The only improvement would be setting a default or giving them themes to choose from which they are interested in and selecting a server for them based on that.

    Anti Commercial-AI license


  • I have never written a line of code in Zig, but I can read it and derive a pretty good idea of what the syntax means without a lot of effort. The same cannot be said for Rust.

    That’s you dawg. You probably have a different background, because I can follow zig code, but have no idea what a bunch of stuff means.

    See samples

    pub fn enqueue(this: *This, value: Child) !void {
                const node = try this.gpa.create(Node);
                node.* = .{ .data = value, .next = null };
                if (this.end) |end| end.next = node //
                else this.start = node;
                this.end = node;
            }
    

    pub fn enqueue(this: *This, value: Child) !void { , !void? It’s important to return void? Watch out void is being returned? Does that mean that you can write !Child ? And what would that even mean?

    const node = try this.gpa.create(Node); what does try mean there? There’s no catch, no except. Does that mean it just kills the stack and throws the exception until it reaches a catch/except? If not, why put a try there? Is that an indication that it it can throw?

    node.* = .{ .data = value, .next = null }; excuse me what? Replace the contents of the node object with a new dict/map that has the keys .data and .next?

    if (this.end) |end| end.next = node // what’s the lambda for? And what’s the // for ? A forgotten comment or an operator? If it’s to escape newline, why isn’t it a backslash like in other languages?

    start: ?*Node. Question pointer? A nullable pointer? But aren’t all pointers nullable? Or does zig make a distinction between zero pointers and nullable pointers?

    pub fn dequeue(this: *This) ?Child {
                const start = this.start orelse return null;
                defer this.gpa.destroy(start);
    

    this.start orelse return null is this a check for null or a check for 0 or both?

    However when I read rust the first time, I had quite a good idea of what was going on. Pattern matching and move were new, but traits were quite understandable coming from Java with interfaces. So yeah, mileage varies wildly and just because you can read Zig, doesn’t mean the next person can.


    Regardless, it’s not like either of us have any pull in the kernel (and probably never will). I fear for the day we let AI start writing kernel code…

    Anti Commercial-AI license