frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Apple Photos App Corrupts Images

https://tenderlovemaking.com/2025/09/17/apple-photos-app-corrupts-images/
452•pattyj•4h ago•155 comments

Bringing fully autonomous rides to Nashville, in partnership with Lyft

https://waymo.com/blog/2025/09/waymo-is-coming-to-nashville-in-partnership-with-lyft
49•ra7•2h ago•18 comments

Tau² Benchmark: How a Prompt Rewrite Boosted GPT-5-Mini by 22%

https://quesma.com/blog/tau2-benchmark-improving-results-smaller-models/
61•blndrt•2h ago•11 comments

Determination of the fifth Busy Beaver value

https://arxiv.org/abs/2509.12337
158•marvinborner•4h ago•51 comments

GNU Midnight Commander

https://midnight-commander.org/
418•pykello•11h ago•231 comments

Procedural Island Generation (III)

https://brashandplucky.com/2025/09/17/procedural-island-generation-iii.html
37•ibobev•2h ago•6 comments

Firefox 143 for Android to introduce DoH

https://blog.mozilla.org/en/firefox/dns-android/
94•HieronymusBosch•2h ago•50 comments

PureVPN IPv6 Leak

https://anagogistis.com/posts/purevpn-ipv6-leak/
95•todsacerdoti•5h ago•20 comments

Shai-Hulud malware attack: Tinycolor and over 40 NPM packages compromised

https://socket.dev/blog/ongoing-supply-chain-attack-targets-crowdstrike-npm-packages
1138•jamesberthoty•1d ago•923 comments

YouTube addresses lower view counts which seem to be caused by ad blockers

https://9to5google.com/2025/09/16/youtube-lower-view-counts-ad-blockers/
30•iamflimflam1•45m ago•32 comments

Why We're Building Stategraph: Terraform State as a Distributed Systems Problem

https://stategraph.dev/blog/why-stategraph/
84•lawnchair•6h ago•50 comments

SQLiteData: A fast, lightweight replacement for SwiftData using SQL and CloudKit

https://github.com/pointfreeco/sqlite-data
9•wahnfrieden•1h ago•5 comments

Notion API importer, with Databases to Bases conversion bounty

https://github.com/obsidianmd/obsidian-importer/issues/421
152•twapi•10h ago•48 comments

You can't test if quantum uses complex numbers

https://algassert.com/post/2501
34•EvgeniyZh•2d ago•16 comments

Alibaba's New AI Chip Unveiled: Key Specifications Comparable to H20

https://news.futunn.com/en/post/62202518/alibaba-s-new-ai-chip-unveiled-key-specifications-compar...
141•dworks•5h ago•144 comments

Things you can do with a Software Defined Radio (2024)

https://blinry.org/50-things-with-sdr/
880•mihau•1d ago•143 comments

Doom crash after 2.5 years of real-world runtime confirmed on real hardware

https://lenowo.org/viewtopic.php?t=31
373•minki_the_avali•17h ago•141 comments

Algebraic Types are not Scary

https://blog.aiono.dev/posts/algebraic-types-are-not-scary,-actually.html
48•Bogdanp•2d ago•21 comments

Murex – An intuitive and content aware shell for a modern command line

https://murex.rocks/
80•modinfo•8h ago•41 comments

The Asus Gaming Laptop ACPI Firmware Bug: A Deep Technical Investigation

https://github.com/Zephkek/Asus-ROG-Aml-Deep-Dive
313•signa11•11h ago•149 comments

XeroxNostalgia.com

https://xeroxnostalgia.com/
17•surprisetalk•2d ago•1 comments

I got the highest score on ARC-AGI again swapping Python for English

https://jeremyberman.substack.com/p/how-i-got-the-highest-score-on-arc-agi-again
139•freediver•13h ago•69 comments

How to make the Framework Desktop run even quieter

https://noctua.at/en/how-to-make-the-framework-desktop-run-even-quieter
310•lwhsiao•20h ago•114 comments

