frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

FracturedJson

https://github.com/j-brooke/FracturedJson/wiki
195•PretzelFisch•2h ago•47 comments

10 years of personal finances in plain text files

https://sgoel.dev/posts/10-years-of-personal-finances-in-plain-text-files/
226•wrxd•4h ago•76 comments

39th Chaos Communication Congress Videos

https://media.ccc.de/b/congress/2025
155•Jommi•2h ago•15 comments

Standard Ebooks: Public Domain Day 2026 in Literature

https://standardebooks.org/blog/public-domain-day-2026
199•WithinReason•7h ago•35 comments

What You Need to Know Before Touching a Video File

https://gist.github.com/arch1t3cht/b5b9552633567fa7658deee5aec60453/
65•qbow883•5d ago•31 comments

Assorted less(1) tips

https://blog.thechases.com/posts/assorted-less-tips/
38•todsacerdoti•3h ago•8 comments

HPV vaccination reduces oncogenic HPV16/18 prevalence from 16% to <1% in Denmark

https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2025.30.27.2400820
234•stared•5h ago•119 comments

Parental Controls Aren't for Parents

https://beasthacker.com/til/parental-controls-arent-for-parents.html
118•beasthacker•2h ago•83 comments

Show HN: Dealta – A game-theoretic decentralized trading protocol

https://github.com/orgs/Dealta-Foundation/repositories
23•kalenvale•3h ago•8 comments

Why users cannot create Issues directly

https://github.com/ghostty-org/ghostty/issues/3558
547•xpe•14h ago•195 comments

Happy Public Domain Day 2026

https://publicdomainreview.org/blog/2026/01/public-domain-day-2026/
357•apetresc•14h ago•71 comments

A small collection of text-only websites

https://shkspr.mobi/blog/2025/12/a-small-collection-of-text-only-websites/
36•danielfalbo•4h ago•9 comments

Can I throw a C++ exception from a structured exception?

https://devblogs.microsoft.com/oldnewthing/20170728-00/?p=96706
33•birdculture•4d ago•7 comments

Show HN: Jsonic – Python JSON serialization that works

https://medium.com/dev-genius/jsonic-python-serialization-that-just-works-3b38d07c426d
12•orrbenyamini•6d ago•5 comments

A website to destroy all websites

https://henry.codes/writing/a-website-to-destroy-all-websites/
643•g0xA52A2A•19h ago•328 comments

Matz 2/2: The trajectory of Ruby's growth, Open-Source Software today etc.

https://en.kaigaiiju.ch/episodes/matz2
66•kibitan•6d ago•31 comments

One Number I Trust: Plain-Text Accounting for a Multi-Currency Household

https://lalitm.com/post/one-number-i-trust/
83•ayi•5h ago•53 comments

Show HN: I built a clipboard tool to strip/keep specific formatting like Italics

https://custompaste.com
17•EvaWorld9•3h ago•8 comments

I'm having the worst career winter of my life

30•mariogintili•1h ago•30 comments

Show HN: OfferGridAI – side-by-side comparison of real estate offers from PDFs

https://offergridai.com
15•beechwood•2h ago•19 comments

FreeBSD: Home NAS, part 1 – configuring ZFS mirror (RAID1)

https://rtfm.co.ua/en/freebsd-home-nas-part-1-configuring-zfs-mirror-raid1/
94•todsacerdoti•8h ago•12 comments

The Netflix Simian Army (2011)

https://netflixtechblog.com/the-netflix-simian-army-16e57fbab116
6•rognjen•1h ago•3 comments

Cameras and Lenses (2020)

https://ciechanow.ski/cameras-and-lenses/
470•sebg•22h ago•53 comments

Joseph Campbell Meets George Lucas – Part I (2015)

https://www.starwars.com/news/mythic-discovery-within-the-inner-reaches-of-outer-space-joseph-cam...
30•indigodaddy•1d ago•9 comments

Can Bundler be as fast as uv?

https://tenderlovemaking.com/2025/12/29/can-bundler-be-as-fast-as-uv/
298•ibobev•18h ago•90 comments

