frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Organic Maps

https://organicmaps.app/
595•tosh•6h ago•179 comments

New AI tutor achieves 0.71-1.30 SD effect size in Dartmouth course [pdf]

https://intextbooks.science.uu.nl/workshop2026/files/itb26_s1s2.pdf
57•jonahbard•1h ago•29 comments

Starring the Computer

https://www.starringthecomputer.com/computers.html
101•gitowiec•2h ago•29 comments

The future of Flipper Zero development

https://blog.flipper.net/future-of-flipper-zero-development/
75•croes•1h ago•3 comments

It's not about physical vs. digital games, it's about ownership

https://popcar.bearblog.dev/its-about-ownership/
147•popcar2•5h ago•114 comments

The great blogging collapse: What happened to 100 successful blogs?

https://danielstanica.com/posts/Great-Blogging-Collapse
99•thm•3d ago•68 comments

Introduction to Compilers and Language Design (2021)

https://dthain.github.io/books/compiler/
236•AlexeyBrin•8h ago•39 comments

Run Windows 2000 on a DEC Alpha with a new es40 fork

https://raymii.org/s/blog/Run_Windows_2000_for_Dec_Alpha_on_a_new_es40_fork.html
74•jandeboevrie•6h ago•41 comments

Mr. Baby Paint and accidentally discovering a new cellular automata

https://tekstien-marginaalien-keskus.aalto.fi/residenssi/heikki/blog/004-december-2/
12•jfil•2d ago•0 comments

You need a webring

https://shub.club/writings/2026/july/you-need-a-webring/
20•forthwall•1h ago•14 comments

Installing A/UX 1.1 like it's the 90s

https://thomasw.dev/post/aux11/
27•zdw•4h ago•3 comments

Airplane Boneyards List and Map

https://airplaneboneyards.com/airplane-boneyards-list-and-map.htm
65•hyperific•1d ago•12 comments

Why DMARC's new "NP" tag can fail with DNSSEC

https://dmarcwise.io/blog/dmarc-np-incompatibility-with-dnssec
33•matteocontrini•5h ago•12 comments

Small Penis Rule

https://en.wikipedia.org/wiki/Small_penis_rule
37•chistev•1h ago•6 comments

Shadcn/UI now defaults to Base UI instead of Radix

https://ui.shadcn.com/docs/changelog
266•dabinat•15h ago•146 comments

Taphonomic analysis reveals behavioral & tech capabilities of Homo floresiensis

https://www.science.org/doi/10.1126/sciadv.aeb7219
6•bushwart•2h ago•0 comments

A sociotechnical threat model for AI-driven smart home devices

https://arxiv.org/abs/2602.09239
73•dijksterhuis•3h ago•50 comments

OpenWiki: CLI that writes and maintains agent documentation for your codebase

https://github.com/langchain-ai/openwiki
59•handfuloflight•3d ago•16 comments

Jim Keller's startup is building a factory to mass-produce small chip fabs

https://www.tomshardware.com/tech-industry/atomic-semi-rebrands-as-fab2-and-shifts-operations-to-...
23•logickkk1•1h ago•3 comments

Optimizing an algorithm that's quadratic by design

https://whatchord.earthmanmuons.com/articles/chord-ranking-performance.html
8•elasticdog•3d ago•1 comments

Show HN: KiCad in the Browser

https://demo.pcbjam.com/
83•ViktorEE•8h ago•30 comments

Every postcard tells a story

https://observer.co.uk/style/features/article/every-postcard-tells-a-story
4•NaOH•2h ago•1 comments

The GNU Emacs Architecture: Unlocking the Core [pdf]

https://www.diva-portal.org/smash/get/diva2:2052282/FULLTEXT01.pdf
163•cenazoic•4d ago•12 comments

Web-based cryptography is always snake oil

https://www.devever.net/~hl/webcrypto
80•enz•12h ago•88 comments

EU Council forces Chat Control via fast-track

https://www.heise.de/en/news/Chat-Control-1-0-EU-Council-forces-messenger-scans-via-fast-track-11...
315•stavros•8h ago•171 comments

