Readit News logoReadit News
JasonSage commented on The lottery ticket hypothesis: why neural networks work   nearlyright.com/how-ai-re... · Posted by u/076ae80a-3c97-4
belter · 6 days ago
This article is like a quick street rap. Lots of rhythm, not much thesis. Big on tone, light on analysis...Or no actual thesis other than a feelgood factor. I want these 5 min back.
JasonSage · 6 days ago
On the other hand, as somebody not well-read in AI I found it to be a rather intuitive explanation for why pruning helps avoid the overfitting scenario I learned when I first touched neural networks in the ‘10s.

Sure, this could’ve been a paragraph, but it wasn’t. I don’t think it’s particularly offensive for that.

JasonSage commented on Async I/O on Linux in databases   blog.canoozie.net/async-i... · Posted by u/jtregunna
jmpman · a month ago
“Write intent record (async) Perform operation in memory Write completion record (async) Return success to client

During recovery, I only apply operations that have both intent and completion records. This ensures consistency while allowing much higher throughput. “

Does this mean that a client could receive a success for a request, which if the system crashed immediately afterwards, when replayed, wouldn’t necessarily have that request recorded?

How does that not violate ACID?

JasonSage · a month ago
As best I can tell, the author understands that the async write-ahead fails to be a guarantee where the sync one does… then turns their async write into two async writes… but there’s still no guarantee comparable to the synchronous version.

So I fail to see how the two async writes are any guarantee at all. It sounds like they just happen to provide better consistency than the one async write because it forces an arbitrary amount of time to pass.

JasonSage commented on Milwaukee M18 Battery Reverse Engineering   quagmirerepair.com/milwau... · Posted by u/jakogut
tomcam · 4 months ago
FWIW I find these batteries and the charger to be exceptional. You can just leave batteries in and it knows when to stop charging. If you get the big charger and put a bunch of batteries in it charges them round-robin style. And the batteries themselves seem to be sturdy, robust, and high capacity. They're also expensive af so you want to wait for a sale if possible. I even spent a ridiculous amount of money on the battery-powered wet/dry vac and haven't regretted it for a moment.
JasonSage · 4 months ago
Where do you usually look for a sale on Milwaukee? I got lucky finding a great bundle sale at a Home Depot once, I'd love any tips on where/when to look more specifically.
JasonSage commented on Lox – Oxidized Astrodynamics – A safe, ergonomic astrodynamics library   github.com/lox-space/lox... · Posted by u/ElFitz
ge96 · 6 months ago
Funny I don't even consider hacking on my own car like switching the infotainment system (11 yr old car)
JasonSage · 6 months ago
The spacecraft mechanics in sci-fi who are born today are auto gearheads. It is funny to think about something so romanticized where the modern day equivalent is comparatively mundane. At least, it is to me, I'm sure a lot of people spending their life on it do not find it mundane at all.
JasonSage commented on Caddy – The Ultimate Server with Automatic HTTPS   caddyserver.com/... · Posted by u/huang_chung
samwillis · 6 months ago
One area we have found Caddy invaluable is for local testing of APIs with HTTP2 during development. Most dev servers are HTTP1 only, and so you are limited to max of 6 concurrent connections to localhost. HTTP2 requires SSL, which would normally make it a PITA to test/setup locally for development.

