MurphyA/hacker-news huggingface dataset:
by debugnik | 2025-08-13 19:38:19+00:00
In short, OCaml modules are used for coarse-grained generics.

Modules are like structurally-typed records that can contain both abstract types and values/functions dependent on those types; every implementation file is itself a module. When passed to functors (module-level functions), they allow you to parameterize large pieces of code, depending on multiple types and functions, all at once quite cleanly. And simply including them or narrowing their signatures is how one exports library APIs.

(The closest equivalent I can imagine to module signatures is Scala traits with abstract type members, but structurally-typed and every package is an instance.)

However, they are a bit too verbose for finer-grained generics. For example, a map with string keys needs `module String_map = Map.Make(String)`. There is limited support for passing modules as first-class values with less ceremony, hopefully with more on the way.
by sshine | 2025-08-13 19:38:41+00:00
> terser languages don't work all that well with LLMs

I’d believe that, but I haven’t tried enough yet. It seems to be doing quite well with jq. I wonder how its APL fares.

When Claude generates Haskell code, I constantly want to reduce it. Doing that is a very mechanical process; I wonder if giving an agent a linter would give better results than overloading it all to the LLM.
by burnt-resistor | 2025-08-13 19:38:48+00:00
Figure out how much RAM, L1-3|4 cache, integer, vector, graphics, and AI horsepower is needed for a use-case ahead-of-time and cram them all into one huge socket with intensive power rails and cooling. The internal RAM bus doesn't have to be DDRn/X either. An integrated northbridge would deliver PCIe, etc.
by garciansmith | 2025-08-13 19:39:18+00:00
I think constraints can bring about creativity. The Playdate is a good example, though it's extremely niche (they've sold what, 100,000 of them or something?). And it fits your description of a modern-day platform that's constrained in particular ways. It has been interesting to see the ways devs have used the system to make unique games unavailable on any other platform.
by apical_dendrite | 2025-08-13 19:39:35+00:00
Yeah, it doesn't work that way. Basically what you're saying is that a Pharma company is going to invest in research that may not pay off for decades, if ever. GLP-1 drugs are based on research that started in the early 80s. mRNA vaccines are based on research from the late 80s and 90s. Very few companies are interested in funding highly-speculative work where they won't see a return for 30 or 40 years - and probably will never see a return at all.

It also creates a really serious problem - if companies are funding the basic science, then they are going to want to own what they're funding. But collaboration and shared knowledge is exactly what pushes science forward.
by danesparza | 2025-08-13 19:39:39+00:00
I searched for 'go' (expecting there to be too many results -- I usually have to specify 'golang').

I got a single result. For an auto technician.

For Ferraris.

