• 0 Posts
  • 30 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle


  • There’s also something in copyright law called moral rights which can’t be transferred, although they can be waived. It’s possible to retain moral rights even if you sell your music to someone, and moral rights allow you assert some control over your works where you think misuse of it would cause harm to your reputation, amongst other things. I’m not a copyright lawyer or anything, but I’ve dealt with a bit of this stuff through open source software licensing, and it’s come up a few times when I was transferring licenses from companies I used to work for. If they didn’t waive moral rights then that would perhaps be an avenue to prevent misuse, but again, an actual copyright lawyer would be able to better determine that.

    Edit to add: I did some reading on this and more rights are not quite a thing in the US, but it’s a thing in Canada and other Berne Convention countries, but the US does have something similar but separate from copyright. The US has moral rights in some states but not others, and they have something called the Visual Artists Rights Act of 1990 that intersects with the idea of moral rights but is more narrower than general moral rights and only covers certain visual arts. In any case, I still haven’t gotten my law degree since this morning, but the basic gist of it is that the US has a different spin on moral rights than I’m familiar with in Canada, so they’re not equivalent, but there still may be standing for such a move by a musical artist.














  • Ironically, all of these things except Abrowser are based on Konqueror’s original engine, KHTML, so Konqueror was actually the OG engine. KHTML was forked to WebKit, which was forked to Blink, which became the underpinnings of Qt WebEngine, which Konqueror now uses.

    This is also why KHTML still appears in the user agent strings for all of these engines, but back in the day the Gecko engine used in Mozilla products was already a thing and KHTML was the alternative to that, hence “KHTML, like Gecko”.


  • The code in the image is C or C++ or similar. In those languages and languages derived from them, curly braces are optional but the parentheses are required. It should be the other way around to avoid logic errors like this:

    if (some expression)
      doSomething()
    else if (some other expression)
      printf(“some debugging code that’s only here temporarily”);
      doSomethingElse();
    

    Based on the indentation you’d think that doSomethingElse was only meant to run if the else if condition was true, but because of the lack of braces and the printf it actually happens regardless of either of the if conditions. This can sometimes lead to logic errors and it doesn’t hold up to a principle of durability under edit — that is, inserting some code into the if statement changes the outcome entirely because it changes the code path entirely, so the code is in a sense fragile to edits. If the curly braces were required instead of optional, this wouldn’t happen.

    I have all of my linters set up to flag a lack of curly braces in these languages as an error because of this. It’s a topic that sometimes causes some debate, ‘cause some people will vociferously defend their right to not have the braces there for one liners and more compact code, but I have found that in general having them be required consistently has led to fewer issues than having arguments about their absence, but to each their own. I know many big projects that have the opposite stance or have other guidelines, but I just make ‘em required on my own projects or projects that I’m in charge of and be done with it.