• 0 Posts
  • 42 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle
  • My biggest gripe is the lack of respect/understanding for the importance of data models and clear domain boundaries.

    Most things that end up as “technical debt” can be traced to this. Sometimes, it’s unavoidable, because what the data models changes, or the requirements of the domain, etc.

    And, it’s very innocent looking differences sometimes. Like “We know that the external system state will change from A to B, so we can update that value on our side to B”. Suddenly you have an implicit dependency that you don’t express as such.

    Or, things like having enum that represents some kind of concept that isn’t mutually exclusive. Consider enum values of A and B. Turns out this really represented AZ, and BP (for some inherent dependency to concepts Z and P). Someone later on extends this to include ZQ. And now, suddenly the concept of Z, is present in both AZ and ZQ, and some consumer that switches on concept Z, needs to handle the edge case of AZ… And we call this “technical debt”.


  • I did eventually yes. Thanks for asking. I was exhausted yesterday, and upon reading my comment again, I get the downvotes. Being a second language doesn’t fully explain the wrong tone there. The article was a lot more insightful and in depth than I had mistakenly assumed.

    After reading it tho, it seemed a lot more focused on performance than I think would be warranted. But that could be due to different concerns and constraints than where I’m used to working. I’d focus more on the mechanisms that best expresses the intent, and although they do discuss this well, the Venn diagram for the appropriate use of exceptions and error codes don’t overlap as much in my world.

    And, it’s not like I’m arguing that they are wrong. It’s an opinion on a choice for a tradeoff that I only think, while allowing the possibility of being wrong, might miss the the mark. Stack unwinding is by its nature less explicit for the state it leaves behind. So it shouldn’t be a question of either error codes or exceptions, but which are most appropriate to express what, and when.

    Even for Rust, where monads are preferred and part of the language to express and handle error codes, I would say that the statement of “newer languages like Rust don’t allow the use of exceptions”, seems incorrect to me. Something like panic!("foo"); coupled with panic::catch_unwind(|| { ... } }); I believe would unwind the stack similar to that of a throw/catch.

    Anyways. Thanks for reminding me to actually read the post. It was well worth it, and very insightful.
















  • Some years ago ago, I was a happy subscriber to Google Music. But, they added it to the graveyard, and instead grafted on some music playing functionality to YouTube and called it YouTube Music. So, I went back to Spotify.

    Then I started paying for YouTube Premium Lite. It wasn’t unreasonably expensive, although it was a bit annoying I couldn’t just have “YouTube” in the household, like with Netflix. So if wife would cast a video to the TV, it would play with ads.

    It was about a year ago, when Google starting cracking down on adblockers, that they also removed an option to pay for the service. I think YouTube Premium Lite wasn’t a thing in the US (correct me if I’m wrong), but they removed YT Premium Lite, and the only option left was a twice as expensive YouTube Premium bundle that included YouTube Music.

    Tldr: fucked up Google Music, then removed an option to pay for YouTube premium, leaving a fairly expensive alternative with the pile of shit they replaced Google music with. It’ll be a rough time if they manage to force ads. I won’t pay for it, out of principle.

    Edit: I looked at the numbers again. I’d have to pay more for YouTube than for the highest Netflix tier. It’s more than Prime and HBO combined. They also don’t have to front large sums to fund risky projects. If they didn’t include YouTube Music, I might have considered it. But with it, it just pisses me off, they can go get f.ed



  • There are two common types of laser printers. Those that have special paper that react to heat, such as receipt printers, would fit the description.

    The other laser printers… Hm, I don’t think your description is accurate either. It’s more that the laser electrically charges ink particles so that they jump on to a separate roller that gets rolled on to the paper.

    I’m no expert though.