Denmark close to wiping out cancer-causing HPV strains after vaccine roll-out

https://www.gavi.org/vaccineswork/denmark-close-wiping-out-leading-cancer-causing-hpv-strains-aft...
870•slu•21h ago•319 comments

AMD Open Source Driver for Vulkan project is discontinued

https://github.com/GPUOpen-Drivers/AMDVLK/discussions/416
128•haunter•14h ago•38 comments

A dumb introduction to z3

https://asibahi.github.io/thoughts/a-gentle-introduction-to-z3/
236•kfl•2d ago•37 comments

DataTables CDN Outage – post incident review

https://datatables.net/blog/2025/july-29-outage
31•cristoperb•19h ago•21 comments

Waymo has received our pilot permit allowing for commercial operations at SFO

https://waymo.com/blog/#short-all-systems-go-at-sfo-waymo-has-received-our-pilot-permit
681•ChrisArchitect•22h ago•704 comments

I built my own phone because innovation is sad rn [video]

https://www.youtube.com/watch?v=qy_9w_c2ub0
286•Timothee•2d ago•56 comments

Oh no, not again a meditation on NPM supply chain attacks

https://tane.dev/2025/09/oh-no-not-again...-a-meditation-on-npm-supply-chain-attacks/
123•theycameback•5h ago•153 comments
Open in hackernews

What Every Programmer Should Know About Enumerative Combinatorics

https://leetarxiv.substack.com/p/counting-integer-compositions
91•muragekibicho•4mo ago

Comments

pestatije•4mo ago
why?
muragekibicho•4mo ago
Algorithms like HyperLoglog are an exercise in Enumerative Combinatorics
jpgvm•4mo ago
To add to this HyperLogLog, sketches and bloom filters are the magic that make most of modern distributed databases tick.
dgan•4mo ago
that's not a helpful response. Congrats on knowing that, but the rest of us are still in the dark about the usage
muragekibicho•3mo ago
the lion does not concern himself with real-world applications.
discreteevent•4mo ago
>Enumerative combinatorics is a branch of mathematics focused on counting the elements of a set.

These people are experts on sets but then they use the word "every" instead of "some" or "a subset of".

They just assume that everybody must be doing what they do. This is why Alan Kay said: “Point of View is worth 80 IQ points"

johnisgood•4mo ago
What is the difference between integer compositions and integer partitions? It says a composition is just an ordered partition of an integer, but according to this article, number 4 can be partitioned into 5 parts, but apparently has 8 compositions. I find the 8 compositions much more accurate, but I do not get why it would not have 8 partitions.
tux3•4mo ago
1 + 3 and 3 + 1 are the same partition of 4, because it's a sum with the same two numbers. The order of the 1 and the 3 doesn't matter for partitions.

But that's two compositions.

I think this article could really use more applied, concrete examples if it's intended for programmers.

It seems their idea for connecting math and programming was printing out a bunch of C code, without further motivation. But coding is an applied field, developpers will want a concrete idea of what they can do with it.

This is still too abstract.

johnisgood•4mo ago
Thank you for the explanation, it definitely cleared things up for me.

> I think this article could really use more applied, concrete examples if it's intended for programmers.

> This is still too abstract.

I agree.

Etheryte•4mo ago
Don't the title illustration and the actual content of the article mix up which is which?
qsort•4mo ago
I find the presentation a bit confusing and I'm already very familiar with this material.

From a purely mathematical point of view, why this choice of topics? You correctly point out that counting partitions has no closed formula, but there are a lot of related problems (Sitrling numbers of the two kinds for example) which are of more practical utility (e.g. they are related to sums of powers formulas). If that's too advanced for your audience then why not present more standard tricks like combinations with replacement aka stars and bars?

From a programmer's point of view, you could have focused more on how to generate subsets, permutations, partitions etc. in a memory-efficient way, for example how the Python stdlib does it.

Also, the factorial number system and the binomial base of univariate polynomials are definitely not "alternatives to base 2 in computer architectures".

