• 5 Posts
  • 793 Comments
Joined 5 years ago
cake
Cake day: May 31st, 2020

help-circle
  • It does sound like you’d really enjoy the tinkering. When I switched (also to Linux Mint at the time), I spent the first few days figuring out how I could hide the window titlebars, because I realized I could set keyboard shortcuts for minimize/maximize/close.

    That was kind of dumb, but no regrets. 🙃

    I will give somewhat of an unusual recommendation for the distro, based on what you wrote: openSUSE with KDE

    KDE is a desktop environment (basically the OS GUI), which has a ton of customization options, certainly more than the default desktop environment on Linux Mint.
    KDE is probably going to be overwhelming at first, but on the other hand, hiding those window titlebars on KDE would’ve been a matter of minutes rather than days, because it’s just a built-in feature, not something I need to achieve with weird workarounds.

    And openSUSE, because it works well with KDE and because it comes with a system settings GUI, called “YaST”, which covers a lot of the settings that you’d usually need to crack out the terminal for.
    openSUSE isn’t as mainstream as Linux Mint, and not often recommended to newcomers. There’s certainly more guides and such for how to do things on Linux Mint. But yeah, I do think it’s a fine choice for newbies nonetheless and you do get that extra GUI.

    To conclude my autistic ramblings, one more point, you could totally throw Linux on there for now and if you don’t like it, then buy the Windows license and go that route.


  • Sounds like you’ll always have to do this little dance for any string you want to pass through, so I can definitely see how that could become quite annoying.

    For not being able to combine serde-derive and cxx FFI on the same struct, there’s a simple trick that can be used for many such situations:

    struct CxxThingamabob { ... }
    
    #[derive(Serialize, Deserialize)]
    #[serde(transparent)]
    struct SerializableCxxThingamabob(CxxThingamabob);
    

    That just moves the Serde implementation to a different struct, so that you can choose which one you want by either wrapping or unwrapping it.



  • Probably not going to happen. I will say that it’s less bad than you might think, because there is more-or-less an unofficial extended stdlib, i.e. high-quality, widely used libraries which are maintained by people in the Rust team.

    But yeah, I’m involved in a somewhat larger project and we’ve cracked 1000 transitive dependencies a few weeks ago, and I can tell you for free that I don’t personally know the maintainers of all of those.
    If this was more of a security-critical project, there’s probably a dozen or so direct dependencies that we would have implemented ourselves instead.








  • I have a small CLI to create and manage note files. This week, I added a list command, which just spits out the notes ordered by date, to help me reopen previously created notes.

    You can pass along a flag e.g. --since="3 months ago" or --since="2024-06-01" to only open files created in that time range. I used the human-date-parser crate for that.

    Not yet entirely happy, as I would’ve liked to support --since="June" and --since="2024". Will need to see, if I separately implement those.



  • The Magic System was simplified, but was made more reactive with things like igniting oil spills

    Man, fuck oil spills. You walk into the first dungeon, you set fire to an oil spill with a spell. Then you’ll try dropping one of those laterns, which are always conveniently placed above the Exxon Valdez. And then, that’s it, the fun is over, the joke is told, that’s all you can do with oil spills.

    I’d also really like to know what other examples there are of it being more reactive. You can’t freeze the ground to make enemies slip. You can’t zap a river to fry some fishes. You can’t set fire to wood.

    It really feels like some dev thought to themselves, we’ve got oil lamps, maybe we could have some of that drip out, and then the Sweet Little Lies guy said fuck yes, put lakes of oil into every dungeon, so I can claim we’ve made the magic system more reactive or some shit.




  • YouTube has an even better example of it being problematic to strip the parameters. The original video links look like this:

    https://www.youtube.com/watch?v=dQw4w9WgXcQ
    

    The thing is, the stuff after the question mark isn’t inherently bad, we just have the convention that the path (/watch) should identify a static resource on the server, whereas the stuff after the question mark is more variable or user-specific.

    But YouTube is older than that convention. If YouTube got built today, that URL would look more like this:

    https://www.youtube.com/watch/dQw4w9WgXcQ
    

    On the other hand, the URL of a specific search result page would still look the same, even with today’s conventions, because it doesn’t identify a static resource:

    https://www.youtube.com/results?search_query=never+gonna+give+you+up
    

  • The problem is that these parameters can also do useful things, i.e. removing them might break the link. There’s no inherent criteria to determine whether a parameter is used for tracking or not.

    The way these extensions or Firefox’ built-in feature works, is that they check for ‘well-known’ parameters. For example, lots of URLs contain parameters starting with utm_, which is from Google Analytics: https://en.wikipedia.org/wiki/UTM_parameters

    As such, it’s for example unlikely that someone would build a website which uses a parameter utm_medium with a value of social, without it being used for tracking, so that gets removed.
    But if someone builds a website that puts your full name into a parameter called potato, there’s just no way to automatically detect and remove that.


  • Mind that just removing everything after the question mark can break the link, because these parameters can also do useful things.
    For example, if you use the search functionality on a webpage, you’ll typically be redirected onto a URL with a parameter containing your search query.

    And Firefox also has this tracking parameter removal built-in these days. In the right-click menu, you can select “Copy Link Without Site Tracking”.
    I cannot say, though, if this works better than CleanURLs. Because these parameters can do useful things, it’s tricky to automatically remove them without breaking links.


  • You can customize the Firefox UI with CSS, if you’re looking for really advanced customization capabilities.
    I’ve made a one-line theme as my ‘compact’ mode of choice, where URL bar and tabs are all on one row, but you can find lots of pre-made themes out there.
    See !firefoxcss@lemmy.world for more info and help.

    And well, you shouldn’t compare Firefox and Vivaldi from a monetary side.
    Mozilla develops their own browser engine, which is really important for the web, whereas Vivaldi only really develops that customizable UI. If Google stops publishing the source code of Chromium, Vivaldi is dead in a few months.