HN user

AndrewGaspar

913 karma

Software Engineer @ Meta Reality Labs. Formerly Windows Core Engineering at Microsoft and Applied Computer Science at Los Alamos National Laboratory.

[ my public key: https://keybase.io/angasp; my proof: https://keybase.io/angasp/sigs/JGo37h7yq1cqScBqR8GSHg9KLsd1lUbJA5Zskx87l-E ]

Posts3
Comments183
View on HN

Granting that I think X should have stronger content policies and technological interventions to bad behavior as a matter of business, I do think that the X Safety's team position[0] is the only workable legal standard here. Any sufficiently useful AI product will _inevitably_ be usable, at minimum via subversion of their safety controls, to violate current (or future!) laws, and so I don't see how it's viable to prosecute legal violations at the level of the AI model or tool developers, especially if the platform is itself still moderating the actually illegal content. Obviously X is playing much looser with their safety controls than their competitors, but we're just debating over degrees rather than principles at that point.

[0] > Anyone using or prompting Grok to make illegal content will suffer the same consequences as if they upload illegal content.

What you want isn't really "output C++ code that is pedantically equivalent to this Fortran code but with the array indexing fixed up", it's usually more like "translate this Fortran module into something that I can offload to a GPU using CUDA/ROCm/etc. with the same high level semantics, but GPU-friendly low level optimizations", and the exact composition of those low level bits probably don't look exactly like a loop-by-loop translation.

Yeah, I totally get that, but I suppose my argument would be is if you're going to bother writing your driver in Rust, until there are more mature Rust bindings for the OS interfaces, you might as well only write your most safety-sensitive business logic in Rust, and then write all the interfacing with the OS in C.

That doesn't bother me per-se - those all caps names are pretty much all directly from the standard C bindings, and it makes sense to preserve that naming for the sake of having that 1:1 mapping with the ground truth C definition.

The actual issue here is that this "simple driver in Rust" is having to touch those direct C bindings at all - if Microsoft is going to advertise that they have support for writing drivers in Rust, that should presumably mean an API surface that's native to the language.

I'm glad to see that Microsoft is investing in Rust bindings for WDK[0], but browsing the repo, there's really no point in using this over C since they haven't bothered to invest in safe, Rust native bindings. The kmdf example[1] is like 50% "SAFETY:" comments because they're stuck using the straight C bindings for every WDK API.

[0] https://github.com/microsoft/windows-drivers-rs/

[1] https://github.com/microsoft/windows-drivers-rs/blob/main/ex...

And I don't know how I missed this, but attempting to use the `UNICODE_STRING` returned in `string_to_ustring` is a guaranteed use after free. If you're interested in writing Windows kernel code, this is not the place to start.

Given that their average post seems to only get 10s of interactions despite their account having 10 million followers, I don’t think they were getting much out of being on X anyway.

Insane how many words the author uses to capture "costs are higher for US game studios because salaries are higher". There's no actual secret second thing and it's hilarious watching the author try to find a way to spin "people make more money" into a problem with capitalism.

they're completely entitled to feel that way, if that helps them cope

This is actually not a productive way to cope and it’s good advice to tell people not to cope this way.

I can tell you from personal experience they will not repair Apple Watches - they recycle them and charge a pretty hefty replacement fee if you do not have AppleCare+. I had a Stainless Steel Apple Watch Series 6 just outside the 1 year warranty. The display came dis-attached from the frame, either because the adhesive failed, or the battery had swollen. Like, literally I was just driving down the road and the display started hanging off the watch from its flex. The Apple Store wanted $400 to replace it - would not even evaluate a repair.

People like to key on proc macros specifically as scary, but this is basically true of any dependency you take. In fact, run time dependencies will often have _higher_ levels of privilege (e.g. access to production data sets). If you can't trust the dependency at build time, you sure as hell shouldn't trust it at run time.

I think the right thing happened here - the community audited for malicious crates, and action was taken to remove them. I do wish crates.io would be more aggressive about proactively removing instances of typo-squatting, though.

Google I/O 2023 3 years ago

I think OpenAI is probably held to different standards than Google. ChatGPT hallucinates incorrect information, and it's kind of adorable - the tech is early, they'll improve over time, etc. Google Bard hallucinates incorrect information, and it _looks_ like a step backwards in their core product.

all of the teachers I know regularly work nights and weekends

There's a difference between difficulty and exertion.

how important is the outcome

It's pretty damn important that the garbage man comes and collects the trash every week, but we don't pay him the marginal value of trash collection to the county.

another assertion I have issues with - there are rampant teacher shortages nationwide

I actually agree that the market doesn't seem to be clearing due to stingy education departments and state government. We should probably break their monopsony power by privatizing education.

could you not be potentially getting a better teacher and having broadly positive effects on society if you're offering more money

If you want to make the argument we should fire all the current teachers and replace them with people who would otherwise be accountants or actuaries or software engineers, I'd be amenable to the argument.

I think async concurrent code is just much easier to reason about, regardless of threading. Also, for intra-request concurrency (e.g. i need to grab data from N different sources to complete this request), it's much easier to arrange for that work to be done concurrently. Also easier to implement highly responsive applications with async vs. threading.

Can somebody explain where the return on investment comes from in residential solar? It just strikes me that if there was easy money to be had on solar installations, we'd just get tons of utility scale solar installs (which would likely by more capital efficient) and my utility bill would over time converge on the expected total utility bill for a home with residential solar. Is it just because we're in that transitional period where utility scale solar _is_ being installed, but in the mean time residential solar install internalizes the savings to your own residence? Or is it because most of the testimonials are hiding the ball a bit (only net savings reported due to buyer's remorse, etc.)? Or is it because government subsidies for residential solar are distorting the true capital cost, and thus profitability, of solar at scale?

His numbers are incorrect because he's assuming every tweet is loading nothing from cache, which is wrong. If you're regularly browsing Twitter, you're not going to load 7MB per tweet thread.

I think there are decent critiques of the Twitter Thread medium, but complaining about the bandwidth inefficiencies is just kind of silly. 22MB of data (uncompressed, uncached)?!

The good (and bad) aspect of Twitter Threads is that, adapted appropriately to the medium, individual points can be individually addressed and pulled from their original context to start new discussion, or to emphasize the most important part of the essay. I think this is probably good for sparking additional discussions, though of course it can have the down side of removing context.

The web browser isn't Netflix trying to serve hundreds of gigabits per second of encrypted video streams from a single server.

Ironically, server workloads are the ones that are increasingly moving to networking stacks that run in user space, using frameworks like DPDK, with performance as a motivator: https://en.wikipedia.org/wiki/Data_Plane_Development_Kit

Of course, there are some caveats - from my understanding, typical DPDK use cases would turn over the entire NIC to a single application, meaning you aren't contending with sharing the network between multiple, potentially adversarial user mode processes. This is fine for a server, but not really appropriate for a PC or smartphone.