Don't take this the wrong way but I struggle to see who you are writing for.

FjordWarden•4mo ago
I am just a simple web developer and I found this stuff interesting. Learning about array programming has taught me the importance of combinatorics and its possible application to GPU programming. It is just the first chapter in a series of articles, I'd say let the man cook.
efavdb•4mo ago
FWIW there is a way to count partitions with a fixed “basis”. Eg I wrote a post here on how to count the number of ways to make change for a given amount of money:

https://www.efavdb.com/change

giomasce•4mo ago
What Every Programmer Should Know About Enumerative Combinatorics -> Nothing.

It can be interesting to know something (or even a lot) about enumerative combinatorics, and certainly there are some specific programming contexts in which that's a hard prerequisite, but it's not a topic that necessarily concerns every programmer.

OTOH I think it would greatly help programmers, especially beginners, to have fewer click baity titles around.

globalnode•4mo ago
Yep, also with little in the way of motivating examples and a pile of mathematics to sift through, its hard to devote the time to this.
jillesvangurp•4mo ago
This is easily verified by the notion that the overwhelmingly vast majority of programmers (myself included) probably know very little of the topic. Seemingly without that causing a lot of issues.

IMHO math in general is overrated for general purpose programming. I had plenty of math in college in the early nineties. I rarely need or use any of it. And when I do, I need to look up a lot of stuff for the simple reason that it's been decades since I last needed that knowledge. Very basic stuff even. Like highschool trigonometry (did some stuff with that a while back). Most programmers are just glorified plumbers that stick things together that others have built. They aren't designing new databases (for example) but simply using them. Which tends to be a lot easier. Though it helps to understand their general design and limitations. And if you are going to build a database, you might want to read up on a thing or two.

There is a wide range of esoteric topics you can dive into and learn a lot about. Diving into some of those in university is useful because it prepares you for a lifetime of needing to learn to wrap your head around random weird shit constantly that you need to understand to do the job. The point is not learning all that stuff upfront but simply learning enough that you can learn more when you need to. So, studying math and some other topics is a good preparation for that. You'll forget most of it if you don't use it. But when you need to, refreshing what you knew isn't that big of a deal.

The skill isn't in knowing that stuff but in being able to master that stuff.

cableshaft•4mo ago
Certain fields need it more than others. Graphics and vide game development needs more math than web app development (well, usually. Sometimes you need to implement a formula), including trigonometry.

I used a bunch of trigonometry when I was making 2D action games, getting characters to move about the screen and move smoothly at all sorts of angles, for one example. I also used Sine functions a lot for UI animations, making things looks like they're hovering or oscillating up and down.

I think one of the benefits of these classes, though, and university classes in general, is that even if you don't use or really remember the specifics decades later, you're at least aware of how these problems can be solved, and can look up and verify potential solutions much quicker than if you hadn't ever been exposed to it at all.

donatj•4mo ago
> IMHO math in general is overrated for general purpose programming. I had plenty of math in college in the early nineties. I rarely need or use any of it. And when I do, I need to look up a lot of stuff

The value isn't in knowing how to do math, it's in knowing when.

The value of a math class is far less in learning and remembering exactly how and, far more in learning what you can do with it so you can spot possible solutions when they arise. Expanding your mental toolkit.

tikhonj•4mo ago
There are lots of things that we should collectively be doing as an industry but, largely, aren't.
hansvm•4mo ago
There's value in "being able to master that stuff," and there's value in "having mastered that stuff." The latter lets you trim a lot of possible designs from your search space nearly instantly, letting you focus on routes which are actually viable. The former is only of similar power when you know the design in advance or there aren't many possible solutions.

For a simple example, suppose you need to operate on `n` permutations of an enormous collection of data (far more than fits in RAM or disk), and you need those permutations to be re-usable.

