MurphyA/hacker-news huggingface dataset:
by vesterthacker | 2025-10-25 02:40:41+00:00
Today I am announcing the release of The Elements of Programming, a work that sets out to define programming as a formal discipline built from first principles. It is written in the style of Euclid’s Elements, with definitions, propositions, and proofs arranged to form a coherent structure of reasoning about code, systems, and logic.

The book was developed independently but appeared on the same day on HN as Rado Kirov’s essay Why Formalize Mathematics. The coincidence reflects a wider shift across mathematics and computing toward formal structure, reproducibility, and clarity of reasoning.

The Elements of Programming explores how programming languages, compilers, and operating systems can be described with the same rigor that mathematicians bring to proofs. It connects the foundations of logic with practical systems design, emphasizing transparent structure and long-term maintainability.

You can find the book here: https://leanpub.com/elementsofprogramming

I would welcome discussion and feedback from anyone interested in formal methods, programming language theory, or the future of software as a formal science.
by aw1621107 | 2025-10-25 02:41:59+00:00
> yes, closer to "on a whim" than many like

You're moving the goalposts. Neither the original claim nor your previous comment in this subthread used such vague and weakening qualifiers to "on a whim".

And even those still don't say anything about what exactly you mean by "on a whim" or how precisely that particular change can be described as such, though at this rate I suppose there's not much hope in actually getting an on-point answer.

> the Rust community is willing to break backwards compatibility

Again, the fact that Rust can and will break backwards compatibility is not in dispute. It's specifically the claim that it's done "on a whim" that was the seed of this subthread.

> appear to not only be unwilling to admit the issues

I suggest you read my comment more carefully.

I also challenge you to find anyone who claims that the changes in Rust 1.80.0 did not cause problems.

> but even directly talk around the issues.

Because once again, the existence of breaking changes and/or their negative downstream impact is not what the original comment you replied to was disputing! I'm not sure why this is so hard to understand.

> In C and C++ land, if gcc (as a thought experiment) tried breaking backwards compatibility by changing the language, people would be flabbergasted, complain that gcc made a dialect, and switch to Clang or MSVC or fork gcc.

No need for a thought experiment. Straight from the GCC docs [0]:

> By default, GCC provides some extensions to the C language that, on rare occasions conflict with the C standard.

> The default, if no C language dialect options are given, is -std=gnu23.

> By default, GCC also provides some additional extensions to the C++ language that on rare occasions conflict with the C++ standard.

> The default, if no C++ language dialect options are given, is -std=gnu++17.

Also from the GCC docs [1]:

> The compiler can accept several base standards, such as ‘c90’ or ‘c++98’, and GNU dialects of those standards, such as ‘gnu90’ or ‘gnu++98’.

So not only has GCC "chang[ed] the language" by implementing extensions that can conflict with the C/C++ standards, GCC has its own dialect and uses it by default. And yet there's no major GCC fork and no mass migration to Clang or MSVC specifically because of those extensions.

And it's not like those extensions go unused either; perhaps the most well-known example is Linux, which only officially supported compilation via GCC for a long time precisely because Linux made (and makes!) extensive use of GCC extensions. It was only after a concerted effort to remove some of those GNU-isms and add support for others into Clang that mainline Clang could compile mainline Linux [2].

> I hope that there are plans for robust ways of preventing dialects of Rust.

This is not a realistic option for any language that anyone is free to implement for what I hope are obvious reasons.

[0]: https://gcc.gnu.org/onlinedocs/gcc/Standards.html

[1]: https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html

[2]: https://www.phoronix.com/review/clang-linux-53
by jandrewrogers | 2025-10-25 02:44:43+00:00
This discussion is not complete without a mention of Marcus Hutter’s seminal book[0] “Universal Artificial Intelligence: Sequential Decisions Based On Algorithmic Probability”. It provides many of the formalisms upon which metrics of intelligence are based. The gaps in current AI tech are pretty explainable in this context.