Pandoc Lua Filters

https://pandoc.org/lua-filters.html
129•ankitg12•2d ago•11 comments

Medieval-style fortifications are back in the Sahel

https://www.economist.com/middle-east-and-africa/2026/06/25/medieval-style-fortifications-are-bac...
74•andsoitis•4d ago•60 comments

Autonomous flying umbrella follows and shields users from rain and sunlight

https://www.designboom.com/technology/autonomous-flying-umbrella-follows-users-rain-sunlight-i-bu...
67•amichail•4h ago•30 comments

Rayfish, Peer-to-peer mesh VPN with no server to trust

https://rayfish.xyz/blog/01-introducing-rayfish
93•captain_dfx•4d ago•61 comments

If you're a button, you have one job

https://unsung.aresluna.org/if-youre-a-button-you-have-one-job/
503•nozzlegear•18h ago•248 comments
Open in hackernews

Do you hate XML? (2010)

https://sigfrid-lundberg.se/entries/2010/07/hate_xml/
24•theanonymousone•2h ago

Comments

kccqzy•57m ago
In my opinion, the reason people hate XML is because of what M signifies: it is a markup language and most of the time we don’t need a markup language. Markup languages are great for rich text documents. They are just not a good fit for representing data. The markup-nature of XML introduces unnecessary choice in whether to use an attribute or a child element to represent data; for HTML such ambiguity doesn’t actually exist but for data it does. Consider this piece of XML from the Python docs:

    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
Why is the country name an attribute but not the rank? Why are all information about neighbors attributes but not children?

