• 1 Post
  • 63 Comments
Joined 6 months ago
cake
Cake day: January 19th, 2024

help-circle



  • Not yet. It can lead to that point, but this is just the kernel handling an “out of memory” situation. The kernel in the screenshot is configured to run its OOM reaper / OOM killer.

    The OOM reaper checks all running processes and looks for the one that causes the least disruption when killed. It does that by calculating a score which is based on the amount of memory a process uses, how recently it was launched and so on. Ideally, a Linux desktop user would simply see their video game, browser or media player close.

    This smart TV is in real trouble, though, it probably already killed its OSD, still didn’t even have enough memory to spawn a login shell and is now making short work of strange VLC instances that probably got left behind by a poorly written app store app :)


  • I don’t know why that comment is collecting downvotes. They are referencing George Orwell’s “Animal Farm.”

    Context: “Animal Farm” is a story about how communism can devolve into dictatorship. In the story, the animals on a farm drive out their tyrannical drunkard farmer. They write on the barn wall: “all animals are equal” and live in communist utopia. But some animals, too, hunger for power and status. Rather than overturn the system, they undermine it by adding “…but some animals are more equal than others” to the barn wall, legitimizing a ruling class (themselves) because they are “more equal.”


  • I think you’re mistaken there.

    Wine is a vanilla Linux executable that runs as the user who launched it. The Windows program it runs thus also runs under that user. That’s possible because Wine doesn’t do anything system-wide (like intercepting calls or anything), it already gave the process its own version of i.e. LoadLibrary() (the Windows API function to load a DLL) and can happily remap any loaded DLL to Wine’s reimplementation of said DLL as needed.

    Here are, for example, the processes created when I run Paint Shop Pro on my system (the leftmost column indicates the user each process is running as): Processes running after launching a Windows executable via Wine

    Also, some advice from WineHQ: WineHQ warning never to run Wine as root


  • After reading, the gist of it seems to be:

    • Vanilla far-right indoctrinated dumbo (his vision: “Reds” welcome, “Blues” not, “Anti-Blue Propaganda” on public view screens)
    • Wants exploitative capitalism on steroids with companies controlling everyone’s lives completely
    • Claims current capitalism is only bad because it’s “woke capitalism” which he claims the “ruling class” is pushing
    • Wants tech bros to butter up police and give security staff jobs to their children as a favor, i.e. intentional social classism

    .

    In short, just another out of touch entrepreneur who sells snake oil cures to people suffering in the current system, so that they may invite in the boot that stomps them down for good.


  • What would be missing from VS Code or VS Codium that an IDE needs?

    I’m an ex Visual Studio user, now writing all my code in VS Codium. I organize my project tree in VS Codium, I build from it and, like a Visual Studio user, I press F5 to debug, set breakpoints and inspect variables.

    And that’s just the default install using the vanilla C/C++ extension it ships with, not some complicated setup that takes any time to get working.



  • That’s what I meant when I wrote “Git submodules can only point to a whole different repository” - they can’t point to a path inside a repository, only to another repository root. That unfortunately renders them useless for me (I’d have to set up in the order of hundreds of small repositories for the sets of shared data I have).


  • I’m already using Git for source code related versioning, but some use cases involving large binary files with partial updates aren’t well covered by Git (I’ve gone into some detail in my reply to @vvv@programming.dev).

    There’s also the lack of svn:externals in Git. Git submodules can only point to a whole different repository as far as I’m aware.


  • I’m already using Git, thus my experience with Gitea. I am well versed with svndumpfilter and git-svn to extract and migrate individual Subversion repositories to Git.

    I’m not only hosting code, but I have several projects involving large binary files with binary changes. Git’s delta compression algorithm for binary files is so-so. Git LFS is just outsourcing the problem. Even cloning with --depth 1 --single-branch gives me abysmal performance compared to Subversion.

    So I’m still looking for a nice WebUI to make my life with the Subversion repositories I have easier.




  • When you have a bunch of computers networked, each of them is assigned a unique number, so when other computers send data on the wire, they can say who it is meant for (imagine each blurb of data starting out like: “yo, I’m sending these next 500 bytes for computer 0A123FBC32, here they come”).

    Now the right computer will listen, but it doesn’t know what program the data is for - is it a chunk of a file your browser is downloading? Or the email your email app wants to display? Or perhaps a join request from your buddy’s computer for the Minecraft game you’re hosting?

    So in addition to the unique number of the target computer, the data also specifies a “port number”, which tells the computer which of its running programs the data is meant for (programs ask the computer’s operating system: “if any network data arrives on port XY, give it to me”). Some ports have become standards - for example, a program that serves web pages to other computers would typically ask the operating system that any data arriving on the computer that indicates port numbers 80 and 443 should be given to it, and when a web browser wants to fetch a web page, it will send a request to the computer serving the page, defaulting to port 80 o 443.

    If you dig deeper, you’ll find that there are even more unique numbers involved and routers/firewalls let data through not only by port number but also by distinguishing between data that is the initial request to another computer’s port number and data that is an answer to an earlier seen request – and more.


  • I am a Gentoo user and most of that is already a reality on Gentoo systems. Get the stage3 tarball set up, slap your /etc/portage/make.conf and /var/lib/portage/world files in there and build.

    Obviously, depending on whether it should be a blank system with the same apps installed or a clone of a previous system, configuration in /etc and one’s home directory may need to be copied, too.


  • I love that example. Microsoft’s Copilot (based on GTP-4) immediately doesn’t disappoint:

    Microsoft Copilot: Two pounds of feathers and a pound of lead both weigh the same: two pounds. The difference lies in the material—feathers are much lighter and less dense than lead. However, when it comes to weight, they balance out equally.

    It’s annoying that for many things, like basic programming tasks, it manages to generate reasonable output that is good enough to goat people into trusting it, yet hallucinates very obviously wrong stuff or follows completely insane approaches on anything off the beaten path. Every other day, I have to spend an hour to justify to a coworker why I wrote code this way when the AI has given him another “great” suggestion, like opening a hidden window with an UI control to query a database instead of going through our ORM.


  • I assume that Twitter still has tons of managers and team leads that allowed this and have their own part of the responsibility. However, Musk is known to be a choleric with a mercurial temper, someone who makes grand public announcements and then pushes his companies to release stuff that isn’t nearly ready for production. Often it’s “do or get fired”.

    So… an unshackled AI generating official posts, no human hired to curate the front page, headlines controlled through up-voting by trolls and foreign influence campaigns, all running unchecked in the name of “free speech” – that’s very much on brand for a Musk-run business, I’d say.


  • Linux Unix since 1979: upon booting, the kernel shall run a single “init” process with unlimited permissions. Said process should be as small and simple as humanly possible and its only duty will be to spawn other, more restricted processes.

    Linux since 2010: let’s write an enormous, complex system(d) that does everything from launching processes to maintaining user login sessions to DNS caching to device mounting to running daemons and monitoring daemons. All we need to do is write flawless code with no security issues.

    Linux since 2015: We should patch unrelated packages so they send notifications to our humongous system manager whether they’re still running properly. It’s totally fine to make a bridge from a process that accepts data from outside before even logging in and our absolutely secure system manager.

    Excuse the cheap systemd trolling, yes, it is actually splitting into several, less-privileged processes, but I do consider the entire design unsound. Not least because it creates a single, large provider of connection points that becomes ever more difficult to replace or create alternatives to (similarly to web standard if only a single browser implementation existed).