• 0 Posts
  • 51 Comments
Joined 1 year ago
cake
Cake day: September 25th, 2023

help-circle

  • pixelscript@lemmy.mltoOpen Source@lemmy.mlThoughts on Post-Open Source?
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    11 months ago

    IANAL and I don’t have the actual court papers, but is seems to me they were violating GPLv2 Section 6.

    Essentially, what this section says is that if you distribute a chunk of software (in this case, the firmware embedded in a smart TV) that in its compiled form contains part or all of a software library covered by this license (in this case, Busybox, which is a bundle of common shell utilities you use every day in a Linux terminal, compacted into one binary to fit onto embedded systems), you have to do one of these four things:

    • Package the source code of the GPL’d library with the distribution itself. If your executable contains a version of it modified by you, those modifications must be in the source. In this case this would require putting the raw source code for Busybox on the TV itself in a place the user could access it, or perhaps bundling a flash drive with the source code on it with the TV.

    • Include a written offer to send the source to anyone who asks for it, at no cost (except for the cost of transfer itself if applicable, e.g. postage), and honor that offer for at least 3 years. I believe this is what most companies that use GPL’d code do.

    • If the distribution happens at a designated place, offer the source at that same place. This is mostly relevant to download pages, not physical products.

    • Verify that the customer already has a copy of the source distributed in advance. This is a specific edge case that makes no sense in this context.

    This lawsuit was brought about because the sellers of the TVs that contained Busybox were not doing any of the above four things, and those sellers ignored or ghosted plaintiff when plaintiff contacted them about it.




  • Here’s the ELI5 answer I’d give to your friend:

    Computers are like servants. They do whatever you ask of them. But to be able to ask them things, you must do so in their language. On the extreme low level that means writing code to make programs, but on a higher level, it means talking to programs someone else already wrote using special commands.

    The buttons and switches on a GUI that you can click on with a mouse are like pre-recorded commands that instruct the computer to do some specific thing. The button or whatever will have a symbol or text description that lets you intuitively know what it’s for, and when you click on it, it plays a pre-recorded command to the computer in its language that tells it to do that thing. With these buttons, you can ask things of the computer in its language without having to know that language.

    As you get more intimate with the computer, this system can start to feel a bit stiff. You’ve essentially got a butler who doesn’t speak your language, and any time you need to give him a task, you have to fumble through a basket of pre-recorded tape recorder messages to find the one for the task at hand, and play it to him. For more complex tasks, you may need to chain several of these together. It gets slow and awkward. And god forbid you don’t even have a tape recording for the thing you need.

    It’s easier if you learn the butler’s language yourself. Then you can ask him for things directly. You’re not bound to any collection of pre-recorded messages to use, you can tell him exactly what you need. And if you don’t happen to know the word for something, you can look it up. It cuts out all the faffery with fumbling over a tape recorder looking for the messages you need to play.

    Using a terminal is roughly the computer equivalent of speaking to your butler in his native language. You’re not limited to only the buttons and features any particular program lets you have; you can make up exactly what you need on the spot. And you never have to bounce your hand between a mouse and keyboard to do it, you can keep your hands in one position at all times, which really adds up over time in both speed and comfort.

    Practicing this will also give you the side perk of better understanding how the computer actually works overall, and what it’s actually doing. This knowledge can come in super handy when diagnosing problems with the thing. When a GUI gives up, a terminal can keep digging.



  • this could’ve been done by most people with a little gumption.

    My point was not that installing Linux is intrinsically difficult, it’s that people who have “a little gumption” to figure it out are a far rarer breed than you seem to believe.

    Also, I wasn’t intending to “shit all over the possibility” of salvaging old PCs. I support that! I think Linux (Mint, specifically) would be a perfect drop-in for most light use Windows users, as it is a stable and friendly solution to common needs. I was just raising the part most people overlook: actually getting it running. Not just the technical challenges, but the mental ones, too. The people who stand to gain the most from a free and stable OS are paradoxically the same people who are the least equipped to find and set it up.

    We have a long road ahead of us to normalize the procedures of obtaining and installing a new OS in the public eye. Linux can be as user friendly as you like, but it’s all for nothing to the average Joe if he doesn’t understand how to get it. Or why he should even bother getting it, for that matter.


  • But, assuming most people aren’t complete morons and can actually do stuff if they decide to sit down, Google how to do it and actually do it instead of declaring “I am stupid” and not even try

    Extremely charitable assumption, I’d say.

    I do think most people do in fact possess the ability to follow instructions and succeed at installing Linux from USB. But it all falls apart at the key word “decide”. Very few people choose to devote the low, but nonzero, effort required to pull it off.

    for linux specifically the hard part is entering the BIOS to disable secure boot and then go into the boot menu to select the USB

    I would say, for the demographic I’m thinking of, the hardest part is actually getting the installation media in the first place. Not because it’s challenging to do, but just getting over the mental barrier of this (to them) extremely unorthodox method of installing software.

    Like, first you have to find the thing and download it. Which, fine, that’s typical so far But the thing you download isn’t some .exe you run. No, you need to put it on a flash drive. So you need one of those lying around, either empty or with nothing important on it. But you don’t just copy the installl file onto it the ““normal”” way, nooo… you also have to separately download some strange utility that burns it onto the flash drive in some special way or else it won’t work. Only then do you have to tickle the BIOS.

    I understand if you or anyone else reading rolls their eyes at that description because these steps are so boneheadedly simple. And I agree, they are. But it’s not so much a question of whether it’s hard to do, it’s a question of whether it feels safe and natural to do. Which, to you and me, it is. But to the kind of person who, as you say, shouldn’t even be using a computer in the first place (but they must anyhow, because trying to live in our modern information age society without one closes too many doors), it’s an uncomfortable, dark ritual.


  • I guess by “Windows installer” I actually meant the setup wizard that runs the first time you boot an OEM machine from the factory. The thing 99% of Windows users actually see. Not sure if that’s significantly different.

    And if you want to claim even that is terrible, I really have to question by what metric you’re measuring. Is it because it doesn’t give you the options you want, like creating an offline user account, or because it’s full of bloat screens for products like OneDrive? Sure, I guess. But I’d say having these criticisms are very specifically the kind of things that make you an outlier compared to the average person I’m talking about. These are things normal people don’t bat an eye at. Giving them more control just intimidates them.

    And yeah, I’m sure you agree, “provided [they] can create a USB” is a huge ask for a lot of people. Child’s play for us, but weird and scary black magic to most. Guides can and do make it crystal clear what to do, but as long as it feels spooky to download and run the magic programs, no one will feel comfortable doing it.


  • Theoretically, when it’s up and running. How do you intend to get to that state, though? One has to install it first. And I think that alone is a massive filter.

    inb4 someone says:

    I did it, and I found it extremely straightforward.

    I’m sure you did, Mr. “I hate how much Reddit is pandering to the braindead to the point that I joined an experimental social media platform”, I’m sure you did. Clearly, you are a qualitative sample of people who use Windows computers.

    Sarcasm aside, look at how railroaded and coddling the Windows 10 installer is. I am certain a large plurality of Windows users’ initiative would completely evaporate having to navigate that. And now we want to throw a Linux installation at them?

    Factor on top how the vast majority of computer users in all forms that computers take simply take for granted that the OS the computer comes with is a part of the computer. Normal people don’t upgrade OSes unless the OS itself railroads them into it (which Win10 already does aggressively whenable), or they buy a new PC that happens to come with it pre-installed. The knowledge required to negotiate an OS wipe and reinstall is not something most people possess, and I expect presenting that knowledge to them on a silver platter is something they’d hastily recoil from.

    We’re in a catch-22 here. Even if all the pieces for the fabled Linux Desktop are arguably here, actually getting it into the hands of those who would benefit from it most remains prohibitive.

    This is also ignoring the elephant in the room: A massive swath of these Windows PCs (Maybe even most of them? I have no backing figures, just a hunch.) are not personal computers, but office PCs that belong to a company fleet. There’s a reason Windows utterly dominates the office–Windows rules the IT sphere, at least where personal devices given to employees are concerned. Active Directory? Group Policy? Come on, guys. None of the companies who depend on these management tools are pivoting to Linux anytime soon, and you know it. And if their cheap, bulk order desk PCs don’t support Windows 11, they are absolutely getting landfilled.

    The only effective mitigation I could think of would be to start a charity that takes obselesced office PCs, refurbishes them to Linux, and provides them at low or no cost to those who need a low cost or free PC. It would get Linux into more hands, but it would also strengthen a stigma that Linux is nothing more than the poor man’s OS. The Dr Thunder to Window’s Mountain Dew.


  • It only just hit me a month or two ago just what a timezone, as described by IANA, actually is.

    I’m from the eastern half of the US state of North Dakota. We run on what we’d collloquially call “central time”, often abbreviated CST. That’s UTC-6:00 in winter and UTC-5:00 in summer (technically CDT, but whatever).

    Long ago I had it passed down to me from on high that the IANA timezone indicator I should use for my local time is America/Chicago. Ok. Easy enough. Why Chicago, though? I long guessed because it happens to be one of the largest localities in the CST block? That is in fact the answer if you read the rationale of the tz database, but I did not know this at the time.

    What threw me off, though, is that there are other localities that seemingly map to the same time zone block. Like America/Mexico_City, or America/Indianapolis. What’s up with those? When I set my computer system clock to them, they behave just like America/Chicago does. Why are these here? And why these cities, specifically?

    Then, imagine the loop I was thrown for when I discovered three timezone definitions exclusive to North Dakota. Those being America/North_Dakota/Beulah, ../../Center, and ../../New_Salem. What the fuck…?? These are literal nowhere towns. Midwest America is the middle of nowhere. North Dakota is the middle of nowhere within the Midwest. And these three towns are the middle of nowhere to the rest of us in North Dakota. What is going on? Why are there three tiny timezones in the middle of nowhere in the middle of nowhere in the middle of nowhere? And they’re all right next to each other!

    Then, it clicked. What do these three places have in common? These towns all used to be in the next timezone over (“Mountain Time”, MST), but later decided to jump over to CST.

    There’s a humorous story for why this happened. Supposedly, drinkers in the capital city, Bismarck, would stay to bar close. Then, they’d all hop in their cars and drunk drive to the sister city across the river, Mandan, for an extra hour of fun, causing untold chaos in the process. The jump was allegedly to curb this. Sadly, that story apocryphal. In reality, it was just because it was economically favorable to be time-aligned with the state capital city. But I digress…

    If you were, say, looking over historic records of events recorded in both Bismarck and Beulah, where records are always taken simultaneously, and your data happened to span back before this switchover, there would be an inexplicable point in time where after it the timestamps would match, but before it, they’d be offset. So, to encode that, Beulah gets its own unique timezone all to itself that indicates this historical switchover exists.

    It also explains why there are three tiny timezones all right next to one another. Three counties participated in this switchover, and to make it happen, each one had to individually pass laws to enact it. These laws all took effect on slightly different dates. Thus, if we wish to capture the nuanced time shifts in all three counties, each county needs its own bespoke timezone.

    IANA timezones aren’t just representations of all the time zones that currently exist. They are representations of every unique permutation of historic clock changes for every place on Earth. That’s fucking nuts! Knowing that, I went from being shocked that there are so many timezones to being shocked that the list of timezones is as short as it is!



  • I originally had mine mounted on /, to make them easy to type. But that set one of my highly opinionated friends wretching, so I re-mounted them to /media// to placate him and symlinked them to my home directory instead.

    It’s frustrating how often Linux systems, when approached with a “where is the canonical location for ?” question, have an answer ancient use cases practically no one has anymore, but no satisfying answer for extremely common use cases like permanently mounted backup drives, where to put web server hosted files, or even where to install applications that don’t come from package managers (/opt/? /usr/bin/? /home//.local/?).



  • pixelscript@lemmy.mltoProgrammer Humor@lemmy.mlpomni.xml
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    I had struggled with Gradle off and on for something like five years before eventually learning that Gradle files were executable code files (as opposed to static data files such as .ini) written in Groovy (as opposed to some unique esoteric Gradle lang), and the code within them interacts with implicitly declared objects.

    All of that could have been figured out very quickly with a cursory look over the documentation. I just never read it until way past the time I should have. That’s on me. I just wanted the stupid magic Gradle incantation that would get my stupid Minecraft mod to compile.

    Also, I gotta say, holy crap I hate Groovy. All of its syntax ““sugar”” just makes it hard to read unless you already know what’s up. The unique ways it makes code look like not code was the bulk of the reason why I took so long to figure out that Gradle files were code in the first place.

    I know you can write Gradle files in Java instead of Groovy, but at this point that just seems wrong. Build files shouldn’t look like source files. I have no objective justification for this, it just doesn’t feel like the way.


  • This failure of the word “open” to mean one clear and specific thing just feels like an echo of the failure of “free” to mean one clear and specific thing.

    Someone came up with the term “free” in the context of software, and a bunch of people asked, “Ah, so that means I don’t have to pay for it?” And half the room went, “Yep, of course!” and the other half of the room went, “Ehrm, not exactly…” And from that point on, we’ve had to amend the word “free” with awkward qualifiers like “as in freedom, not as in beer”, or attempt to introduce a clarifying companion term like “libre” to try and capture one of the competing meanings.

    I’m sure the “open” in “open source” is doomed to the same fate. “Source available” is to “open source” what “libre” is to “free”. An awkward clarifying companion term that only dorks like us bother to distinguish.



  • I had a period where I didn’t really understand the GPL or what it was trying to do. All I knew is that it was ““viral”” (whatever the hell that meant!) and that, supposedly, trying to use it would forever bind you and your creation to who knows what unforeseen legal horrors. I mean, look how long it is! It’s frightening! I wanted absolutely nothing to do with it at first.

    Then I got a clue and actually read it. It’s quite straightforward. For almost all serves and purposes it’s basically just MIT plus copyleft. All the legal density is just an effort to squash every conceivable loophole to the copyleft directive. I’m no longer afraid of it, I think it’s pretty cool.

    The thing I want to know now is why so many projects think their shit don’t stink and that they need to pollute the FOSS ecosystem with their own stupid permissive license that is functionally identical to the MIT license.



  • I put my home directory on another partition, because I heard very early on that it can better facilitate distro hopping. That is not the stupid part, that’s actually good advice.

    The stupid part was assuming that Linux users are identified by name, and that as long as I create a user with the same name as the one on my previous install, things would Just Work.

    Im reality, Linux users are integer IDs under the hood. And in my original system, my current user at the time was not the first user I had created on that system. Thus, when I set up my new OS, mounted the home partition, and set the first user to have the same name, I was immediately unable to log in. The name match meant I was trying to read my home dir, but the UID mismatch was telling me I had no permission to read it. I was feeling ballsy with the install and elected to not enable the root user, so I had an effectively bricked OS right out of the box.

    I’m sure there was some voodoo I could have done to recover it on that attempt, but I just said screw it and reinstalled.