[0] https://www.hutter1.net/ai/uaibook.htm
by wainguo | 2025-10-25 02:45:12+00:00
Hey, thanks a lot for the thoughtful feedback — really appreciate you taking the time to write this

Totally agree with you on the UX point. I also believe these tools should be almost invisible — just drag, drop, adjust a few settings, and done. I initially added more text to make the privacy aspect clear (since many users don’t realize it’s 100% local), but you’re right — that could be simplified and better communicated with a single line. I’m already working on a cleaner layout with fewer distractions and a clearer “drop zone.”

Good catch on the title too! I started with “PNG to JPG converter” for SEO reasons, but as the app expanded to support multiple formats (WebP, PNG, JPG.), that label became outdated. I really like your suggested phrasing — something like “ImageConverter — Convert images between formats, locally” is a lot clearer and more accurate.

And thanks for sharing Mazanoke — hadn’t seen that before! Love that it follows the same “everything local” approach. I’ll take a closer look; maybe I can learn a few UX tricks from it as well.

Appreciate your kind words and testing it out! If you have any other UX ideas or thoughts on layout simplification, I’d love to hear them
by capitainenemo | 2025-10-25 02:45:34+00:00
You're mostly correct, but apparently not totally :) - I did think that it was further north, but the human cases are usually only in south and central america and africa. Nonetheless, there are some.

https://pmc.ncbi.nlm.nih.gov/articles/PMC4809994/ (human cases in the US - but is primarily in animals)

https://www.merckvetmanual.com/poultry/bloodborne-organisms-... (birds only, but still north american disease)

There's also an allergic reaction apparently due to large numbers of bites called simuliotoxicosis / black fly fever.

There's also this mysterious one in europe. https://pmc.ncbi.nlm.nih.gov/articles/PMC7920075/

Aaaand there's this site claiming possible encephalitis transmission, although I kinda feel I'd prefer a better cite than that. https://www.mosquitomagnet.com/resources/faq-black-fly-other...
by hakfoo | 2025-10-25 02:45:57+00:00
It's interesting that they actually did the work, though.

One alternative way to reduce their dependency on foreign platform vendors would be to blow the existing market up. Coreboot and similar exist, and if they got a state-sized injection of resources, they could reasonably drive vendors like Phoenix and AMI out of the market, leaving behind an ecosystem without any particular dominant player.

There is a solid argument for UEFI being a terrible mess, so if they want to leverage a "remove foreign dependencies" as motivation to make something better, more power to them.
by sammy2255 | 2025-10-25 02:47:19+00:00
That's really cool I never thought about having your own host and then faking the SNI.

I find it pathetic that vendors and ISPs are snooping SNI headers to block things, looking at you, UK.

Also, I wonder what will happen if those instant messaging apps move to Encrypted SNI (ECH), will they just not work, or is there fallback?
by andrewf | 2025-10-25 02:47:29+00:00
He mentions https://en.wikipedia.org/wiki/Rhapsody_(operating_system) in the NeXTSTEP section, which was a stepping stone to OS X.

Windows stuck as the id tooling platform. I'm guessing by the time OS X was relevant, id Software had grown and all the tooling that would've benefited from Interface Builder was maintained by different folks. And Carmack was focused on getting the most out of various graphics cards, where Win32 drivers were both the cutting edge and what consumers had.
by danielsju6 | 2025-10-25 02:47:57+00:00
True. We have natural gas and an existing steam radiator setup though, for the two months a year window heat pumps can't keep up. The upfront investment alone would heat my house for 10-20 years.

Honestly, just piling more insulation in the attic and doing an energy audit will probably put the ROI out another 10+ years...

I'm hoping the newer window units that are being rolled out to the NYC market will be good enough to put downward pressure on the outrageous prices in the installation market. Or maybe I'll just dedicate a weekend to DIYing :P
by sgc | 2025-10-25 02:48:35+00:00
Two main reasons:

