Apologies - something very clearly went wrong here. We’ve already begun investigating, and some very early results:
* Any AI responses used for email support are now clearly labeled as such. We use AI-assisted responses as the first filter for email support.
* We’ve made sure this user is completely refunded - least we can do for the trouble.
For context, this user’s complaint was the result of a race condition that appears on very slow internet connections. The race leads to a bunch of unneeded sessions being created which crowds out the real sessions. We’ve rolled out a fix.
Appreciate all the feedback. Will help improve the experience for future users.
Literally no one wants this. The entire purpose of contacting support is to get help from a human.
For example, I am writing some driver software for a USB device right now. It is so easy to get the device into a bad state, even when staying within the documented protocol. Every time I implement a workaround, or figure out exactly how the device expects a message to appear, I put in a comment to document it. Otherwise, when (inevitably) the code needs to have features added, or refactoring, I will completely forget why I wrote it that way.
The prime number example is a self-contained, deterministic algorithm. While I did find it far easier to parse with comments, I could still spend the time to understand it without them. In my USB device driver, no amount of review without comments would tell another person why I wrote the sequence of commands a certain way, or what timings are important.
The only way around that would be with stupid method names like `requestSerialNumberButDontCallThisAfterSettingDisplayData` or `sendDisplayDataButDontCallTwiceWithin100Ms`.
This is the main reason for comments. The code can never tell you "why".
Code is inherently about "what" and "how". The "why" must be expressed in prose.
that was the case in 2015 when entry level android devices were quite slow, nowdays a cheap $200 android phone has at least 4-6GB of RAM and an eight core processor.
if that isn't enough for your react powered site, you are doing something very wrong.
You need to take performance seriously or it will just be bad. Most of the industry has chosen to be bad.
One reason it says that React is a poor choice is performance issues. But front end performance issues are almost never the most pressing issue to deal with. React performance concerns in the real world are typically measured in, at worst, hundreds of milliseconds. Yes, there are a few specialized domains where this will matter. No, you probably don’t work in one. Greater leverage can almost always be derived from improving the backend.
The second reason the author says is that it’s based on a legacy eventing system which supports IE. The author goes on for quite a while to say how bad this is, but I question the assumption it’s predicated on: the legacy eventing system never bothers me, and it doesn’t create issues visible to my users. As far as it seems to me, this argument is akin to saying that React hasn’t bothered refactoring an old part of the code base. Yes, that’s not great, but it hardly strikes me as a reason to drop a framework entirely.
Finally, the author doesn’t actually give a prescription as to what to use instead of React. This is, personally, where the argument really falls apart. React does make a set of tradeoffs, I don’t deny that, but most alternatives I’ve seen make a worse set of tradeoffs that shift more work onto the engineer. Of course, since the author doesn’t actually highlight any alternative, we can’t have a discussion about what you’re trading away, but I suspect that the author makes no proposal because he knows that any alternative would immediately be shot down as obviously worse than React.
Many years ago I worked at a wonderful company that made the terrible decision to rebuild the frontend in React. We had a performance dashboard permanently displayed on a TV in the office, prominently showing the p99 time-to-interactive of our home page. It sat at TWENTY SECONDS for at least 2 years. No progress was ever made, to the best of my knowledge.
This was an e-commerce site, more or less. As per the author's reasoning, it absolutely should not have been an SPA.
But, of course, the market is has information that I don't.
I am a database specialist and have worn the DBA had for many years. I have run MySQL and Postgres in production, both self-hosted and using managed services. Postgres wins on every single dimension that matters, every time. Yes MySQL is easier to setup for non-experts. That counts for nothing.
If you are sticking up for MySQL in this thread... I just don't even know, man.
Newer PostgreSQL versions are better. Yet still not quite as robust or easy as MySQL.
At a certain scale even MySQL upgrades can be painful. At least when you cannot spare more than a few minutes of downtime.
Right now I rely on TabsOutliner when using Chrome (which I only use for work). It lets me keep 400+ tabs open and stay sane. I like it so much that I've paid for it 3 times, and would have paid a 4th time but it seems you can't anymore, and I fear it's abandoned.
In any case, this is how I work. I use browser tabs as a kind of short- to medium-term memory. I open a bunch of things, and keep them open for as long as I might plausibly need them. To me this is just normal. I don't know how anyone lives with only 10 or 20 tabs open, or a 50 tabs in a single window. How could you remember anything? But without TabsOutliner or something like it, this becomes a sprawling mess, because the browser gives you no native means to search it, or "zoom out".
Unfortunately TabsOutliner isn't available for Firefox, which I use when I have a choice. So seeing SavaOS promote Chrome... I lose a little interest right away. If it doesn't work in Firefox it's not worth getting excited about, because Chrome as a piece of software treats me like an enemy and I don't like that. So: support Firefox!
That said, if SavaOS gives me the capability to organize my tabs, maybe treat them like files I can put in directories etc etc, that sounds awesome and I want to try it. At the very least maybe it's better than TabsOutliner.
But seriously: Firefox!
It's then generally up to a higher-level component called a table format to handle the idea of edits. See for example how Apache Iceberg handles deletes https://iceberg.apache.org/spec/#row-level-deletes