frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

JSON-LD Explained for Personal Websites

https://hawksley.dev/blog/json-ld-explained-for-personal-websites/
79•ethanhawksley•2h ago•19 comments

Prefer duplication over the wrong abstraction (2016)

https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction
355•rafaepta•4h ago•245 comments

Beyond All Reason (Free Total Annihilation Inspired RTS)

https://www.beyondallreason.info
376•mosiuerbarso•9h ago•216 comments

(How to Write a (Lisp) Interpreter (In Python)) (2010)

https://norvig.com/lispy.html
139•tosh•5h ago•41 comments

Identity verification on Claude

https://support.claude.com/en/articles/14328960-identity-verification-on-claude
365•bathory•8h ago•328 comments

The minimum viable unit of saleable software

https://brandur.org/minimum-viable-unit
74•brandur•4h ago•36 comments

Show HN: CleverCrow: give tokens to your favorite projects

https://clevercrow.io
17•zhubert•1h ago•16 comments

An Embedded Linux on a Single Floppy

https://github.com/w84death/floppinux
35•modinfo•2d ago•18 comments

Ask for no, don't ask for yes (2022)

https://www.mooreds.com/wordpress/archives/3518
6•skogstokig•46m ago•0 comments

Occupancy Math on the AMD MI355X: A From-First-Principles Guide

https://indianspeedster.github.io/blog/occupancy-math-mi355x/
33•skidrow•4d ago•2 comments

A 3D voxel game engine written in APL

https://github.com/namgyaaal/avoxelgame
133•sph•12h ago•11 comments

15-minute at-home Lyme disease tick test

https://www.bostonglobe.com/2026/06/17/business/lyme-disease-tick-test/
212•bookofjoe•3d ago•145 comments

Loupe – A iOS app that raises awareness about what native apps can see

https://github.com/mysk-research/loupe
493•Cider9986•1d ago•205 comments

Wildcard (YC W25) is hiring an applied ML engineer

https://www.ycombinator.com/companies/wildcard/jobs/SEmo4di-founding-applied-ml-engineer
1•kaushikmahorker•4h ago

Developers don't understand CORS (2019)

https://fosterelli.co/developers-dont-understand-cors
329•toilet•19h ago•248 comments

Show HN: TownSquare, a tiny presence layer for websites

https://townsquare.cauenapier.com/
231•cauenapier•1d ago•135 comments

Running MicroVMs in Proxmox VE, the Easy Way

https://taoofmac.com/space/blog/2026/06/18/1845
193•zdw•2d ago•33 comments

System call instrumentation on Linux/x86‑64 using memory‑indirect calls, part I

https://www.humprog.org/~stephen/blog/2026/06/15/#system-call-instrumentation-on-intel-negative-r...
34•matt_d•4d ago•14 comments

Proportional-Integral-Derivative (PID) controllers

https://en.wikipedia.org/wiki/PID_controller
77•dhorthy•2d ago•45 comments

Cocktail Optimization, an Integer Programming Problem

https://bunkum.us/2026/06/18/cocktail-ingredients-milp
13•ftgregg•2d ago•2 comments

Slow breathing modulates brain function and risk behavior

https://www.cell.com/neuron/fulltext/S0896-6273(26)00339-9
355•croes•22h ago•100 comments

Excessive nil pointer checks in Go

https://konradreiche.com/blog/excessive-nil-pointer-checks-in-go/
84•ingve•3d ago•63 comments

Djevops: Self-Host Django Easily

https://github.com/mherrmann/djevops
4•mherrmann•3d ago•0 comments

Fossil Fuels Are 40% of Freight Shipping Tonnage, but Half Its Fuel Use

https://cleantechnica.com/2026/06/16/shipping-freight-energy-fossil-cargo/
122•choult•6h ago•87 comments

Burnout is real for open source maintainers

https://openjsf.org/blog/burnout-is-real-for-open-source-maintainers
101•theanonymousone•4h ago•49 comments

Show HN: Pulse – Dashboard for Claude Code, approve tool calls from your phone

https://github.com/nikitadoudikov/claude-pulse
22•nikitadvd•1d ago•10 comments