1. It's easier to form friendships in a smaller group. In larger groups it is much easier for it to became a wall of people rather than individual persons. Large groups can be extremely overwhelming for children (they are still overwhelming for many adults).

2. It is much easier for the teacher to see the group dynamics, and jump in to make sure nobody is excluded. If the teacher doesn't do this, many of the benefits of smaller class size will be lost. Teachers need to very vigilant to teach that it's not okay to exclude kids and not play with them, its not ok to bully, etc. If there is nobody in the room to foster healthy relationships, they will never reach even close to their full potential.

I have seen and talked about this in quite a bit of detail with educators who are continually successful, and it is not hard to figure out - it requires devotion rather than advanced pedagogical theory and strategy.
by ghu666 | 2025-10-25 02:49:55+00:00
ppls just can't accumulate all those relationships between tokens and sub-tokens but LLM just prove that result of task has been encoded in the request by token relationships.

Anyone who studied physics and simulations knows about distribution fits, finding functions which used to imitate actual data -> Monte-Carlo. So LLM basically multidimensional Monter-Carlo.

And this is proving that LLM can't solve or think out of scope of trained data. Able to keep limited context and is not able to dream.
by simoncion | 2025-10-25 02:52:27+00:00
It is my opinion that three things are true:

1) A piece of software can be complete.

2) It is virtuous when a piece of software is complete. We're freed to go do something else with our time.

3) It's not virtuous to obligate modifications to any software just because one has made changes to the shape of "the bikeshed".
by programjames | 2025-10-25 02:55:01+00:00
Update 3:

Okay, so my PixelCNN masking was wrong... which is why it went to the mean. The earth-mover did get better results than negative log-likelihood, but I found a better solution!

The issue with negative log-likelihood was the neural network could optimize solely around zero and one because there are poles there. The key insight is that the color value in the image is not zero or one. If we are given #00, all we really know is the image from the real world had a brightness between #00 and #01, so we should be integrating the probability density function from 0 to 1/256 to get the likelihood.

It turns out PyTorch does not have a good implementation of Beta.cdf(), so I had to roll my own. Realistically, I just asked the chatbots to tell me what good algorithms there were and to write me code. I ended up with two:

(1) There's a known continued fraction form for the CDF, so combined with Lentz' algorithm it can be computed.

(2) Apparently there's a pretty good closed-form approximation as well (Temme [1]).

The first one was a little unstable in training, but worked well enough (output: [2], color hist: [3]). The second was a little more stable in training, but had issues with nan's near zero and one, so I had to clamp things there which makes it a little less accurate (output: [4], color hist: [5]).

The bits/dim gets down to ~3.5 for both of these, which isn't terrible, but there's probably something that can be done better to get it below 3.0. I don't have any clean code to upload, but I'll probably do that tomrrow and edit (or reply to) this comment. But, that's it for the experiments!

Anyway, the point of this experiment was because this sentence was really bothering me:

> But categorical distributions are better for modelling.

And when I investigated why you said that, it turns out the PixelRNN authors used a mixture of Gaussians, and even said they're probably losing some bits because Gaussians go out of bounds and need to be clipped! So, I really wanted to say, "seems like a skill issue, just use Beta distributions," but then I had to go check if that really did work. My hypothesis was Betas should work even better than a categorical distribution because the categorical model would have to learn nearby outputs are indeed nearby while this is baked into the Beta model. We see the issue show up in the PixelRNN paper, where their outputs are very noisy compared to mine (histogram for a random pixel: [6]).

[1]: https://ir.cwi.nl/pub/2294/2294D.pdf [2]: https://imgur.com/e8xbcfu [3]: https://imgur.com/z0wnqu3 [4]: https://imgur.com/Z2Tcoue [5]: https://imgur.com/p7sW4r9 [6]: https://imgur.com/P4ZV9n4
by al_be_back | 2025-10-25 02:55:05+00:00
i think traditional UI should be decoupled from the language - only providing CLI and web UI (w3c web standards).

