MurphyA/hacker-news huggingface dataset:
by marvinborner | 2025-10-25 19:57:45+00:00
I don't know any quadtree/lowlevel encoding of LC that could be memoized like that. Though you could, for example, cache the reduction of any term by hash and substitute the matching hashes with its nf. This doesn't really work for lazy reducers or when you do not reduce strongly. And, of course (same as hashlife), this would use a lot of memory. With a lot more possibilities than GoL per "entity" (NxN grid vs variables/applications/abstractions), there will also be a lot more hash misses.

There's also graph encodings like interaction nets, which have entirely local reduction behavior. Compared to de Bruijn indices, bindings are represented by edges, which makes them more applicable to hash consing. I once spent some time trying to add this kind of memoization but there are some further challenges involved, unfortunately.
by lelanthran | 2025-10-25 19:58:27+00:00
> All that said there might be some situations where your goal is to query raw/tabular data from the client. If that's your application then APIs that enable that can make sense. But most applications are not that.

IME, the majority of responses sent to the client is tabular data hammered into a JSON tree.

If you generalise all your response to tabular data, that lets you return scalar values (a table of exactly one row and one column), arrays (a table of exactly one row with multiple columns) or actual tables (a table of multiple rows with multiple columns).

The problem comes in when some of the values within those cells are trees themselves, but I suspect that can be solved by having a response contain multiple tables, with pointer-chasing on the client side reconstructing the trees within cells using the other tables in the response.

That would still leave the 1% of responses that actually are trees, though.
by uecker | 2025-10-25 19:58:40+00:00
I am working in this field, so I am aware of nephrogenic systemic fibrosis as rare condition caused by Gadolinium contrast agents in people with kidney disease. As far as I know, there was no new case in the last 10-15 years after the took certain less-stable contrast agents from the market and assessing kidney function is also standard now. In the aftermath of this, scientists discovered that Gadolinium is retained in the body after MRI scans to a small amount. As far as I know there is no evidence that this causes any harm, but as I said, this is a concern and this is why it studied.
by churchill | 2025-10-25 19:58:46+00:00
>China says that, but they put countries into enormous debt and then control them. They also build naval bases in many of those countries.

All the third-world countries that have had their debts to China blow out of control have been able to renegotiate.

>Countries near China's borders have turned strongly against their neighbor. The US has built a widespread network of alliances around that.

I'm not upholding China as a moral actor. They're as utilitarian as anyone else, but they're honest about it, that's all.
by collingreen | 2025-10-25 19:58:57+00:00
Sorry for your loss. I hope you find good closure when you're ready - your rock collection is a great treasure and might serve as either a memento for you or a surrogate for ashes if you wanted to spread them on your nearby beach. Kind of a nice metaphor for a life well lived; collected from the chaos of the beach, polished up, and eventually returned, hopefully leaving things a little bit better.
by throwaway894345 | 2025-10-25 19:59:27+00:00
SQL itself doesn't generate any value, relational databases generate value. SQL is just a frontend for them. Anyway, your snark could be applied to _literally any change_. Are you angry that cars are replacing horses? "Horses generate such incomparable value that there's a steady supply of pro-car posts, like fumes from the vast ocean of their constantly boiling piss". Don't like the cotton gin? "Slave labor generates such incomparable value...". There's not really anything of substance in this kind of comment.
by hagbard_c | 2025-10-25 19:59:30+00:00
On the subject of symbols:

> Yeah, that’s it. Now, 2308 may be slightly bloated because we link against musl instead of glibc, but the point still stands: There’s a lot of stuff going on behind the scenes here.

Slightly bloated is a slight understatement. The same program linked to glibc tops at 36 symbols in .symtab:

$ readelf -a hello|grep "'.symtab'" Symbol table '.symtab' contains 36 entries:
by josephg | 2025-10-25 19:59:50+00:00
Presumably they maintain all those wifi access points regardless of whether or not anyone buys the wifi package. That lets the cruise app work. And the staff use wifi too.

I’m sure servicing thousands of people via starlink is expensive. But the cost is amortised over the number of people using it. Thousands of users should make internet access cheaper, not make it more expensive.