Renting a sewing machine from the library

https://www.bbc.com/future/article/20260618-the-weird-and-wonderful-libraries-of-finland
325•sohkamyung•22h ago•191 comments

The brain was not designed for this much bad news

https://www.sciencedaily.com/releases/2026/06/260614012006.htm
339•colinprince•17h ago•288 comments

Two Qwen3 models on one DGX Spark: the residency math

https://www.devashish.me/p/two-qwen3-models-on-one-dgx-spark
80•devashish86•3d ago•36 comments

Epoll vs. io_uring in Linux

https://sibexi.co/posts/epoll-vs-io_uring/
246•Sibexico•21h ago•59 comments
Open in hackernews

JSON-LD Explained for Personal Websites

https://hawksley.dev/blog/json-ld-explained-for-personal-websites/
79•ethanhawksley•2h ago

Comments

mananaysiempre•1h ago
A bit disappointing that (IIUC) for the common parsers you have to say everything twice, in HTML and in the accompanying JSON-LD form even though RDFa exists for the exact purpose of letting you point at the values already present in your markup. (Admittedly RDFa is perhaps too flexible for its own good when you just want to mark up some stuff, but if you’re writing a full parser anyway dealing with a bit of excessive cleverness in the format should not be too bad.)
panzi•1h ago
And then there is https://schema.org/ It's the item* attributes, e.g.: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/... Also Dublin Core in <meta> tags. Why do they keep adding conflicting meta data formats to HTML!?!
9dev•1h ago
https://xkcd.com/927/
captn3m0•1h ago
There is also microformats.
klodolph•53m ago
I think if you are using Dublin Core, it’s because you’re a library. Maybe I am off the mark, but that is the sense I get from this—not all these standards should be used for all pages on the web.

I think you should just think about what metadata you actually care about, and the main metadata I care about (choose your own list) is authorship, publish date, last update, subject keywords, thumbnail (OpenGraph 1200x630), and summary.

There’s a long list of additional metadata that I could put in my webpages because there are standardized ways to do it, but, why bother?

jauco•41m ago
To be fair schema.org and dublin core say “when a property is name ‘title’ it means …” and you can expect to find the following properties…

Json-ld says: if you want to know whether the “title” property means the schema.org or the dublin core variant then you can find out which it is by <json-ld algorithm>

So you’d always use json-ld _with_ schema.org or something.

alwillis•39m ago
They don't conflict; they were designed to work together. You can have schema.org (in JSON-LD, RDFa, or micro data) on the same page as Dublin Core, etc.

For example, there's no explicit property in schema's Person type [1] for a nickname. But the FOAF standard does [2].

