Recent submissions

Comment · 3 years ago
Comment · 3 years ago
Nobody here has addressed the actual issue of Blockchain in a cashless society. You need internet for using crypto, your internet company accepts only legal currency (card, cash, etc) and since there's no chash and you have been cut off from using cards you can't pay for your internet bill and that means it'll eventually get cut and you won't be able to use crypto. Crypto needs cash to work, because people need cash or card for utilities, those companies won't accept your make believe money like the little shop in the corner does.
Comment · 3 years ago
I've worked for close to a decade with Django's ORM and recently with TypeORM, both have been simple to use and generally (minus some weird things I tried to do) a pleasure. I recently started working with a not so important project at my current job with sqlalchemy because I had to use Flask, I cannot describe the pain I've felt working with this, I dread having to write yet another query with sqlalchemy. The docs are terrible, some of the worst I've ever seen, an obscure and undocumented government library I'm also using at work has been easier to learn by reading its code than sqlalchemy. Someone above mentioned that the new 2.0 docs are better, I seriously hope they are, they will make my suffering more tolerable. However, even if the docs are good the API is still the worst and least intuitive I've ever seen, it honestly feels like I'm writing raw sql code shaped like python code. But it is weird, non standard and difficult to follow, unlike the official python sql interface. I recently had to write an upset and it felt like I was trying to summon a forgotten demon. It would have honestly been much easier to just write it in raw sql.

I'm sorry for the wall of text, I wanted to let you know that I'm very grateful for you suggesting that library. I hope I can migrate this (still) relatively small codebase away from sqlalchemy. I'm going to give pugsql and peewee a try, both have been mentioned in this thread as good alternatives.

I can summarize my basic complain here: the abstraction layer that sqlalchemy provides is more complex than SQL itself. It's almost not worth it, add to that the docs are a huge mess and you get something only diehards and people who have been using it for decades want to use.

Comment · 3 years ago
That's a shame, never happened to me, have you tried changing it to an include or adding a wildcard at the end? The project has been active for a very long time, I've been using it since it was only an Opera 12 extension, the developer seems very responsive, try reporting a bug.
Comment · 3 years ago
Comment · 4 years ago
Comment · 4 years ago
Yes, Mozilla is keeping the whole functionality. You can MITM yourself but then you'll be lowering your own security and your proxy will have to do its own certificate validation because the browser won't be able to do it anymore. You are also restricted to things you can modify with a simple regex (unless you add HTML parsing to your proxy but then you'll be double parsing, once in the proxy and another time in the browser). And it's still probably going to break with websites in the HSTS preload list. And content generated by JavaScript won't be blocked easily. It's also going to be very inefficient, don't underestimate the years of performance improvements behind adblocking extensions. Adblockers like uBlock Origin also do much more than just blocking requests. For example they can inject small snippets of JavaScript to neutralize tracking scripts without breaking websites that depend on them by introducing dummy functions with the same API as the tracking script or to counter anti adblocking scripts. It can also inject CSS snippets to fix website breakage. And block requests based on what website they originate from. And probably much more than you can easily do with a simple proxy.
Comment · 4 years ago
Let's say you load https://example.com/video and that page loads https://example.com/ads.js in the background.

What DNS adblockers like PiHole see is only a request for the domain (example.com), they can't see whether it is http or https nor can they see /ads.js or the rest of the path, port, query parameters, etc. They may not even see the second attempt at loading the domain (the /ads.js request) because the browser and the OS have probably cached the request.

uBlock Origin and other adblockers can see the whole request and modify it[1]. They can see whether it is http or https (that's how https everywhere knows what to redirect and where) and they can see whether you are loading /video or /ads.js and if they see /ads.js they can tell the browser to not load that.

[1] Google is going to remove the "modify" part of functionality in manifest v3 citing privacy and security concerns (while ironically keeping the "see" part) in an attempt to kill or limit the functionality of adblockers. Since YouTube uses an ever changing list of domains for serving videos and ads this change will effectively unblock ads in YouTube because adblockers can only keep a static list of what to block and when instead of doing it dynamically, and said static list can only be updated (as far as I know) by pushing a new version of the extension to the store, severely limiting the frequency of updates, making it impossible to keep up with the frequent changes in YouTube.

Comment · 5 years ago
I agree with this, I've been using Django for more than a couple of years. The built-in admin interface is a blessing, the ORM is good enough and unless you are handling very huge loads it doesn't matter if it doesn't always generate the most efficient queries (in more than 5 years I've never run into any issues with that). The almost but not exactly MVC pattern that also let's you mix both class and function based views coupled with a very limited template system is a curse. I would have preferred one way to do things(TM) but the Django approach let's you badly do a hundred and more different ways if you aren't very experienced with it (and even if you are you need a lot of discipline to do things properly, and even if you have discipline sometimes Django doesn't have a feature you need so you implement your own and then a major release comes and now it has its own incompatible way of doing the same thing). I still wouldn't change Django for anything else, I'm sure I wouldn't have a job anymore if it weren't for how fast and easily I can implement things with it (management is an absolute hell here and changes how everything is done every couple of months until management itself gets fired and replaced every year or two).
Comment · 5 years ago
> Block reason: Access from your Country was disabled by the administrator.

Thanks for that mirror, I occasionally use the lynx web browser that is also hosted there and being blocked has always been a problem.

Comment · 5 years ago
That's pretty much the answer I expected but I had to ask anyway. Thanks.
Comment · 5 years ago
Any plans on porting it to more mainstream phones? It seems to be aiming for "first-world phones" at the moment which is nice since they are more open and you don't have to worry (too much) about proprietary blobs and firmware but leaves a big chunk of the world out.
Comment · 5 years ago
> It spawns an isolated process. Javascript as a language and its runtime cannot support threads. To do "threads" they basically initialise a new instance of JS runtime.

Sometimes I need an answer as blunt and direct as that one to understand something, thanks.

Comment · 5 years ago
I'm not sure I get your point. It's more or less what I said, it isn't using real OS threads but it is doing something similar to green threads. It isn't true multithreading in the sense that it doesn't spawn an OS thread but it spawns lightweight (or green or simulated) threads with their own VM.
Comment · 5 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton