• 0 Posts
  • 188 Comments
Joined 1 year ago
cake
Cake day: August 15th, 2023

help-circle
  • I really don’t see the issue there, you’re only outputting highly specific data to a website, not dumping half the database.

    Do you mean your typical CRUD structure? Like having a User object (AuthId, email, name, phone, …), the user has a Location (Country, zip, street, house number, …), possibly Roles or Permissions, related data and so on?

    SQL handles those like a breeze and doesn’t care at all about having to resolve the User object to half a dozen other tables (it’s just a 1…1 relation, on 1…n, but with a foreign key on the user id it’s all indexed anyway). You also don’t just grab all this data, join it and throw it to the website (or rather the enduser API), you map the data to objects again (JSON in the end).

    What does it matter there if you fetched the data from a NoSQL document or from a relational database?

    The only thing SQL is not good at is if you have constantly changing fields. Then JSON in SQL or NoSQL makes more sense as you work with documents. For example if you offer the option to create user forms and save form entries. The rigid structure of SQL wouldn’t work for a dynamic use-case like that.


  • I mean in my case it’s for an international company where customers use this structure and the depth can basically be limitless. So trying to find the topmost parent of a child or getting all children and their children anywhere inside this structure becomes a performance bottleneck.

    If you have a single level I really don’t understand the problem. SQL joins aren’t slow at all (as long as you don’t do anything stupid, or you start joining a table with a billion entries with another table with a billion entries without filtering it down to a smaller data subset).


  • If you only join on indexed columns and filter it down to a reasonable number of results it’s easily fast enough.

    For true hierarchical structures there’s tricks. Like using an extra Path table, which consists of AncestorId, DescendentId and NumLevel.

    If you have this structure:

    A -> B -> C

    Then you have:

    A, A, 0

    A, B, 1

    A, C, 2

    B, B, 0

    B, C, 1

    C, C, 0

    That way you can easily find out all children below a node without any joins in simple queries.


  • Well, there’s modern C++ and it looks reasonable, so you start to think: This isn’t so bad, I can work with that.

    Then you join a company and you find out: They do have modern C++ code, but also half a million lines of older code that’s not in the same style. So there’s 5 different ways to do things and just getting a simple string suddenly has you casting classes and calling functions you have no clue about. And there’s a ton of different ways to shoot your foot off without warning.

    After going to C# I haven’t looked back.


  • No, it’s not. Most people, even in the US, can easily use the range. You don’t go to a cross country roadtrip every day.

    You drive to work, go grocery shopping, drive home and that’s usually it. A range of 400km+ with new EVs is easily enough. Or do you drive to the gas station every 2 days with your current car?

    And even if you go on a roadtrip, after driving for 4 hours you might want to take a break anyway.

    You do realize there is no data available for the future? We aren’t there yet.


  • You do realize most people charge at home? It doesn’t matter how long it takes when the car is just sitting there (you’ll even save time compared to driving to the gas station).

    Manufacturers also give 7+ years warranty on batteries by now, but even after 10 years a battery doesn’t just break, you only lose a few percent of range (if this wasn’t already calculated into the buffer, depends on the car).

    You do know EV sales stall because of that, right?

    In what fantasy world are you living? EVs just hit an all-times sales record last year. This is for the US, but it’s similar all over the world:




  • I mean I didn’t check how long it actually takes, it’s not 500ms.

    It opens quick, but I can’t find the default value (you can change the behavior via registry), but it’s definitely less than half a second. Especially when you’re already hovering down there it appears near instant for me.

    And let’s be honest: The only reason why multiple icons worked back in the day was because the name of the open workbook was next to it. So you had “(Excel) My Workbook 123.xlsx” in your taskbar. Which ended up as a mess when you had several programs open. Now you have one Excel icon, you hover over it and you see all your open workbooks as a preview so you select the one you want. It’s definitely cleaner.



  • Of course, but it’s mostly for reading. The color will probably be used for notes and the occasional image, for which it’s easily good enough. When I read it’s usually a foot away, while I keep my monitor at 2 feet.

    Black and white content (text) has 300 dpi atleast, so for that it’s perfect.

    E-Ink is fantastic for lots of reading and battery life, for everything else an actual screen is leagues ahead. The response time is awful too.


  • Vlyn@lemmy.ziptoTechnology@lemmy.mlKobo announces its first color e-readers
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    1
    ·
    5 months ago

    Both use E Ink’s latest Kaleido color screen technology, which has subtle, pastel-like hues and drops from a 300ppi grayscale resolution to 150ppi when you view content in color.

    I had to check just how bad 150ppi would be when dropping down the resolution for color.

    A 24" Full HD monitor has a PPI of 92. So it’s actually okay.

    I’m still using my old Kobo Aura HD (now roughly 11 years old) and the battery still lasts over a month. The screen was already decent back then, but a bit sluggish. I just checked, the old one has 265 ppi. Maybe it’s not time for an upgrade yet :)



  • That’s not the reason, you have been able to do so for a while. Even longer if you count Breath of the Wild (which ran with the Wii U emulator). The only reason they got their shit kicked in by Nintendo is greed. Patreon + extra money for early access + wanting to create their own paid copy of Nintendo’s online service + timing their press releases with Nintendo releases…

    Emulators are legal. Fully intending to profit from creating a competing product isn’t. That’s why they also gave in so quickly when the lawyers showed up, despite having plenty of money to afford defense.


  • Ah, I didn’t expect it to be actually used RAM. Maybe this is a Linux issue with the Steam build then? Here is my Windows 11 task manager, Steam just downloaded 10 different game updates (so did plenty of work) and is now idle:

    In total 516.5 MB RAM on a machine with 32 GB (22 GB free at the moment), if there was any pressure on RAM usage it would probably go down further.

    Either way, since upgrading to 32 GB RAM nearly a decade ago I haven’t had a single issue with RAM usage (While with 16 GB I actually had games in the past where I ran out of memory). So it’s no big deal as far as I’m concerned and if I’d actually run any applications that needs tons of RAM I’d quickly upgrade to 64 GB and be done with it.

    The only way this would be annoying is on low-end machines, like 4 or 8 GB RAM in total, but those have plenty of issues anyway in regards to games (otherwise why would you install Steam?). On a high-end machine complaining about 1 GB of RAM is a waste of time in my opinion, there are a ton of better topics you can rage at.


  • “Doing nothing” is probably downloading an update. There’s also a difference between reserved RAM and actually used one.

    For example .NET applications grab RAM when they need it, but they don’t just free it afterwards if not necessary (Like it needs 1 GB, uses that, but when the work is done your task manager keeps showing 1 GB). This helps performance, if the application needs RAM again a short time later it’s already reserved and ready to go.

    The whole behavior changes when Windows is low on free RAM, then applications are forced to free up their reserved RAM so you don’t start swapping too much.

    Overall this means: The more RAM your system has the higher the perceived RAM usage of your system. Unused RAM is wasted RAM and it’s easy to free up some if you actually hit the limit. As long as your RAM is not full applications will happily use more and hold onto it to be more responsive.