Hacker Newsnew | past | comments | ask | show | jobs | submit | ComputerGuru's commentslogin

Damn bots copy and pasting a single sentence from the article as a comment.

I think that’s the poster of the link and also the person whose github it is

Maybe. But whales don’t get cancer either, and whale metabolism is… impressive (well their resting heart rate is lower than ours but they grow orders of magnitude faster, to a point, and sustain themselves gorging on literal tons of food).

Humans have pretty low selective pressure for cancer resistant genes (a tiny fraction of people get cancer before or during their reproductive years).

I wonder if whales survive to an equivalent of human old age (where we can be pretty fragile and still survive for decades).


> I wonder if whales survive to an equivalent of human old age (where we can be pretty fragile and still survive for decades).

They do and this is well-documented. They're one of the few (only?) other species where we can directly see the role matriarchs (grandmothers, either past their reproductive ages or even undergoing menopause) have on the development of the youth, and it's been used to explore the role of living post-reproductive ancestors might have on natural selection (which was previously not thought to be affected by it).

Maternal grandmothers have even been found to ~spontaneously regain their milk to help nurse infant whales, iirc.


Humans commonly have grandchildren in their 40s (less so recently of course). We get fragile in our 70s. I'm wondering about living decades in that fragile state, where cancer happens to be a lot more common.

That mostly doesn’t count, since humans still regularly have kids of their own in their forties (so the direct link to natural selection would overshadow any lower-pressure grandmotherly effects), so you’d have to push the window out to the post-menopausal period, which coincides with the period in which various cancers begin to be an issue.

I like the theory that whales are so big that their tumors get killed by tumors before they can spread.

So when will we get tier 1 debugging support in Visual Studio?

IDK about "tier 1" but I'll note I've used VS for debugging and profiling Rust binaries. I even wrote a tool to auto-generate a wrapper .sln so I can easily launch from VS: https://github.com/MaulingMonkey/cargo-vs

The main pain point IME was poor debugger visualizers for standard containers and enums. I fixed some of that for the standard containers by writing some natvis files for std: https://github.com/rust-lang/rust/issues?q=state%3Aclosed%20... . Admittedly, they broke a few times. They also weren't automatically included in the pdbs, so I wrote a crate for that: https://github.com/MaulingMonkey/natvis-pdbs . And then someone crated and stabilized #[debugger_visualizer] for rust itself, which can do the same job: https://doc.rust-lang.org/reference/attributes/debugger.html .

(...I should check on enum visualization, but I suspect it's still poor.)


Optimistic to assume that modern day programmers even know what a debugger is, or if they do, consider it as anything else than some weird ancient shibboleth only used by the greybeards ;)

The greybeards rarely used debuggers, and then only to see the stack trace of a core file. They found printf better.

I can't find my copy of https://en.wikipedia.org/wiki/The_Practice_of_Programming but that is what I recall it says. Those authors are the best known greybeards.


To be fair, even before LLMs could spot my bugs in an instant I really only regularly used debuggers in C because it can't display arbitrary types in debug print statements.

Debuggers still have their place in algorithm heavy work, or to pull apart heap dumps to try and figure out obscure bugs.

Even LLMs use debuggers. I asked Claude to reverse engineer a closed source binary the other day. It used gdb to trace its behaviour. Didn’t even use ghidra.


> even before LLMs could spot my bugs in an instant

I guess it depends on the bugs.

LLMs even INSIDE the (VS) debugger couldn't work out some of the more recent bugs I have been looking at. Never mind by statically looking at the code base.


Debugger MCP better

But of a tangent but I think cognitive skills are starting to become like physical skills. If we don’t move our bodies, we waste away physically. If we don’t do hard cognitive work sometimes - like writing and debugging code - I worry our minds will atrophy.

I don’t have a problem with cars. But walking is still good for us.


Try, but what skills are work keeping? We need something cogntive, but not everything. I know a few people who blacksmith as a hobby (often for the physical exercise as much as the work), but most people are happy not knowing how to do that job. I know how to set the air-fuel ratio on a gas engine, but I'm glad I don't need to tweak those parameters while driving (unlike a 1910s car where you did), and I won't miss oil changes on my cars as I move to electric.

> Try, but what skills are work keeping? We need something cogntive, but not everything.