They also don’t provide “normal” internet speeds. I was usually getting about 20kBps - which is painfully slow. I tried to have a zoom call on the one day I paid for internet, and every minute or two we would get a latency spike of 10+ seconds. Those latency spikes went away on other days, but the speed never improved much.

The ship I was on is apparently quite old by modern standards. Maybe they don’t have enough starlink satellites installed or something. (It was definitely starlink). But if that’s the case, it makes the price they’re asking all the more outrageous. For $50/day I could probably bring my own starlink satellite on board and it would come out cheaper.
by mutagenesis | 2025-10-25 19:59:54+00:00
What you linked is bonding a diamond substrate to the back of your IC. What's in the post is growing diamond lattice/features directly on your wafer. With the new way, you can get diamond closer to your heat sources, increase contact area, etc.

No idea if it actually matters. Is this a single digit percentage increase in thermal conductivity by messing with a finicky, temperamental process? I don't know. What the paper writers are proposing is under the limit of when transistor structures break down, but not by much.
by matklad | 2025-10-25 19:59:55+00:00
Well said! Having a mental borrow checker running in background certainly helps a lot when coding in Zig. What also helps is that Zig safety checks generally catch lifetime bugs at runtime nicely. E.g., undefined memory is set to `0xAAAA`, which, if interpreted as a pointer, is guaranteed to be invalid, and fail loudly on dereference.
by gem-vic | 2025-10-25 20:00:03+00:00
Just published a deep dive into Smart_Store — a modern C++ API for scalable, high-performance item management. From dynamic object registration to undo/redo, JSON export, and factory-driven design, this system is built for real-world flexibility and modular control. Whether you're managing documents, sensor data, or abstract entities, Smart_Store makes it clean, powerful, and extensible. Built with modern C++20 features, smart pointers, lambdas, and clean architecture. Check out the full article and explore how Smart_Store can elevate your next project.
by jb1991 | 2025-10-25 20:00:10+00:00
> C was the good part of C++

This is certainly a very controversial opinion. The two languages should not really be compared or grouped together, not for at least the last 15 years, but probably much longer. Modern C++ features have been developed specifically to address all sorts of things that most C++ developers want fixed from the "C" part of the language's history.
by jorangreef | 2025-10-25 20:00:32+00:00
Thanks! I write about this briefly in the blog post, but the more detailed answer is there's no need: Zig's grammar is simple/explicit/powerful enough that they pick it up themselves in a weekend. Learning Zig is just not something we need to talk about with new hires, and we hire systems programmers from all backgrounds.

To be clear, we do invest in months of onboarding in terms of understanding the TigerBeetle code base. For example, matklad has recorded nearly a hundred hours' worth of IronBeetle episodes [0].

But I just noticed at one point that people were joining our team and never having any trouble with Zig. The question was just never being asked. Essential simplicity is a great benefit!

[0] https://www.youtube.com/playlist?list=PL9eL-xg48OM3pnVqFSRyB...
by wtfwhateven | 2025-10-25 20:00:35+00:00
>The court has no jurisdiction.

It does have jurisdiction.

>So no, they were not solid.

They were and are solid.

>but that is through some incredibly weird legal gymnastics

No it isn't.

>by which somehow the non-existent state of Palestine

It definitely does exist.

>is a member giving the court authority

Yes, it joined the ICC in 2015.

> over its non-existent territory.

Its territory does in fact exist.
by JeremyPOsborne | 2025-10-25 20:00:52+00:00
Yeah, really trying not to advertise. But add disclaimer. Thanks for letting me know it's a bit much. I tried to tone it down. Let me know if it's better or i should delete.

streamline labor: Aligning pay incentives with installers, ensure right parts and materials, make sure customer are not indecisive on the first day, mimic the 15% of installs that are side jobs as much as possible.

Virtual site visits aren't 100%. But allows us to get a price quickly, and check electrical capability. It's a bit of a test for customers, if they are interested in snapping 5 or so photos, they probably won't buy from us.

Half the time, we then go out for a site visit in-person but we're only visiting 50% of the customers. It's less expensive, however our conversion rates go down because we're not winning the customer with our personality, etc.