Apple's ui is very nice, but you're stuck with a whole ecosystem for life. If you want to cross-platform, as you mentioned, well, all hell breaks loose: React & co, Flutter, web assembly.

a unified, all-batteries-included system is excellent for the manufacturer/provider - they can plan, invest, manage and rollout products at a desired rate. but for developers, third-party, and consumers is very costly, intense and risky.

fun-fact from Steve Jobs bio, he was interviewing a tech hopeful for a job, the guy showed him a prototype of what would become the Dock (aqua + animations), created using an Adobe product. Abobe etc had powerful, flexible platforms - unfortunately the market was driven by eager tech geeks - so it was easy to get curried away with fancy UIs. However, that was (20 years ago) an educational issue - not a tech issue.
by mike4837 | 2025-10-25 02:56:10+00:00
Have you found yourself forgetting actions you did yesterday, or even days ago, or spending too much time at the end of the day trying to recall what you did?

I built this tool, to automatically generate logs of high-level actions you perform. The filenames contain the date and the logs are stamped by time. Some example logs are below: [2025-10-16 21:45:23] User is entering the command `pip install mytool-1.0.0-py3-none-any.whl` To use it install via pip and grant accessibility and screen recording permissions to your python.

You can email me at [mjunyeopkim@gmail.com](mailto:mjunyeopkim@gmail.com) if you have feature requests or feedback.
by ChristopherDrum | 2025-10-25 02:56:17+00:00
Author here. Thanks to OP for linking to my recent post and to the HN community for visiting and sharing their personal anecdotes. I’m glad to see a continuing shared interest in these classic productivity tools. I don’t blog about games at all, just retro productivity software, so if that floats your boat you may enjoy the other posts on my site.
by visarga | 2025-10-25 02:56:23+00:00
This book lines up with a lot of what I've been thinking: the centrality of prediction, how intelligence needs distributed social structure, language as compression, why isolated systems can't crack general intelligence.

But there are real splits on substrate dependence and what actually drives the system. Can you get intelligence from pure prediction, or does it need the pressure of real consequences? And deeper: can it emerge from computational principles alone, or does it require specific environmental embeddedness?

My sense is that execution cost drives everything. You have to pay back what you spend, which forces learning and competent action. In biological or social systems you're also supporting the next generation of agents, so intelligence becomes efficient search because there's economic pressure all the way down. The social bootstrapping isn't decorative, it's structural.

I also posted yesterday a related post on HN

> What the Dumpster Teaches: https://news.ycombinator.com/item?id=45698854
by tom_alexander | 2025-10-25 02:56:35+00:00
While the look certainly isn't flashy, I'd be fine with the look. It's the reliance on 3-button mice that's a problem for me. At least modern laptop touchpads can do middle mouse click with 3-fingers but that's a pretty lousy UX, so it's really only practical with a real mouse.

Also I'm much more of a keyboard + tiling window manager kind of a person, so the plan9 focus on the mouse isn't my cup of tea.
by crdrost | 2025-10-25 02:56:44+00:00
So you can continue it beyond that circle if you like, it just happens to be the case that the thing electrical engineers and others dealing with waveguides are plotting in the source space, is impedance. (Well, a ratio of impedances—a load impedance divided by a transmission line impedance.) The real part of impedance is resistance, and negative resistance is very uncommon. The area outside the unit circle so mapped, I think also corresponds to reflected amplitude ≤ transmitted amplitude, with the center of the diagram being a perfectly matched impedance, and no reflection.
by Grosvenor | 2025-10-25 02:57:55+00:00
That's how they do it - flood the zone with absurd absolutely unacceptable things they want to do. Most of it gets cut down, but some of it makes it through.

It's very clear that they're not planning on leaving.