Contact the ISS

https://www.ariss.org/contact-the-iss.html
73•logikblok•5d ago•21 comments

Marmot – A distributed SQLite server with MySQL wire compatible interface

https://github.com/maxpert/marmot
142•zX41ZdbW•13h ago•28 comments

Linux is good now

https://www.pcgamer.com/software/linux/im-brave-enough-to-say-it-linux-is-good-now-and-if-you-wan...
950•Vinnl•19h ago•770 comments

Why do Americans hate A.I.?

https://www.nytimes.com/2026/01/02/briefing/why-do-americans-hate-ai.html
6•roxolotl•34m ago•1 comments

BYD Sells 4.6M Vehicles in 2025, Meets Revised Sales Goal

https://www.bloomberg.com/news/articles/2026-01-01/byd-sells-4-6-million-vehicles-in-2025-meets-r...
306•toomuchtodo•23h ago•489 comments
Open in hackernews

FracturedJson

https://github.com/j-brooke/FracturedJson/wiki
189•PretzelFisch•2h ago

Comments

damnitbuilds•2h ago
Nice.

And BTW, thanks for supporting comments - the reason given for keeping comments out of standard Json is silly ( "they would be used for parsing directives" ).

Xymist•2h ago
It's a pretty sensible policy, really. Corollary to Hyrum's Law - do not permit your API to have any behaviours, useful or otherwise, which someone might depend on but which aren't part of your design goals. For programmers in particular, who are sodding munchkins and cannot be trusted not to do something clever but unintended just because it solves a problem for them, that means aggressively hamstringing everything.

A flathead screwdriver should bend like rubber if someone tries to use it as a prybar.

nodja•1h ago
On one hand, it has made json more ubiquitous due to it's frozen state. On another hand, it forces everyone to move to something else and fragments progress. It would be much easier for people to move to json 2.0 rather than having hundreds of json + x standards. Everyone is just reinventing json with their own little twist that I feel sad that we haven't standardized to a single solution that doesn't go super crazy like xml.

I don't disagree with the choice, but seeing how things turned out I can't just help but look at the greener grass on the other side.

libria•1h ago
> A flathead screwdriver should bend like rubber if someone tries to use it as a prybar.

Better not let me near your JSON files then. I pound in wall anchors with the bottom of my drill if my hammer is not within arms reach.

mystifyingpoi•1h ago
> A flathead screwdriver should bend like rubber if someone tries to use it as a prybar.

While I admire his design goals, people will just work around it in a pinch by adding a "comment" or "_comment" or "_comment_${random_uuid}", simply because they want to do the job they need.

If your screwdriver bends like a rubber when prying, damn it, I'll just put a screw next to it, so it thinks it is used for driving screws and thus behaves correctly.

pixl97•8m ago
And we wonder why people are calling for licensed professional software engineers.
speed_spread•38m ago
JSON is used as config files and static resources all the time. These type of files really need comments. Preventing comments in JSON is punishing the wide majority to prevent a small minority from doing something stupid. But stupid gonna stupid, it's just condescending from Mister JSON to think he can do anything about it.
patates•2h ago
XML people were doing crazy things in the Java/.NET world and "<!--[if IE 6]>" was still a thing in HTML when JSON was being designed.

I also would have wanted comments, but I see why Crockford must have been skeptical. He just didn't want JSON to be the next XML.

frizlab•2h ago
Unrelated: why spaces inside the parentheses? It’s not the first time I see this, but this is incorrect!
cromulent•1h ago
JSON doesn't have parentheses, but it does have braces and brackets. The JSON spec specifically allows spaces.

> Insignificant whitespace is allowed before or after any token.

