frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Kagi releases alpha version of Orion for Linux

https://help.kagi.com/orion/misc/linux-status.html
94•HelloUsername•2h ago•42 comments

Mathematics for Computer Science (2018) [pdf]

https://courses.csail.mit.edu/6.042/spring18/mcs.pdf
224•vismit2000•7h ago•32 comments

Linux Runs on Raspberry Pi RP2350's Hazard3 RISC-V Cores (2024)

https://www.hackster.io/news/jesse-taube-gets-linux-up-and-running-on-the-raspberry-pi-rp2350-s-h...
64•walterbell•5d ago•19 comments

How wolves became dogs

https://www.economist.com/christmas-specials/2025/12/18/how-wolves-became-dogs
47•mooreds•3d ago•30 comments

When Kitty Litter Caused a Nuclear Catastrophe

https://practical.engineering/blog/2025/4/15/when-kitty-litter-caused-a-nuclear-catastrophe
16•tape_measure•4d ago•3 comments

Sorted string tables (SST) from first principles

https://www.bitsxpages.com/p/sorted-string-tables-sst-from-first
16•apurvamehta•3d ago•1 comments

How to Code Claude Code in 200 Lines of Code

https://www.mihaileric.com/The-Emperor-Has-No-Clothes/
609•nutellalover•19h ago•196 comments

Samba Was Written (2003)

https://download.samba.org/pub/tridge/misc/french_cafe.txt
96•tosh•5d ago•38 comments

European Commission issues call for evidence on open source

https://lwn.net/Articles/1053107/
314•pabs3•7h ago•211 comments

Embassy: Modern embedded framework, using Rust and async

https://github.com/embassy-rs/embassy
257•birdculture•15h ago•113 comments

Hacking a Casio F-91W digital watch (2023)

https://medium.com/infosec-watchtower/how-i-hacked-casio-f-91w-digital-watch-892bd519bd15
140•jollyjerry•4d ago•40 comments

Sopro TTS: A 169M model with zero-shot voice cloning that runs on the CPU

https://github.com/samuel-vitorino/sopro
287•sammyyyyyyy•18h ago•108 comments

What happened to WebAssembly

https://emnudge.dev/blog/what-happened-to-webassembly/
228•enz•7h ago•193 comments

Bose has released API docs and opened the API for its EoL SoundTouch speakers

https://arstechnica.com/gadgets/2026/01/bose-open-sources-its-soundtouch-home-theater-smart-speak...
2396•rayrey•23h ago•358 comments

Richard D. James aka Aphex Twin speaks to Tatsuya Takahashi (2017)

https://web.archive.org/web/20180719052026/http://item.warp.net/interview/aphex-twin-speaks-to-ta...
209•lelandfe•17h ago•73 comments

Photographing the hidden world of slime mould

https://www.bbc.com/news/articles/c9d9409p76qo
69•1659447091•1w ago•17 comments

Show HN: Executable Markdown files with Unix pipes

77•jedwhite•12h ago•59 comments

The Jeff Dean Facts

https://github.com/LRitzdorf/TheJeffDeanFacts
501•ravenical•1d ago•173 comments

The unreasonable effectiveness of the Fourier transform

https://joshuawise.com/resources/ofdm/
265•voxadam•19h ago•112 comments

AI coding assistants are getting worse?

https://spectrum.ieee.org/ai-coding-degrades
362•voxadam•23h ago•586 comments

1ML for non-specialists: introduction

https://pithlessly.github.io/1ml-intro
24•birdculture•6d ago•5 comments

He was called a 'terrorist sympathizer.' Now his AI company is valued at $3B

https://sfstandard.com/2026/01/07/called-terrorist-sympathizer-now-ai-company-valued-3b/
242•newusertoday•20h ago•319 comments

Why I left iNaturalist

https://kueda.net/blog/2026/01/06/why-i-left-inat/
226•erutuon•13h ago•126 comments

Mysterious Victorian-era shoes are washing up on a beach in Wales

https://www.smithsonianmag.com/smart-news/hundreds-of-mysterious-victorian-era-shoes-are-washing-...
50•Brajeshwar•3d ago•16 comments

Anthropic blocks third-party use of Claude Code subscriptions

https://github.com/anomalyco/opencode/issues/7410
453•sergiotapia•11h ago•369 comments

Systematically Improving Espresso: Mathematical Modeling and Experiment (2020)

https://www.cell.com/matter/fulltext/S2590-2385(19)30410-2
56•austinallegro•6d ago•12 comments

Google AI Studio is now sponsoring Tailwind CSS

https://twitter.com/OfficialLoganK/status/2009339263251566902
706•qwertyforce•19h ago•260 comments

Ushikuvirus: Newly discovered virus may offer clues to the origin of eukaryotes

https://www.tus.ac.jp/en/mediarelations/archive/20251219_9539.html
116•rustoo•1d ago•35 comments

Why is there a tiny hole in the airplane window? (2023)

https://www.afar.com/magazine/why-airplane-windows-have-tiny-holes
60•quan•4d ago•31 comments

Fixing a Buffer Overflow in Unix v4 Like It's 1973

https://sigma-star.at/blog/2025/12/unix-v4-buffer-overflow/
145•vzaliva•20h ago•37 comments
Open in hackernews

Don't Use ISO/IEC 14977:1996 Extended Backus-Naur Form (EBNF) (2023)

https://dwheeler.com/essays/dont-use-iso-14977-ebnf.html
51•gslin•7mo ago

Comments

dwheeler•7mo ago
I'm the author. Ask me anything!
teddyh•7mo ago
Is there any documented version of EBNF suitable for general use?
ggm•7mo ago
IETF uses ABNF https://datatracker.ietf.org/doc/html/rfc5234

Commentaries say its different, but the differences might not matter?

ucarion•7mo ago
Is the main objection to RFC5234 its weird syntax for repetition (*THING, [THING], 5THING)?
dwheeler•7mo ago
More or less. It's a perfectly workable approach, but it's the reverse of what practically everyone else does, as well as the reverse of regex notation. Common notations should be common.
90s_dev•7mo ago
What's your favorite programming language and why is it C?
dwheeler•7mo ago
I like lots of programming languages, I don't really have 1 favorite. I like the relative simplicity of C, and I have long familiarity with it, but its lack of memory safety and endless undefined behavior make it more difficult to safely use than necessary.
arh68•7mo ago
Great article. Informative, qualified. I had not realized how splintered the [E]BNF syntax is, like in the way I already knew timestamps are (3339 vs 8601 vs mm/dd/yyyy &c &c).

Q: what's your ideal way to write Unicode characters clearly? In the W3C/XML spec they'll have stuff like [#x200C-#x200D] but I have no idea what those are, without like a dictionary on hand. Points for specificity, but it doesn't scream "readable".

Your point about standards-not-publicly-available is unfortunately similar to, well, laws. In some areas, "the laws" themselves are not public (!) though perhaps it's a digression better to not get into

pedantically, s/unabiguously/unambiguously/g

dwheeler•7mo ago
In many cases I think the character itself is clearest. Thankfully most tools can handle Unicode today. That's not always unambiguous, so sometimes an annotation may be helpful, and if the spec is freely available you can copy amd paste from it.
alfiedotwtf•7mo ago
So if not EBNF for defining grammars, what should people be using ie what would be your preferred that would be powerfully enough and general purpose?

I’ve never seen PCRE used for grammars and not sure if it would be powerfully enough for all cases, but personally I think it would be pretty cool since I find it easier to read than EBNF and it’s so widely used people can slot a specification right into code and it should just work

dwheeler•7mo ago
One of those alternative specifications is in the W3C Extensible Markup Language (XML) 1.0 (Fifth Edition). As I note, "The W3C specification is much more similar to typical regex syntax making it much easier for today's software developers to understand), avoids the key problems of 14977:1996, and is already clearly described." It's freely available from w3c. You don't need to use XML to use it.
alfiedotwtf•7mo ago
Oops, sorry. When you said that I thought there was going to be an actual specification of the grammar specification itself rather than the application in use. Ok cool, got it thanks :)
HarHarVeryFunny•7mo ago
> One of the most common operations in a grammar, by far, is concatenation (aka sequencing). ISO/IEC 14977:1996 requires that a comma be used for every concatenation, so any sequence of N symbols will have N-1 commas.

