But when Cython fits, it's great, and a good tool to have in your toolbox if you're working with Python.
1,354 karma · joined August 13, 2011
But when Cython fits, it's great, and a good tool to have in your toolbox if you're working with Python.
(Java probably is also fine; I've less personal experience there so I can't say).
Unless you go all-in on typing -- which is difficult today with any meaningfully sized existing codebase -- maintenance is largely a "hope manual testing and unit tests catch anything resembling type errors" which is a major challenge for, say, structural change to a code base like refactoring. Plus typing is still young, the tooling somewhat immature, and can lead to false senses of security if you aren't very careful and opt into the strictest modes. This makes large number of developers and codebase size a major stumbling block.
The interpreter performance and GIL are fundamental issues as well. Multiprocessing and hacks around the GIL are quite painful if you even glance at any native threading code (say in a C++ library) and even when you stick to pure Python, you have a debugging mess when anything goes wrong.
But if someone can improve performance, that'd be great, and has massive impact potential. It is incremental though and doesn't solve fundamental issues with the language. I'm also skeptical of the "5x" plan referenced in the blog, and very skeptical we can ever see meaningful removal of the GIL due to library and baked in design decisions in existing code. This means performance will fall further and further behind compiled languages.
(I write all of this having been a part of supporting Python at massive scale for over two decades, including at two FAANG companies who invest heavily in it. I've seen the curve and the pain it's caused, and would never use it for any code that needs to be performant or actively developed on the multi-month or year timescale).
The next stop down this fun slippery slope is kubernetes :)
That said, it also is worth mentioning NextDNS as an option. It basically is “pihole as a service” and is reasonably affordable. I ended up going that route to achieve similar goals as to the author and have been happy with it.
Basically it could become an arms race where, say, free speech advocates convince people to just keep and share some images and overwhelm the process. Then Apple adapts to new hashes, blocklists known false positives, and the cycle repeats.
Alas, nano (and pico before it) have a certain stigma among more "experienced" Unix users that more or less boils down to gatekeeping and snobbery. Which is a shame.
That said... it is worth considering that learning tools like editors is an investment in one's self and pushing through preference to genuinely try to use what others find value in can, if nothing else, help you better understand what you value and adjust your tooling to fit (much like the author adjusted Nano to be more like vim).
That's a pretty nuanced distinction though and I am glad that the author feels comfortable owning their preference and not feeling pressured by peers to conform to more "acceptable" choices while still having tried and learned from them.
None of this is inherently bad, but there seems to be a growing divide between "mainstream" tech and the crypto world that is harder and harder to understand if you aren't already steeping in the ecosystem.
Another challenging aspect is how much of crypto (particularly non-mainstream) has somewhat shady origins. Maybe the shadiness is just subverting expected norms, but there seems also to be sufficient evidence the shadiness also often is around illicit activity.
I'm curious if others have found ways to build and keep an understanding of the crypto ecosystem without fully going down the rabbit hole?
This almost seems like some kind of parody or phishing attempt or something. This does not seem reputable.
For those who read your comment and feel bad that the humorous angle is reality to them… it isn’t. Don’t let the world make you feel bad about yourself.
For those who read it and get a chuckle about fat people… your world view may benefit from some compassionate adjustment.
This cheese is illegal for a reason!
TLDR from the docs: ChainMap groups multiple dicts or other mappings together to create a single, updateable view.
Actually it’s probably already happening.
Someone should write a blog post or something to explain it, then link that here so we can all be in awe, or outrage, together.
gzip is basically never worth using anymore except for backwards compatibility; zstd is both faster and more space efficient.
lz4 similarly is worth adding for utmost speed but I tend to think zstd is better in practice (particularly when the control plane is Python where perf is somewhat limited anyway).
Which is ironic as that is literally the opposite of the Perl programming language itself.
Rote but effective.
- Satanic Panic - Human Trafficking - Murder - Stanford Prison Experiment
etc.
A very common theme is "do-gooders" trying to do what they very naively think is a good thing but without data or rationality to back it up. Or, worse, people who manipulate those do-gooders into accomplishing other, more selfish/nefarious/evil goals.
Really interesting stuff overall.