Skip Navigation

PorkrollPosadist [he/him, they/them]

@ PorkrollPosadist @hexbear.net

Posts
36
Comments
583
Joined
5 yr. ago

Hexbear's resident machinist, absentee mastodon landlord, jack of all trades

Talk to me about astronomy, photography, electronics, ham radio, programming, the means of production, and how we might expropriate them.>

  • if they use spreadsheets there isn’t any serious alternative to excel. Sad but true.

    Perhaps, but I Will Fucking Dropkick You If You Use That Spreadsheet

    Edit: It's called PostgreSQL

    Edit 2: There really are two separate but overlapping problems. One is the claim that alternatives are not capable of doing what Excel can do. This is one I am skeptical of. Their may not be a single alternative which does everything Excel does, but Excel is used for all sorts of workflows from data entry to data processing to accounting to mathematics to statistics to data visualization to using the cell background colors to create recreations of classic nintendo pixel art, and there are many tools well suited for each of these specific niches.

    The other is that, as an individual or organization with complex accounting systems and business processes created on top of Excel, there is no replacement. Excel is a requirement to continue operations under these circumstances. This is certainly true, but I consider it a problem that organizations opt into. Why hire a dev (or even basic IT staff) to build out internal information systems and applications when we can just use Excel? Why hire a DBA to schematize and safeguard decades of essential business records when we can just license this bauble from Koch Industries or Oracle and "put it all in the cloud?" Why should we provide any infrastructure whatsoever for our accounting staff other than a Windows PC with Office? Most companies like this are basically doomed, but if you have the opportunity to think about how you are keeping records and processing data before you create ten years worth of it, there is always a solution that will scale much better and cost a lot less in the long run.

    In the latter case, I don't think it is even possible to create an alternative. If you build a system of sufficient complexity, it cannot be moved without essentially re-creating it from scratch. This is just as much the truth for a skyscraper or a car designed with a specific CAD package as it is for a complex business accounting process created with Excel. This is the reason the Social Security Administration is STILL using mainframe computers running COBOL. There is nothing exceptional about Excel in this regard. It is just the foundation that many of these systems were built on (and it will be around just as long as COBOL for that reason).

  • But they do have the source code in .tar.gz files available. But I have zero knowledge of how to manually compile a program, let alone audit the code...

    Yeah that's a whole 'nother rabbit hole. Not to say it is exceptionally difficult or anything (I do it for a couple programs), but it basically goes back to the dependency hell thing where it becomes your responsibility to track down all the dependencies and install them yourself (now including build-time dependencies like compilers, build automation systems, header files, etc), as well as update it manually. It can be worthwhile if you specifically want to try the bleeding edge version of a program, like if the specific bug you're experiencing got fixed last night, or if you want to try an experimental branch someone is working on, or if it is such a small project that nobody has taken the time to package it in any other form. Otherwise, these changes trickle into the stable distribution packages eventually (fairly quickly in Fedora).

    AppImages have a couple downsides, but that's all they are - downsides. When weighed against alternatives, they are still often worth it. It isn't like an evil technology or anything. You need to trust whoever you're getting it from, naturally. No surprises there. There is no holistic update mechanism which can update all your AppImages the way your distro package manager can update your entire system - though some apps will implement their own self-update mechanisms. And because they bundle many of their dependencies, the updates applied by your distro package manager don't apply to them. If an AppImage bundles (e.g.) the cURL library and your distro updates its cURL library to a newer version, the AppImage will continue using whatever version of cURL is bundled inside of it. After a long enough period of time, un-patched security vulnerabilities can accumulate this way (basically the same security implications of unzipping and running a program on Windows that you downloaded N years ago).

    On the other hand, it is more convenient for a lot of commercial software companies to put together one AppImage rather than build, package, and test their software for a dozen different distributions. Distribution packages for software like this, when they exist, are almost always created by third party volunteers affiliated with the distro rather than that specific software developer.

  • To provide a little more background, .so files ("shared objects") are the Unix equivalent of .dll files ("dynamically linked libraries") on Windows. They contain a collection of software routines which are shared between various programs (in this case, the ability to embed a browser engine within a GTK application). On a technical level, they provide the benefit that code in a shared object only needs to be stored on the disk and loaded into memory once, regardless of how many programs make use of it. Unlike Windows, these files are versioned (which is why you'll often see numbers after the .so suffix). For the most part, they are stored in /usr/lib or /usr/lib64

    When you run a program, a part of the operating system called the dynamic linker will search for all the required libraries (also known as dependencies) as a prerequisite to starting the program. If the dynamic linker fails to find any of the needed dependencies, you get an error message like the one shown above. The circumstance of needing to track down many arbitrary dependencies, many of which may have their own dependencies, is known as "dependency hell." It is the fundamental problem which package managers solve, and can quicky become a burden when working around them.

    AppImages are supposed to "solve" this problem as well by bundling all their needed dependencies, but in practice a lot of them still seem to make assumptions about what libraries and utilities are present on your machine. I'm not as well versed in the technical details.

  • Not left, not right, forward.

  • The Long Twentieth Century by Giovanni Arrighi

  • Interpreting this as "Geometric Dimensioning and Tolerancing" and picturing the most grotesque blueprint I've ever seen in my life.

  • Within a year they will be claiming ivermectin "cures" autism.

  • Windows did the same thing I'm pretty sure

    With Windows, Microsoft was facing an antitrust suit (back when those happened) for leveraging their monopoly position in the PC operating system market to force Internet Explorer upon everybody, so what they did is merge the file browser (including the Desktop) and Internet Explorer into a single thing so they could claim it is actually an essential component of the operating system. Whatever Nautilus was doing 20 years ago, it wasn't that stupid.

  • FWIW, 9 out of 10 times (mouse / keyboard / controller) input lag is actually (video) output lag. It can even be introduced by settings on the display itself (for instance, my TV if it is in "Cinema Mode").

  • We've detected the following packages compromised with a new version of Shai Hulud. Between all these 492 packages, they have a total of 132 million monthly downloads:

    lol. lmao.

  • An important aspect of software distributions (ranging from Linux distros to smartphone OSes to software development package repositories) is trust. I trust that the infrastructure hosted at gentoo.org is operated by the Gentoo Foundation. I trust that they trust the various repo mirrors listed there (either way, their authenticity can be verified). I know which IRC channels I can drop into, or where I can send an email to speak with them. From their website, I can verify that they are in control of those IRC channels, and I can obtain the public keys of various project members to verify any email I recieve from them is legitimate (and to encrypt my messages to them, should that be necessary). This is the foundation of an entire network of trust which prevents people from (convincingly) impersonating project contributors, or being able to distribute compromised packages or builds claiming them to be genuine.

    Likewise, GrapheneOS has a reputation based in large part on their project infrastructure. It's not just that the users know what they're getting, but they know who they are getting it from. That they don't have to worry about people impersonating the project or its contributors on official channels. When infrastructure like this fractures, this reputation evaporates. Trust breaks down. Sure, the mechanisms will still work if you swap out one URL for another, but you no longer know who is in control of what, where your packages are coming from, who's reviewing them, who's signing off on them, etc. If I want to install GrapheneOS, I would want to download it directly from the GrapheneOS project. An "archived" copy of the latest image for my device found on ThePirateBay is not a suitable replacement. If some other organization with no history shows up claiming to be the successor to the now (hypothetically) defunct GrapheneOS project, that's hardly better.

    There are other mechanisms like public key cryptography which can be (and are) used to establish the authenticity of a distribution, but there is a chicken and egg problem. Where do you obtain the public keys used to verify authenticity in the first place? Especially when there is no longer a canonical home for an organization and the infrastructure is constantly changing. It makes everything more confusing, unreliable, and risky. Developers and power-users will already have the public keys of important community members and project infrastructure, but for newcomers the whole thing becomes a lot more sketchy.

    The GrapheneOS project appears to be taking reasonable precautions to ensure they remain in control of their infrastructure. It may be an exceptionally cautious measure, but that is supposed to be their raison d'être.

  • It IS true, but once liberals learned about it, it got bastardized into "we found a Black person who says Joe Biden is good and you're being racist for dismissing their lived truth."

    Instead of deferring to oppressed peoples as an epistomogical authority on the conditions of their own oppression, they just dig up people from the same category and use the language of standpoint epistemology to position them as authorities on any arbitrary self-serving issue.

  • It's an end-run around the GPL and other copyleft license schemes. This is a big deal. It is limited in scope, but nothing is stopping Microsoft from doing something similar with Github, for instance. This is the legal blueprint all these companies will use for feeding the corpus of copyleft software into their language models, committing industrial scale copyright infringement, and spitting out thousands of proprietary applications with GPL code inside them. I mean, they're already doing this, but this is the permission slip they will march into court with.

  • the siege update is out

    oh shit!

  • As modern games have grown more complex, they increasingly have a need for a fully fledged GUI toolkit encompassing all the widgets and layout mechanisms one would expect from conventional GUI toolkits like Qt. This is convenient because it allows UI designers to have all the familiar components like radio buttons, text entries, drop-down menus, sliders, etc. at their fingertips while outsourcing the maintenance. It also provides a common API for companies designing middleware, tools, extensions, and assets for the game engine. The drawback is that every. single. game. is using the same UI engine, just with different skin slapped on top of it.

    Back in the day, GUI was something most games had to roll their own. They were a lot more unique because they were literally re-inventing the wheel each time. Modern games using off-the-shelf UI engines should at least benefit from additional considerations when it comes to internationalization, accessibility, and porting to platforms with different input methods (the provisions are there), but apparently nobody gives a fuck and we end up with GUIs that could have been produced by Copilot.

  • Tried to load a couple old saves in Cities: Skylines. Shit is impossible. Cloning the dinosaurs would be more simple. Little progress in WR:SR as I balance the idea of potentially starting a new map. Torn between "Kentuckygrad" (an extremely mountainous map where you're basically limited to building in the narrow hollers of the appalachian mountains) and doing DPRK again (much more laid back in terms of buildable space and resources).

  • The UEFI firmware stores a list of boot loaders in NVRAM (a dedicated chip on your motherboard) in what are called EFI Variables. Sometimes this gets fucked up if the drive numbering changes, like when a drive is added or removed (physically, or "effectively" due to power failure or some other freak incident), or if it is snowing outside, or if the machine is booted on Friday the 13th in an even numbered year. It sounds like rather than GRUB just disappearing, the EFI variable pointing to it has. You might just need to re-create this EFI variable. The tool for this is efibootmgr. Though it can be helpful, you don't actually need to do this from a chroot environment. You could do it from any rescue CD (if you need to re-install GRUB, then you should do it from a chroot though).

    The UEFI firmware usually will make no attempt at auto-detecting bootloaders (with the possible exception of BOOT\BOOTX64.EFI). The OS installer creates an EFI variable at install-time, and if it becomes invalid for whatever reason it gets yeeted.