It seems they were trying really hard to make EBNF NOT look like the grammar it is representing.

> ISO/IEC 14977:1996 represents “one or more” as { symbol }- which means “0 or more symbols, and then subtract the empty set

It's almost as if they were looking for a special syntax to express "1 or more".

Bizarre ... just bizarre.

mannyv•7mo ago
(4) -> I would say that the lack of regex use is a plus. Yes I use them all the time. For anything complicated I'll just ask ChatGPT to make it. And of course, are regexs all the same across everything?

(5) -> Once you get it you get it.

Every language specification is odd in its own special way. In any case I haven't really seen BNF/EBNF used in the last few years, so this is probably a moot discussion.

alfiedotwtf•7mo ago
How are the grammars you see on a regular basis specified if not by BNF?
mdaniel•7mo ago
I'm not the person you asked but I believe there are two broad classes of answers: hand rolled parsers and PEG grammars

e.g. https://github.com/llvm/llvm-project/blob/llvmorg-20.1.5/cla... and https://github.com/python/cpython/blob/v3.13.3/Grammar/pytho...

alfiedotwtf•7mo ago
Hand rolled and PEG are nice implementation wise, but to think about the grammar itself and needing to debug it not so much.

Maybe it's a personal thing, but I'd rather something textual that generated a parser than have to hand roll rec decent etc.

Mofpofjis•7mo ago
The complaints about ISO Prolog, and about ISO standards generally not being available publicly / at no cost, resonate a lot with me. If you compare eg. the POSIX and the ISO C development workflows, and their respective end results, there's a world of difference.

"ISO" (International Standards Organization), where you have "national member bodies", should absolutely be a thing of the past for programming languages (or for anything related to computing). My country's national body's own homepage has a huge tirade, aiming to "dispel myths", such as the "myth" that "standards should be available free of charge". Meanwhile, lots of std orgs have published computing standards with various degrees of openness already.

ISO is a relic when it comes to computing. (So are other standards bodies that choose to remain proprietary; like those behind PCI, SCSI, ... Computing is ubiquitous and these bodies should be forced open by law, for the public interest.)

convolvatron•7mo ago
doesn’t have to be a legal enforcement if vendors just don’t work with bodies that insist on this counterproductive notion of standards as a profit center.

unfortunately i think there us some degree of collusion here. it’s easier to get your existing proprietary standards ratified if there are fewer players in the room and the palms that need to be greased are clearly marked

OneDeuxTriSeiGo•7mo ago
It's not exactly clear cut. Standards are unfortunately in general quite expensive to produce and maintain.

Software oriented standards are certainly cheaper than metallurgy, machining, manufacturing, building construction, environmental, health & safety, and the other big classes of standards however they still have quite a cost.

Historically the ISO standards development process for software standards (like the C or C++ standards) happened only in small part asynchronously and historically required large, extended-duration committee meetings where all the details were hashed out in person. This process only really started to change during COVID but even then it's still a very in-person synch-heavy process and that's not exactly cheap to run.

And with most standards, the FDIS (final draft international standard) revisions are made public. They can be found online even if they can be annoying to dig up. For 99% of cases the FDIS revision is more than sufficient and is identical to the published standard minus a typo or grammar mistake here and there.

As the average SW dev or engineer of course you don't need to fork over the cost for the published standard but any large company will probably purchase a catalog of standards rather than deal with the overhead of dealing with FDIS (and any legal risk from not following the "true" standard).

It is also worth noting that pretty much every university library (and many public non-university libraries) has some contract or service that provides access to copies of the standard to members free of cost.

convolvatron•7mo ago
I used to work in standards. my organization supported my salary, my travel, and paid membership fees. yes, the standards body did rent the hotel ballroom, and run a website. but otherwise the task of making the sausage was all volunteer.
Mofpofjis•7mo ago
Evidence to the contrary (anecdotal, admittedly):