(not kidding: https://www.jobs.now/jobs/150823097-ferrari-classic-master-t...)

Oh, the irony.

As a simple comparison, doing a quick job search for 'golang' on dice.com yields 5k+ jobs. Tell me why I'm going to use jobs.now again?
by ackfoobar | 2025-08-13 19:39:44+00:00
If you don't do inline records you either

- create a separate record type, which is no less verbose than Java's approach

- use positional destructuring, which is bug prone for business logic.

Also it's funny that you think OCaml records are "with better syntax". It's a weak part of the language creating ambiguity. People work around this qurik by wrapping every record type in its own module.

https://dev.realworldocaml.org/records.html#reusing-field-na...
by garciansmith | 2025-08-13 19:39:57+00:00
A lot of it is nostalgia, but I know children who love old games that were made 20+ years before they were born, so it's not just that. As you said about your old games: "they are fun, pretty much just pop in the disk and play." There are plenty of great old games that are still good, even without certain modern conveniences and game design.

Playing old stuff on original hardware is a bit different (especially computers, as you noted), and there nostalgia has a greater pull I think. But even then, to experience a game as it originally was, you need to resort to that hardware. I recently used a MiSTer to compare how games looked on a CRT and modern screen, and it was super interesting to see the differences (e.g., colors being more vivid on the LCD, but effects like glowing lights were only visible on the CRT).
by hbn | 2025-08-13 19:40:19+00:00
I wonder if Apple's upcoming speech APIs can be added too. Would be cool to have it just work out of the box on Macs, without needing to source a model.

https://developer.apple.com/documentation/speech/speechtrans...

https://developer.apple.com/documentation/speech/speechanaly...

https://www.macstories.net/stories/hands-on-how-apples-new-s...
by bluGill | 2025-08-13 19:40:34+00:00
While things are bad for some people, calling the bottom 20% living in Hell is an exaggeration that is nowhere near correct. People always complain about their situation and think it is somehow much worse than other people, so if you see someone who is in worse shape you can think it is a living hell. However the reality is very different, and if you step back and look you discover most people in that bottom 20% are happy overall despite having imperfections.
by rsanek | 2025-08-13 19:42:03+00:00
50% or 100%? Which companies? All the biggest companies increased by some durin 2020~2022, but not really all that much more than their historical growth rates.

What did happen uniformly is that all essentially stopped hiring after 2022.

https://www.macrotrends.net/stocks/charts/GOOG/alphabet/numb...

https://www.macrotrends.net/stocks/charts/MSFT/microsoft/num...

https://www.macrotrends.net/stocks/charts/AAPL/apple/number-...

https://www.macrotrends.net/stocks/charts/META/meta-platform...
by OgsyedIE | 2025-08-13 19:42:07+00:00
Porn sites that host such content do not deliberately choose to host it, they are forced to host it by criminal users, because the website allows user uploads without content scanning, which allows users to upload anything and have it only get moderated after it is already live.

The existence of companies that fail to do an excellent job of preventing the upload of child pornography and rape is a trade off.

In exchange for giving section 230 to everybody, including porn hosts that fail to perfectly vet their content, the existence of youtube, hacker news and [insert your favourite social media] is enabled. Having the wrong things only get moderated after they are put on the internet, instead of before, is the price we pay to allow good things to get put on the internet.

After all, you certainly wouldn't like to be in a situation where you reply to me and have to wait three hours for a janitor to check that your reply is acceptable before your reply could go live, would you?

The current system avoids that hypothetical negative.
by EGreg | 2025-08-13 19:42:21+00:00
Here, I will write one by hand right now:

d IntegerMath : SomeInterface, SomeOtherInterface someProperty:I someOtherProperty:I-M referenceProperty:IntegerMath+R+N // nullable recursiveProperty:IntegerMath+N // error! needs +R f stuff(myObj: IntegerMath+M+R, newValue: I+M) newValue = 4 // modifies caller's reference myObj.someProperty = newValue // error, need newValue.c() myObj.someOtherProperty = 4 // error, immutable property IntegerMath.max = f(first:I, second:I):I r => first > second ? first : second IntegerMath.min = f(first:I, second:I):I => first < second ? first : second // let's use the class im = IntegerMath.n({someOtherProperty: 4}) // infers im:IntegerMath im.someProperty = 3 im.stuff(im, someInteger) // modifies both result = Math.sort([1,2,3], IntegerMath.max) // infers result:[I] another = Math.sort(result, f(first:I, second:I):I => first > second ? first : second) // conditional code [1,2,3].x( f(k) k > 2 ? console.log(k) : ( result = k console.log(k-2) ) // this is a closure but doesn't assign // anything to +R variables, so it's not +R itself // in Swift language, it's not "escaping"
by cowmix | 2025-08-13 19:42:24+00:00
The “activism” angle is a red herring — they’re screwing with all foreign students now, regardless of what they do. And honestly, activism is one of the things that made the US stand apart — or used to.

The US government, while far from perfect, was once seen as a neutral partner in research — a place where scientists from everywhere could coordinate, mix, and build. It cost us relatively little compared to what we gained, and that leadership was admired both domestically and globally. It wasn’t perfect, but it was pretty damn good — and now it’s being killed.
by kvemkon | 2025-08-13 19:42:52+00:00
> > I think Gen7 used 32GHz, which is ridiculously high.

> 16GHz square wave

Is it for PCIe 5.0? PCIe 6.0 should operate on the same frequency and doubling the bandwidth by using PAM4. If PCIe 7.0 doubled the bandwidth and is still PAM4, what is the underlying frequency?
by latexr | 2025-08-13 19:42:52+00:00
> they can already find the “right” answer to most queries in seconds.

Why is “right” in quotes? The point of searching is (should be, if you care even remotely about truth) to find accurate information. I don’t want “right” information that is actually wrong, I want correct information.

> The bottleneck is no longer finding information—it’s how that information is delivered.

Considering the amount of disinformation out there and the concerted efforts to propagate more, the world you’re describing is awful and leading us rapidly into a bad path.
by akkad33 | 2025-08-13 19:42:54+00:00
I don't know OCAML well but I think this is referring to the fact that modules on OCAML can be generic. In f# there is no HKTs that is types that can be parameterised with type classes. So in F# you have to have List.map, option.map etc, whereas in a language like OCAML or Haskell they would have one parametrised module
by anonym29 | 2025-08-13 19:43:03+00:00
The issue I think arrives when there is an unwillingness to tolerate people who hold intolerant ideas, views, or beliefs, even when those people do not act on those ideas, views, or beliefs - i.e. when the people with intolerant views are not actually practicing intolerance.

It's one thing to shun a customer for practicing intolerance, it's another to shun a customer for holding intolerant beliefs without actually practicing intolerance or materially affecting the quality of life of anyone around them, is it not?
by atonse | 2025-08-13 19:44:11+00:00
All American households get mains power at 240v (I'm missing some nuance here about poles and phases, so the electrical people can correct my terminology).

It's often used for things like ACs, Clothes Dryers, Stoves, EV Chargers.

So it's pretty simple for a certified electrician to just make a 240v outlet if needed. It's just not the default that comes out of a wall.
by root_axis | 2025-08-13 19:44:40+00:00
VRAM prices have remained flat for the last decade, so no evidence of that coming.

Beyond that, running inference on the equivalent of a 2025 SOTA model with 100GB of VRAM is very unlikely. One consistent quality of transformer models has been the fact that smaller and quantized models are fundamentally unreliable, even though high quality training data and RL can boost the floor of their capabilities.
by apical_dendrite | 2025-08-13 19:44:55+00:00
Also, most endowment funds are restricted by the donor. The whole point of making a donation to an endowment is to fund a specific thing in perpetuity. Legally, the university can't just take money that was given to them to fund one thing in perpetuity and use that money to fund a completely different thing as a one-time expense.
by pfooti | 2025-08-13 19:45:02+00:00
Yeah it looks pretty similar to the pebble 2 (2016) in that regard. I had an original pebble and a pebble 2, and the heart monitor on the 2 was super uncomfortable, to the point where I mostly just kept wearing my original pebble. I currently have a pixel watch, and the body is fatter but it is also way more smooth of a transition into the hr sensor.

I can see myself buying one of these new pebbles, but not the one with the hr sensor. I really just want it for the notifications support.
by ghaff | 2025-08-13 19:45:39+00:00
bcantrill has opined that, had Linus gone off to pursue ice sculpture instead, at least one of the BSDs would have figured out a way forward. (Though others suggest that Windows would just have won.) I tend to agree with Bryan though.

https://bitmason.blogspot.com/2020/04/podcast-if-linux-didnt...
by snooniverse | 2025-08-13 19:46:03+00:00
Not sure what you're trying to get at here. Charlie Marsh has literally said this himself; see e.g. this post he made last September:

> "An example of what this might look like (we may not do this, but it's helpful to have a concrete example of the strategy) would be something like an enterprise-focused private package registry."

https://hachyderm.io/@charliermarsh/113103605702842937

Astral has been very transparent about their business model.
by anthk | 2025-08-13 19:46:05+00:00
This is useless as the Brit will just use VPN's/Tor or anything else connected to US servers where the main language interface will be 100% the same. This will just give free money to US services and probably generate a big hole in the UK economy. I remind you all that porn does far more money than tons of services. They were pioneers on online commerce with credit cards.

People can tell otherwise, but these services are widely used by the population in disguise, from both women and men.
by burnt-resistor | 2025-08-13 19:46:34+00:00
I know someone who bought a defunct bank to solve a family wealth repatriation catch-22 issue.

This might be a sensible approach.

Or, if they had some sense, they'd get into the credit business with their own "store card" that doesn't use V/MC. With this, they'd have the leverage to tell credit card processors to "get bent" should V/MC try telling them how to run their business and what content is acceptable.
by nunez | 2025-08-13 19:46:42+00:00
We were lucky enough to buy this year, and I love the house we bought and the location it resides in, but honestly, I enjoyed being a renter, and I wish the stigma around renting would go away.

Until then, affordability will continue to suffer as long as housing is treated as an appreciating asset. They are diametrically opposing goals. To wit, Americans have been stretching their finances to get into their first homes for a long time (think 401(k) loans and ARMs of the past).
by cowmix | 2025-08-13 19:47:15+00:00
US academia has a ridiculous amount of institutional entropy” — I wouldn’t count on that saving it. These institutions aren’t built for a top-down attack on the very core of how they operate. They’ve spent decades aligning to how grants are funded, how programs are run, how collaboration works. Now the government has blown that up — and done it in such a sloppy, unpredictable way that the institutions don’t even know how to react.
by tevon | 2025-08-13 19:47:17+00:00
To me, Nationalism and Patriotism mean different things.

At least to me:

Patriotism: the belief in the ideals of your country, in its people and its ability to strive towards that ideal state.

Nationalism: A strong identity tied to ones nation as it exists today (or in the past) at the exclusion of others or other thought
by brulard | 2025-08-13 19:47:31+00:00
I said that based on you saying you exhaust a million token context windows easily. I'm no expert on that, but I think the current state of LLMs works best if you are not approaching that 1M token limit, because large context (reportedly) deteriorates response quality quickly. I think state of the art usage is managing context in tens or low hundreds thousands tokens at most and taking advantage of splitting tasks across subtasks in time, or splitting context across multiple "expert" agents (see sub-agents in claude code).
by catigula | 2025-08-13 19:47:39+00:00
>There are groups I'm not part of. This makes me sad. I want to be part of those groups.

Yes, but that inherently dilutes the very conception of a group. This is pretty basic stuff. Groups must be exclusive or they have no meaning.

I understand this will make some people sad and, unfortunately, that's okay.

It makes me sad that I will never be Japanese. What a beautiful country. Man, am I sad. But that's alright, isn't it?
by woodruffw | 2025-08-13 19:47:45+00:00
Python packaging has a lot of standards, but I would say most of them (especially in the last decade) don't really compete with each other. They lean more towards the "slow accretion of generally considered useful features" style.

This itself is IMO a product of Python having a relatively healthy consensus-driven standardization process for packaging, rather than an authoritative one. If Python had more of an authoritative approach, I don't think the language would have done as well as it has.

(Source: I've written at least 5 PEPs.)
by noelwelsh | 2025-08-13 19:48:04+00:00
I think "no gc but memory safe" is what originally got people excited about Rust. It's a genuinely new capability in production ready languages. However, I think Rust is used in many contexts where a GC is just fine and working with lifetimes makes many programs more painful to write. I think for many programs the approach taken by Oxidized OCaml[1] or Scala[2] gives 80% of the benefit while being a lot more ergonomic to work with.

When I see Rust topping the "most loved language" on Stack Overflow etc. what I think is really happening is that people are using a "modern" language for the first time. I consistently see people gushing about, e.g., pattern matching in Rust. I agree pattern matching is awesome, but it is also not at all novel if you are a PL nerd. It's just that most commercial languages are crap from a PL nerd point of view.

So I think "no gc but memory safe" is what got people to look at Rust, but it's 1990s ML (ADTs, pattern matching, etc.) that keeps them there.

[1]: https://github.com/oxcaml/oxcaml

[2]: https://docs.scala-lang.org/scala3/reference/experimental/cc...
by Terr_ | 2025-08-13 19:48:21+00:00
For the visually-inclined, a graph of debt as a proportion of GDP [0]: https://fred.stlouisfed.org/series/GFDGDPA188S

Of course, this doesn't show projections for what the future debt will become after the Republican's "BBB" package from a few months ago.

[0] Yes, I know GDP is a flawed measure, but as long as its flaws are consistent over the years it is useful for scaling.
by nine_k | 2025-08-13 19:48:26+00:00
I'd say that Google strives to have a reasonably short list of languages approved for production-touching code. Rust can replace / complement C++, while OCaml cannot (it could replace Go instead... fat chance!). So I suspect that the team picked Rust because it was the only blessed language with ADTs, not because they won't like something with faster compile times.

No way OCaml could have stolen the Rust's thunder: we have a number of very decent and performant GC-based languages, from Go to Haskell; we only had one bare-metal-worthy expressive language in 2010, C++, and it was pretty terrible (still is, but before C++11 and C++17 it was even more terrible).
by searine | 2025-08-13 19:48:34+00:00
Your 'pessimism' towards academia is the justification the 'burn it all down' people are using to ... burn it all down.

I'm not exaggerating. The innovation machine is currently ablaze. Even funded grants for things like cancer and alzheimers aren't being paid out because they fired all the grants processors. Multiple whole universities have been defunded entirely. An entire generation of scientists will have their careers stolen from them if this continues.
by jmcphers | 2025-08-13 19:48:55+00:00
I'm surprised more hasn't been made of the difference in screen resolution between this device and other Pebbles (and even the "new" Pebble 2 Duo). Old watchfaces and apps are not going to render without black borders, and given the niche market and limited run of this new model, it doesn't seem likely to attract much in the way of developer attention, so a healthy marketplace of new faces/apps may not surface.

If I could design _my_ dream watch (to borrow Eric's phrase), I'd put a larger version of the black and white MIP display in Time 2's case -- not more pixels, just bigger and easier to read.
by horsawlarway | 2025-08-13 19:49:20+00:00
Nah - it generalizes fine.

They're doing exactly what I said - adding PoW (anubis - as you point out - being one solution) to gate access.

That's hardly different than things like Captchas which were a big thing even before LLMs, and also required javascript. Frankly - I'd much rather have people put Anubis in front of the site than cloudflare, as an aside.

If the site really was static before, and no JS was needed - LLM scraping taking it down means it was incredibly misconfigured (an rpi can do thousands of reqs/s for static content, and caching is your friend).

---

Another great solution? Just ask users to login (no js needed). I'll stand pretty firmly behind "If you aren't willing to make an account - you don't actually care about the site".

My take is that search engines and sites generating revenue through ads are the most impacted. I just don't have all that much sympathy for either.

Functionally - I think trying to draw a distinction between accessing a site directly and using a tool like an LLM to access a site is a mistake. Like - this was literally the mission statement of the semantic web: "unleash the computer on your behalf to interact with other computers". It just turns out we got there by letting computers deal with unstructured data, instead of making all the data structured.
by garbthetill | 2025-08-13 19:49:43+00:00
What a brilliant article, it really puts to rest for me, the whole “why not use F#?” argument. In almost every OCaml thread, someone suggests F# as a way to sidestep OCaml’s tooling.

I’ve always been curious about OCaml, especially since some people call it “Go with types” and I’m not a fan of writing Rust. But I’m still not sold on OCaml as a whole, its evangelists just don’t win me over the way the Erlang, Ruby, Rust, or Zig folks do. I just cant see the vision
If you're unemployed and looking to build with others, we made something for you
by McLarenF1 | 2025-08-13 19:49:46+00:00
Back in January, we launched a small MVP with a few hundred users. Buildbook is a community network by technical people for technical people. We want to make it easy to find others to meet and build with, so you don't need to go through founder speed dating or communicate with dodgy people online. Everyone is verified and technical.

Today, we launched our latest version of Buildbook to over 23,000 people and 3,000 waitlist users across 850 universities! We're super excited about the growth and look forward to helping every student and professional contribute to their skillset through collaborative learning.
by ronsor | 2025-08-13 19:49:53+00:00
The point of non-custodial wallets is that the developer does not have your private keys, so they don't control your funds. While it's possible for the software to have bugs, remember that almost all software is already provided AS IS WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED, and that in no event with the authors be liable for any damages arising out of or related to its use.
by logicchains | 2025-08-13 19:50:01+00:00
>releasing providers from any liability if they fuck up and lose all my money via engineering incompetence

If someone fucks up and downloads some shady wallet app that steals their coins, they're the one at fault. How about trying to take some personal responsibility, instead of trying to get the full force of government to stop other people keeping custody of their own coins, just to protect yourself from potentially making a bad decision and installing a dodgy app? Edited to remove a personal attack