Just some Internet guy

He/him/them 🏳️‍🌈

  • 1 Post
  • 210 Comments
Joined 1 year ago
cake
Cake day: June 25th, 2023

help-circle
  • C’est surtout un question de se débarrasser des responsabilités si quelque chose tourne mal. Pour une entreprise, si quelque chose arrive, souvent ils peuvent simplement passer le blâme entièrement au fournisseur du logiciel pour l’erreur, alors que si c’est un logiciel libre sans garantie, c’est l’entreprise qui est responsable.

    Le risque n’a rien à voir avec le logiciel mais plutôt entièrement le risque légal.

    Plus coûteux au final, mais un coût fixe. Si le logiciel propriétaire te fait perdre des millions, tu as recours contre le fournisseur pour ces pertes.


  • I’m not saying to use native toolkits like Qt or GTK, those indeed have problems. What React Native does is somewhere in-between: it’s an abstraction that produces decent results between platforms including the web.

    It uses slightly higher level abstractions that work a lot like the web for rendering, you still get your boxes and a subset of CSS properties. But on web it’ll compile to flexbox or grids, on Android it’ll compile to something like a LinearLayout or some other kind of layout the OS understands. On web a <Text> will compile to a <span>, on Android it’ll compile to a native text element. On mobile where you need the performance the most, you otherwise end up rendering a web page that will then eventually end up doing the same thing back to display it natively, but with all the downsides of a web view.

    This performs way better with basically no downside for the web version, has the majority of the flexibility one needs for responsive layouts but it’s way more lightweight when you do target native. On native you can just render it all yourself for really cheap, like any native toolkit would. You’re your own toolkit.

    They will never look native, but at least all the rendering will be native. Most companies have their custom UI theme anyway, native widgets rarely gets used anyway.

    We’re talking Electron replacement after all, it’s not like apps made with it look anything native. But if at least they performed like native apps by skipping the web views and all the baggage it brings with it, that’d be great.


  • For the end user, its main weakness is that complex pages can be pretty slow to render if not coded well. It’s not that bad either. You wouldn’t be like “oh this is a React site, yuck”, they’re all like that these days for the reasons you’d expect.

    As for React Native, its main issue is the communication between the JavaScript browser-ish environment and the Java/Kotlin native environment that can be costly because every has to be serialized (meaning, converted to some type of data structure both sides can understand) and deserialized, so complex screen updates don’t scale too well.

    It’s easy for developers to accidentally trigger much bigger and much more expensive rerenders than expected. If you see whole second long page hangs on some websites as new content loads in that’s usually what happened.


    For developers, it’s complicated, you kind of need to experience it to understand the footguns.

    React was born to solve one particular problem at Facebook: how can we make it so any developer can jump on any part of the UI code and add features without breaking everything. One of the most complicated aspects of a website is state management, in other words, making sure every part of the page are updated when something changes. For example, if you read a message in your inbox, the unread count needs to update a couple places on the page. That’s hard because you need to make sure everything that can change that count is in agreement with everything that displays that count.

    React solves that problem by hiding it away from you. Its model is simple: given a set of inputs, you have a function that outputs how to display that. Every time the value changes, React re-renders every component that used that value, compares it with the previous result, and then modifies the page with the updated data. That’s why it’s called React, it reacts to changes and actions.

    The downside of that is if you’re not very careful, you can place something in a non-ideal spot that can cascade into re-rendering the entire page every time that thing updates. At scale, it usually works out relatively okay, and it’s not like rendering the whole page is that expensive. There’s an upper cap on how bad it can be, it won’t let you do re-render loops, but it can be slow.

    I regularly see startups with 25MB of JavaScript caused by React abuse and favoring new features over tracking down excessive renders. Loads the same data 5 times because “this should only render once” and that turned out to be false, but it displays correctly. I commonly see entire forms being re-rendered every character you type because the data is stored in the form’s state, so it has to re-render that entire tree.

    But it’s not that bad. It’s entirely possible to make great and snappy sites with React. Arguably its problem isn’t React itself but how much it is associated with horrible websites because of how tolerant to bad code it is. It’s maybe a little bit too easy to learn, it gives bad developers an undeserved sense of confidence.

    E: And we have better solutions to this such as signals which SolidJS, Vue and Svelte make heavy use of. Most of the advantages with less problems.


    Anyway, that part wasn’t relevant at all why I don’t like React. The point is, skip the web, you don’t really need the web. React Native skipped the whole HTML part, it’s still JSX but for native app styled components for UI building. The web backend worked very well, your boxes became divs with some styles. It pretty much just worked. Do that but entirely in Rust since Rust can run natively on all platforms. Rust gets to skip all the compromises RN needed, and skip the embedded browser entirely. Make it desktop first then make the web version, it’ll run just as well and might even generate better code than if a human wrote it. Making the web look native sucks but making native fit web is a lot easier than it looks. Letting go of HTML and CSS was a good call from React Native.


  • I wish we went the other way around: build for native and compile to HTML/CSS/WASM.

    For me the disadvantage of Electron is well, it doesn’t have any advantage or performance improvement over the browser version for 99% of use cases, and when you shove that on a mobile phone it performs as horribly as the web version.

    People already use higher level components that ends up shitting out HTML and CSS anyway, why not skip the middleman and just render the box optimally from the start? Web browsers have become good, but if you can skip parsing HTML and CSS entirely and also skip maintaining their state, that’s even better.

    I had the misfortune of developing a React Native app, and I’d say thinking in terms of rows and columns and boxes was nice. Most of RN’s problems are because they still run JS and so you have to bundle node and have the native messaging bridge, and of course that it’s tied to the turd that is React. But zero complains about the UI part when it doesn’t involve the bridge: very smooth and snappy, much more than the browser. And the browser version was no different than standard React in performance.

    I like that it’s not yet another Chromium one at least.



  • And since when have you known any computer to be problem-free?

    Software that’s not made from overworked engineers working 80 hours a week pressured to work even faster to complete this week’s sprint.

    I’m so tired of “computers are buggy and everyone accepts that”. No! Computers don’t have to be buggy, you just have to not shove trash software on it made by morons doing the bare minimum.

    I have software that’s been running on servers for literal years, not a single bug. The hardware’s been sized appropriately and I wrote good, sustainable and maintainable code. My computers all can easily do weeks and months of uptime. I pick up my laptop and open the lid and 100% of the time it wakes up from sleep and it’s ready to go.

    The overwhelming majority of “production” and “enterprise quality” code I work with is total garbage that should never have been written and its author never hired in the tech space. We repeatedly get reports on how X car manufacturer was pwned for not following best practices that are a decade or two old.

    Corporate greed makes EVs suck because it’s developed for as cheap as possible and the target is “good enough customers tolerate it”. Shit barely works properly when going through the happy path and the error path just… usually crashes your car.

    I’ve had to reboot my car at red lights way too fucking often and it’s not even an EV. 2020 model and the infotainment reliably crashes if I have a Slack or Zoom call going because it tries to read the phone number off my phone over Bluetooth and doesn’t know how to handle a null phone number = the radio crashes.

    It’s not fucking rocket science.



  • It doesn’t need it, but it does allow it to be more like the Play Store. No need to download then tap install which pops an Android prompt to allow install/update nor any need to allow from unknown sources in settings.

    With the privileged extension it’s exactly like the Play Store: you tap install and it downloads, installs and updates the apps in the background for you without any prompts. It’s technically possible unrooted with some adb hacks, but the privileged extension is the technically proper way to be a store. Without it, it needs that user interaction with the app install popup window to let it through. That’s not F-Droid being nice and confirming, that’s enforced by Android.

    In the context of the article, allowing the user to allow this for any store app, puts every other store on exactly the same ground as Google. The Play Store is not special in any way other than that it has that special store app permission that can only be granted via an XML file on the system partition.



  • Can’t you just… Install the Epic Store separately from Google Play, like we already do with F-Droid?

    Installing a store through Google Play sounds pretty stupid when you can easily just install any store’s APK independently via the web browser.

    They just need a way to let users grant that store the necessary permissions to install and manage apps, which currently requires root but is already doable. They just need to make a UI for it with plenty of warnings about the power this grants. F-Droid happily does its duties and updates my apps in the background and everything like it should, after flashing the privileged extension.

    This seems intentionally done by Google to make it look more ridiculous than it needs to be. It doesn’t need Google’s involvement past adding a permission screen to Android, which is completely independent of Google Play. The ROM communities would get that done under a week most likely.


  • Because humans don’t also take inspiration from other’s work they’ve heard and unconsciously repeat part of other songs they’ve heard before, possibly decades ago. Never happens. Never. Humans don’t profit from books they’ve read and apply to their career. Humans don’t profit from watching other humans do the thing and then learn to do it themselves.

    All AI does is do the same thing but at ridiculous scale and ridiculous speeds. We shouldn’t hold progress because capitalism dictates that we shouldn’t put people out of jobs. We need to prepare for the future where there is no jobs and AI replaced all of them.


  • API documentation isn’t a tutorial, it’s there to tell you what the arguments are, what it does and what to expect as the output and just generally, what’s available.

    I actually have the opposite problem as you: it infuriates me when a project’s documentation is purely a bunch of examples and then you have to guess if you want to do anything out of the simple tutorial’s paved path. Tell me everything that’s available so I can piece together something for what I need, I don’t want that info on chapter 12 of the example of building a web store. I’ve been coding for nearly two decades now, I’m not going to follow a shopping cart tutorial just in the off chance that’s how you tell how the framework defines many to many relationships.

    I believe an ideal world has both covered: you need full API documentation that’s straight to the point, so experienced people know about all the options and functions available, but also a bunch of examples and a tutorial for those that are new and need to get started and generally learning how to use the library.

    Your case is probably a bit atypical as PyTorch and AI stuff in general is inherently pretty complex. It likely assumes you know your calculus and linear algebra and stuff like that so that’d make the API docs extra dense.


  • Lemmy wasn’t ready and still mostly not ready for a mass Reddit exodus. The Reddit API fiasco wasn’t anticipated by anybody and the large influx of users exposed a ton of bugs and federation issues.

    But it’s not a failure, yet. I’m sure Reddit had growing pains after the Digg exodus too. Some platforms take years to become popular. Reddit was small for quite a while before it became more mainstream.

    In a way to me Lemmy feels a bit like Reddit must have been a few years before I joined it 12 years ago.

    The problem is the expectation that Lemmy could replace Reddit overnight, and would immediately be a 1:1 replacement.

    Although personally I like it more here, and I get more interactions than Reddit. But I am a tech nerd, so.



  • They most likely sent you a new board which happens to have an older BIOS on it. I don’t think they try to upgrade them at all, they pick a boxed new board from the warehouse and ship it to you. You can probably just upgrade it again, there’s no way this one’s newer. Also I guess double-check you got the same model of board back, that could also explain the old BIOS.

    RMA’d an MSI board for which they released a BIOS update specifically for the bug I encountered which can get the system completely unbootable even with a CMOS reset, and it didn’t even come with the updated BIOS either. I imagine they expect it’ll eventually get updated through Windows.


  • For me the reason I want a non-smart TV is the software is complete shit and even a Raspberry Pi runs smoother, and I can replace or upgrade the Pi when it becomes too old to be useful instead of the whole TV.

    Those will all become dumb TVs over time, and then you’re stuck using the crappy software to get to your HDMI input through all the lag even though the software is literally useless.

    At least old TVs had ugly as hell but snappy and responsive menus. No waiting 5+ seconds between button presses because the home screen is lagging loading all those ads.

    I caved in and got one anyway and I regret it. Manufactured e-waste. The amount of times I have to reboot the damn thing because even my HDMI input starts glitching out is plainly ridiculous.