- https://github.com/EbookFoundation/free-programming-books/is... -- "The most recent freely available draft of C17/C18 used to be c17_updated_proposed_fdis.pdf, but it's no longer available directly and you need to use Wayback Machine to download it."

- I used to work for a multinational software company whose bread-and-butter was C. The company had indeed purchased a catalog of standards, but that catalog didn't include ISO C. When I formally proposed just that, they rejected it (and kind of made me feel uncomfortable about my proposal, to boot).

fanf2•7mo ago
Yeah

For the horrible tedious details, see the “Policy for the distribution of ISO publications and the protection of ISO’s copyright” aka ISO POCOSA 2012.

https://archive.org/details/iso-pocosa

unixhero•7mo ago
Scsi was great
sevensor•7mo ago
It really was.
TheAceOfHearts•7mo ago
Maybe someday someone will find the courage to do a full dump of every ISO standard into LibGen or SciHub.
pjmlp•7mo ago
POSIX is hardly much more open than ISO, it also has its issues, and contributing to OpenGroup is hardly like doing a pull request.

So is Khronos also a relic? After all if the standards are made available, the contributions are "you have to be this tall to play" kind of entry.

I do agree that ISO should improve itself to modern times, though.

kazinator•7mo ago
The Open Group hosts hosts a searchable, hyper-linked form of the specification.

Here is the 2024 update:

https://pubs.opengroup.org/onlinepubs/9799919799/

If you go to the Main Index there is a link to a Downloads page where you can get a tarball of this stuff in some shape or form for local use.

Vast difference between this and the paywalls put up by ISO and their member organizations, and their free PDFs that have only tables of contents.

pjmlp•7mo ago
Now try to contribute to OpenGroup.

You mean free pdfs like C and C++ drafts?

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf

https://isocpp.org/files/papers/N4860.pdf

Maybe like Ada,

http://ada-auth.org/standards/ada2y.html

Or Fortran,

https://j3-fortran.org/doc/year/23/23-007r1.pdf

Apparently there is a little more than a table of contents, when people actually know where to look.

kazinator•7mo ago
It shouldn't be easy to contribute to POSIX. That shit needs some serious gatekeeping. It's not a side-project whose goal is self-actualization for all participants. The requirements get foisted on everyone and last decades.
Mofpofjis•7mo ago
I agree with you about the seriousness and heft of POSIX (and I definitely know your name from comp.lang.c[.moderated], so I respect your opinion); however, there is no arbitrary gate-keeping around POSIX. If anyone is willing to put in the time and effort, they're welcome to join. This couldn't be more different from other standards orgs where you can only join as a (voting, or observing) representative of an employer that pays an exorbitant yearly membership fee.
Mofpofjis•7mo ago
> Now try to contribute to OpenGroup.

Funnily enough, I had ended up contributing to POSIX without trying to. I just participated in mailing list discussions and in the public bug tracker (reporting issues, commenting on tickets etc), for which I only needed to register a no-strings-attached account -- the absolute minimum for participating in any bug tracker. Unexpectedly, I got named in the "Participants" section of the standard. My head is still spinning.

Here are some links for you:

- SUSv2: https://pubs.opengroup.org/onlinepubs/007908775/idx/index.ht...

- SUSv3, 2004 Edition: https://pubs.opengroup.org/onlinepubs/000095399/nfindex.html

- SUSv4, 2024 Edition: https://pubs.opengroup.org/onlinepubs/9799919799/

You can find links to earlier editions of SUSv3 and SUSv4 here: https://en.wikipedia.org/wiki/Single_UNIX_Specification#Exte...

Austin CSRG landing page: https://www.opengroup.org/austin/

Join the group: https://www.opengroup.org/austin/lists.html

Bug tracker: https://austingroupbugs.net/view_all_bug_page.php

I don't know where the SUSv1 PDFs are, I have local copies; but in 2025, they're at best of historical interest.

tialaramex•7mo ago
Technically ISO is not an abbreviation, their name is just shortened to ISO from the Greek word meaning equal.

The programming language standards in particular are the work of "ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces" which is a sub-committee of the Joint Technical Committee between ISO and the IEC. It's sub-sub-committees all the way down.

