Informatik Student, lerne 日本語, Strategiespiele

  • 2 Posts
  • 472 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle






  • Company: Here is a security vulnerability in your OSS project, please fix our production is vulnerable.

    Random Guy working on OSS library in his free time: Sure, I have some time next month.

    Random Guy works full-time, has a family and friends. Random Guy is not your supplier and has no obligations and warranties WHAT SO EVER, even implied. That’s what the license of his project says.

    If Company wants it fixed, they better allow him to work full time on it, or pay part time work. Or they pay someone else to maintain Project and send the changes to Project so Random Guy can take a little look and merge if he feels like it. Random Guy won’t just merge company code and be done with it, more code in a codebase needs to be maintained now after all.

    This also works with features of course. The time of Random Guy is valuable and if Company wants Random Guy to work on something they use, they’d better pay good money for that time.












  • I’ve started building a wordle-analyzer. I got nerdsniped, and now I’m implementing the game (already did a game and a cli implementation using the abstracted interface) and a solver.

    The idea is to provide:

    • game - a wordle game that can be used to implement the game in many frontends, a cli version and exists already
    • solver - something that can solve the game
    • wordlist - any wordlist people might want.
    • bench - if you want to know how good your solver is

    I’m providing built-in versions, but anyone could implement the traits.

    I currently have two solver implementations;

    • stupid - literally tries words at random
    • naive - checks which letters matched and reuse them, require letters that are included but not matched in other words, then use the most common word that matches

    The naive solver can actually solve the game in less then 10 steps most of the time. Mathematically, the optimum is about 3,4 steps. There are two amazing 3blue1brown videos going into details, and my eventual goal is implementing solvers making use of that math.

    I’ve been using generics and traits like never before for that project. Solver? It’s a trait. Game? It’s a trait. Word lists? It’s a trait.

    And all my structs have generics <'wl, WL> so that I only need to have the word list once to save resources. You get a little crazy from the lifetime errors but it’s fun.

    Besides that, my homeserver got janky this month, and today I started migrating it to proxmox. It’s hard, because I need to do a lot more thinking than just docker go brr now.

    In case you want to check my wordle-analyzer out: https://git.cscherr.de/PlexSheep/wordle-analyzer I need to update the readme before publishing.