• 5 Posts
  • 210 Comments
Joined 5 years ago
cake
Cake day: May 31st, 2020

help-circle

  • I happen to be a software developer, so I hope you’re in for an info dump:

    Webpages are generally designed as documents. You type a URL into your browser, it downloads a webpage document and displays it. This simple concept also allows for hyperlinks and browsing history, which just put another URL into your browser, so that it downloads and displays a different document.

    But it does not work for everything. For example, this meme was brought to you by the web version of Microsoft Teams™, where if you were to switch between pages by downloading entirely separate documents, then you’d get kicked out of calls every time you do so.

    This is why the entirety of MS Teams is using a singular document. It’s a so-called Single-Page Application, SPA (*insert scary music here*).
    When you click on a navigation element, it doesn’t put a new URL into your browser for it to download. Instead, some JavaScript monstrosity starts churning, downloads whatever information it needs and then modifies the displayed document, so that it looks as if you had navigated away.

    To make it extra confusing, it also does typically change the displayed URL, it just doesn’t instruct the browser to download+display the respective document. It does this, because it tries to emulate a normal, document-based webpage, with browser history and where you can link to subpages.

    Well, and this is then why opening in a new tab is often broken. Because there is no link there. It has to emulate the behaviour of a link via JavaScript just as well. If the developers do a bad job at that and never try out shortcuts like middle-click or Ctrl+click, then they may never get implemented.


    Having said all that, there’s also a chance that the devs decided to intentionally hinder opening in a new tab.
    Because MS Teams and other SPAs are JavaScript monstrosities, downloading+displaying the document anew like when opening in a new tab takes an obscene amount of time.
    And having two tabs of it open means that you get two notification sounds for each notification, and users might accidentally join multiple calls.

    But yeah, that I can’t have a call in fullscreen on one monitor and respond to chat messages on another monitor, without jumping through hoops like in the post, that’s just bad either way.


  • Well, in this case I’m merely talking about the webpage not giving access to the right-click menu, as well as to shortcuts like middle-mouse-click and Ctrl+click, which would normally allow you to open parts of it in a new tab.

    If a webpage were to actually check for cookies, to try to detect whether you’ve got two tabs of it open, then yeah, Container Tabs would be a solution for that, since it isolates the cookies.






  • Ephera@lemmy.mlOPtoOpen Source@lemmy.mlWhat's up with FUTO?
    link
    fedilink
    English
    arrow-up
    3
    ·
    3 days ago

    From a communication viewpoint, that is fair, but to my knowledge (from being a professional software developer), effectively any license that is not ‘open-source’ or ‘free’ is by definition proprietary.

    Because those two terms describe licensing standards (the only established ones that I know of). Whereas I believe, “proprietary license” uses this meaning of proprietary:

    Nonstandard and controlled by one particular organization.

    So, they wrote that license themselves is the point. What it says in there is secondary in meaning.

    This is so highly relevant because in legal disputes, there is certain license compatibilities which are known to be possible.
    You can take a library licensed under the MIT license and use it in a project that uses the Apache-2.0 license and you’re perfectly fine. This is the foundation of why the open-source ecosystem exists at all.

    But you cannot take the source code from FUTO and use it in a differently licensed project, because no legal precedents exist to support this. (I believe, the FUTO license also actively prohibits this in some way, but that’s beside the point.)
    This has massive implications. Like, yeah, you can look at the code, but it is useless. If FUTO closes shop or enshittifies, you cannot fork their projects.
    And because you cannot legally re-use their source code in other projects, likely no one looks at it in depth either.








  • There’s no way they actually checked that it works. It includes code for:

    • XDG
    • GNOME
    • “GNOME_old”
    • KDE

    Verifying this would mean logging into several different desktop environments.

    It’s also extremely fragile code, running external commands and filtering through various files. There just is no good API on Linux for querying whether the desktop environment is using a dark theme, so it’s doing absolutely inane shit that no sane developer would type out.

    Because it’s a maintenance nightmare. Because they almost certainly don’t actually need to solve this. That’s software development 101, to not write code that you don’t actually need. But apparently some devs never got the memo that this is because of the maintenance cost, not because you weren’t able to generate the code up until now.