If we can verify directly from photos and go straight to contract, we send out a install manager to confirm after the signature. Basically, if some giant obstacle that will stops the install, we can cancel at no cost to the customer and we do that all very quickly so they can select another bid if that happens.

Solar is tough, I am a renewable energy engineer from Australia and yes, we can half the cost of solar as seen in Australia. I think Australian are simply less fussy and legally charged than governments and home owners in US and simple installs.

I now believe large central PV will likely be more successful here. 40% of electricity is often coming from solar and wind in CA and we can just keep doing that and we'll be fine.
by gavinray | 2025-10-25 20:01:43+00:00
> This is compounded by the standardized SQL-centric database driver APIs like ODBC and JDBC.

The criticality of JDBC/ODBC as a platform can't be understated. The JDBC API is the dominant platform for data access libraries. Compare number of drivers for JDBC, ODBC, go/sql, etc.

Newer platforms like Arrow ADBC/FlightSQL are better-suited to high-volume, OLAP style data queries we're seeing become commonplace today but the ecosystem and adoption haven't caught up.

https://arrow.apache.org/adbc/current/index.html

https://arrow.apache.org/docs/format/FlightSql.html
by DonHopkins | 2025-10-25 20:01:59+00:00
You can train the smart ones [1], and even wirelessly remotely control them with a mobile app [2], as long as you restrict yourself to commanding them to do things they were going to do anyway, just like cats.

Kudos to the Stoned Republicans of the High Frontier Panel and The Heritage Foundation for their groundbreaking earth shattering work on Smart Rocks!

[1] Brilliant Pebbles: https://en.wikipedia.org/wiki/Brilliant_Pebbles#Smart_Rocks

>In March 1988, Teller and Wood were able to directly brief President Reagan on the concept, taking the model pebble with them and theatrically hiding it under a black cloth when reporters were allowed to take pictures. Teller reiterated that the price for the system would be on the order of $10 billion.

Photographic proof (not AI generated): https://en.wikipedia.org/wiki/File:Brilliant_Pebbles_present...

[2] Pet Rock Remote Control: https://www.youtube.com/watch?v=SG0FAKkaisg

Featuring my Finger Flicking Pocket PC Pie Menus!
by chao- | 2025-10-25 20:02:14+00:00
My post was only intended as a commentary regarding how I approach GraphQL after a few forays into it (current stance: would not default to GraphQL, but not against it either).

I was not intending to dodge your questions, but nor was I trying to comprehensively answer them, because they felt a bit unclear. I will make an attempt, combining snippets within your two posts that seem to be related:

>Shouldn't you always have some proper API abstraction between your components?

>But those endpoints are abstractions. Don't we want control over the surface of the API and our abstractions?

I can't answer this unless I know what concepts/layers you are referring to when you say "abstraction between components". If you mean "between the client and server", then yes, and GraphQL does this by way of the schema, types, and resolvers that the server supports, along with the query language itself. The execution is still occurring on the server, and the server still chooses what to implement and support.

If by "abstraction between components" you mean "URL endpoints and HTTP methods" then no, GraphQL chose to not have the abstraction be defined by the URL endpoint. If you use GraphQL, you do so having accepted that the decision point where resources are named is not at the URL or routing level. That doesn't make it not an abstraction, or not "proper" in some way.

>But the answer can't be have no APIs?

I don't understand what you mean by "No APIs"? You also mention "control over the surface"...

Is your concern that, because the client can ask the server "Please only respond with this subset of nodes, edges and properties: _______", the server has "no API"? Or it doesn't have "control"? I assure you that you can implement a server with whatever controls you desire. That doesn't mean it will always be easy, or be organized the way you are used to, or have the same performance profile you are used to, but the server can still implement whatever behavior it wants.

>...in general it seems you want to have a well controlled layer there the specifies the contract between these pieces.

I think this wording brings me closer to understanding your main concern.

First, let me repeat: I am not a big GraphQL fan, and am only explaining my understanding after implementing it on both clients and servers. I am not attempting to convince you this is good, only to explain a GraphQL approach to these matters.