Furthermore parsing JSON or YAML gives you an AST that consists of the basic data types like lists and dictionaries. Parsing XML gives you an AST that requires a lot more effort to turn into data in your domain. Even on the web, very few people like to use the verbose XML DOM API like childNodes, nodeType, getElementsByTagName et al; it is basically unheard of for anyone to use it outside the web such as in Python, despite that the DOM API is in the Python standard library since forever (see https://github.com/python/cpython/blob/3.14/Lib/xml/dom/mini... for example).

actionfromafar•52m ago
YAML made me not hate XML.
SoftTalker•45m ago
Agreed. Among text based formats, nothing I hate more than YAML.
tonyedgecombe•33m ago
That and all the proprietary formats we had to deal with before XML came along.
wombatpm•25m ago
XML is like violence. If it’s not solving your problem, you need to use more.
cryptos•52m ago
Interesting point of view. JSON is also not the right thing to use in many scenarios, but it is the de-facto standard now. Maybe something like protobuf is the way to go.
sfn42•35m ago
Not really. In C# I use a parsing library for which I just write a class and then the library automatically serializes the JSON into an instance of that class.

I can do the same thing with XML. Of course it doesn't necessarily go that smoothly with all xml, but as long as the xml is fairly simple like a JSON document would be it's totally fine. It's only when you start to use all the features of xml that don't fit neatly into a class model that it starts to get annoying. But if JSON serves your needs then simple xml does as well. I wouldn't use it because JSON works just fine but it's not as bad as people make it seem, unless people make it really bad.

crispyambulance•55m ago
XML was a good, well-intentioned idea.

The problem, IMHO, was that rampant "xml-abuse" in the naughts. ws-* standards and over-engineered garbage like SOAP ("complex object access protocol") made people loathe XML.

I did like JAXB in Java, XLST, schemas, XPATH. Never got into XSL, but it seemed like good thing too. It worked best when your tooling manipulated it for you or at least helped you in an intelligent way. Much of the hate for XML came from situations where you had to deal with someone's over-the-top-one-size-fits all schema without the benefit of tooling to at least hint you in the right direction.

It still survives in WPF and c# *.proj files. If it were just me, I would still use it for object serialization. But json is king now even though it's inferior.

dtech•15m ago
It's non-trivial to implement XML parser in a secure way, many stdlib ones are insecure by default. That should just not be a thing. XML has a bunch of vulnerabilities very specific to it, XXE is the most well known one, but you also have a bunch of DoSes due to expansions and XPath injection etc.

An object serialization format should not have a bunch of footguns and vulnerability categories specific to it.

cryptos•55m ago
At least XML is hated for the wrong reasons (e.g. verbosity, esthetics) most of the time. There was for sure an era where it was overused (see Apache Cocoon from 2006 https://en.wikipedia.org/wiki/Apache_Cocoon). But XML is still a pretty good format to exchange (and store) data and make sure the data conforms to a certain schema. JSON Schema in comparison is not nearly as powerful.
AnimalMuppet•40m ago
1. What, in your view, are the right reasons to hate XML?

2. To me, verbosity and aesthetics seem like perfectly valid reasons to hate XML. Once you learn S expressions, XML looks disgusting. They implemented half of Common Lisp in a markup language.

hackrmn•52m ago
Every time XML comes up, I feel obligated to share my opinion (I too wrote XML a the turn of the millennium and have seen it become and still witness on occasion it being excommunicated).

XML is verbose and therefore uglier than it ought to be. I think most of the haters hate it for that alone -- there's not much else to hate because you don't have to deal with the rest, it's not really imposed on you unless you really have to deal with someone else's XML application.

What do I mean? Well, the brackets thing and the necessity to repeat name of every element twice, in correct (LIFO, last in first out) order, isn't great, admittedly.

What XML has that the dev-bro alternatives that have flooded the void XML left since, haven't gotten and thus see being reinvented, are: namespaces, attributes and interop using the former two. Sure you can write JSON and YAML (the latter deservingly being incredibly hard to parse correctly -- they tried to design a better XML but failed IMO) -- but these suck as meta-languages because there's not much "meta" there. JSON, for example, allows you create properties and has a few types (kind of more than XML, really) but it leaves semantics up to you and namespaces are up to you to re-invent, poorly. If you think I am stretching the argument, see if you can represent an HTML document (no, not Markdown) with a JSON file.

YAML is a similar story, albeit with a few cool things like aliases. I think it's a better attempt to give the world a better XML, but the jury is still out on that one.

The killer thing with XML, for better and for worse, was plethora of tools to work with it. I wrote a fair share of XSLT documents to transform data, back when there was momentum in XHTML, for example. XSLT barely supports JSON and it's not pretty. XPath cannot natively understand YAML -- unless you convert it to XML which I guess re-animates XML as some sort of Frankenstein's monster. And even if it were a [pretty] monster, dealing with intermediate representation for the kind of purpose, is a can of worms all of its own.

Ironically nobody seems to hate HTML 5, seemingly. Or React basically turned it into a greasy cogwheel nobody needs to look at. Because if you look at it, it's in my opinion an abomination even compared to XML (unpopular opinion) -- the parser is quirky and behaviour is defined by the standard per element type (i.e. some elements need a closing tag and some do not, and what happens if you forget a closing tag is element-specific; care to remember the set of rules to ensure your document renders to your liking?). It has no namespaces but it has "custom elements" which require a dash in the name as poor' man's namespaces and you can't omit one, and now we have a Web of `x-spinner` and `x-carousel` because it turns out everyone rightfully wanted default namespace but didn't get one. Anyway, it's all plumbing, right -- the idea of _writing_ HTML has largely come and gone us by. And I am digressing.

jjgreen•48m ago
It will be back like vinyl.
jolmg•46m ago
> developers must become domain experts [my emphasis] in a rich and complex space that is essentially unrelated to the application itself.

XML is a markup language, but most people that used it just needed a standard structured data format. In comes JSON which is more easily compatible with the object systems of various languages and in particular is compatible with Javascript syntax, and XML loses most of the people that used it.

As a markup language though, it seems pretty good. It's just that the amount of people that actually need an extensible markup language is much smaller.

I do hate the strictness of it. The header

  <?xml version="1.0" encoding="UTF-8"?>
should be unnecessary. For a markup language, an already-made plain-text document should already count as XML. The tags should be something you can just sprinkle as you'd like to add contextual metadata.
int_19h•46m ago
Honestly I miss it. As overengineered as it was, at least we had proper tooling for it, and while there were dialects in the associated tech (e.g. XML Schema vs RELAX NG vs Schematron) it was minor compared to the wild west that JSON is to this day.
reenorap•45m ago
I’ve hated XML since 2004. The worst part about it is the tags vs attributes fights. They both do the same thing and the only difference is preference. Having two ways of doing the same thing invite and incite religious positions and cause unnecessary fighting. There should be one, opinionated way of doing things so you avoid confusion.
rf15•42m ago
yeah it's not a good design to have tags have two sets of children: a Set of key-value children and then a List of tree object children.
jolmg•39m ago
> The worst part about it is the tags vs attributes fights. They both do the same thing and the only difference is preference.

They're not the same thing. If you look at it as the extensible markup language for documents that it is, "tags" (i.e. inner content) would be visible and "attributes" would not. If your XML document was processed by an application to convert to another type of document (PDF, etc.), and it didn't recognize a particular tag, it would be sensible for attributes to disappear, but inner content ("tags") to remain.

It's only seems like a preference thing if you look at XML as a structured data format like JSON is.

edflsafoiewq•27m ago
In data structure terms, attributes do allow nodes to be decorated with additional information without forcing any change on existing parsers. In JSON, this would require swapping, eg. "str" -> {"value": "str", "attrib1": "..."}.
mickeyp•42m ago
XML is unfairly maligned. Yes, people bought into it too much 26 years ago, but then you would too if you had to maintain someone else's massive packed struct dumped into a file and documented in a poorly-maintained word document --- or worse, a brace of dumb IETF RFCs that contradict eachother.

I am glad that younger generations are looking at it with fresh eyes. XML is a useful format; it has its place in your toolbox. Ignore the haters.

trueno•33m ago
i dont hate it, the declaration kind of annoys me from time to time digging into attributes can be annoying its obviously not the best form of structured data.

json is just easier for my brain at this point if it needs to go over http, but ive seen some pretty... poorly designed json structures.

csv is always a good time. love when i can just plop important data into a table and query away

hahahaa•26m ago
Aside I love how about me is just another tag and clicking lists 3 blog posts.

On XML I don't hate. I hate wrapping my head around XSLT but that is more about my head. AI may make XSLTing more bearable as it happens? I did work with someone passionate about XSLT. Aaaand now I am doxxed.

I also thing in practice schemaless i.e. JSON or "the schema is look at the code or some logs lol" won because fuck let's face it that is more fun.

davidpapermill•23m ago
Last year we chose XML as the basis for our document language.

It's been a good choice for designing a new language, but we've been really surprised by the poor quality of the available parsers. We figured it would be a solved problem, but we'll be writing our own at some point.

janci•19m ago
My reasons to hate XML:

- element vs attribute ambiguity

- model of the document does not fit nicely to programming model of structs, dicts and arrays

- too many complexities (entities, cdata, parser directives)

- cardinality unknown without schema (is that a single value, or an array that just happens to have one element)

- order of elements may or may not be significant depending on schema

- not really extensible if the original schema does not explicitly allow for extensibility

- some types of valid XML documents are not representable by a schema (e.g. any number of different elements in any order)

- verbosity

- namespace identifiers being URIs that may or may not be resolvable

What I want for general data exchange is JSON with comments and sane namespaces.

Edit: line wraps

derriz•14m ago
I dislike it because it failed in such a fundamental way as a way to represent a document; you cannot, in general, reliably determine what characters the bytes in an XML file represent - the best a general XML processor can do is guess.
hoppp•3m ago
I don't hate it but I definitely don't like it.

I write a lot of html already I don't need xml too in my life.

kccqzy•27m ago
That is actually a good approach that I have also used a lot: let the parsing library handle everything including the serialization and deserialization. But if you do that, why do you care that behind the scenes it is using JSON or XML or protobuf or something else?
ExoticPearTree•9m ago
Because at some point you have to debug stuff. And JSON is easier to read than XML to figure out where a problem might be.
gf000•6m ago
I would even go as far to say that XML may very well be better in some cases, - here you have a schema most of the time, so you can often catch e.g. schema evolution failures at compile time.

This is much less common/less standardized with json.

mickeyp•35m ago
Because SAX parsing is a thing, and the visitor pattern makes it easy to elide searches in sub-trees if an attribute does not match.

So if name == "foobar" then read; else ignore. For a 500 GiB XML file that makes a difference.

As for your other point about an "AST" (it's actually just a DOM.) That's the the benefit? And you're in for a surprise when you learn that reaching into a deeply-nested JSON structure deserialised into whatever memory format most appropriate for your pet language is also an abstract data type that you act on with getters/accessors/what-have-yous that is in all but name a DOM.

And we do have tools to deal with it: XSLT for transformation. For querying? XPath.

dofm•29m ago
> Why is the country name an attribute but not the rank?

Perhaps because it's an example of what is possible in XML and how to parse it, and not, in fact, a particularly good or canonical example of XML?

woodruffw•28m ago
I think GP’s question was rhetorical. They know it’s an example.
dgrunwald•19m ago
> Furthermore parsing JSON or YAML gives you the basic data types like lists and dictionaries. Parsing XML gives you an AST that requires a lot more effort to turn into data in your domain.

More precisely: in XML, elements (nodes) are named/labeled. ("node-labeled graph") In JSON, keys (edges) are named. ("edge-labeled graph")

In programming, we need names for the fields in our structures (edges between objects), so JSON is a much better match than XML (which needs contortions to handle this use case -- e.g. by having nesting levels alternate between element=node and element=edge). Only in some object-oriented cases (which derived class should the deserializer construct?) do you care about node labels -- but usually that's in addition to edge labels, so a "_type" key in JSON is still easier than XML.

conartist6•12m ago
CSTML gets the best of both worlds https://docs.bablr.org/guides/cstml
gf000•2m ago
Well, "easier" may well be "one less dimension to encode data" in this case.

Sure, this gives quite a few variations on how to serialize some data. But it's not like json's simpler approach would make data serialization universal, there are many different ways to encode the same thing.

TedDoesntTalk•17m ago
Cardinality is the easy way to resolve this. If the data has a cardinality of 1, it should be an attribute. If cardinality > 1, it should be a child element/node.
throw310822•3m ago
Not sure I understand. How do you represent an object nested in another object?
HarHarVeryFunny•6m ago
Attributes are intended to hold metadata, not data. It's not the fault of the format if someone chose to use it in a poor way.

You also need to distinguish the format itself from the various libraries that may be available to parse/process it in a given language. It doesn't always make sense, even when it's an option, to let the tail wag the dog and choose a language just because it has a nice library for something.

> Furthermore parsing JSON or YAML gives you the basic data types like lists and dictionaries

Well, maybe some library for some language does that, and if that is the language you are using, and that is all you need, then I suppose you are in luck. More generally you may want to use a format like XML or JSON to hold user defined types, which rather levels the playing field since there are few good libraries for this in any language,and you may need to roll your own (been there, done that).

frollogaston•2m ago
I hate the X and L parts too. Just because you put a URI or whatever inside doesn't make the other side understand it.
int_19h•44m ago
I don't like HTML5 and to this day I don't understand what was actually gained by dropping XHTML.
tommica•35m ago
Not having the page break because of a small mistake. Though I did get pretty good at writing XHTML, and strictness is a blessing in certain cases.
kccqzy•32m ago
XHTML was dropped because it wasn’t backwards compatible, and it was too strict in its syntax. Minor syntax errors that could be automatically corrected by the browser turned into full page errors.
jolmg•32m ago
> Well, the brackets thing and the necessity to repeat name of every element twice,

As a document format, it's supposed to be hand-written by humans. If you have paragraphs between the opening tag and closing tag, it makes sense to let the reader know what they're seeing the closing of.

After deciding you do want to repeat the element name, the angle brackets make more sense. Otherwise, you can have a syntax like LaTeX's.

conartist6•27m ago
What do you think of CSTML? It's my attempt to heal the rift between XML and HTML5, as well as solving all the problems that made XML feel onerous to use... https://docs.bablr.org/guides/cstml

It's simple to parse like JSON, it has namespaces like XML (but better), and it doesn't require you to repeat the name of every element twice.