I believe ISO processes are ill-suited to this type of work, and that on the whole those languages which still have SC22 working groups would benefit from finding a better home than ISO. The best SDO today (if you can reasonably call the IETF an "organisation" which it says it is not) is the IETF but the IETF doesn't want anything to do with programming languages, so, maybe they could find a home at ECMA where Javascript lives or they could go build their own SDO for purpose.

Mofpofjis•7mo ago
> they could find a home at ECMA where Javascript lives or they could go build their own SDO for purpose

One option is https://www.oasis-open.org/

userbinator•7mo ago
IMHO ABNF is just as annoying to read, especially its insistence on '/' instead of '|' for alternation (when | has universally become the "OR" symbol in other languages) and "%x" for hex prefixes. My preference for syntax descriptions is [ ] for "optional", ",,," or "+" for "1 or more", "*" for "0 or more", and "{min,max}" or "{n}" for repetition ranges, which closely mirrors regex syntax; I'm not sure if this has been standardised or even has a name, but I've seen it far more often than ABNF/EBNF.
Pet_Ant•7mo ago
First thing I noticed was

> rule = definition; comment CR LF

...so it uses CR/LF as a line terminator as opposed to just LF like POSIX does so you are gonna have text editors and other tools just breaking the format on save.

kstenerud•7mo ago
These are some of the many reasons why I developed the Dogma metalanguage.

https://dogma-lang.org/

https://github.com/kstenerud/dogma/blob/master/v1/dogma_v1.0...

That, and also I needed a language that could describe binary data.

mdaniel•7mo ago
Do I correctly understand that you don't currently have a parser generator for .dogma files? I tried clicking around in a few of the adjacent repos without much luck

Anyway, my go-to tire kicking for any such binary file description format is parsing .pdf files, since they are ferociously hard, and include backreferences

kstenerud•7mo ago
I haven't gotten around to writing a parser generator yet. I only wanted this for documentation purposes, and haven't had the spare time to take it further yet.

There are definitely going to be horribly convoluted formats that it can't describe without help (which is where custom functions come in). But it's been able to describe most formats I've thrown at it, so that's good enough for Dogma v1.

I was able to get it to describe minidump without function help...

PJBaker•7mo ago
> every single language document uses its own notation, which is more often than not, a dialect of the (Extended) Backus-Naur Form

I came across this recently while writing an article that references Lua, Go and Python (3.8) syntax. Each of them uses a slightly different form of EBNF.

To make them more easily comparable, I wanted to convert all three to the same format. Looking for something fairly standard (not entirely ad-hoc but also not as formal as ISO/IEC EBNF or RFC 5234 ABNF), I came across Wirth Syntax Notation [0] [1]:

    syntax = { production } .
    production = identifier "=" expression "." .
    expression = term { "|" term } .
    term = factor { factor } .
    factor = identifier | literal | "(" expression ")" | "[" expression "]" | "{" expression "}" .
    literal = "\"" character {character} "\"" .
It turns out that the Go specification already uses WSN [2]. I converted Lua and Python, and then could work with all three language grammars in a consistent, machine-readable notation.

[0] https://en.wikipedia.org/wiki/Wirth_syntax_notation

[1] https://dl.acm.org/doi/10.1145/359863.359883

[2] https://go.dev/ref/spec#Notation

egberts1•7mo ago
Here is a list of all variants of EBNFs:

https://github.com/egberts/vim-syntax-ebnf

And a EBNF format detector:

https://github.com/egberts/filetype-ebnf-grammars

And a master list of all variants of EBNF:

http://www.cs.man.ac.uk/~pjj/bnf/ebnf.html

egberts1•7mo ago
Still use EBNF, so some of my tools, citations, and sources are:

Here is a list of all variants of EBNFs as well as Vim syntax highlighter for EBNF variants:

https://github.com/egberts/vim-syntax-ebnf

And a EBNF format detector:

https://github.com/egberts/filetype-ebnf-grammars

And a master list of all variants of EBNF:

http://www.cs.man.ac.uk/~pjj/bnf/ebnf.html