1,555 karma · joined April 17, 2013
Don't get me wrong - it's nice that there is some abstraction layer above the database. However, when it doesn't work the way you want it to, you need to find some workarounds for things that are otherwise trivial in SQL.
Alembic... meh. Just give me the SQL and I will migrate database, no problem. But looking for the yet another syntax to perform the same thing is not my idea of fun. Not to mention that all migrations I ever did were linear - I can't imagine why someone would need dependency resolution in a db migration tool. Still, it is a kind of standard, so if you are working as part of a team... shrugs
* edit: to be exact, I don't really hate hate them... I am just very frustrated with them from time to time. :)
A similar thing happened to OpenOffice / LibreOffice: [0]
> OpenOffice uses the Apache License, whereas LibreOffice uses a dual LGPLv3/Mozilla Public license.
> For some legal reasons, then, anything OpenOffice does can be incorporated into LibreOffice, the terms of the license permit that. But if LibreOffice adds something, take font embedding, for example, OpenOffice can’t legally incorporate that code.
[0] https://hackaday.com/2020/11/02/openoffice-or-libreoffice-a-...
And once you implement a global map which is accessible from multiple processes, you might as well use an existing solution, like Redis. Or, as I've learned, pgSQL - which gave me the same performance with less moving parts (because I was already using it) when I disabled WAL.
I also simply inserted and read the data, no complex queries or anything. Key-value store is all I needed and for this particular case PostgreSQL was as good at it as Redis.
I'm not saying which term is better, just explaining why "open source" might not be objectively wrong in this case.
Can you maybe share what problems OP might have? I have toyed with an idea of starting something similar and would love to know what I'm getting into.
This is anecdotal, of course, and it is possible that I simply didn't optimize Redis enough (though I did give it my best!). Let me also say that Redis is great otherwise, it was just in this specific case that PostgreSQL surprised me and fulfilled the need itself.
In that light I don't think `PREPARE` and stored procedures would help much (or at all).
I also don't find them hilarious, though they do represent very extreme views on the subject (imho) while to me it is essentially a tradeoff (I use both direct SQL and ORMs, depending on the needs of the project).
For me, the main problem with MongoDB is that it is "schemaless" - which doesn't mean that there is no schema, just that it is not explicitly stated and enforced. This leads to problems later when schema changes and you need to be extra careful not to end up with inconsistent data (good luck with that). But this is solveable, it just takes more effort than necessary.
If you are using MongoDB for a small-ish project you should be ok. And if your project becomes big, you will need people who know the difference and will be able to migrate (if needed) anyway. So no worries, and good luck with your project! :)
Nitpick: they don't need to, they can just attribute the Rust developers if needed. They can also just take MIT code and publish it under GPL (reverse is not true).
In my experience designers are the worst people to hire for UX because they often sacrifice usability for aesthetics. Programmers fare a bit better (usable UI usually doesn't conflict with the code quality), still not perfect though. Casual users are probably best, with some education in usability of course.
And there are other questionable design choices in this project too. by pet-peeve is an omission of `.htaccess`-like mechanism. There is even a page they have dedicated to this [0], where instead of looking at their users' problems and finding a suitable solution (like, only loading `.htaccess` every minute or when it changes), they argue that users don't actually have a use-case where they want to allow some limited configuration to 3rd parties.
Someone even wrote a plugin that fixes that [1], but it is annoying (to say the least) that this is an option nginx developers say is "not needed" and "shouldn't be used".
[0] https://www.nginx.com/resources/wiki/start/topics/examples/l... [1] https://github.com/e404/htaccess-for-nginx
(didn't downvote you, just pointing out that you missed the point of the article)
However, I still find satisfaction in learning new things, trying to be better each day, overcoming new and more challenging problems and solving riddles in a nicer and more elegant way. I fail in all these things, too, of course - but it does give me a sense of purpose. And I don't appreciate any tool that comes my way, I'm picky that way. I love Python for its stdlib, React for its declarative nature, C for its simplicity... and avoid dealing with the JS build system of the month as much as I can. Enough to understand, but I try not to lose too much time and mental energy on them.
That said, if I didn't enjoy programming, I would be happy to move to management or even leave the industry to become a carpenter. I think that as long as you do something meaningful and also help other people (so that you can live off it), it doesn't matter much what that thing is.
Still, better Signal than Facebook, I guess. :-/
P.S.: if I'm missing something and the check was done in privacy-conscious way, I would love to be corrected.
FYI, the OP posted an update with a reply to you:
> This article was posted on Hacker News... > In the comments there somebody mentioned an interesting use of the <script> tag in SVG. I’m unsure though whether I should be impressed or horrified :D
That said, there are quite a few services which battle these systems for you nowadays (such as scraperapi - not affiliated, not a user). They are not always successful, but they have an advantage of maaany residential proxies (no doubt totally ethically obtained /s, but that's another story).
There are folks who like to live on the bleeding edge, and for those using something else (or ejecting) might even make sense... maybe. But for any production app you should just use CRA, otherwise you will find yourself explaining to your new hire all the obscure choices you made a year or two ago. Believe me, I've been on the receiving end of these explanations and it sucks.
I believe this is a part of the problem. Because there is a word "designers" in "UX designers", a lot of designers expanded their credentials to include UX. In my experience, they invariably suck at it (at least the ~5 I had the pleasure to work with).
The proliferation of high-fidelity wireframes (and tools like Adobe XD, Figma) is another testament to that; impressive looking designs that hide basic UX mistakes. Low fidelity wireframes would make them obvious, but who wants to look at the "wires" when you can have colors?
I think the designers simply prioritize aesthetics over content / usability and it is difficult for them to get past that. The best UX designers I have worked with in the past were either engineers or coming from completely unrelated fields.
On a more serious note, it was never confusing to me - I didn't even notice they share the same word until now tbh. And quick search for "meet videoconferencing" shows quite a few of the products named similarly. To me it is almost as generic as "chat".
On a sidenote, I might now re-enable cache that I kept disabled (well - cleared on exit) because of supercookies. I don't care that much if a single page tracks me, but I _really_ don't want Google to track me across sites. If Firefox protected me against that.. they would have one very grateful user. :)
EDIT: this also highlights why Google is so invested in Chrome - they can make sure that privacy doesn't interfere with their money-making machine. They really are brilliant. Brilliantly evil.