moonpiedumplings

joined 2 years ago
[–] moonpiedumplings@programming.dev 1 points 2 hours ago* (last edited 1 hour ago)

Google Chrome of Linux

It's more like Chromium, the engine behind Chrome, to be precise. It eats up marketshare by essentially being anti-competitive, and making it more difficult for alternate engines to keep up with the fluctuating and undefined web standards.

Poettering hasn’t even worked at Red Hat for multiple years now.

No, he now works at Microsoft, which is famous for it's Embrace, Extend, Extinguish strategy for consuming open source and open standards.

But despite that, I'm actually not worried about systemd being taken over by a corporation and being completely used to dominate Linux. Unlike consumer software, where companies seem to be willing to take a step back and allow other corporations to monopolize a slice of the market dedicated to a usecase, corporations actually seem willing to share in the server space.

Systemd also seems to be designed with a very specific philosophy in mind, which is vastly different from Chromiums "Alright, time for a new web standard that Firefox and Safari will have trouble implementing!". Systemd, is essentially designed to replicate features of Kubernetes.

Kubernetes is (buzzwords incoming), a clustered, highly available, multi tenant, declarative, service manager and job scheduler. To break down what that means:

  • Multi tenant: There can be different "users" on a Kubernetes cluster, which can be granually given access to different resources or capabilities
  • Declarative: All of the Kubernetes config, roles, users, and jobs, and can be declared as code, "yaml".
  • Service Manager: Kubernetes can run services, specifically containers (this is important to note).
  • Job Scheduler: Users can start short or long running "jobs"
  • Clustered: Kubernetes can combine resources from more than one physical or virtual server into a cluster. It does not literally combine them, but rather it shifts around services and jobs to make more room. Some services can take direct advantage of this though, where running multiple instances of them does let you combine resources.
  • Highly Available: If any single "node" of a kubernetes cluster goes down, the services Kubernetes runs, and Kubernetes itself, stay active.

Systemd is essentially trying to Kubernetes, without the clustering and highly available parts of Kubernetes. It has:

  • Multi tenant: This is what polkit, and logind do. They give users the ability to run long running services, but control the resources and capabilities those users who have access to
  • Declarative: Systemd doesn't use yaml like kubernetes, but instead it uses the ini file format — but almost everything in Systemd can be declared as an ini file.
  • Service Manager: This one is mostly self explanatory — but what's important to note is the focus that systemd has on containers. There is support for OCI containers via podman quadlets, but Systemd also has it's own container format that it can launch rootlessly, and built on top of this is systemd portablectl, which is essentially an application container format, similar to docker. You tell systemd to run a service with a root image of one of these containers, and it does so.
  • Job Scheduler: Timers, but it's not a full featureset. Perhaps Systemd doesn't care about this because people can simply run commands after they are ssh'ed in.

Now, based on the assumption, I can make some predictions about what features systemd will add next. Maybe these are wrong, but eh.

  • Firewall service: Kubernetes has something akin to a firewall, but mostly this prediction is because Linux doesn't really have a declarative firewall. Systemd kinda already has something similar but it's not complete.
  • More advanced manipulation of user resource and capability constraints. It looks like there is some simple cgroup stuff, but I do think we are going to eventually see Seccomp and other restrictions.
  • A "container repo" for portable/nspawn services. I think they used to have one for OS containers for machinectl, but I can't find it. But If they are actually trying to be Kubernetes, then I would expect to see a setup where you can have a file declaring a service, and then it pulls the container image for that service and then runs it.

Now, "one node Kubernetes" probably isn't the best choice for a normal server or desktop distro. (Actually I love Kubernetes as a server but that's a different discussion). But it's the most popular choice, so I think people should be aware of the architecture and intent. Especially if you dislike systemd, you should understand what changes it makes, why, and how they will impact the Linux world.

Kubernetes handles everything, except for booting the system, being a kernel, and starting itself up, and connecting to the network. Core services like DNS are actually containers ran within Kubernetes. The "firewall" (network policies) are also containers. If systemd truly wants to be Kubernetes, it seems to be trying to be even more, where consuming things like booting with systemd-boot and connecting to the network with systemd-network. I'm not personally concerned, because Kubernetes has consumed the server world and that hasn't seem to have gone wrong, but I can understand why people would be concerned.

@R3D4CT3D@midwest.social

Or is it: @R3D4CT3D@midwest.social

