nickwitha_k (he/him)

  • 2 Posts
  • 594 Comments
Joined 2 years ago
cake
Cake day: July 16th, 2023

help-circle

  • Not a good idea. Such a broth can be used as a pesticide but it’s also dangerous to humans and animals. Nicotine also absorbs through the skin so, anyone trying this (which I can’t recommend but for it’s dangers and general lack of need for pesticides in home gardens) should be extremely careful and use all PPE (durable waterproof gloves, goggles, long sleeves, trousers, and waterproof footwear, as well as respirator if there’s any chance of aerosolizing) when applying. Seriously. While it has been used historically by home gardeners, the toxicity is no joke.

    And, always remember: Proper PPE is sexy.




  • In the US, “anti-DEI” is nothing but thinly-veiled discrimination. It is used primarily by people with the skills, personality, and sociability of a slice microwaved Wonderbread who need something to hide behind to avoid taking responsibility for their failings as well as by literal neo-nazis to try out a facade of legitimacy for their discriminatory actions while signalling their socio-political stance to their fellow neo-nazis.

    DEI stands for Diversity, Equity, and Inclusion. It’s meaning is approximately:

    Diversity - Efforts should be made to ensure diverse representation in the workplace, especially for groups that have historically suffered from discrimination. To this end, when skills and capabilities are approximately equal, those from groups that have suffered oppression should be favored. This both strengthens the workplace by adding different perspectives and helps to “rebalance” to correct for centuries of discrimination that have robbed these groups of opportunities.

    A diverse workplace is stronger and more effective than a homogenous one, as proven by extensive sociological research.

    Equity - People are different and may need assistance to put them on equal footing when they are otherwise equally capable to those who have greater societal representation. This could be as simple as ensuring that someone who needs glasses to read without eye strain is able to readily able to get them. Or it could mean ensuring that someone who has gender dysphoria (which can cause extraordinary mental health problems like anxiety and treatment-resistant major depression) is able to get the treatment that they need.

    Inclusion - This is about the simplest of the three. Everyone should feel safe and valid in the workplace, regardless of their immutable characteristics.

    When people say that they are “anti-DEI” in the US, they mean that they want a society where the only people with power are white, protestant men. They want a society where white, protestant men are favored over other all other groups and considered the “default” choice for anything. And they want a society where people who are different from them are afraid to participate because they may be arbitrarily punished and/or lynched.

    When they claim that DEI is discriminatory and that they oppose discrimination, they are lying. Being forced to actually compete with others on even ground is terrifying to them and not being held above everyone else makes them think they are being oppressed.






  • In that case, my suggestion would be to target implementing a REST API with OpenAPI (formerly Swagger). There are server code generators for both Rust and JS (multiple flavors, I think).

    Basically, the workflow is something like this:

    1. Create your API spec skeleton (YAML or JSON, pick your poison). This will have all of the required sections like info
    2. Pick your first endpoint and define it in the paths section. Probably start with during simple like a GET. This will mean that you mainly have to worry about defining your responses (at minimum HTTP2XX and HTTP4XX, preferably with a catchall error response for HTTP5XX responses) and their schemas.
    3. Run the code generator. This should generate files with stubbed-out definitions for interfaces (or the equivalent for your language of choice) for your response methods. Generally, you do NOT want to add any code to these files as they will be overwritten anytime you update your API spec.
    4. Implement the methods to handle the stubbed out interfaces. Ex. A hello-world interface would likely need to be implemented with a method or function that returns the string “hello world”.

    The reason that I recommend OpenAPI in writing REST APIs is that it helps to layout the API contracts before you even start coding. This helps with keeping typing consistent, give you a clear milestone for implement, and makes creating clients really easy.

    Extra benefit is that OpenAPI is (mostly) language agnostic, so, as long as you have a codegen or some good boilerplate, you can use it for any language, which can give you a safe place to start when learning a new language.




  • Why don’t distros support listing packages and system settings in text file(s)?

    Short answer: Because it would be bad software design.

    More detailed answer: I can definitely understand the feeling but a large part of it is that text files are not databases. Trying to use them for that purpose leads to quickly running into a brick wall of scalability problems. Seriously, that wall is hit faster than one might expect.

    Why use a db in the first place? Well, when a package manager installs a package, it does a lot more than install files in their specified paths and store the name. Every package also has a ton of metadata. This includes everything from the software version number and versions that it obsoletes to repo that the package is from to signatures to verify package authenticity and checksums to verify file integrity.

    Storing all of this info is the sort of thing that databases excell at and text flatfiles are terrible at. The db also includes integrity checks for itself. Since the data is already stored in a db, also storing even a subset in a flatfile would be poor software design as it is unnecessarily wasting storage space in a manner that would perform significantly worse and is much more prone to data integrity failures.

    So, how do you work around that for backup? Just script a dump of the installed packages from the package manager. It’s trivial with apt and dnf/yum. Then, store it with dot files in your backups.

    To restore, I’d recommend Ansible because it works nicely with lists of packages and has minimal dependencies.

    If you don’t want to interact with the package manager and like domain specific languages (or don’t dislike the syntax), just use Nix and be done with it. Noone whose opinion matters is going to bully you for the choice. If, like me, you strongly dislike DSLs and the Nix syntax, the choices are pretty much Fedora Atomic, GUIX, and/or Ansible.


  • Midjourney makes money selling access to their model. Midjourney’s model, like those of OpenAI, has no value without the training data. In fact, the model is a derivative work of all of the works that it was trained on. The training data was obtained without license to resell or create derivative works.

    While I hate how much the Mouse has screwed with IP law and prevented productive reforms, I hope they refuse to settle and get a judgement that bankrupts Midjourney and establishes the precedent that AI companies have to follow the law and make licensing agreements with any creator’s works that will be used. Can’t exist as a company if that happens? Boo-fucking-hoo. It’s not society’s job to subsidize the wealthy’s desire to run a business model that depends on violating the law and causing financial harm to artists.




  • … You can probably just pair a Joycon 2 with the deck to get the functionality. Since the steamdeck does not feature detachable controllers in its design, an external controller is needed. Any controller that connects via Bluetooth or other wireless standard pretty much works - Bluetooth as a standard even allows a single device to use different profiles.

    If the feature for “mouse mode” is implemented in the Joycon 2 hardware, there should be little effort needed to make it work with the deck. If it is a proprietary host/device driver interaction, it probably uses standard HID signals because those would take a good amount of time and money to reinvent, so, reverse engineering everything needed for the driver should be fairly quick and easy for people who deal with Linux device drivers.

    Personally, I tend to just use the trackpad on the Dualsense controller as a mouse. It works, no bother.