HNHacker News
TopNewBestAskShowJobs

amenod

1,555 karma · joined April 17, 2013

submissionscomments
amenod··on Man who thought opening a TXT file is fine thought wrong
For anyone wondering, it is enabled by default on Ubuntu too. I wonder what made someone think that this was a good idea?
amenod··on Child tweets gibberish from US nuclear-agency account
Tux + L then. :)
amenod··on Child tweets gibberish from US nuclear-agency account
...or invite the whole team for a beer via e-mail. :)
amenod··on Voltswagen of America
It is still quite likely he won't be repeating the mistake though. Prison is something else than just money.
amenod··on SQLAlchemy 1.4
I hate SQLAlchemy and Alembic.* I still use them both, because they are at least some kind of standard and SQLAlchemy plays with FastAPI very nicely - and I love API input validation and docs for free.

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. :)

amenod··on How I earn a living selling my open-source web-based invoicing application
That was not my point. I also happen to agree with you - AGPL is "open source" under any definition I have encountered.
amenod··on Debian Running on Rust Coreutils
I didn't mean re-licensing it - the parts that are under MIT stay under MIT, but the patches on it have a different license. That is completely legal and license doesn't forbid this. (ianal, yadda yadda...)

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-...

amenod··on Goodbye MongoDB, Hello PostgreSQL (2015)
No - different processes were reading and writing.

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.

amenod··on Goodbye MongoDB, Hello PostgreSQL (2015)
That's what I meant by "no persistence needed". In both cases, I wasn't actually saving anything to disk. I needed an in-memory storage for a never-ending stream of incoming data that would be read (and purged) by a separate process, no biggie if the data got lost occasionally.

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.

amenod··on How I earn a living selling my open-source web-based invoicing application
Even though OSI clearly defines what "open source" means, it is sometimes (often even?) used as a synonym for "source available", as opposed to "free software" (which is the term that FSF promotes).

I'm not saying which term is better, just explaining why "open source" might not be objectively wrong in this case.

amenod··on I bought 300 emoji domain names from Kazakhstan and built an email service
I have a domain that would be great for an e-mail forwarding service, but I have second throughts about starting it... Is there someone here with experience in this area? What should the OP be most scared of?
amenod··on I bought 300 emoji domain names from Kazakhstan and built an email service
Note that OP is actually generating loss at this point - 300 domains at $8 equals $2400, which is in itself bigger than the income.

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.

amenod··on Goodbye MongoDB, Hello PostgreSQL (2015)
I had a project where I just needed to be saving a constant flow of data (id + 100 bytes records) somewhere, no persistence needed, no sharding (single machine) - but lots of it. I first turned to Redis and it worked nicely, but since I had PostgreSQL running, I made a performance test with it too. To my surprise, once I optimized both (memory only, pg WAL disabled, persistent connections,...) there was almost no difference in insert rate, so I ended up using PgSQL only.

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.

amenod··on Goodbye MongoDB, Hello PostgreSQL (2015)
Correct me if I'm wrong, but I think you missed the point of the discussion? It is not connected to frontend at all. It talks about the difference between using an ORM versus constructing SQL statements directly, as strings.

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).

amenod··on Goodbye MongoDB, Hello PostgreSQL (2015)
It's not that bad. I have used both and while I wouldn't choose MongoDB anymore, it did its job as needed.

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! :)

amenod··on Debian Running on Rust Coreutils
> Perhaps the maintainers of the C versions should do the same in reverse.

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).

amenod··on Fuckin' user interface design, I swear
I agree with you about the tradeoffs and the importance of looking at the problem from all angles, but I would argues that this is clearly the case wher aesthetics won over usability, which should _never_ happen. It should be easy to visually separate the "hang up" button from other, much less destructive and more commonly uses buttons (especially "mute"), for example with some small amount of separating space. The only reason this is not done is that it "wouldn't look balanced" and designers would be unhappy.

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.

amenod··on Are Xiaomi browsers spyware? Yes, they are (2020)
Are you saying you can actually read the air quality readings of other users? That's... quite an oversight. :-/
amenod··on Coinbase S-1
Note that GP stated they are "brainchild of cryptocurrencies". I don't think that the meaning you imply is what they had in mind.
amenod··on Common Nginx misconfigurations that leave your web server open to attack
Agree.

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

amenod··on I heat my home by mining crypto currencies
> Success! I was able to lower my heat pump's electricity needs by ~50%

(didn't downvote you, just pointing out that you missed the point of the article)

amenod··on How can you not be romantic about programming? (2020)
Of course they are. They are written by people and often become standard because of good marketing instead of merit.

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.

amenod··on WhatsApp to move ahead with privacy update despite backlash
I installed Signal recently, but was flabbergasted when it advised me to connect with someone they found in my phone contacts who has recently joined Signal. WTF? If I knew that my contacts were being shared with a 3rd party (Signal), I would never have signed up.

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.

amenod··on SVG: The Good, the Bad and the Ugly
Cool, thanks for sharing!

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

amenod··on Web Scraping 101 with Python
Recaptcha comes to mind.

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).

amenod··on What Is React: A Visual Introduction for Beginners
In practice though, unless you have some very specific needs (and the people I have met who thought that they did, well,... didn't :) ), you should still "just use CRA".

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.

amenod··on Losing faith in UX
> ...even among professionals referring to themselves as UX designers.

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.

amenod··on JaaS: The team that builds Jitsi can now also run it for you
Well, they can also just wait for Google to either rename or kill off their product. /s

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".

amenod··on Firefox 85 cracks down on supercookies
So? Mozilla should still catch up (if/where needed) and surpass Google on all privacy fronts. The goal should be that Google can't track Firefox users in default configuration - rest assured, this will never happen with Chrome/Chromium/Edge, and probably not with any other Chrome-base browser either.
amenod··on Firefox 85 cracks down on supercookies
Good job Mozilla! Do what Google never will - put users' privacy front and center.

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.

← PreviousPage 3 of 20Next →