frizlab•58m ago
I was talking about the parent comment, which has spaces inside the parenthesis (I do prefer no spaces inside brackets and braces in my JSONs, but that’s another story).
polshaw•2h ago
Is there an option for it to read the contents from a pipe? that's by far my biggest use for the jq app.
tuetuopay•1h ago
this would be amazing to be chained with jq, that was my first thought as well.
simonw•1h ago
There's a C# CLI app in the repo: https://github.com/j-brooke/FracturedJson/blob/main/Fracture...

  Output is to standard out, or a file specified by the --outfile switch.  Input is from either standard in, or from a file if using the --file switch
It looks like both the JavaScript version and the new Python C# wrapper have equivalent CLI tools as well.
pimlottc•28m ago
You can (usually) specify the input file name as “-“ (single hyphen) to read from stdin
barishnamazov•2h ago
This is pretty cool, but I hope it isn't used for human-readable config files. TOML/YAML are better options for that. Git diff also can be tricky with realignment, etc.

I can see potential usefulness of this is in debug mode APIs, where somehow comments are sent as well and are rendered nicely. Especially useful in game dev jsons.

silvestrov•1h ago
Just say Norway to YAML.
merelysounds•1h ago
This is a reference to YAML parsing the two letter ISO country code for Norway:

    country: no
As equivalent to a boolean falsy value:

    country: false
It is a relatively common source of problems. One solution is to escape the value:

    country: “no”
More context: https://www.bram.us/2022/01/11/yaml-the-norway-problem/
Y-bar•1h ago
We stopped having this problem over ten years ago when spec 1.1 was implemented. Why are people still harking on about it?
actionfromafar•1h ago
Now add brackets and end-tags, I'll reconsider. ;)
Y-bar•34m ago
Brackets works fine:

    Roles: [editor, product_manager]
End tags, that I’m not sure what that is. But three dashes is part of the spec to delineate sections:

    something:
        setting: true
    ---
    another:
        thing: false
Etheryte•29m ago
Because there's a metric ton of software out there that was built once upon a time and then that bit was never updated. I've seen this issue out in the wild across more industries than I can count.
actionfromafar•1h ago
Yaml is the worst. Humans and LLMs alike get it wrong. I used to laugh at XML but Yaml made me look at XML wistfully.

Yaml - just say Norway

airstrike•1h ago
The Norway issue is a bit blown out of proportion seeing as the country should really be a string `"no"` rather than the `no` value
actionfromafar•40m ago
Yeah, but it's a fun slogan. My real peeve is constantly getting the spaces wrong and no tooling to compensete for its warts. If there were linters and test frameworks and unit tests etc for yaml, I'd just sigh and move on. But current situation is, for instance in ADO Yaml: "So it's time to cut a release and time is short - we have a surprise for you! This will make some condition go true which triggers something not tested up till now, you will now randomly commit shit on the release branch until it builds again."

Stuff that would have been structurally impossible in XML will happen in yaml. And I don't even like XML.

marxisttemp•20m ago
YAML strings should really require delimiters rather than being context-dependent.
frizlab•2h ago
This is interesting. I’d very much like to see a code formatter do that kind of thing; currently formatters are pretty much inflexible, which makes getting structure out of a formatted code sometimes hard.
barishnamazov•1h ago
Right. In my previous work, I wrote a custom XML formatter for making it look table-like which was our use case. Of course, an ideal solution would have been to move away from XML, but can't run away from legacy.
thechao•1h ago
I just built a C++ formatter that does this (owned by my employee, unfortunately). There's really only two formatting objects: tab-aligned tables, and single line rows. Both objects also support a right-floating column/tab aligned "//" comment.

Both objects desugar to a sequence of segments (lines).

The result is that you can freely mix expression/assignment blocks & statements. Things like switch-case blocks & macro tables are suddenly trivial to format in 2d.

Because comments are handled as right floating, all comments nicely align.

I vibe coded the base layer in an hour. I'm using with autogenerated code, so output is manually coded based on my input. The tricky bit would be "discovering" tables & block. I'd jus use a combo of an LSP and direct observation of sequential statements.