One simple solution is to shuffle the indices `n` times and store the results in your cluster, but even the shuffle process is slow with normal techniques because of inter-machine random-access bandwidth issues. When using those shuffled indices for anything, you're again bandwidth-limited if the task doesn't require access of every index.

With just a tiny bit of a math background, you'll recognize that an O(1)-state shuffle is possible, where you can create some `Permutation` object with a `permute()` method, taking in an index and outputting the corresponding index in your hypothetical shuffle. That permutation will be CPU-bound rather than bandwidth-bound.

The problem with "being able to master stuff" is that your search process in the design space is slow. If I went and told you that an O(1)-state shuffle existed and would be good for the problem, sure, you'd be able to go code that up without issues. What's the chance that you'd even know to try though?

> wide range of esoteric topics ... prepares you for a lifetime of learning

That's part of it, but each of those esoteric topics also give new ideas something to latch onto. Our brains are associative, and being able to look at a new thing and tie it to a few esoteric concepts is a bit of a superpower, even if the association is weak. The difference between knowing nothing other than how to learn and knowing what's vaguely potentially possible or not is weeks or months of research. It's the difference between having to do the dumb, slow thing and being the person promoted for saving $1m/yr fixing whatever you wrote. You can get by for a long time, maybe your entire career, just making shit work, but if you're looking for more money or prestige then there are better routes.

thethirdone•4mo ago
What "O(1)-state shuffle" could you possibly be talking about? It takes `O(nlogn)` space to store a permutation of list of length n. Any smaller and some permutations will be unrepresentable. I am very aware of this because shuffling a deck of cards correctly on a computer requires at least 200 random bits.

If the requirements are softer than "n random permutations", there might be a lot of potential solutions. It is very easy to come up with "n permutations" if you have no requirements on the randomness of them. Pick the lowest `k` such that `n < k!`, permute the first k elements leaving the rest in place, and now you have n distinct permutations storeable in `O(log(n)` (still not O(1) but close).

I know this is not really your point, but misusing `O(1)` is a huge pet peeve of mine.

hansvm•4mo ago
It's O(1) if you don't need access to every permutation (common in various monte carlo applications). 64-128 bits of entropy is good enough for a lot of applications, and that's all you get from any stdlib prng, so that's what I was comparing it to.

Those sorts of applications would tend to not work well with a solution leaving most elements in the same place or with the same relative ordering.

gopher_space•4mo ago
> What's the chance that you'd even know to try though?

> [...] esoteric topics also give new ideas something to latch onto. Our brains are associative, and being able to look at a new thing and tie it to a few esoteric concepts is a bit of a superpower, even if the association is weak. The difference between knowing nothing other than how to learn and knowing what's vaguely potentially possible or not is weeks or months of research.

The only point I'd add to your paragraph is that this applies to every domain when you're on the job, not just math. I live in constant terror of discovering that other disciplines solved my problem like a hundred years ago.

odyssey7•4mo ago
I don't know, I once messed up a Big Tech interview question that was about enumerative combinatorics.
acheron•4mo ago
Falsehoods Programmers Believe About Enumerative Combinatorics

Enumerative Combinatorics Considered Harmful

CamperBob2•4mo ago
Enumerative Combinatorics Is All You Need
twoodfin•4mo ago
Lambda: The Ultimate Enumerative Combinator
krackers•4mo ago
The unreasonable effectiveness of Enumerative Combinatorics
relaxing•4mo ago
Anyone else have the combinatorics song from Square One TV forever burned into their brain?

A Cyndi Lauper soundalike explains how many unique bands she can form by choosing from an expanding pool of musicians. Catchy!

https://youtu.be/w0i_ZFlGTVY?si=ThEcjtYvivMkBgcv

zahlman•4mo ago
For me it's got to be "Nine Nine Nine".
rck•4mo ago
Just about everything that a non-specialist in combinatorics needs to know about counting can be found in Rota's twelvefold way, which lists the 12 counting problems that you can define for finite sets and shows how to solve them:

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

This also takes care of most of discrete probability.