From gerrymandering, to owning the companies that count the votes, pardoning J6 assaulters it's very clear they don't intend to leave willingly.
by itake | 2025-10-25 02:59:01+00:00
As another commenter wrote, apple is providing a service beyond the typical transaction (like visa or mastercard) does. Similar to the gaming industry's 30% digital sales (playstation, steam, etc).

For small developers, like myself, this is great, because I don't have to put a large upfront capital to pay Apple to audit my app.

If 30% isn't the right number, what is the right number to pay for app store infra, payments, QA services, global tax audits and collection, global licensing limits, etc?
by jumploops | 2025-10-25 02:59:18+00:00
In the world of construction there’s generally an owner, who then works with three groups: an architect, an engineer, and a general contractor.

Depending on what you’re building, you might start with an architect who brings on a preferred engineering firm, or a GC that brings on an architect, etc.

You’re right to question my bridge/bolt combo, as the bolts on a suspension bridge are certainly a key detail!

However, as a programmer, it feels like I used to spend way too much time doing the work of a subcontractor (electrical, plumbing, hvac, cement, etc.), unless I get lucky with a library that handles it for me (and that I trust).

Software creation, thus always felt like building a new cathedral, where I was both the architect and the stone mason, and everything in-between.

Now I can focus on the high-level, and contract out the minutia like a pre-fab bridge, quality American steel, and decorative hinges from Restoration Hardware, as long as they fit the requirements of the project.
by simoncion | 2025-10-25 03:00:01+00:00
> In 2000 trusting most programs you run was fine.

Yes. This is why Microsoft didn't decide to base Windows XP on the NT kernel and Windows 95 was nothing more than a (arguably very) pretty coat of paint on top of Windows 3.11.

It's also why multi-user systems with complicated permissions systems that ran processes in isolated virtual address spaces never got built in the decades prior to NT. All those OS researchers and sysadmins saw no reason to distrust the programs other users intended to run.
by tqwewe | 2025-10-25 03:01:06+00:00
I haven't put any effort into any kind of snapshotting capabilities yet, since I won't want the scope to be too large and there's often ways of designing your system in ways where replaying isn't a big issue (the db scans are fast, designing aggregates to have a smaller scope/less overall events, etc).

But with increased resources, I can see some solutions being considered around snapshotting. For now the goal is heavily unix philosophy inspired: a really fast and purpose built event sourcing database
by sublinear | 2025-10-25 03:01:07+00:00
This blog post didn't convince me. I must assume the default for most web devs in 2025 is hosting on a Linux VM and/or mounting the static files into a Docker container. SFTP is already there and Apache is too.

The last time I had to deal with WebDAV was for a crusty old CMS nobody liked using many years ago. The support on dev machines running Windows and Mac was a bit sketchy and would randomly have files skipped during bulk uploads. Linux support was a little better with davfs2, but then VSCode would sometimes refuse to recognize the mount without restarting.

None of that workflow made sense. It was hard to know what version of a file was uploaded and doing any manual file management just seemed silly. The project later moved to GitLab. A CI job now simply SFTPs files upon merge into the main branch. This is a much more familiar workflow to most web devs today and there's no weird jank.
by vpShane | 2025-10-25 03:01:54+00:00
It is desirable. a bit off topic: I forgot the login to my Mac M1 and now I can't 'install Linux' on it, due to 'activation lock' - no apple support since I can't remember the phone number or e-mail and got it from e-bay. it worked, installed Mac, but I went full Linux and let it sit for a minute.

Apple Support told me in their own words it's bricked. It's mine. I own it.

I'd _love_ to play with M1 with my own Linux install. I'm not about to open it up and unsolder/solder things though.
by WheelsAtLarge | 2025-10-25 03:03:19+00:00
True, but people continue to signup and watch their shows. I think the AI stuff will probably be even worse but the content will be so inexpensive that it will make a profit even with less viewers. Profit is what matters so it will be considered a win.

The next YouTube competitor will be a service of purely AI content where creators will be compensated for their views no matter the size of their videos. People will figure out how to make their videos pay.