Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)MO
Posts
18
Comments
433
Joined
2 yr. ago

  • In order to receive messages from a mailing list you must subscribe to it

    It would have been really nice for this to be documented in the docs for the openstack mailing list, so I could know before I sent an email. I read their 3 different pages on the mailing lists, wrote up a email with all correct formatting and etiquette, and read through the archives to ensure I was sending my question to the correct mailing list, only to receive a "Your message needs to be approved by a moderator."

    Almost a year later, still in quarantine. It doesn't matter though, I figured my issue out.

    Despite all the effort put into documenting mailing lists, and all the effort I put into reading that documentation, there are still de-facto standards people are just expected to know on top of that and it's bullshit. Software forges (github, forgejo, etc) don't have this problem, people can just contribute or ask for help using the integrated tooling (issues, PR's, etc). There is a problem with centralization, but hopefully activitypub federation between software forges fixes that.

  • Okay. A little context is needed.

    Qemu is just the emulator used. For the most part, it cannot handle networking.

    Libvirt, is a system daemon, that handles running qemu and whatnot, and also configuring networking. Virt-manager, interacts with this libvirt daemon.

    Now, by default, libvirt creates a bridge for all virtual machines to use, to create a simple one-to-many NAT.

    The above is looking at the bridge on my laptop*. However, each virtual network has to be started.

    Then, when you create a virtual machine, it should automatically select the bridge interface, and no further configuration should be required...

    However, that's just NAT. But configuring the other virtual networking types should also be doable from the virt-manager as well, and I find it kinda weird that you are going to NetworkManager for this. The default is NAT, but

    By "multiple local ips", do you mean something like how virtual machines share a physical device (possibly with the host?), and get their own ip address on the same network as the host?

    Macvtap is probably the easier way to do that, just select macvtap and the physical device you want to attatch your virtual machine to, however, there are caveats with host-guest network communication.

    Bridged is more complex, especially when you only have one physical ethernet port. Converting an ethernet interface to a bridge usually also prevents it from being used as a normal ethernet port.

    The easier, more reliable, tested method requires two ethernet interfaces, both plugged in and connect.

    Create a bridge in Networkmanager, and select the non-host interface, as a bridge:

    There is a less reliable way if you only have one ethernet interface: if you have only one port, you can convert it to a usable network interface. Although you can do this by hand in NetworkManage (or whatever network management service you are using), there is a much easier way:

    1. Install Cockpit
    2. Go to the networking section
    3. Create a bridge, and add your main ethernet interface as a port.

    After that, cockpit will automatically configure bridge to be a usable internet interface as well, and then you can select that bridge as your bridge in virt-manager....

    Except I had some issues with nested bridging on kernels older than 6.0, so obviously setup adds extra complexity.

    Anyway, I highly recommend you access cockpit remotely, rather than over RDP, if you are going to do this, so that cockpit can properly test the network connection (it automatically reverts changes within a time period if they break connectivity).

    I also recommend reading: https://jamielinux.com/docs/libvirt-networking-handbook/ for an understanding of libvirt networking, and which

    *okay, maybe inline images are kinda nice. I thought they were annoying at first but they obviously have utility.

  • I recently noticed that it's now integrated into Canvas, a FOSS online learning management software which my college (and my high school, and my middle school) have used.

    To bad no one bothers with it, forcing everyone to use zoom instead. Which sucks, because the first day of online classes, zoom permissions weren't set up properly, meaning no one could join the meeting. Probably wouldn't have happened with BigBlueButton.

  • Provision Management Software

    Openstack skyline/horizon

    Compute

    Openstack nova

    And so on. Openstack is also many, many components, that can be pieced together for your own cloud computing platform.

    Although it won't have the sheer number of services AWS has, many of them are redundant.

    The core services I expect to see done first: compute, networking, storage (+ image storage), and a web UI/API

    Next: S3 storage, Kubernetes as a service, and then either Databases as a service or containers as a service.

    But you are right, many of the services that AWS offers are highly specialized (robotics, space communication), and people get locked in, and I don't really expect to see those.

  • I used to spend a ton of time helping people on reddit with linux and related things, and the "why" matters immensely in that case.

    XY problem was extremely common, where someone was trying to achieve a goal through "incorrect" means.

    I also saw many, many people's issues where they wanted something, but were referring to it by a different name, ending up confused and lost. All I had to do was say "you actually want Y" and point them on their way, and they would be happy.

    And then of course, sometimes people try to do something that's simply not possible (or more usually, not implemented in software.).

    But in general, it's very difficult to help people who don't make it easy for you to help them, and part of that is explaining the "why", in addition to their issue.

  • AWS is software. Just not something you can self host.

    There already exist alternatives to AWS, like localstack, a local AWS for testing purposes, or the more mature openstack, which is designed for essentially running your own AWS at scale.

  • You cannot run a GUI in LXC

    It's probably possible, especially considering lxc can run systemd nowadays, and I can find many sources on this, for GUI and for GPU acceleration (but not in proxmox):

    https://stgraber.org/2017/03/21/cuda-in-lxd/

    https://blog.simos.info/how-to-run-graphics-accelerated-gui-apps-in-lxd-containers-on-your-ubuntu-desktop/

    And then there are also technologies like KasmVNC which can serve a GUI as a website, and it doesn't need a GPU at all.

    EDIT: Two year old guide, but a redditor pulled it off

  • I usually use nix to manage my development environments.

    At the root of the git repo for my blog, there is a shell.nix file. This file, shell.nix, declares an entire shell environment, giving me tools, environment variables, and other things I need. I just run nix-shell while in the same directory as the shell.nix file, and it creates that shell environment.

    There are other options, like VSCode has support for developing in a docker container (only docker, not podman or lxc).

    I think lxc/incus (same thing) containers are kinda excessive for this case, because those containers are a full linux system, complete with an init system and whatnot. Such a thing is going to use more resources (ram, cpu, and storage space), and it's also going to be more to manage compared to application containers (docker, podman), which are typically very stripped down and come with only what is needed to run the application.

    I used to use anaconda, but switched away because it doesn't have all the packages I wanted, and couldn't control the versions of packages installed very well, whereas nix does these both very well. Anaconda is very similar in usage though, especially once you start setting up multiple virtual anaconda environments for separate projects. However, I don't know if anaconda is as portable as nix is, able to create an entire environment from a single file of code.

  • The new mars helicoptor, ingenuity, runs linux.

    https://www.theverge.com/2021/2/19/22291324/linux-perseverance-mars-curiosity-ingenuity

    Their solution is to hold two copies of memory and double check operations as much as possible, and if any difference is detected they simply reboot. Ingenuity will start to fall out of the sky, but it can go through a full reboot and come back online in a few hundred milliseconds to continue flying.

    https://news.ycombinator.com/item?id=26181763

    Dunno if future one's will run linux though, since this is just an experiment.

  • Do you use a linter like the ansible vscode extension?

    I used to hate writing ansible, and yaml, until I installed the ansible lint vscode extension, and everything became much, much easier.

    Later on, when I was working on a docker-compose, I noticed that the vscode yaml extension (which the ansible extension pulled in as a dependency) caught errors. It's quite intelligent, able to spot errors exactly like what you mentioned, where the yaml syntax is correct, but the docker-compose, or the ansible syntax is wrong.

  • I'm not too well versed in rustdesk, but it seems that they use end to end encryption (is it good? Idk).

    https://github.com/rustdesk/rustdesk/discussions/2239#discussioncomment-5647075

    I have experience with a similar software that uses relays, syncthing. With syncthing, everything is e2ee, so there's no concern about whether or not the relay's are trustworthy, and you can even host your own public relay server.

    I find it hard to believe that rustdesk, another relay based software, wouldn't have a similar architecture.

    edit: typo

  • I use https://quarto.org

    Pros: Markdown, easy to use. Docs are very good. Also, despite being a a static site, it comes with fulltext site searching, all done locally, enabled by default:

    https://quarto.org/docs/websites/website-search.html

    It uses pandoc under the hood, so anything that works with pandoc works there.

    Cons: No support for any kind of template engine beyond simple variable replacement, as far as I know.

  • It's cause you're not actually supposed to use nix-env: https://stop-using-nix-env.privatevoid.net/

    You're actually supposed to be using nix search nixpkgs#packagename to search and nix profile install nixpkgs#packagename to install.

    However, to use both of those, you need to have the "experimental" (not really though, most of the community uses them) features of nix-command and nix flakes enabled, which they aren't by default.

    And of course, nowhere on the main documentation did I find any if that, I only found it via the pain of using it wrong, and forum posts.

    Nix's documentation is horrific. I've had situations where I only got help via discord...