marxisttemp•19m ago
You built it, but your employee owns it? That sounds highly unusual.
shiandow•1h ago
This looks very readable. The one example I didn't like is the expanded one where it expanded all but 1 of the elements. I feel like that should be an all or norhing thing, but there's bound to be edge cases.
londons_explore•1h ago
Great. Now integrate this into every JSON library and tool so I get to see it's output more often
tomtomtom777•1h ago
I think integration into jq would be both powerful and sufficient.
hnlmorg•47m ago
Powerful but not sufficient. There’s plenty of us who don’t use jq for various reasons.
simonw•1h ago
It looks like there are two maintained implementations of this at the moment - one in C# https://github.com/j-brooke/FracturedJson/wiki/.NET-Library and another in TypeScript/JavaScript https://github.com/j-brooke/FracturedJsonJs. They each have their own test suite.

There's an older pure Python version but it's no longer maintained - the author of that recently replaced it with a Python library wrapping the C# code.

This looks to me like the perfect opportunity for a language-independent conformance suite - a set of tests defined as data files that can be shared across multiple implementations.

This would not only guarantee that the existing C# and TypeScript implementations behaved exactly the same way, but would also make it much easier to build and then maintain more implementations across other languages.

Interestingly the now-deprecated Python library does actually use a data-driven test suite in the kind of shape I'm describing: https://github.com/masaccio/compact-json/tree/main/tests/dat...

That new Python library is https://pypi.org/project/fractured-json/ but it's a wrapper around the C# library and says "You must install a valid .NET runtime" - that makes it mostly a non-starter as a dependency for other Python projects because it breaks the ability to "pip install" them without a significant extra step.

odyssey7•37m ago
This is a good idea, though I don’t think it would guarantee program equivalence beyond the test cases.
rafabulsing•28m ago
Well yeah, but then any discrepancies that are found can be discussed (to decide which of the behaviors is the expected one) and then added as a test for all existing and future implementations.
simonw•27m ago
Depends on how comprehensive the test suite is.

And OK it's not equivalent to a formal proof, but passing 1,000+ tests that cover every aspect of the specification is pretty close from a practical perspective, especially for a visual formatting tool.

boxed•23m ago
With mutation testing you can guarantee that all the behavior in the code is tested.
DJBunnies•1h ago
While I wish JSON formally supported comments, it seems more sensible (compatible) to just nest them inside of a keyed list or object as strings.

  {
    foo: "bar",
    ans: 42,
    comments: {
      ans: "Douglas Adams"
    }
  }
Etheryte•32m ago
Works right up until you get an entity where the field `comments` is suddenly relevant and then you need to go change everything everywhere. Much better to use the right tool for the job, if you want JSONC, be explicit and use JSONC.
ljm•29m ago
Personally, I think if your JSON needs comments then it's probably for config or something the user is expected to edit themselves, and at that point you have better options than plain JSON and adding commentary to the actual payload.

If it's purely for machine consumption then I suspect you might be describing a schema and there are also tools for that.

kayhantolga•30m ago
These JSON files are actually readable, congrats. I’m wondering whether this could be handled via an additional attached file instead. For example, I could have mycomplexdata.json and an accompanying mycomplexdata.jsonfranc. When the file is opened in the IDE, the IDE would merge the two automatically.

That way, the original JSON file stays clean and isn’t polluted with extra data.

vitaelabitur•29m ago
I tokenized these and they seem to use around 20% less tokens than the original JSONs. Which makes me think a schema like this might optimize latency and costs in constrained LLM decoding.

I know that LLMs are very familiar with JSON, and choosing uncommon schemas just to reduce tokens hurts semantic performance. But a schema that is sufficiently JSON-like probably won't disrupt model path/patterns that much and prevent unintended bias.

nurumaik•18m ago
Minified json would use even less tokens
kstenerud•19m ago
This is great! The more human-readable, the better!

I've also been working in the other direction, making JSON more machine-readable:

https://github.com/kstenerud/bonjson/

It has EXACTLY the same capabilities and limitations as JSON, so it works as a drop-in replacement that's 35x faster for a machine to read and write.

No extra types. No extra features. Anything JSON can do, it can do. Anything JSON can't do, it can't do.