After using gmail for around a decade, I switched to fastmail a few months ago and have been extremely happy with the change.
I still have a lot of accounts associated to my gmail email, but i've been slowly migrating things over when convenient. It has been a much smaller lift than I anticipated and absolutely worth it.
This sort of thing is why looking at generated SQL while developing instead of just trusting the ORM to write good queries is so important.
I find query planning (and databases in general) to be very difficult to reason about, basically magic. Does anyone have some recommended reading or advice?
This website taught me a ton, even after I thought I knew more than enough about performance. Just seeing how different databases generate and execute their SQL is a huge boon (and sometimes extremely surprising when looking at one DBMS to another).
https://pages.cs.wisc.edu/~dbbook/ is a great overview, specifically chapters 13 and 14 on query optimization. it is difficult to reason about though, and every compiler is different. it takes time and enough examples to look at a query and have an intuition for what the plan should look like, and if there's something the compiler is not handling well.
If you are looking to squeeze every ounce of performance from your entire application stack, I'd say you should be looking at everything your ORM produces. The ORM is basically to speed up your developers time to production, but most ORMs will have some cases where they generate terrible SQL, and you can usually run your own SQL in a stored procedure if the generated SQL is sub-optimal. I've done this quite a few times with Microsoft's Entity Framework, but as new versions come out, it's become less common for me to have to do this. Usually I need to drop to a stored procedure for code that allows searching a large number of columns, in addition to sorting on all the columns that display. I also use stored procedures for multi-table joins with a WHERE clause, when using Entity Framework. You still need to look at your generated queries, but the code is nothing like it used to be under Entity Framework under the .NET Framework (at least in my experience - YMMV - you should never just let your ORM create SQL without reviewing what it is coming up with).
ORM often produces horrible queries that are impossible for humans to digest. I think there are two factors. First, queries are constructed incrementally and mechanically. There is no an overview for the generator to understand what developers want to compute, or no channel for developers to specify the intention. I anticipant this will change w/ AI in the near future. Second, ORM models data following the dogmatic data normalization, on which queries are destined to be horrible. I believe that people should take a moment to view their data, think what computations they want to do on top, estimate how expensive they may be, and finally settle on a reasonable model overall. Ask ORM (or maybe AI) to help with constructing and sending queries and assembling results. But do not delegate data modeling out. With right data modeling that fits computations, queries cann't be that bad.
Yes, I was going to say, seeing the generated SQL can be almost useless depending on the execution plan.
When you have a solid view of the schema and data sizes you can start to be more predictive about what your code will actually do, THEN you can layer on the complexity of the ORM hell code.
What would be a better alternative than LaTex for the alt text? I can't think of a solution that makes more sense, it provides an unambiguous representation of what's depicted.
I wouldn't think an LLM would have issue with that at all. I can see how a screen reader might, but it seems like the same problem faced by a screen reader with any piece of code, not just LaTex.
I’ve been using Firefox for nearly 20 years. Lately I’ve noticed more and more websites that don’t work with it. Usually I can just ignore the bugs or avoid the site, but sometimes it’s something that I have to do (like pay a bill) and so I have no choice but to keep a Chromium install around as well.
I really hate having to double-fist browsers, but I’m too stubborn to switch to a Chromium-based browser full time. I’ll use Firefox or any other alternative for as long as the web remains usable on them.
I think it's our duty to use Firefox as much as possible, and only launch Chromium for the odd task where Firefox fails. This is the only way to fight the browser monopoly. We have to generate as much Firefox activity as possible, so that websites have to take it seriously as a platform and continue to develop against it.
> Usually I can just ignore the bugs or avoid the site, but sometimes it’s something that I have to do (like pay a bill) and so I have no choice but to keep a Chromium install around as well.
It's very odd, because recently I've had more of the opposite, where Edge (Chromium based) doesn't work, but Firefox does: on the sites where I pay my water and gas bills. Not that sites don't break on Firefox either, I've had that too, it's just odd that sometimes the mainstream browser doesn't work (wonder if it's an extension issue).
In my twenty years of using Firefox on every computing device I have ever owned, I have NOT ONCE encountered a website that didn't work on Firefox, including purchases and bill paying.
Even our internal only app that is used for internal management stuff only breaks in tiny and unimportant ways (ie a raw data viewer doesn't load), and probably just needs a polyfill.
I've noticed that some sites are buggy on Firefox (hello YouTube) but I don't think I've ever had to actually switch to Chrome to do anything. Maybe it helps that I mostly use electrical invoicing, so I don't really need to use a browser to pay my bills.
People use different sites, so I believe it, especially "local" ones of zero interest to people in other countries.
That said, I've not used chrome on personal machines as a default browser for many years, and at work I also avoid it.
I don't remember when I last stumbled over a page that didn't work in Firefox... which then worked in any other Browser and was not broken per se. Or they didn't work with Firefox + UBlock Origin, which is fair as Chrome just blocks less.
Some sites block by user agent, you may just need to use an extension to spoof it and the site should work.
Some browsers like Vivaldi do that by default.
Though, this sucks, but it's better than the alternative.
Interesting idea, but I would worry that developers wouldn’t catch things like slow queries or other performance issues that crop up when using an actual database.
I still have a lot of accounts associated to my gmail email, but i've been slowly migrating things over when convenient. It has been a much smaller lift than I anticipated and absolutely worth it.