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

help-circle
  • Yeah, that is my understanding, too. Otherwise you’d only want to generate them on the database host, as even with NTP there will be small differences. This would kind of defeat the purpose of UUIDs.

    If you’re saying that even without NTP, just by manually setting the time, things will be fine. I mean, maybe. But I’ve seen it far too many times already that some host shows up with 1970-01-01…


  • For others wondering what’s wrong with UUIDv4:

    UUID versions that are not time ordered, such as UUIDv4, have poor database-index locality. This means that new values created in succession are not close to each other in the index; thus, they require inserts to be performed at random locations. The resulting negative performance effects on the common structures used for this (B-tree and its variants) can be dramatic.

    I guess, this means with these new UUIDs, ideally you only create UUIDs on systems that are hooked up to NTP, though I guess, it won’t really be worse than UUIDv4 either way.


  • We’ve been using Leptos at work, which is a similar framework (and probably shares half the stack with Dioxus).

    And yeah, it’s really good. My favorite thing about using Rust for the UI is algebraic data types.
    So, in Rust when you call a function which can fail, there isn’t an exception being thrown, but rather you get a Result-type as return value.
    This Result can either contain an Ok with the actual return value inside. Or it can contain an Err with an error message inside.
    So, in your UI code, you just hand this Result all the way to your display code and there you either display the value or you display the error.

    No more uninitialized variables, no more separate booleans to indicate that the variable is uninitialized, no more unreadable multi-line ternaries.
    It just becomes so much simpler to load something from the backend and display it, which is kind of important in frontend code.




  • Agile tries to solve this differently.

    First and foremost, it puts you into tight-knit communication with your team and the customers, so just ask if anyone remembers why it is like that.

    If no one does, then Agile enables to basically fuck around and find out.

    Which is to say, change it to how you think it’s supposed to be and see if anything breaks / anyone complains. If that happens, Agile allows you to react quickly, i.e. to change it back and quickly release a fixed version.

    But yeah, as the others said, if your team feels like documents work better for them, then do Agile and documents. That’s why retrospectives are an integral part of Agile, because it’s not a perfect plan how to work together. You’ll know best what works in your context.






  • I imagine, you guys might be measuring with two different scales. Early Windows versions were fine, but even back then, a switch to Linux would give you so much more customizability to actually make it yours.

    This is a dumb anecdote, but I switched to Linux from Windows 8, and pretty much the first thing I did, was to figure out how to hide the window titlebars. Mostly because I realized, I could, but they also just took screen space away on my laptop.



  • There can also be circumstances where you have to offer people a natural-looking key for general consumption. You can’t put UUID’s on car plates for example.

    Often times, the first section of the UUID is unique enough. With certain UI design choices, one can encourage users to normally work with that, while having the full UUID available in a detail view or from a copy-button.

    Another strategy I quite like, is to have the UUID as the definitely-always-unique identifier, and then have a separate name, which either the users can enter or we generate something like random adjective+animal.

    But yes, neither of those strategies would work for car plates.


  • Hmm, interesting idea, to ask the user to provide the overall intent by making them edit/write the plan, since the LLM can’t do intent.

    But man, we’ve recently had a number of programming beginners join us in our relatively large codebase, and I’ve basically had to write such a plan, i.e. step-by-step instructions, for them many times.

    It just means that I go through the whole codebase and have to think everything through, without doing it myself.
    It often took similarly long do that, and formulate instructions, as it would have taken me to write the code myself. Because obviously we’re using a high-level programming language, so there’s not many detail problems which are easier to describe in a natural language.

    It’s also incredibly difficult to provide correct instructions that way, since I don’t get to read the existing code while I write the code.
    And reviewing their code to figure out what came from it, that binds even more time.

    So, yeah, it really doesn’t sound like this LLM thing would save me time either…


  • I do agree that this harsh language can push people away. I rarely use it myself for that reason. But whether to use it or not, is their personal decision.

    As for your dictionary definition comment, I am absolutely on board with it being removed. It was extremely tone-deaf.
    You do not need to answer me, but ask yourself the following: Did you really think, they were not aware of the dictionary definition?

    They were purposefully using a non-standard word. You could have argued their decision to use that word, if you really felt that strongly about it, although frankly, just don’t do that either. They’ve almost certainly thought about this more than you have, and there’s also just no need to discuss something like that all the time.

    The way I interpreted your comment is that you personally felt uncomfortable with their use of language, so you felt an urge to react to it in any way whatsoever. Absolutely understandable.
    But that is precisely what this whole post is about. People, who eat meat, will feel uncomfortable with the discussions we have here and then they respond to argue things that really do not need arguing.

    Like, if you notice a factual mistake in a post, I welcome you to correct that. Intentional different usage of language is not a mistake, though.



  • In my experience, the reactions depend a lot on the people you talk to and well, what you look like.

    Like, I’ve got a tiny lady colleague who’s vegan and she’s never been in a conflict from being vegan.

    Meanwhile, me as a big dude, I will get various males who take it as a personal affront:

    • those who are just insecure about their own food choice,
    • those who take every interaction with other males as a competition for who’s better (me telling them I’m doing it for ethical reasons means I’m saying their ethics are bad),
    • those who are stuck in their old ways (women can eat salads, not men though),
    • and last but definitely not fucking least, (ex-)military dudes who are personally disappointed that, despite me having the physique of their military buddies, I have different values.

    This is especially also amplified on the countryside, where not only progressive ideas take longer to arrive, you’ve also got farmers with skin in the game.
    In my hometown, there’s a pig farmer. Holy fuck, for that guy, my mere existence was a statement that his entire livelihood is immoral.