• 0 Posts
  • 88 Comments
Joined 4 years ago
cake
Cake day: May 31st, 2020

help-circle
  • testcontainers is a cool crate. It basically allows you to launch a container to test against in your unit tests.

    My use-case was when integrating Postgres+Diesel for persisting our data.
    I really wanted to make sure that we can save our data into there and load it back out in identical form.
    And yeah, rather than writing some elaborate scripts to do a full-blown integration test, it’s three lines of code with this crate to launch a Postgres container and have it cleaned up after the test.

    Diesel is also quite cool here when you’ve got your migrations embedded, as it will automatically set up your database schema in the blank Postgres.


  • Yep. Where I notice it the most is frontend stuff. We’ve been using a WebAssembly framework, particularly Leptos, where you get to write HTML+CSS+Rust.

    And normally, a colleague and I despise frontend, i.e. JavaScript. Like, it’s kind of cool, because you get a visual result, but the crimes against humanity you have to commit in terms of code readability were very visible to us.

    And yeah, Leptos and Rust are a lot better in that regard, which boosts productivity. Particularly when a backend request fails, you get a Result, which you can pass as one value to the display code and just display either the data or an error. That’s huge, because you make a lot of backend requests.

    One downside in productivity and fun is that there obviously aren’t yet as many component libraries, so if you want a toast notification, you might need to implement that yourself.

    But still, we almost had to seriously ask that colleague to pause dishing out frontend features, because he was enjoying it so much.


  • the port does not have any immediately benefits to end-users or gives us any new special features. However, it improves the future maintainability and bug-fixing capability of the dev team compared to the C++ base.

    I remember them also specifically talking about an issue regarding asynchrony. If I remember correctly, it was that their current job system doesn’t actually execute background jobs in parallel. They even had a massive pull request ready to fix this in C++, but did not feel confident in it not introducing a ton of bugs.

    But the most important reason is fun. Fish is a hobby project. The core team wanted to switch to Rust, because it would be more fun. This also resulted in tons of new contributors suddenly offering help. So many people trying to find “rational” explanations like you’d expect them from a company, when completely different dynamics apply in a volunteer project.










  • Nah, I’m not ignorant, just cynical.

    I make digital music myself. I’ve had that moment myself, where for a quick moment I thought, surely there could be some ‘proper’ way of rotating an audio source around your head.
    And well, there is not, it is always just an effect thing.

    As in, even in reality, our hearing is literally stereo, because we’ve got precisely two eardrums, two membranes that do the detection. Yes, the ear flaps shape the sound, but you can do the same shaping with just effects. Make it a bit more muffled when it comes from behind, for example, and hope you don’t need to also portray that something muffled comes from the front. And of course, always slap a heavy virtualizer effect on there.

    In the end, it’s smokes and mirrors that our brain then interprets as something spatial. I don’t have a problem with smokes and mirrors. I do still find it humorous, though.






  • I mean, can you blame them? Why would anyone want toxic waste in their backyard? Not to mention that the search is mainly conducted by companies, which have a vested interest in not making all the issues transparent.

    Having said that, I am not aware of the ‘scientists’ coming up with good suggestions either. Gorleben got hemmed and hawed around for the longest time, but its selection process was non-scientific from the start.

    It’s genuinely not easy to find a location where anyone would be willing to claim that it will remain unaffected by geodynamic processes for millions of years. And we don’t have a big desert or some other unpopulated area where you could chuck it without political opposition, when it’s not 110% safe to do so.



  • In Germany, we’ve got a location with 47,000 cubic meters: https://www.bge.de/en/asse/
    That requires some pretty tall stacking on that football field. Or I guess, you’re saying if you’d unpack it all and compress it?

    Also, we really should be getting the nuclear waste out of said location, since there’s a known risk of contamination. But even that challenge is too great for us, apparently.
    Mainly, because we don’t have any locations that are considered safe for permanent storage. It’s cool that Switzerland has figured it out. And that some hypothetical football field exists. But it doesn’t exist in Germany, and I’m pretty sure, Switzerland doesn’t want our nuclear waste either.


  • Traditionally (as in 20+ years ago), software got developed according to the Waterfall model or V-model or similar. This required a documentation of all the requirements before a project could be started. (Certain software development fields do still work that way due to legal requirements.)

    This was often a failure, because the requirements did not actually match what was needed, not to mention that the real requirements often shifted throughout development.

    Agile, on the other hand, starts out development and figuring out the requirements pretty much in parallel. The customers get a more tangible picture of what the software actually looks like. The software developers also take over the role of requirements engineers, of domain experts, which helps them make more fitting software architecture decisions. And you can more easily cancel a project, if it turns out to not be needed anymore or whatever (which is also why a cancellation percentage is misleading).

    The trouble with Agile, on the other hand, is that projects can get started with really no idea what the goal even is, and often with not enough budget reserved to actually get them completed (obviously, that may also be a failure state; if the project is promising enough, customers will find the money for it somewhere).
    Also, you do spend a lot of time as a software dev in working out those requirements.

    But yeah, basically pick your poison, and even if people like to complain about Agile methology, it’s what most of the software development world considers more successful.