Throw a Caddy reverse proxy in front of your normal dev server and you immediately get HTTP2 via the root certificate it installs in your OS trust store. (https://caddyserver.com/docs/automatic-https)

We (ElectricSQL) recommend it for our users as our APIs do long polling, which with HTTP2 doesn't lock up those 6 concurrent connections.

I've also found that placing it in front of Vite for normal development makes reloads much faster. Vite uses the JS module system for loading individual files in the browser with support for HMR (hot module replacement), this can result in a lot of concurrent requests for larger apps, creating a queue for those files on the six connections. Other bundlers/build tools bundle the code during development, reducing the number of files loaded into the browser, this created a bit of a debate last year on which is the better approach. With HTTP2 via Caddy in front of Vite you solve all those problems!

JasonSage · 6 months ago
Just a note, because this comment made me curious and prompted me to look into it:

Vite does use HTTP2 automatically if you configure the cert, which is easy to do locally without Caddy. In that case specifically there's no real reason to use Caddy locally that I can see, other than wanting to use Caddy's local cert instead of mkcert or the Vite plugin that automatically provides a local cert.

JasonSage commented on NordVPN says its new protocol can circumvent VPN blockers   gizmodo.com/nordvpn-says-... · Posted by u/mikece
_fat_santa · 7 months ago
Reading the comments here, it's clear that many have a less than favorable view of NordVPN. With that said, what VPN provider would readers here recommend? I don't know if there is a consensus for a "good VPN provider" that respects privacy, etc or if they are all shitty in one way or another.
JasonSage · 7 months ago
Mullvad
JasonSage commented on Nix – Death by a Thousand Cuts   dgt.is/blog/2025-01-10-ni... · Posted by u/jonotime
SuperSandro2000 · 7 months ago
nix-alien is an older, worse approach that is not that well maintained
JasonSage · 7 months ago
nix-alien used nix-ld under the hood.

Why would you say it is worse, older (does this one really matter?), or not well maintained?

JasonSage commented on Nix – Death by a Thousand Cuts   dgt.is/blog/2025-01-10-ni... · Posted by u/jonotime
lilyball · 7 months ago
You can run generic Linux stuff if you install nix-ld¹, the only tricky bit is having to customize the set of libraries given to nix-ld for your use-case. It includes various common libraries by default, but depending on what you want to run you may have to add to it.

¹https://search.nixos.org/options?channel=unstable&show=progr...

JasonSage · 7 months ago
There’s also nix-alien which does this but tries to be more automagical.
JasonSage commented on Cognitive load is what matters   minds.md/zakirullin/cogni... · Posted by u/zdw
singingfish · 8 months ago
I've had some C# code inflicted on me recently that follows the pile of garbage design pattern. Just some offshore guys fulfilling the poorly expressed spec with as little brain work as possible. The amount of almost-duplicate boilerplate kicking around is one of the problems. Yeah it looks like the language design encourages this lowest common denominator type approach, and has lead into the supplier providing code that needs substantial refactoring in order be able to create automated tests as the entry points ignore separation of concerns and abuse private v public members to give the pretense of best practices while in reality providing worst practice modify this code at your peril instead. It's very annoying because I could have used that budget to do something actually useful, but on the other hand improves my job security for now.
JasonSage · 8 months ago
Sounds like you would have had problems whether there was boilerplate-y code or not.
JasonSage commented on Cognitive load is what matters   minds.md/zakirullin/cogni... · Posted by u/zdw
lisper · 8 months ago
OMG, so much this.

One of the biggest sources of cognitive load is poor language design. There are so many examples that I can't even begin to list them all here, but in general, any time a compiler gives you an error and tells you how to fix it that is a big red flag. For example, if the compiler can tell you that there needs to be a semicolon right here, that means that there does not in fact need to be a semicolon right there, but rather that this semicolon is redundant with information that is available elsewhere in the code, and the only reason it's needed is because the language design demands it, not because of any actual necessity to precisely specify the behavior of the code.

Another red flag is boilerplate. By definition boilerplate is something that you have to type not because it's required to specify the behavior of the code but simply because the language design demands it. Boilerplate is always unnecessary cognitive load, and it's one sign of a badly designed language. (Yes, I'm looking at you, Java.)

I use Common Lisp for my coding whenever I can, and one of the reasons is that it, uniquely among languages, allows me to change the syntax and add new constructs so that the language meets the problem and not the other way around. This reduces cognitive load tremendously, and once you get used to it, writing code in any other language starts to feel like a slog. You become keenly aware of the fact that 90% of your mental effort is going not towards actually solving the problem at hand, but appeasing the compiler or conforming to some stupid syntax rule that exists for no reason other than that someone at some time in the dim and distant past thought it might be a good idea, and were almost certainly wrong.

JasonSage · 8 months ago
> Another red flag is boilerplate.

I have to disagree. Boilerplate can simply be a one-time cost that is paid at setup time, when somebody is already required to have an understanding of what’s happening. That boilerplate can be the platform for others to come along and easily read/modify something verbose without having to go context-switch or learn something.

Arguing against boilerplate to an extreme is like arguing for DRY and total prevention of duplicated lines of code. It actually increases the cognitive load. Simple code to read and simple code to write is low-cost, and paying a one-time cost at setup is low compared to repeated cost during maintenance.

u/JasonSage

KarmaCake day898July 23, 2012View Original