Are you trying to be funny?


Work should be worth. I'm not sure if that is me or autocorrect.

It was unintentionally funny then :-)

If I'd accidentally written a comment asking whether the intellectual skills I am losing are worth keeping, and make 2x spelling errors in a single short sentence, I'd find the unintended irony hilarious.

(but that's me, maybe you don't find accidental errors that you make to sometimes be funny)


It’s all /skills now

You have it already on VSCode, which isn't quite the same, however nowadays it is an open question which one is more relevant for Microsoft's management, especially given that VS isn't cross platform (see Azure), and is stuck with WPF/.NET Framework.

println!() already works, who needs more than that?

Kidding aside, VS Code has excellent debugging support already. Unless you need to share your Rust code base with a legacy C/C++ code base, I don't think VS is the best environment for Rust programming.

There are good use cases for staying within full-fat VS's capability set (drivers, among other things), but I don't think Microsoft needs to add Rust to VS in this much of a hurry.


I'd also love to see MS sponsoring Windows support for a modern linker like mold or wild.

lld-link is already a big step up from link.exe. Although the latter has incremental linking, which none of the Unix-like linkers have.

to be fair mold or wild's full link is a few hundred times faster than a link.exe incremental relink

Works already in Visual Studio Code, even seamlessly between C++ and Rust

RustRover, my friend.

I thought rover forced you to use their horrible new UI?

I've been using it since ~23 without any issues, the ui's have all been similar to Borland's stuff since the beginning.

u dont debug rust mate if it compiles it works

Already available via the API as deepseek-v4.1-flash-expires-on-0910, with vision.

It’s very much an embodiment of the law that says to monitor a system is to interfere with it; it would be very hard to say they “predicted” general suicide attempts vs they set up a scenario that allowed them to nudge people into such actions given everything.

That would be the observer effect

en.wikipedia.org/wiki/Observer_effect_(physics)

and a more specific form from psychology

en.wikipedia.org/wiki/Hawthorne_effect


Instagram is actively hostile to good ui. They constantly go out of their way to break extensions that add a video scrubber.

> Instagram is actively hostile to good ui.

And that idiot, Zuck, thought he was getting a good deal when he poached former head of design, Alan Dye, from Apple. We were relieved to see him go. Our desktop OS is already making small improvements now that he's gone.

Context: the guy doesn't understand fundamentals of UX and has made MacOS worse for years.

