HN user

khuey

8,721 karma

blog.kylehuey.com

Email is username at kylehuey.com.

Posts23
Comments1,881
View on HN
www.fdic.gov 3y ago

FDIC Takes over Silicon Valley Bank

khuey
3172pts1576
pernos.co 4y ago

Shrink Your Compile Times with Split Dwarf

khuey
1pts0
msrc-blog.microsoft.com 5y ago

Control Flow Guard for Clang/LLVM and Rust

khuey
2pts0
www.afr.com 5y ago

Huawei data centre built to spy on Papua New Guinea

khuey
3pts1
robert.ocallahan.org 6y ago

Pernosco Demo Video: Scalable Omniscient Debugging

khuey
6pts0
robert.ocallahan.org 6y ago

Dissatisfied with Docker

khuey
226pts223
robert.ocallahan.org 7y ago

Mysteriously Low Hanging Fruit: A Big Improvement to LLD for Rust Debug Builds

khuey
3pts0
www.theverge.com 7y ago

Second Apple employee charged with stealing self-driving car project secrets

khuey
2pts0
www.cnet.com 8y ago

Mozilla revenue jump fuels its Firefox overhaul plan

khuey
5pts1
unitedslate.samaltman.com 8y ago

Petition for Smarter Infrastructure

khuey
64pts74
techcrunch.com 10y ago

A Long Game

khuey
4pts0
boingboing.net 10y ago

Increased participation in city planning produces extreme wealth segregation

khuey
2pts0
sfbarf.tumblr.com 10y ago

Getting the Local San Francisco Chapter of the Sierra Club Back on Track

khuey
1pts0
www.cultofmac.com 11y ago

Uber’s Android app is dangerously close to malware

khuey
8pts0
blog.mozilla.org 12y ago

The future of NPAPI plugins in Firefox

khuey
6pts0
medium.com 12y ago

Why housing costs keep rising in San Francisco

khuey
3pts0
brendaneich.com 12y ago

Trust but Verify

khuey
157pts44
www.hanselman.com 12y ago

Finding a low-memory browser

khuey
3pts0
www.mozilla.org 12y ago

The State of Mozilla 2012

khuey
4pts0
www.washingtonpost.com 13y ago

Snowden, in exchanges with Post reporter, made clear he knew risks

khuey
11pts0
www.theatlantic.com 13y ago

What It Was Like to Be a Woman at Goldman Sachs?

khuey
9pts2
hacks.mozilla.org 14y ago

Why no FileSystem API in Firefox?

khuey
2pts0
www.slate.com 14y ago

In Menlo Park, A Jobs Boom Is Illegal

khuey
9pts0

Unless you've checked it for accuracy why would I read your AI-generated documentation when I can ask my AI (which in a month or two will be a newer, better model than what you used to generate that documentation) to read the code and summarize it for me?

If you did check it for accuracy then I don't understand how you compressed months of work into minutes.

If you show up at a US port of entry without any sort of anything the default decision is to deny entry (exceptions for Canadian citizens and citizens of a few small islands). If you show up at a US port of entry with an ESTA/visa you will most likely be allowed entry. Refusals are relatively rare.

Commercial carriers such as airlines are also not allowed to transport people who need ESTAs/visas and do not have them to the US, so in practice it's relatively difficult to even get to the port of entry without a visa.

In the one statement case, clang emits LLVM IR where the last operation in each branch is the store. In the two statement case, clang emits LLVM IR where the last operation in each branch is the [pointer math](https://llvm.org/docs/GetElementPtr.html).

The SimplifyCFG pass in LLVM pulls the identical-in-all-but-one-operand store IR instructions into a successor block with a [select instruction](https://llvm.org/docs/LangRef.html#select-instruction) that will ultimately become a conditional move. But the pointer math differs by two operands (because there are two different pointers and one is being decremented and one is being incremented) so SimplifyCFG stops immediately and never reaches the stores.

This sort of brittle behavior where semantically identical code produces different optimization results is common in optimizing compilers unfortunately.

I'm not sure it's a "technique" but the general insight worth taking away from this is that compiler authors often write optimizers to recognize specific patterns so writing your code in a more idiomatic form increases the odds an optimizer will be able to optimize it.

In this specific instance, at the hardware level it helps to understand how the branch predictor works and why quicksort in particular is essentially the worst case for the branch predictor, and then you'll understand why the cmov/csel optimization is such a big win.

what's a single concept in C (e.g. "the pointer") easily has a dozen specialized equivalents in Rust

That "the pointer" is a single concept in C is the root cause of absurd numbers of bugs over the history of C.

The questions of how long the memory a pointer points to lives, what threads it is safe to access from, and how it is allocated and destroyed all still exist in C. Those answers are just implicit rather than explicit like they are in Rust. It's not like Python/etc where you don't have to worry about these things.

I make no claim as to whether the change makes sense given that I didn't look at the callers of this function, but Result<bool> is an entirely reasonable pattern in Rust. If you want the callers to be able to distinguish between "has the subclass", "doesn't have the subclass", and "something went wrong" this is idiomatic Rust.

That was my imprecise summary of what the contracts say. The actual language is:

"OpenAI will only use Customer Content as necessary to provide Customer with the Services, comply with applicable law, enforce the OpenAI Policies, and prevent abuse. OpenAI will not use Customer Content to develop or improve the Services, unless Customer explicitly agrees to such use."

"Anthropic agrees that Customer (a) retains all rights to its Inputs, and (b) owns its Outputs. Anthropic disclaims any rights it receives to the Customer Content under these Terms. Subject to Customer’s compliance with these Terms, Anthropic hereby assigns to Customer its right, title and interest (if any) in and to Outputs. Anthropic may not train models on Customer Content from Services."

The most obvious ones to me are the sentences that aren't actually sentences but just lists of stuff (and sometimes not even proper sentences). It starts at the third sentence and there's one in the majority of paragraphs. LLMs love writing like this but humans don't do this.

"Support tickets, lead follow-ups, reports, internal updates, research, data entry, task assignment, status checks."

"Real work has missing data, unclear requests, old records, broken integrations, private context, bad formatting, vague instructions, and exceptions nobody wrote down."

"They still need ownership. They need monitoring, logs, fallbacks, permissions, updates, and someone who understands both the business and the software."

"People are busy tuning prompts, adjusting workflows, adding tools, joining calls about the automation, reviewing outputs, and fixing strange mistakes."

"It can speed up writing, coding, research, support, operations, and internal tools."

"It can fail, drift, break, make bad assumptions, and produce bad output with confidence. It can depend on tools that change, APIs that fail, and data that gets messy."

"It has to be designed, shipped, watched, fixed, and improved when the business changes."

"The part where the system meets real users, real data, real edge cases, real failures, and real Mondays."

The 99 in his TM99 is also an arbitrary number.

The more interesting part of the talk is how using what he calls "fenceposts" naturally results in bunching up against the fenceposts because even small regressions that cross the fenceposts are blocked but regressions of any size that don't cross a fencepost go unnoticed.