[–] moonpiedumplings@programming.dev 3 points 1 day ago* (last edited 1 day ago) (1 children)

Alright, this is gonna be long.

Firstly, yes, different static site generators have different templating langauges. But just like normal programming languages, it is easy to transition from one templating langauge to another. If you take a look at the syntax:

Not drastically different, but reading the docs, they are all similar enough, and easy to learn.

I wouldn't call go's templating language "esoteric", but it should be noted that jinja2 is has other uses, most notably it is the templating engine that Ansible uses.

As for the docs... This could probably be a blog post by itself.

Firstly, take a look at this website: https://killedbygoogle.com/ . Google has created and then killed 296 projects, many of which were actively used and working. Why?

This is because, internally at Google, you get promoted if you either A: write software, or B: add more features to software. So what happens is people write software, get promoted, and then realize they don't get paid more if they actually maintain that software, so they just kill it. Also, they forget to write documentation (because it doesn't pay more or get you promoted).

Hugo, is by a Google Engineer, and it shows (or at least, it used to). Software by Google has two distinct characteristics (actually 3 if we count being written in Go).

  • It has every feature you could ever want, even stuff you haven't heard of
  • And it's poorly documented. Or not at all lmao.

But, "being poorly documented" is not a permanent fixture of this software, but instead something that mostly persists for as long as it's Google software. Often, these projects get "adopted" by the wider community, who fixes up their documentation. Looking at hugo's docs, it doesn't seem be nightmarishly bad, especially for the core, main set of features. Like the setup docs appear to be clear (although a more complex process than alternatives).

But like, for search options: https://gohugo.io/tools/search/ . That google software pattern continues. There are like 10 options on the page, and no docs from hugo on their usage/installation lol.

Anyway, I would recommend eithier Pelican or Jekyll, given your requirements. Because everything you write is in markdown, it will be fairly easy to move from one static site generator to another, even if you are dissatisfied.

Also, kinda sorta relevant:

(source)

But the point I'm trying to make is the same. Don't agonize over selecting the perfect static site generator.

I already made a comment but you should also look at rocketchat and revolt, since they are basically FOSS discord clones

(I saw comments in the thread about wanting audio only calls.)

[–] moonpiedumplings@programming.dev 2 points 1 day ago* (last edited 1 day ago)

It's actually not that hard. (Well it is, media and networking are hard, but)

I think the problem is that when people search for something better than Teams (or any other software), they confuse "better than", with a mostly nonexistent "best". In doing so, they skip over the way every single thing people suggest is "good enough".

Like, following this thread, we went from "I want a teams (voice/video/chat) alternative" to "Yeah I don't like Jami because it leaks metadata." How did we go from wanting a teams alternative, to wanting privacy with no metadata leakage? Those are very different things, and you make tradeoffs if you take one set of feature over the other. If you just add "no metadata leakage" on top of your current wishes, then you are probably going to be disatisfied with every option given.

Or "Firewalls and hole punching!" (implying a p2p architecture) and "depends on peers being reliable" (being frustrated with the pitfalls of a p2p architecture). Again, wtf? Of course there is software that is both p2p and client server, but that is hard and tradeoffs will end up being made, even purely in what the developer spends their limited time on.

This person just needs to get out of their head, whip up deployments for every software (or suite if there is more than one) mentioned in the thread, and pick the one that looks the nicest.

[–] moonpiedumplings@programming.dev 2 points 1 day ago* (last edited 1 day ago)

Quarto has theming via several built in bootstrap themes.

Quarto is written in javascript.

