What the code actually does is reproduce the exact same problems existing solutions have and claim it solves them.
There is so much wrong with this I don't even know where to start.
Maybe here, with a restated version of the premise:
Async cooperative execution is dangerous because programmers may perform too much work between yields. Therefore, replace compiler-generated resumable tasks with manually written synchronous callbacks that have no yield points, permanently pin them to cores, prohibit dynamic load balancing, and recover from monopolization or memory faults using signals and longjmp.
I get annoyed that existing tools have limitations so I fix them or build my own:
- I didn't like that I can't use my newsreader on my laptop and my phone as easily so I built https://github.com/mjc/nntp-proxy. that turned out to be really hard to benchmark once it got fast enough so I am working on an nntp benchmark tool https://github.com/mjc/nntpbench. both can do request queuing because the nntp RFC says servers have to accept as many requests as they can, and then process them in order. so if your client doesn't do that, you can use more connections to the proxy and it will queue for you. it also routes stateless commands to whatever server is least-loaded, and will switch to stateful mode if your client needs it.
- I didn't like how expensive AWS Transfer Family is, so I built this https://github.com/elixir-ssh/sftpd and then rewrote it in rust (alpha) https://github.com/mjc/sftp-s3-rs. this shook out a bunch of bugs in russh, which was fun.
- didn't like that there's no par2 implementation in rust so I built this https://github.com/mjc/par2rs (I'm too lazy to move to tape backup so it works pretty ok for dvd/bluray parity), unfinished but good enough for my use.
- same deal for 7zip in rust. https://github.com/mjc/r7z
- a medication tracker thing that uses claude/codex/copilot to scan the bottles and parse them as well as identify pills etc. works better than you'd think but I'm not planning on releasing it for a while.
fixed or fixing bugs in:
- exqlite (it should not crash anymore and should return busy a lot less often.)
- russh
- swift-nio-ssh (this might be why codex's remote can't connect to your ssh box) https://github.com/apple/swift-nio-ssh/pull/236
- NanoKVM (working on making the streaming for this a lot more fluid)
I'm the author. It's supposed to wire into a phoenix app easily and give you lots of flexibility for how to handle what the client is doing - doesn't have to land on s3, you could pipe your files into an LLM or a broadway pipeline or anything really.
> While the sheriff's department said protesters at one point blocked entrances and exits at the hospital, no videos or photos confirmed that was the case.
[snip, most of the article about the shooting itself]
> Rather, video footage showed a handful of deputies standing in a driveway (apparently an entrance to the hospital’s emergency room), while the small group of protesters paced up and down a sidewalk feet away from them.
> At one point, deputies detained a journalist with LA’s NPR station, KPCC, who was reporting on the small protest, as well as a male protester who “refused to comply” with deputies’ demands to leave the area.
> The sheriff’s department said the reporter, Josie Huang, ignored deputies’ repeated commands and did not present “proper” press credentials. But she said and videos of her arrest show she didn’t have time or space to react to deputies orders before they shoved her and forcefully took her into custody. In one video, she can be heard shouting “I’m a reporter… I’m with KPCC” as officers push her to the ground. They cited her with obstructing justice, though KPCC is urging authorities to drop the charge.
I'm curious if you've found any GUI frameworks for any OS, in any language, that have ripped out all their legacy code and/or the design tradeoffs and hacks their legacy code required.
Add a little line noise for the average 30-70y/o house wiring and you get 43 hours for 33.6 or 50 hours for 28.8. It took running a brand new line in order for me to get 56k. So, the parent comment is accurate.
It was absolutely prohibitive for the average person with a shared line, and the direct comparison to shared line today is a metered connection. Even in the US it can be as much as $30 per gigabyte which would make that 60MB download cost $1.80.
There's a proxy polyfill. And if you really wanted there's at least one pcre2 wasm build you could wrap to make a polyfill, lol. Barely anyone uses lookahead/lookbehind even in pcre, though.
The key leak could just as easily be incompetence. Accidentally committed to git, or in their travis setup in such a way as to be easily obtainable, or a bunch of other options.
High effort for high reward like this is not surprising but it could all start with incompetence.
Blaster was a worm (self-transmitting and replicating without user interaction.) I was in IT when it came out.
XP SP2 had the firewall enabled by default in 2001, which blocked incoming SMB protocol requests and other related ports by default ("file and printer sharing" exception checkbox.)
Additionally, a security patch for Blaster was released July 16 2003. Blaster itself showed up August 11 2003, so you had almost an entire month to evaluate the security patch.
So in order to be affected by Blaster they had to
1. enable sharing of folders on client machines (connecting to servers does not require this firewall exception.)
and
2. fail to apply a security patch for a wormable exploit in a timely fashion.
That's not wide-open, that's (if they have control of client machines) IT department failure to act responsibly.
This is the most common slowdown I've seen in rails before. strict_loading mode can help, as can the bullet gem.
That said, it is also quite slow when you actually do need requests per second or rows per second, but the usual thing is to throw more machines at it,reduce the amount of magic in the hot path (like activerecord-import for bulk data if that's still maintained,) or use something else for the hot path.
You can turn on percentage in the menu bar, and there's several different usage graphs in multiple places.
If you want the actual milliamp-hours, load cycles, battery temperature, age, or even battery serial number, there's an api for that. You can use for example coconutBattery and get whatever data you want.
Docker is currently using qemu for x86-64 to arm translation so when I use it with an x86-64 container I only get 2-3 hours out of it, and the performance is atrocious bc of how slow qemu is. With arm64 containers I tend to get 5-8 hours even with cpu intensive tasks going most of the time.
I expect either qemu to get better or for apple to add some things to improve running x86-64 VMs. Rosetta 2's JIT portion (some of R2 is AOT) is worlds ahead of qemu's in terms of performance. So, the battery life and performance difference won't be forever.
Thankfully, building arm64 images for most containers I've used is pretty straightforward.
What the code actually does is reproduce the exact same problems existing solutions have and claim it solves them.
There is so much wrong with this I don't even know where to start.
Maybe here, with a restated version of the premise:
Async cooperative execution is dangerous because programmers may perform too much work between yields. Therefore, replace compiler-generated resumable tasks with manually written synchronous callbacks that have no yield points, permanently pin them to cores, prohibit dynamic load balancing, and recover from monopolization or memory faults using signals and longjmp.
ugh.