The "well-controlled layer" is the edge between nodes, implemented as resolvers. This was the "aha" moment for me in implementing GraphQL the first time: edges are a first-class concept, not just the nodes/entities. If you try using GraphQL in a small project whose domain model has lots of "ifs" and "buts", you will be forced to reach for that layer of control, and get a sense of it. It is simply located in a different place than you are used to.

This "edges are first-class concepts" has an analogue in proper hypermedia REST APIs, but most organizations don't implement REST that way, so except for the five people who fully implement true HATEOAS, it is mostly beside the point.
by smikhanov | 2025-10-25 20:03:03+00:00
> But there is no such possible way to use an iDevice without relying on Apple's services.

There is. One can go through the iPhone setup wizard and opt out of everything. You don’t need to have any accounts, neither iCloud nor App Store one, or to be logged on to any Apple services to use your phone.

Someone who knows more about iOS than both you and me could comment further on whether subtle things like aGPS would continue to function as expected, but everything you specifically thought of when you wrote “to use an iDevice” would work.
by gavinray | 2025-10-25 20:03:12+00:00
> My sense for this has been like GraphQL was invented out of the frustration of the frontend team needing to rely on backend teams for adding/changing APIs.

GraphQL was borne out of the frustration of backend teams not DOCUMENTING their API changes.

It's no different ideologically from gRPC, OpenAPI, or OData -- except for the ability to select subsets of fields, which not all of those provide.

Just a type-documented API that the server allows clients to introspect and ask for a listing of operations + schema types.

GQL resolvers are the same code that you'd find behind endpoint handlers for REST "POST /users/1", etc
by immibis | 2025-10-25 20:03:13+00:00
After the USA did the exact same thing, I'm predisposed to not trust this statement without seeing any evidence. The USA seems to have assumed criminal activity simply based on the fact of unusual hardware, and I'd like to see evidence the EU hasn't done the same. Perhaps my skepticism is misplaced though, perhaps the police over there are less arrest-hungry and they have only done this after having real evidence that this SIM farm actually belongs to a spam ring and isn't just something they use.
by geor9e | 2025-10-25 20:03:29+00:00
I mean, you're right, but Microsoft's planned obsolescence here is a shorter cadence than Apple's.

All the newest Mac hardware that came out in 2018 still gets security updates to this day.

But there's plenty of brand-new Windows hardware that came out in 2021, which now must be thrown away because it didn't qualify for a future operating system they had planned.

So we can gripe about it for the next three years before "what about Apple" becomes totally valid. Still feels messed up that the global monopoly holder for PCs decided e-wasting a billion of them would fly under the radar. Hopefully most people realize they can download a little bit flip hack to undo Microsofts check.
by throwaway894345 | 2025-10-25 20:03:30+00:00
I like that SQL is a standard, and it's mostly "fine". Sure, I have to constantly read the man pages because there are half a dozen different ways to do fundamentally similar things, and there are subtle differences between each vendor, and I keep running into silly errors like trailing commas. But it mostly works.

The stuff that is more painful is building any kind of interesting application on top of a database. For example, as far as I know, it's very hard to "type check" a query (to get the "type" returned by a given query). It's also hard to efficiently compose SQL. And as far as I know, there's no standard, bulletproof way to escape SQL ("named parameters" is fine when you need to escape parameters, but most of SQL isn't parameters). There's also no good way to express sum types (a "place" can be a "park" or a "restaurant" or a "library", and each of those have different associated data--I don't need a "has_cycling_trails" boolean column for a restaurant, but I do for a park). There are various workarounds, all deeply unsatisfying.
by pama | 2025-10-25 20:04:46+00:00
I would test how much of the total flop capability of the hardware you are using. Take the first order terms of your model and estimate how many flops you need per data point (a good guide is 6*param for training if you mostly have large multiplies and nonlinearity/norm layers) and then calculate the real time performance for a given data size input vs the actual expected theoretical max perfomance for the given GPU (eg 1e15 FLOPs/s for bfloat16 per H100 or H200 GPU). If you are already over 50% it is unlikely you can have big gains without very considerable effort, and most likely simple jax or pytorch are not sufficient at that point. If you are at the 2–20% range there are probably some low hanging fruit left and the closer you are to using only 1% the easier it is to see dramatic gains.
by 3eb7988a1663 | 2025-10-25 20:05:45+00:00
I like PRQL[0] - fixes stupid warts about SQL.

