HN user

projct

156 karma

[ my public key: https://keybase.io/projct; my proof: https://keybase.io/projct/sigs/0o7MLFVjRhfFFMLK8YK5Z1MIQ0rEFyekq8_yORQVElo ]

Posts1
Comments159
View on HN

This is super slimy.

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.

LiveView is perfect for that. one of the easiest to understand demos of it is actually something just like that.

that said liveview is capable of 60fps server-rendered animation, so it's definitely not just for speeding up page loads.

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)

Thanks for noticing this!

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.

Snopes:

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.

https://www.snopes.com/fact-check/blm-deputies-compton/

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.

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.

ReactOS 0.4.14 5 years ago

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.

Rails 7 Released 5 years ago

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.

What?

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.

ECC matters 6 years ago

"Your car does not have a roll cage" No but the crash structures are one of the areas where we are absolutely trying to recreate the effect of a rollcage without the weight. The weight putting constraints on fuel efficiency is the big issue there.

For ECC, there's no reason to really expect that adding ECC to everything would really make things too expensive or slow long term. For a long time the reason why desktops did not have ECC was pretty much because intel wanted people who really need ECC to buy Xeons.

If you get rid of unwrap and use `if let` and `match`, this code will clean up nicely.

If the code is supposed to be maintainable, you could also make something like a FromRegex trait for Input. It would be a good idea to try exercism's mentoring thing to get better at writing it the easier way the first time. The mentoring thing really is what helped me to think in ways that made this mess easier to avoid.

On ZFS you can have multiple vdevs of different sizes in the same pool, and you can also set copies=N to have multiple copies of the data available for extra redundancy.

You can't unfortunately tell it that different disks have different speeds.

It also works just fine w/ a small (1GB or so) ARC if you want, just at an obvious performance penalty compared to having a larger cache.

Sort of.

Mixed brand has a lot of bugs, and the different ways you'd hook up more than 4 cards have a lot of drawbacks so you would have to plan this carefully. It would be easier and more flexible to get a 4 slot board for the AMD GPUs and use the NVIDIA ones in a different machine.

EDIT: note also that the 4 slot board does not need to populate all the PCIE lanes necessarily depending on your workload.