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/)EP
Posts
27
Comments
2,563
Joined
5 yr. ago

  • It feels more solid to have a complex program covered by tests, yes, but how can this be confirmed in an objective way? And if it can, for which kind of software is this valid? Are the same methodologies adequate for web programming as for industrial embedded devices or a text editor?

    Worth noting here that tests should primarily serve as a (self-checking) specification, i.e. documentation for what the code is supposed to do.
    The more competent your type checking is and the better the abstractions are, the less you need to rely on tests to find bugs in the initial version of the code. You might be able to write code, fix the compiler errors and then just have working code (assuming your assumptions match reality). You don't strictly need tests for that.

    But you do need tests to document what the intended behaviour is and conversely which behaviours are merely accidental, so that you can still change the code after your initial working version.
    In particular, tests also check the intended behaviour of all the code parts you might not have realized you've changed, so that you don't need to understand the entire codebase every time you want to make a small change.

  • To be fair, Python doesn't have type inference, so the type hints are quite obnoxious, and the type checkers for Python are also not as reliable as in languages with native static typing (even if that is often caused by libraries not providing type hints).

  • I find ants and bees and such interesting in this regard. They work together more seamlessly than humans do and arguably have a higher form of sociality.

    Especially in Western cultures, we humans like to think of the individual and compare ourselves to the individual of other species. But that is a logical fallacy.
    Are you smarter than an ant? Sure. But are you smarter than a human-sized ant hive? That's a far trickier question to answer...

  • Yeah, I don't like when corporations put stuff like that into their ToS, but at the same time, I 100% understand why every open-source license under the sun has it. You're giving it away for free, so you don't want people to sue for more than you're providing for free.

    Mastodon.social is currently very much in the latter camp of giving things away for free. I also understand that a service is yet another beast than a piece of software, since they hold your personal data and may leak/sell it. But yeah, at this point in time, I wouldn't want someone to be able to sue Mastodon.social out of existence. I guess, it depends a lot on how it's formulated in the end...

  • It should be noted that theoretically, we don't know how this external API is implemented. The vast majority of APIs are REST APIs and with REST APIs, there's a decent chance that you can download an OpenAPI definition from the server which provides the API.

    REST APIs are basically APIs which use HTTP(S) for transport and then there's some specific rules how the API should be designed. Often times, these rules are not strictly followed and people still refer to such an API as "REST", because they assume that any HTTP API is a REST API. But yeah, similarly the guides you'll find will likely also work with general HTTP APIs.

  • Sounds to me like they're not trying to create a website for now, but rather just process some data, which they can later display in a static webpage.

    So, I'm guessing something like this:

     txt
        
    +--------+     +---------+     +----------+
    | Static |     | Their   |     | External |
    | Web    |---->| Own     |---->| API      |
    | Page   |     | Backend |     |          |
    +--------+     +---------+     +----------+
    
      

    But yes, unless there's a lot of data to crunch, the design one would usually go for is rather:

     txt
        
    +-----------+     +----------+
    | *Dynamic* |     | External |
    | Web       |---->| API      |
    | Page      |     |          |
    +-----------+     +----------+
    
      

    So, the data calculations would happen in the user's browser. You would still need some hosting for that webpage, but there's lots of free services to put a simple webpage up.

    And yes, when you go with that latter design, then JavaScript would be the typical choice. It's still possible to do it with Rust, using WebAssembly (e.g. a colleague of mine has built a small statistics webpage which gets data directly from GitHub, using the Leptos framework), but it is definitely the less beaten path.

    Having said all that, frankly, fuck the usual way of doing things. If you're comfortable with Hugo for frontend work, then I think it's legit to build a little backend to take over the dynamic part. Better to build a useful project and learn something than to get stuck trying to learn the 'correct' path of doing it. Especially if you'd rather learn about Rust than JS.

  • Those Spectacle changes look good. The old UI made some amount of sense, if the primary use-case was taking complete screenshots, but even for that, there's probably a single shortcut to do that directly.
    And I do find, I generally want a smaller cutout these days, because you can just fit more stuff onto modern displays, some of which is going to irrelevant.

  • My favorite is when you get told to cook something in water and there's always just this implicit "with salt" in there.

    Except when it isn't. For example, you should only add salt to lentils after cooking, otherwise their hull turns hard.

    Well, and they also don't tell you how much salt to use. Yesterday, I cooked millet and just added as much salt as I would add to noodles.
    But then I had to leave them in the pot to soak for half an hour, because they wouldn't soften (is that also from the salt?). Which meant they had soaked up all the salt water and the millet was far too salty in the end.

  • I could imagine that they didn't want to do something called "Destiny 3", because people would expect that to be better than Destiny 2, which is virtually impossible, if you're gonna start over from scratch, with how many years of development have gone into Destiny 2 by now...

  • Yeah, the wording is confusing. A long time ago, there was no paid software, there was only software where you got the source code and other software where e.g. it was pre-installed on some hardware and the manufacturer didn't want to give the source code.

    In that time, a whole movement started fighting for software freedom, so they called their software "free".

  • Well, it didn't feel like I'm tweaking to my needs (that came afterwards on top), it rather felt like I'm just undoing design decisions that someone made to cater to their specific needs.

    And I named the time mainly to give an idea of how much there was to tweak. My main problems were:

    • That I could not undo some of those unusual design decisions.
    • That it doesn't exactly make the system more robust when you need lots of non-default settings.
  • Well, that was just kind of one example to illustrate that it isn't just a static screenshot, you actually see what's going on in real-time. It's also useful when you're running a longer operation, like OS updates or encoding a video, and want to see when it's done or that it hasn't failed. You can just tell when the command output has stopped moving or a popup has appeared...

    But thanks for the recommendation anyways!

  • I certainly think that it has many eccentric design choices. It's not going to be for everyone. Some parts of it, I also think just look bad, which I had to customize. Well, and openSUSE's theming made a big difference, too: https://simotek.net/tech/projects/opensuse-e/enlightenment-on-opensuse-13-2/nggallery/thumbnails

    "Retro" is also definitely a word I would use, though more positively connoted. It has different eye candy to the usual desktop designs, which is a big part of the charm. In a sea of flat designs and tiling window managers, it stands out as its own thing.