tmoertel•4mo ago
What's the deal with this notice, presumably injected by GitHub into the hosted code samples in the article:

> This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below.

david_allison•4mo ago
https://github.blog/changelog/2021-10-31-warning-about-bidir...

https://trojansource.codes/

barbazoo•4mo ago
I didn’t quite get from the write up what it is that every programmer should know about enumerative combinatorics or why it’s a relevant topic for programmers at all honestly.
simpaticoder•4mo ago
This has the flavor of a post written by a programmer who got a particularly interesting interview question. They continued working on it when they got home. Hey, it's happened to the best of us (I was once asked to write "tic tac toe" and at the time I was really getting into functional programming and simple data structures, and for some reason I didn't stop working on the problem for a few days because I wanted to generalize tic-tac-toe in scale, depth, e.g. deeply nested tic-tac-toe, and dimension, where the board has more than 2 dimensions) but I'm not sure I would have written a paper "What every programmer should know about implementing nested tic-tac-toe on large arrays in high dimensions" because the answer is, almost certainly, nothing.
getnormality•4mo ago
I think the best single thing for programmers to know about combinatorics is combinatorial data structures. If you have a collection of objects and you need to iterate over all possible combinations, subsets, or permutations of that collection, libraries like Python's itertools do this for you. The resulting code will be clearer, more concise, and more reliable than if you reinvent the wheel with some hand-coded rat's nest of loops.

If you need to know how long that's going to take, you'll need to know some enumerative combinatorics.

mcphage•4mo ago
> combinatorial data structures

What do you mean by "combinatorial data structures"?

qazxcvbnm•4mo ago
For those who are not aware, knowing how to count the number of structures is (nearly) the same as knowing how to encode said structure as an integer (space-optimally) (the naive general algorithm would not have good time complexity); to convert to integer, simply define some ordering on said structures, enumerate until you find your structure, the index of the structure is the integer encoding; conversely, to decode, simply list all structures and pick the structure with the index of the integer.
manmal•4mo ago
That reminds me of https://everyuuid.com/
abeppu•4mo ago
> simply list all structures and pick the structure with the index of the integer

This sounds like to decode a single item you have to do work proportional to the cardinality of the set? Optimal space efficiency comes at a high computational overhead?

qazxcvbnm•4mo ago
Yeah, its a theoretical general connection. Once you’ve pinned down the specific structure and know how many structures to skip by virtue of knowing how to count them, it becomes a somewhat practical algorithm.
jmount•4mo ago
As a fan of combinatorics, I love people looking into the topic. Though most of what a programmer would find useful are approximations or trends which are handled well by the Master theorem ( https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_al... ). For those deeply interested in the deep math of combinatorics I recommend Flajolet, Sedgewick, *Analytic Combinatorics, Cambridge 2009.
louthy•4mo ago
“Why every programmer should ignore articles with ‘every’ in the title”
rendaw•4mo ago
I do think this is something that's relevant to most programmers unlike other commenters -- but the article goes from "counting database IDs" (a good practical use case!) to "integer partitions" and I was immediately lost. No explanation of how those relate to calculating the database ID space, how those fit into the bigger scheme, etc.

I think the article needs to demonstrate to the reader how every section is relevant to them - either by building off a relevant issue discussed in a previous section or tying it to some real world use case.

McUsr•4mo ago
I found the way of counting the number of permutations useful.

The Hockey stick identity was something long forgotten and fun re-discovering.

The way they are generated not so much.

So, Sedgewick has an algorithm for generating permutations that are highly efficient, and ijust as difficult to grasp. But there is a paper out there where he explains the algorithm graphically, which makes it understandable.

So I haven't worked through the way to get the composition that is the n'th permutation yet, but I guess I will suffer.

It is not well written, and for instance the wrong term for partition, versus composition is made in the explanatory graphic at the top of the article.

Still, I think it was worth reading, I have made several programs utilizing permutations, and I might improve one or two of them after having read this, with some new knowledge.