Also, it has no template engine/templating. I have a nasty hack where I write python code blocks (vua quarto's ability to execute code blocks) to output markdown that can be remdered to both html and pdf, which is pretty unique. But this is probably not what most people making a website want.

You may want quarto. It is explicitly designed for data science and related usecases, and has ample support for the graphs those usecases need.

[–] moonpiedumplings@programming.dev 5 points 2 days ago* (last edited 2 days ago) (2 children)

I use quarto: https://quarto.org/

The big thing I like is that it has fulltext local search, built in and easy to enable.

Search is possible on hugo, but it's not built in, you have to get a plugin, etc etc. Same for many other options you mentioned.

Heres my website: https://moonpiedumplings.github.io/

You want either mattermost or the whole matrix stack (backend, plus element with voice/video calls).

Matrix/Element is more of a discord alternative, whereas mattermost tries to be more of a slack alternative, where it seems to have some calendar integrations.

Big bluebutton is now integrated into Canvas, an open source learning management software (LMS) that every school I have went to has used.

 

So this is a pretty big deal to me (it looks recent, just put up last October). One of my big frustrations with Matrix was that they didn't offer helm charts for a kubernetes deployment, which makes it difficult for entities like nonprofits and community clubs to use it for their own purposes. Those entities need more hardware than an individual self hoster, and may want features like high availability, and kubernetes makes horizontal scaling and high availability easy.

Now, according to the site, many of these features seem to be "enterprise only" — but it's very strangely worded. I can't find anything that explicitly states these features aren't in the fully FOSS self hosted version of matrix-stack, and instead they seem to be only advertised as features of the enterprise version

My understanding of Kubernetes architecture is that it's difficult for people to not do high availability, which is why this makes me wonder.

Looking through the docs for the "enterprise version, it doesn't look like anything really stops me from doing this with the community addition.

They do claim to have rewritten synapse in rust though

Being built in Rust allows server workers to use multiple CPU cores for superior performance. It is fully Kubernetes-compatible, enabling scaling and resource allocation. By implementing shared data caches, Synapse Pro also significantly reduces RAM footprint and server costs. Compared to the community version of Synapse, it's at least 5x smaller for huge deployments.

And this part does not seem to be open source (unless it's rebranded conduit, but conduit doesn't seem to support the newer Matrix Authentication Service.)

So, it looks Matrix/Element has recently become simultaneously much more open source, but also more opaque.

 

So this is a pretty big deal to me (it looks recent, just put up last October). One of my big frustrations with Matrix was that they didn’t offer helm charts for a kubernetes deployment, which makes it difficult for entities like nonprofits and community clubs to use it for their own purposes. Those entities need more hardware than an individual self hoster, and may want features like high availability, and kubernetes makes horizontal scaling and high availability easy.

Now, according to the site, many of these features seem to be "enterprise only" — but it's very strangely worded. I can't find anything that explicitly states these features aren't in the fully FOSS self hosted version of matrix-stack, and instead they seem to be only advertised as features of the enterprise version

My understanding of Kubernetes architecture is that it's difficult for people to not do high availability, which is why this makes me wonder.

Looking through the docs for the "enterprise version, it doesn't look like anything really stops me from doing this with the community addition.

They do claim to have rewritten synapse in rust though

Being built in Rust allows server workers to use multiple CPU cores for superior performance. It is fully Kubernetes-compatible, enabling scaling and resource allocation. By implementing shared data caches, Synapse Pro also significantly reduces RAM footprint and server costs. Compared to the community version of Synapse, it's at least 5x smaller for huge deployments.

And this part does not seem to be open source (unless it's rebranded conduit, but conduit doesn't seem to support the newer Matrix Authentication Service.)

So, it looks Matrix/Element has recently become simultaneously much more open source, but also more opaque.

 

See title

 

See title

 

I find this hilarious. Is this an easter egg? When shaking my mouse cursor, I can get it to take up the whole screens height.

This is KDE Plasma 6.

 

I find this hilarious. Is this an easter egg? When shaking my mouse cursor, I can get it to take up the whole screens height.

This is KDE Plasma 6.

 

I find this hilarious. Is this an easter egg? When shaking my mouse cursor, I can get it to take up the whole screens height.

This is KDE Plasma 6.

 

Incus is a virtual machine platform, similar to Proxmox, but with some big upsides, like being packaged on Debian and Ubuntu as well, and more features.

https://github.com/lxc/incus

Incus was forked from LXD after Canonical implemented a Contributor License Agreement, allowing them to distribute LXD as proprietary software.

This youtuber, Zabbly, is the primary developer of Incus, and they livestream lots of their work on youtube.

 

This card game looks really good. There also seems to be a big, open source server: https://github.com/cuttle-cards/cuttle

 

Source: https://0x2121.com/7/Lost_in_Translation/

Alt Text: (For searchability): 3 part comic, drawn in a simple style. The first, leftmost panel has one character yelling at another: "@+_$^P&%!. The second comic has them continue yelling, with their hands in an exasperated position: "$#*@F% $$#!". In the third comic, the character who was previously yelling has their hands on their head in frustration, to which the previously silent character responds: "Sorry, I don't speak Perl".

Also relevant: 93% of paint splatters are valid perl programs

view more: next ›