MurphyA/hacker-news huggingface dataset:
by trollbridge | 2025-04-29 00:32:30+00:00
This was both a very good read and thoroughly depressing.

It makes a lot of sense to connect San Diego/LA/Sacramento/San Francisco.

It makes a lot less sense to try to connect Merced, Bakersfield, Fresno, et al. People there like to have cars, like to drive, there isn't a lot of traffic. Once you arrive in those places, there is very little transit infrastructure. You basically need a car. And they're far more centred around ag or industry, so more reason to have commercial / truck traffic and a lot less for just passenger cars.

Meanwhile, there are over 100 flights a day between LA area and SF. Meanwhile, Merced has 2 flights a day to LA on a tiny prop, Bakersfield has 2 to SF, and Fresno around 5 a day. There aren't any flights at all between Bakersfield/Sacramento/Fresno/Merced.

Whereas SF/LA/San Diego make complete sense to have a train station with plenty of transit options to get around once you arrive.

(To get an idea of what I'm talking about - traffic on I-5 is so heavy, we would often take 99 instead, when going between SD/LA and Sacramento. 99 is 2 miles farther than I-5.)

San Diego/LA/SF/Sacramento is one of the few markets in America that could reasonably support high speed rail. And it's sad to see it being strangled in the crib.
by PaulHoule | 2025-04-29 00:33:20+00:00
The problem with proven LWR reactors like

https://en.wikipedia.org/wiki/AP1000

is two fold: (i) the economics are not great to begin with the steam turbine, water-to-water heat exchangers and such and (ii) difficulties constructing technology that is first-of-a-kind as opposed to n-th-of-a-kind so that they quote you $7 billion and it gets bungled to $24 billion, maybe $12 billion is the honest price if you take out all the bungling -- in a country like Russia or China you can tell people their electric bill is going up and they won't vote you out.

The base economics of the small LWR vs the large LWR are worse, but the hope is that smaller construction units could get the bungling out but so far no one has managed to do so.

Longer term there is the generation 4 type reactor which would operate at higher temperature and have much smaller heat exchangers and powerset but add other kinds of complexity which could improve the base cost to make nuclear attractive. With 20 years of research or so...
by ggm | 2025-04-29 00:33:28+00:00
> While it is likely that SAI could reduce global temperature, it has many serious risks and would not perfectly offset climate change. [...] this low-altitude strategy requires three times more injection than high-altitude SAI, and so would strongly increase side-effects such as acid rain.

I'm not opposed to the science behind geo-engineering. What I am opposed to is the weaponising of this kind of science to justify continuance of the industrial trends which are causing the problem. So, if you are here from the oil and coal and gas sectors arguing "we don't need to deal with the 45% fugitive gas and other leakage from our industry" please don't do that.

This kind of remediation might be a least worst choice we need to understand. It is not the way to avoid having to make a transition in the industrial base, and our dependency on it.

The transition is underway. It is spotty, it has issues, It is not overnight possible to stop production of GHG, or simply turn off the gas-cocks. That doesn't mean we should stop thinking about how to reduce dependency, and how to be able to turn off the tap.
by senordevnyc | 2025-04-29 00:34:29+00:00
I haven't seen that kind of fawning apology, which makes me wonder what model you're using.

More broadly though, yes, this is a different way of working. And to be fair, I'm not sure if I prefer it yet either. I do prefer the results though.

And yes, those results are that I can write better code, faster than I otherwise would with this approach. It also helps me write code in areas I'm less familiar with. Yes, these models hallucinate APIs, but the SOTA models do so much less frequently than I hear people complaining about, at least for the areas I work in.
by chmod775 | 2025-04-29 00:34:38+00:00
Truly one my favorite thought-terminating proverbs.

"Hurting people is wrong, so you should not defend yourself when attacked."

"Imprisoning people is wrong, so we should not imprison thieves."

Also the modern telling of Robin Hood seems to be pretty generally celebrated.

Two wrongs may not make a right, but often enough a smaller wrong is the best recourse we have to avert a greater wrong.

The spirit of the proverb is referring to wrongs which are unrelated to one another, especially when using one to excuse another.
by gwern | 2025-04-29 00:35:52+00:00
None. But then, that's still more than OP was able to adduce, as they provided no examples at all, neither groundbreaking nor creative. Which is my point: the bar of 'an anecdote' is so very low. You can provide a anecdote for the creative value of smelling rotten apples in a drawer (Schiller); you can provide an anecdote for the creative value of drinking 50 coffees a day (Balzac); you can provide an anecdote for countless crazy things people have done! But you can't provide an anecdote about reading obituaries?
by gerdesj | 2025-04-29 00:36:40+00:00
When it comes to this stuff you generally have to follow advice from someone who understands what is going on.

For me, personally, I'm going to side with tptacek - he has a track record that I have seen over at least a decade if not two.

I don't know the other bloke but this is a bit of a worry: "I'm not a cryptographer".
by shmerl | 2025-04-29 00:38:06+00:00
It's not about delivery of software, it's about avoidance of learning based on mediocrity of AI. I.e. original post literally brings LLMs being poor at suggestions for Rust as a reason to avoid it.

That implies that proponents of such approach don't want to pursue learning which requires them to do something that exceeds the mediocrity level set by the AI they rely on.

For me it's obvious that it has a major negative impact on many things.
by photonthug | 2025-04-29 00:38:18+00:00
Yeah, not only is the structure of business workflows often resistant to mature software dev workflows, developers themselves increasingly lack the discipline, skills or interest in backwards compatibility or good initial designs anyway. Add to this the trend that fast changing software is actually a decent strategy to keep LLMs befuddled, and it’s probably going to become an unofficial standard to maintain support contracts.

On that subject, ironically code gen by ai for ai related work is often least reliable due to fast churn. Langchain is a good example of this and also kind of funny, they suggest / integrate gritql for deterministic code transforms rather than using AI directly: https://python.langchain.com/docs/versions/v0_3/.

Overall.. mastering things like gritql, ast grep, and CST tools for code transforms still pays off. For large code bases, No matter how good AI gets, it is probably better to get them to use formal/deterministic tools like these rather than trust them with code transformations more directly and just hope for the best..
by AStonesThrow | 2025-04-29 00:39:27+00:00
The USA has always had a system of "social credit" similar to what we describe in China. Nobody calls it that here; nobody itemizes and articulates it the same way because we do not want to admit how similar we are to the Chinese, but we do have a very real system of "social credit" right here, and it's actively being used in all calculations.

Here are a few examples of positive social credit:

Do you serve your nation in the military?

Do you bear and raise children? Are you a caregiver for other types of dependents (parents, disabled)?

Are you able-bodied and employed or at least employable? How stable is your job?

Are you currently enrolled as a student, seeking a degree or graduation?

Are you in stable housing; can you meet your personal needs daily without difficulty?

Are you free of mental illness, and medications thereof?

Have you got a criminal record, imprisonment or legal troubles in your past?

So you can see that autistic people will typically start with poor social credit, and it will not be possible for them to get on top of that.

Now a wealthy nation in peacetime can afford to do the "Welfare State" thing and support people with negative social credit, due to pro-life values and the fact that you can indeed exploit the poor and infirm for Medicaid and SNAP bucks, no matter what (RFK's claim that "they don't pay taxes" is specious if they're consumers).

But I think the USA can no longer claim to be "wealthy" and our claim on peace is tenuous at best. When those two run out then what is left? Nothing but a little Aktion T4. Difficult decisions will need to be made and this is why people with "poor social credit" are going to be under the microscope.
by NelsonMinar | 2025-04-29 00:39:53+00:00
The 12 bit constraint is a fun one although a little artificial. But picking 12 different colors with constant luminance is quite a challenge! ColorBrewer only goes to 9, and to my eyes more than 6 is very hard to make out. But these 12 are quite nice if you don't mind a little blurring, particularly folks with some form of colorblindness.
by peterldowns | 2025-04-29 00:39:54+00:00
What I'm finding unclear is how to use the chapoly primitives in a secure way to accomplish my goal. I want to use AEAD encryption to store API keys, per customer, using a single app secret that my app will read from my secret manager when it starts up. AEAD seems like the right way to do that. What's the right way to do that, with AEAD, in golang? The examples/docs for cipher.AEAD at https://pkg.go.dev/crypto/cipher#AEAD don't mention chapoly, but a security reseracher friend of mine recommended I use it. The docs/examples for the chapoly library have two methods — New and NewX, and only NewX has an example. In that example, no associated data is actually used.

> Your `symcrypt` interface lands in a pretty weird place? AEADs in Go export "Seal" and "Unseal" --- with deliberately different names than crypto/cipher/Block's "Encrypt" and "Decrypt", because they're doing something different.

What should I use? I'd be extremely happy to do the Right Thing. I linked symcrypt and posted here because I am hoping someone can point me to it.

> You're exposing an interface over Go's AEAD primitives, but not letting users actually provide authenticated data.

I really don't understand what you mean by "not letting users actually provide authenticated data". Here, in this test, I show how if you encrypt some secret for one user (the associated data is the Owner), you can only decrypt it if you provide the same associated data (the same Owner). https://github.com/peterldowns/symcrypt/blob/c220f7767fa6c1a...
by grinlif123 | 2025-04-29 00:40:33+00:00
I feel we've known about this for years, or have I missed something in that article? What concerns me more is how LLM/AI has obviously enabled this on an unimaginable scale, when it was already pretty bad. These days, when I go on reddit, I often notice things that make me think someone's got an ulterior motive behind the posts or comments that involves convincing me of something. I can recall noticing it a number of times in regards to overwhelmingly pro-Israel comments, where after another hospital got blown there would suddenly be a hundred posts of things like one was a Palestinian man mistreating a dog I think, and they all had 1000s of comments saying that justified the genocide. Just to be clear, not trying to make this politcal, just what I noticed. It felt similar after Trump and Zelensky met in that 'why aren't you in a suit' meeting, and suddenly I saw a bunch of subreddits with videos of Ukrainian alt-right marches - and again, comments that resoundingly agreed that Ukraine was not the perfect place we'd apparently been told. My point though, is it feels more and more like everything on the internet has an agenda behind it, and for me, it's just making the internet feel less like a social networking community between the people of the world and just propaganda slop. It also feels harder and harder to find the truth about things, or a balanced view. Everything is all just rage-bait, like the whole world is shouting at each other. What worries me about it is how much more divided we're getting in the real world, because you go out thinking these threads reflect the world and now everyones enraged with each other. Anyway I've woffled on and on but still can't really articulate what I mean, so I'll give up.
by Reason077 | 2025-04-29 00:41:50+00:00
> "Fast charging degrades the battery."

True, but in practical terms this is not worth worrying about for most of us. Saw a recent article where a Korean driver had done over 600,000km (~ 375,000 miles) in his Ioniq 5 on the original battery. He'd only ever used DC fast chargers, typically charging to 100%!

His battery did fail around the 600,000km mark, but most vehicles never get anywhere close to that sort of mileage. And apparently it still retained 87% of original capacity up until that point.

And despite being far out of warrantly, Hyundai replaced his battery as a goodwill (good publicity!) gesture.
by zik | 2025-04-29 00:44:33+00:00
This is a very cool project but I feel like the claim is overstated: "PyXL is a custom hardware processor that executes Python directly — no interpreter, no JIT, and no tricks. It takes regular Python code and runs it in silicon."

Reading further down the page it says you have to compile the python code using CPython, then generate binary code for its custom ISA. That's neat, but it doesn't "execute python directly" - it runs compiled binaries just like any other CPU. You'd use the same process to compile for x86, for example. It certainly doesn't "take regular python code and run it in silicon" as claimed.

A more realistic claim would be "A processor with a custom architecture designed to support python".
by gwern | 2025-04-29 00:44:58+00:00
I enjoy reading obituaries, for a number of reasons. (Mostly in the NYT, but also, of course, the famous Economist obits.) But I rarely have ever gotten any creative ideas from them, and I do not recall hearing about anyone else doing so either.

And I object in principle to telling silly stories about desirable activities to try to justify them. This is how we get bad ideas like 'Mozart for babies' or 'we should make kids play chess because it correlates with being smarter'. Chess should be played for its intrinsic value, because if it can only be justified by its instrumental value in raising IQ or grades, the case for that was weak, much weaker than its proponents were willing to admit, and has since turned out to be false - but along the way, wasted a lot of time and money and made a lot of kids miserable playing a game they didn't like, and the proponents just made the world a worse place by wasting all those resources, filling the literature with useless analyses and research on chess correlates, and decreasing public trust in science.
by benlivengood | 2025-04-29 00:45:22+00:00
You have to be careful to include incentives in the analysis of crowd opinions. Markets make it easy; likely everyone else buying and selling in the market wants to at least preserve the value of their investment and most are hoping to make money. Few are willing to risk catastrophic loss.

When it's politics (voting or polls or horsetrading) or other choices that are more complexly connected to particular outcomes then market-like assumptions about the averages make less sense. E.g. pollsters have known for decades that they can't simply publish the mean average of polling results and expect them to be calibrated at predicting elections; there are many strange biases (including sampling) at play.

Dating relies on different metrics for attraction between individuals (there isn't actually a universal attractiveness 'currency' to price people with), preferences about children and lifestyle factor heavily, and monogamous dating has complexities from scarcity mindset (optimal stopping among others).
by firesteelrain | 2025-04-29 00:46:10+00:00
I feel like Wayne is taking the Agile Maxim “requirements always change” too literally. Agile doesn’t mean "every requirement always changes forever”.

In most live production environments today, requirements do keep changing — security, compliance, customer behavior, scaling — even when teams think they're done.

Agile isn’t making an empirical prediction ("all requirements will mutate endlessly"); it’s a philosophical posture toward uncertainty

Wayne misses this interpretative nuance.
by imgdetect | 2025-04-29 00:46:17+00:00
Thanks a lot for the suggestion! Right now, our main focus with ImgDetect is on delivering fast AI detection and maintaining a simple, seamless user experience. But I agree — if server load increases significantly or we need extra protection in the future, implementing a creative captcha system like the one you mentioned sounds like a really smart idea. I'll definitely keep it in mind! Thanks again for sharing this concept.
by tptacek | 2025-04-29 00:46:38+00:00
I feel like you haven't really gotten your head around what Authenticated Data is. That's OK! Look at 'stavros upthread --- lots of clueful people have trouble with this concept.

What you should do is just take the examples from cipher#AEAD, but where they do:

block, err := aes.NewCipher(key) if err != nil { panic(err.Error()) } aesgcm, err := cipher.NewGCM(block) if err != nil { panic(err.Error()) }

Instead you just do

chapoly, err := chacha20poly1305.NewX(key) if err != nil { panic(err.Error()) }

The rest of the code is the same, except that where they write "Never use more than 2^32 random nonces with a given key because of the risk of a repeat", you can ignore that and use a long nonce (like in the example for chacha20poly1305.NewX).

Your "Owner" looks like what cryptographers would call a "domain separation constant". Domain separation is good! It's another application of authenticated data, too. But not the only one.

The Go standard library's AEAD "Seal" and "Unseal" is a better interface than what you've got now.
by vlovich123 | 2025-04-29 00:46:55+00:00
Said another way, that SF/San Jose stretch accounts for 25-30% of the total time. That’s similarly true for the last stretch of LA meaning a truly engineering driven design could have done it within ~1h50. And note that the 2h40 goal is admitted as a pipe dream by everyone involved, particularly because of the last mile issues and the circuitous route.
by zxvkhkxvdvbdxz | 2025-04-29 00:47:05+00:00
> Yeh, I've been tinkering around a year with a Bevy-competitor, Amethyst until that project shut down. By now, I just don't think Rust is good for client-side or desktop game development.

I don't think your experience with Amethyst merits your conclusion of the state of gamedev in rust, especially given Amethysts own take on Bevy [1, 2].

1: https://web.archive.org/web/20220719130541mp_/https://commun...

2: https://web.archive.org/web/20240202140023/https://amethyst....
by byoung2 | 2025-04-29 00:47:19+00:00
I recently had to do a lot of work mapping locations inside Disneyland. Once you are inside the park, street addresses aren't useful. I used geoJSON objects to describe the geometry of the resort, the park, then each land, then each ride, restaurant, store, etc, then the elements of each of these, so you have increasingly smaller geometries. Then I used geospatial queries to determine if a point is inside, outside, or nearby a known geometry. So you can say, for example that a certain churro cart is (inside) Disneyland Resort [resort] > (inside) Disney California Adventure [park] > (inside) Buena Vista Street [land], (nearby) Grizzly River Run.

Another challenge is that these shapes change over time. Rides, lands, etc constantly change due to construction, but queues dynamically change size and shape during the day based on crowd size (cast members put extra ropes out to control long lines, and remove them to allow for parades and extra walkways)
by linguae | 2025-04-29 00:47:32+00:00
I agree. Safari will be fine, and Microsoft has the resources to devote to browser development.

I wonder, though, about Firefox and a post-divestiture Chrome. Browsers are labor-intensive to develop due to their complexity, and the Web keeps changing. Moreover, people expect browsers to be free of charge; it’s been a long time since the days when people paid for Netscape Navigator and Opera. Without outright subsidizing development, Web browsers need to be either community-supported, ad-funded, or subscription-based in order to fund development.
by trollbridge | 2025-04-29 00:48:46+00:00
I don't agree. There are around 145 flights a day between metro LA airports and metro SF airports (based on a quick Google Flights search for a random Friday). Assuming there's 75 seats on each plane, that's 10,000 seats a day. That's a lot of trains. A typical TGV is 500 seats. (If I add San Diego to SF, that's another 50 flights or 3,700 seats...)

The market is there and exists, and that's with the gigantic hassle of having to get to and from the airports, as opposed to a convenient downtown train station

Commuter rail is also a good idea but it's not the same thing as high speed rail. And commuter rail already exists: COASTER in San Diego, MetroLink in LA.

Currently you either have an almost 11-hour trip on Amtrak, a 6 ½ hour drive, or a flight between LA and SF. The ridership is clearly there. (Believe it or not the Amtrak trains are often sold out.)
by ryao | 2025-04-29 00:49:14+00:00
I doubt that because C++ encourages heavy use of dynamic memory allocations and data structures with external nodes. C encourages intrusive data structures, which eliminates many of the dynamic memory allocations done in C++. You can do intrusive data structures in C++ too, but it clashes with object oriented idea of encapsulation, since an intrusive data structure touches fields of the objects inside it. I have never heard of someone modifying a class definition just to add objects of that class to a linked list for example, yet that is what is needed if you want to use intrusive data structures.

While I do not doubt some C++ code uses intrusive data structures, I doubt very much of it does. Meanwhile, C code using <sys/queue.h> uses intrusive lists as if they were second nature. C code using <sys/tree.h> from libbsd uses intrusive trees as if they were second nature. There is also the intrusive AVL trees from libuutil on systems that use ZFS and there are plenty of other options for such trees, as they are the default way of doing things in C. In any case, you see these intrusive data structures used all over C code and every time one is used, it is a performance win over the idiomatic C++ way of doing things, since it skips an allocation that C++ would otherwise do.

The use of intrusive data structures also can speed up operations on data structures in ways that are simply not possible with idiomatic C++. If you place the node and key in the same cache line, you can get two memory fetches for the price of one when sorting and searching. You might even see decent performance even if they are not in the same cache line, since the hardware prefetcher can predict the second memory access when the key and node are in the same object, while the extra memory access to access a key in a C++ STL data structure is unpredictable because it goes to an entirely different place in memory.

You could say if you have the C++ STL allocate the objects, you can avoid this, but you can only do that for 1 data structure. If you want the object to be in multiple data structures (which is extremely common in C code that I have seen), you are back to inefficient search/traversal. Your object lifetime also becomes tied to that data structure, so you must be certain in advance that you will never want to use it outside of that data structure or else you must do at a minimum, another memory allocation and some copies, that are completely unnecessary in C.

Exception handling in C++ also can silently kill performance if you have many exceptions thrown and the code handles it without saying a thing. By not having exception handling, C code avoids this pitfall.