Just add FOAF to the JSON-LD context:

    {
      "@context": {
        "@vocab": "https://schema.org/",
        "foaf": "http://xmlns.com/foaf/0.1/",
        "pronouns": "https://schema.org/pronouns" 
    }


You now use the FOAF nickname property:

    "@type": "Person",
      "givenName": "Timothy",
      "familyName": "Berners-Lee",
      "foaf:nick": "TBL",
You can do the same thing with Dublin Core, DBPedia, etc.

[1]: https://schema.org/Person

[2]: https://xmlns.com/foaf/spec/#term_nick

klodolph•1h ago
IMO this is going overboard. Any time you are duplicating data from HTML into JSON-LD, consider just omitting that data from JSON-LD, unless the data isn’t consistently present in HTML (because it is a bitch to be consistent about this stuff).

I tried using RDFa and liked the property that it was theoretically less redundant, but switched to JSON-LD because it JSON-LD is just easier to get working. And this is speaking as somebody who uses a hand-rolled static site generator—the issue here is that whether information is present in the raw HTML is something contextual, and if something isn’t present in the HTML then you need to put it somewhere else or it’s not mechanically parseable from the page. Like, to a human reader, a post on “Alice’s Blog” is assumed to be authored by Alice, so I may omit the “by Alice” text from the document, and then I would want to put that metadata in the page some other way.

Putting the metadata in JSON-LD lets me just be dumb about it. The metadata is always in JSON-LD, and the HTML may or may not contain an explicit representation of that same metadata. Easy.

But the JSON-LD does not need to contain the URL of the page (which is <link rel=canonical>) or the title (which is in <title>), for example.

alwillis•33m ago
> I tried using RDFa and liked the property that it was theoretically less redundant, but switched to JSON-LD because it JSON-LD is just easier to get working.

For me, it depends on the project. For personal projects, I tend to use RDFa; otherwise, JSON-LD.

lenkite•1h ago
We have semantic HTML, but for some weird reason we need to yet again re-express the semantic meaning of our website in bespoke weird JSON in a script tag that the browser won't process.
klodolph•1h ago
I have used JSON-LD in my own websites and found that it fills a separate need from semantic HTML. Your semantic HTML will specify things that the browser processes, like the title and headings. The JSON-LD data is metadata, like date created, date updated, tags, authorship. These things can be expressed in the HTML using micro data, but I stopped using micro data because JSON-LD was easier.

The JSON-LD I populate from the same data that I use to generate my site, and I use the JSON-LD metadata to generate things like index pages (list of blog posts from 2024, all posts related to topic X, etc). The main consumers of JSON-LD are search engines.

If you are interested in getting offended, then think about how we are also putting OpenGraph metadata in our web pages. Two different metadata formats for the same page.

tommica•45m ago
Structured data exists yo pass the metadata. Issue with it is that of might impact the way your html needs to be structured, this can be messy.
rglullis•1h ago
What I see as the ideal would be a world where servers and browsers could do content negotitation, and have browsers attempting first to request only the json-ld from the website and using its own internal renderer format.
_heimdall•30m ago
tommica•43m ago
Super useful article, wish that had existed in my seo days.

I had misunderstood the type field, because to me I was often just linking to a webpage, even if it is for a saas, the marketing page is still a webpage.

klodolph•39m ago
I would encourage people who have the pragmatic bent to read about JSON-LD from the Google documentation for web sites;

https://developers.google.com/search/docs/appearance/structu...

You’ll also notice that a lot of the information is relevant to only a small subset of sites. Rotten Tomatoes can publish the critic rating for movies using JSON-LD, but that’s not relevant for me (even if I write a review for a movie).

JSON-LD is nice because it’s easy and it is actually used by search engines. Yes, it can duplicate information in the web page itself, but I think the dream of perfectly annotating information so it only appears exactly once in your document is, well, a dream of spherical cows and massless ropes. It takes human effort to make a webpage and I am ok with a little duplication in the final product. My <h1> duplicates information in <title> anyway.

JdeBP•28m ago
> It can aid web crawlers in understanding the semantic structure of your site, qualifying you for richer link previews, and even potentially improving your search ranking.

This is fighting the last war, to stretch a metaphor.

As far as I and my WWW site are concerned, Google has nowadays switched to giving people lengthy LLM-generated versions of my stuff, with errors, above pointing people to my actual stuff. 'Breadcrumbs' and getting a pretty display name instead of the domain name, don't address the fact that Google de-prioritizes all of that, pretty tweaks or no, nowadays.

This is a lot of effort for stuff that people visiting my actual site directly will never see, and which people using Google will not find above the fold of its own massively LLM-ized version of stuff.

gomoboo•14m ago
Do these attributes actually help with search engine visibility or do they just make it easier for search engines to keep users from leaving the search page? Honest question here.
Microdata is also a thing, and if I'm not mistaken supports the same vocabulary as JSON-LD (schema.org is a good resource).

That said, JSON-LD has the default for a while now, much like how we largely abandoned REST for RPC. I'm not actually sure if microdata is still supported by all the important parsers today, I've defaulted to using LD for any site I've built for clients, especially ecommerce sites where I want Google Search exposure.

Edit: its worth noting the comparison with semantic HTML. Semantic HTML helps define the structure of the markup but not real world context like "this is a product for sale" or "this is a train schedule."

troupo•14m ago
Semantic HTML doesn't cover what JSON-LD and other microformats cover.

From the article alone: what are the semantic elements for a person? A breadcrumb list? A software application? A blog? A blog posting?

Semantic HTML is there to aid humans using screen readers to navigate through generic elements like "navigation" or "article".