A few top line items:

- trailing commas not an error - queries can be read/written in linear order, starting with from, and ending on select - trivial intermediary keywords (eg you define month_total, and then can re-use month_total in a following calculation, no need to duplicate the calculation logic) - no need for a separate `having` keyword when `where` can just be a filter on a group

There is nothing too ground-breaking about it. Just streamlines some logic into a more holistic experience.

[0] https://prql-lang.org/
by matklad | 2025-10-25 20:06:07+00:00
I personally learned Zig by reading https://ziglang.org/documentation/master/ and stdlib source code once I joined TigerBeetle. enums.zig and meta.zig are good places to learn, in addition to usual suspects like array_list.zig.

(though, to be fair, my Rust experience was a great help for learning Zig, just as my C++ knowledge was instrumental in grokking Rust)
by gavinray | 2025-10-25 20:06:59+00:00
> what is the upside of working with JSON in SQL over having your app construct and parse JSON objects, but storing the data in a database using more primitive types?

You use map-like structures (JSON/HStore, etc) for semi-structured user data that you CAN'T define/know a rigid schema for, ahead-of-time.

Think usescases like: Allowing users to write configuration rules, or lists of custom tag <-> value pairs for (whatever), things of these sorts
by vbezhenar | 2025-10-25 20:07:09+00:00
Get two microcontrollers with USBD peripheral and connect them using SPI or UART. Write two firmwares for these microcontrollers. Probably two Raspberry Pi Picos would be the easiest way to implement that project.

You also might want to use optical isolators between these microcontrollers, instead of wiring them directly. Just connecting grounds might be wrong, because different computers might have different grounds.
by marvinborner | 2025-10-25 20:07:09+00:00
Good idea, I like "caramelized"!

However, I wouldn't define bruijn as being caramelized just yet. Personally, I view as syntactic sugar only syntax that's expanded to the target language by the parser/compiler. In bruijn's case, there is barely any of such syntax sugar aside of number/string/char encodings. Everything else is part of the infix/prefix/mixfix standard library definitions which get substituted as part of the translation to LC.
by opan | 2025-10-25 20:07:50+00:00
I actually thought you were just saying you were tired of reading about blind people and software made for them everywhere (perhaps as if to say there weren't actually that many blind people and you were feeling they were overrepresented). The exact wording didn't even hit me until I read the child comments to yours.

The homeless/houseless stuff usually sticks out to me, but I guess "people with blindness" didn't sound that weird. It also sounds less strict, like saying you're blind makes me think so sight at all, "legally blind" as I sometimes hear would make me think hardly any sight. Being "with blindness" to me could mean something more partial, more of a spectrum. It also sounds more like we might say someone has IBS or diabetes, not that they are those things.

Perhaps blind/deaf/dumb and the like are archaic terms because even with very primitive medical technology you could diagnose these things, so we've got much older records about them. I am not bothered by any of these terms, but I'm also not blind, nor a person with blindness, heh.
by vlovich123 | 2025-10-25 20:08:35+00:00
Public comms is decidedly a leadership decision at all times - you don’t have ICs or even managers spouting off in the press or releasing press releases. They may have mishandled it but that’s their purview and yes it can impact their brand although I’m not sure I’m seeing the long term negative ramifications from that and they made technical changes to mitigate such issues going forward. That is all very different from management making an IC develop a single specific more obscure technical change like this.
by hecturchi | 2025-10-25 20:08:37+00:00
I have Valetudo on a Dreame X40 Ultra and very happy.

My recommendation is to flash and GTFO forever. Never upgrade, never ask anything, never read anything other than the install docs. Disregard pointers to join Telegram. Do not read release notes. And donate some money for the trouble if things work. That's your path to maximum happiness with Valetudo, blissful ignorance.

One day perhaps there will be a fork and things can be normal.