[If you put the Apple icons in reverse it looks like the portfolio of someone getting really really good at icon design](https://mastodon.social/@heliographe_studio/1158908195095453...)

[Apple has updated the traffic light buttons in macOS 27](https://www.reddit.com/r/MacOS/comments/1vr08s2/apple_has_up...)


Good UI makes it easier to be selective. social media owners dont want you to be selective, they are selling you to advertisers and influencers after all.

Zuckerberg and his minions have changes html and obfuscate it so much, it is impossible to block ads these days. They are worst than google. Imagine google decided every video will require widevine & there is no way to block ads just like twitch.

Last I was on the platform, they eventually added a tab for only chronological posts on the timeline a-la how IG used to work. But they gave no exposure to it, _and_ it completely hid the IG stories of your friends so nobody would want to use it in the first place.

But the view apparently is Zuckerberg bought it when they were 'barely a company'

Yes - and he's utterly ruined it. And we know from his emails it was anti-competitive


OpenAI has separate dials for verbosity and reasoning_effort (but could still do a better job).

Interesting article but it gave me a bit of a panic attack. Benchmarking (with TPC or otherwise) is NOT the way to determine the correct approach here; that is strictly only to be used for databases (typically RDBMS) effectively “owning” the complete hardware they are running on. An embedded database might be used in that manner if it’s operating as the backend for a pure crud application that performs ~zero server side rendering, parsing, validation, etc and is essentially just an async http-to-SQLite interface. But more likely than not, an embedded db will be used and deployed on machines (not necessarily even servers) serving many a purpose, and need to perform best both within the confines of the resources available to the machine and in relative terms, necessarily making tradeoffs that might sacrifice performance for “value” in terms of CPU or memory usage.

This isn’t just with regards to benchmarking, it’s an essential consideration *any* time you are taking ownership of the cache away from the kernel, which is the only piece in the stack that has viability into the global state and can be trusted to give back memory under pressure to ensure everything plays nice together. It’s not limited to just databases or even just memory, for example FreeBSD has had greater than its fair share of issues that trace back to the ZFS having a separate cache from the kernel (despite the much tighter integration between the two and presence of various mechanisms to address pathological cases). You can also refer to any comparison or benchmark between the use of spinlocks vs mutexes: spin locks consistently perform better in/on (micro)benchmarks but are almost always actually the worse choice in the grand scheme of things because the benchmarks falsely assume complete and uncontended ownership over system resources.

This isn’t even io_uring specific and I’m hardly the first to bring this up in the context of O_DIRECT.


TPC-H is the recommended approach in Turso's CONTRIBUTING.md - https://github.com/tursodatabase/turso/blob/main/CONTRIBUTIN...

You’ve misunderstood what they’re saying. Not that the benchmark is invalid, but that it’s an incomplete picture if your use case is a mixed set of applications where DB performance is not the only important thing. Hence the comment about memory - O_DIRECT is optimal in terms of DB performance but then the caches are owned by the application and the kernel isn’t free to discard those caches whenever it wants like it can with the page cache. I’m not actually sold on this argument though - I have an embedded DB that with a very tiny block cache goes very very fast, and uses far less RAM than using the page cache because it knows when read ahead is called for vs when it’s not

What would be the correct way to do benchmarking/profiling here? I ask as I've started to run some for Vinyl cache to see what performance issues I can find, and I've quickly learned just how hard it is to get good, repeatable benchmarks that isolate the right thing.

No easy answer! You’d have to have a myriad of different test suites that as closely resemble your real world usage as possible. Or ship it behind a gate and let your users give you real world feedback if you’re at SQLite (not turso) scale - they’ve done that with a lot of ambiguous optimizations.

I think that’s only true on paper; in practice it’ll be true only when you have competing reads (at a thousand-foot view) and it might be possible to algorithmically bundle a portion thereof. It originally let SCSI controllers attached to spinning rust HDDs optimize physical manipulation of the disk heads to optimized queued reads of data in a “traveling salesman” sort of way, but modern nand flash can only internally read a full page at a time (which may be much greater than even the apparent physical sector size) anyway and with a strictly constant cost regardless of the “physical location” of the data on the non-existent platter. Old drives had optimization constraints like higher sequential read speeds at the outside of the platter (more bytes per physical rotation) and extremely pathological cases for data written to the innermost tracks of the platter. Individual requests were much finer-grained and the latency was much more varied, so a request from app/thread X for as little as 512 bytes from one location could be cheaply piggy-backed on an existing request from app/thread Y to read multiple megabytes from a physically proximate source that would otherwise have seriously delayed or starved the queued waiting read while the outstanding request was serviced.

In fact, one consistently sees higher bulk IO numbers when using physical media that has been formatted with a large sector size compared to the old 512 byte fixed emulated size. You’d routinely see lower latency and higher IOPs with 4kn (HDDs or SSDs) than you would with 512e disks, even with SCSI or AHCI controllers that featured similar pipelining support to today’s NVME controllers (or even if you place a spinning rust HDD behind NVMe today!).


Mostly true but as someone else pointed out it’s still better to issue a single large multi-page contiguous read than the same read broken down into separate requests because the I/O queue isn’t infinite. So both the Linux kernel and the SSD microcontroller still benefit from merging contiguous requests on their end. However, if you issue it correctly at the application level that’s still going to be better in that you’re never going to encounter a situation where you accidentally don’t get the desired coalescing.

> Mostly true but as someone else pointed out it’s still better to issue a single large multi-page contiguous read than the same read broken down into separate requests

That’s the point I was ultimately making.


> disk heads to optimized queued reads of data in a “traveling salesman” sort of way

Luckily the read heads only have one degree of freedom, so the "elevator algorithm" is sufficient: https://en.wikipedia.org/wiki/Elevator_algorithm


FYI/fwiw Fish shell autocompletes branches sorted by last commit date when writing out git commands. It also provides completions for commitish objects grouped by class, giving precedence to the usual targets first, with each group sorted by its own sort key. Handy!

Every day, I learn a cool new thing that fish can do

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: