HN user

tannhaeuser

11,747 karma

https://quantumprolog.sgml.net

Posts242
Comments3,536
View on HN
bits.debian.org 2mo ago

Debian welcomes the 2026 GSoC interns

tannhaeuser
1pts0
www.awi.de 3mo ago

Uncharted island soon to appear on nautical charts

tannhaeuser
103pts51
news.ki.se 3mo ago

High meat consumption linked to lower dementia risk in genetic risk group

tannhaeuser
7pts1
arstechnica.com 4mo ago

Supply-chain attack using invisible code hits GitHub and other repositories

tannhaeuser
14pts4
daringfireball.net 4mo ago

PageMaker pioneer Paul Brainerd dies at 78

tannhaeuser
2pts0
arstechnica.com 6mo ago

Overrun with AI slop, cURL scraps bug bounties to ensure "intact mental health"

tannhaeuser
3pts1
old.reddit.com 6mo ago

Wayland is flawed at its core and the community needs to talk about it

tannhaeuser
24pts13
www.commitstrip.com 7mo ago

A comprehensive and precise spec (2016)

tannhaeuser
2pts0
stackoverflow.com 7mo ago

Is Stackoverflow.com Broken?

tannhaeuser
2pts1
pavpanchekha.com 7mo ago

Should CSS Be Constraints?

tannhaeuser
4pts1
discussions.apple.com 7mo ago

Disable scroll-to-top when finger barely touches iPhone menu bar

tannhaeuser
3pts0
blog.enioka.com 10mo ago

A painful road to Java modularity

tannhaeuser
1pts0
buttondown.com 10mo ago

Many Hard LeetCode Problems Are Easy Constraint Problems

tannhaeuser
6pts3
news.ycombinator.com 10mo ago

Ask HN: Is Archive.is/Archive.ph Broken?

tannhaeuser
1pts2
quantumprolog.sgml.net 1y ago

Prolog planner generation prompting guide

tannhaeuser
33pts1
uxdesign.cc 1y ago

Figma's not a design tool – it's a Rube Goldberg machine for avoiding code

tannhaeuser
8pts2
github.com 1y ago

Apache NetBeans 25

tannhaeuser
45pts22
forums.bunsenlabs.org 1y ago

Wayland and Bunsenlabs

tannhaeuser
1pts0
discourse.ubuntu.com 1y ago

Ubuntu 24.04.2 (Noble Numbat LTS #2 update) delayed

tannhaeuser
1pts0
blog.sesse.net 1y ago

Migrating Away from Bcachefs

tannhaeuser
4pts0
www.w3.org 1y ago

RIP W3C's HTML working group 1994-2024

tannhaeuser
47pts21
events.ccc.de 1y ago

38th Chaos Communication Congress

tannhaeuser
95pts4
www.dedoimedo.com 1y ago

Ubuntu 24.10 Review

tannhaeuser
4pts1
ifdb.org 1y ago

Interactive Fiction DB site redesign

tannhaeuser
3pts0
wpt.fyi 1y ago

Ladybird surpassed Servo in the number of successfully passed web-platform-tests

tannhaeuser
13pts0
infrequently.org 1y ago

Reckoning: Part 4 – The Way Out [of JavaScript heavy approaches for front ends]

tannhaeuser
1pts0
apple.slashdot.org 1y ago

Apple Announces Rare Wave of Job Cuts [related to the Books app/store]

tannhaeuser
1pts0
arstechnica.com 1y ago

Procreate defies AI trend, pledges "no generative AI" in its illustration app

tannhaeuser
65pts41
www.ghacks.net 1y ago

Windows 10 Start Menu will soon display ads for Microsoft 365

tannhaeuser
7pts1
www.stylusstudio.com 1y ago

XML-DEV mailing list shut down, bouncing to OASIS member-only forums

tannhaeuser
2pts0

Having witnessed forums languishing and closing down, and attempts to open up new ones with almost nobody signing up, I wonder if the reluctance of giving away credentials is a generational thing. It seems Lemmy-style/Piefed Reddit Fediverse alternatives are faring slightly better, not universally but at least for some topics and media-affine folks, though maybe they still just mostly gain from Reddit discontinuing its API and third-party app support.

Fedi review sites (neodb/reviewdb, bookwyrm) make use of JSON-LD in a big way. Their entire data federation is based on ActivityStreams and JSON-LD, and so is the review data they get authors to share on their federation along with legacy sites such as goodreads. They're also considerate of proper RDF mappings (context namespace, RDF-friendly encoding of collections, etc.).

Are you referring to ActivityPub traffic (Mastodon, etc.)? Yes they're nominally using JSON-LD, but actually most devs seem to not have understood that ActivityStreams is just a projection of RDF triples into JSON. Instead they go with the part they did unterstand (because JSON is better than markup right?), and end up tunneling markdown or HTML through JSON strings and uneccessarily hardcoding their payloads in ORM layers in dynamic languages. If I were mean, I'd compare the situation to insects incapable of comprehending a 3D universe, clinging to syntactic surfaces that seem familiar.

But what can you do? At this point, keeping federated alternatives, protocol-first designs, and multiple interworking implementations is more important than purity; it might well be the last successful initiative of its kind.

Your ePub Is fine 1 month ago

Unfortunately, epub and epubcheck isn't the great uncontroversial resource the author makes it out to be. When W3C, Inc. took over maintenance of the EPub spec around when 3.1 was current, they just referenced WHATWG HTML and other ever-expanding browser specs ([1]). Being "living standards", these have no versioning or QA. As a consequence of being based on a version of HTML that redefined headers and sectioning, Epub 3.2 just made existing epubs non-conforming. Which is why Calibre and other tool still recommend 3.1 or better yet 2.

The case mentioned where the CSS min() function is rejected is another place where bulk import of the extremely complex CSS spec is just not helpful. Ebook readers aren't evergreen browsers after all.

[1] https://news.ycombinator.com/item?id=41326179

3.13 broke most of the C API

3.14 broke GC

I guess these kinds of priorities are exactly why Python is not my favorite programming language and why you have tens of Python versions installed on any machine. Not to talk about the Python 2 -> 3 drama that was also about fetishising syntax and pureness over pragmatism, installed base, and respect for existing code.

Do people use python for new projects apart from ML stuff which hasn't moved to all-native yet?

My experience with Python is a really bad one for professional work: it's chaotic and slow, and has by far the worst versioning and packaging story of any mainstream language, yet its proponents keep praising it in denial.

I guess Python is an ok target for agentic coding, but my god do look Claude's commit messages pretentious, with code bases quickly heading into absolute unmaintainability. At least it had found gross JS injection vectors in a Django app that really shouldn't have made it through a code review, architecture level as they were, but oh well. A mature Django app is also not a nice dev experience IMO, with tons of implicit behavior all over the place encoded in a mix of magic filenames, database naming conventions, and URL routing quickly descending into regexp hacks.

Just to clarify, this requires Mac OS 26 Tahoe for "container" doesn't it? So those of us holding out on Sequoia who can't stand the broken glass UI or what's called and the other undesired features need to stick to Docker desktop.

Not familiar with Erlang that much, but it's pretty clear Erlang was prototyped on Prolog because of its convenient facilities for DSLs using op/3 to define new tokens for its built-in bottom-up expression parser (using operator precedence parsing) and its Definite Clause Grammar recursive descent parser as trivial specialization of core SLD resolution (Prolog was created for NLP and planning apps in the first place after all).

I guess what may also have contributed is that there are a number of concurrent logics implemented in Prolog for prototyping Erlang's scheduler such as Concurrent Transaction Logic ([1]).

[1] https://www.cs.toronto.edu/~bonner/ctr/Home.html

"Planning, optimization, diagnostics, and complex configuration" [1]

Prolog also works extremely well as a target language for code generation by LLMs for these domains due to it being "higher up in the food chain" compared to procedural languages so to speak, and because Prolog was originally envisioned for classic NLP and hence has a corpus of one-to-one mappings from natural language to logic (as in the example in [3]). So well in fact that even with last-gen models textual descriptions for suitable problems become the bottleneck and you can in many cases just go straight to Prolog code instead ([2]).

[1] https://quantumprolog.sgml.net

[2] https://quantumprolog.sgml.net/llm-demo/part1.html

[3] https://news.ycombinator.com/item?id=48080201

Prolog is actually a perfect fit for all kinds of adventure, role playing, strategy, and classic board/card games, with clauses representing game rules and facts representing the game state and universe in the most natural way.

Simple general-purpose opponents can be coded using just recursive backtracking search, while more advanced ones (supporting moves that need to destructively change state) can still be conveniently modelled by reifying facts and thereby enable backtracking over assert/retract-like Prolog DB modifications, as used in discrete combinatorial planners [1].

[1] https://quantumprolog.sgml.net/container-planning-demo/part1...

Here is a stack machine that [instead of addition] implements subtraction, based on the mode assignment i/o/i [without changing the code already used for addition]. (You might have heard people claim that logic programs can be "run backwards"; this is one thing that can mean.)

    k >> plus 0 _ P         |---->  k << P
    k >> plus (s N) _ (s P) |---->  k; _ >> plus N _ P
    k; _ << P               |---->  k << P
So if you're confused because of the slightly unusual notation, here's the same thing in Prolog syntax:
    % "Sum is the sum of S1 and S2"
    plus(S1, S2, Sum) :- Sum is S1 + S2.

    % "What is the sum of 3 and 5?"
    ?- plus(3, 5, S). 
    % Answer: S = 8

    % "Is 10 the sum of 3 and 5"
    ?- plus(3, 5, 10).
    % Answer: fail 

    % "What's the difference between 3 and 10?"
    ?- plus(3, X, 10).
    % throws an error 
It doesn't work this way in general because the Prolog is/2 predicate can only be used in one direction to evaluate the term on the right hand side where must all variable must be bound to a number in context. The article mentions Peano arithmetic as one finite/incomplete axiomatisation of natural numbers but doesn't elaborate on it.

You must go back to the drawing board and rely on highly-regulated Telecom standards (that's why they were mandated in the first place!) not monopolistic defacto "best practices" you have no influence over because they're more convenient for you.

This is simply unconstitutional and should be escalated ASAP if you don't want to end it before the appropriate court in Leipzig, Karlsruhe, or maybe Luxembourg.

Not sure who the target audience for this is?

ActivityPub (Mastodon etc) has already very granular permissions wrt. who to federate with, which posts to make public, edit or withdraw posts after initial creation, etc. catering to EU privacy and moral/personality rights demands.

For closed group chat, there are many alternatives.

Discord is after all a video chat app designed to be used during a gaming session first and foremost.

Java 26 is here 4 months ago

I hated building UIs with Swing/AWT, many of which are still in use today and are gradually being replaced by lovely JavaFX.

Dude JFX yielded what was called RIAs to JavaScript like almost 15 years ago. Of the three major GUI toolkits Swing, JavaFX, and SWT it was Swing that gained HighDPI support first (10 years ago), and continues to be the base for kick-as IntelliJ IDEA and other Jetbrains IDEs.

XML Is a Cheap DSL 4 months ago

The main property of SGML-derived languages is that they make "list" a first class object, and nesting second class (by requiring "end" tags) ...

I think you're missing the forrest for the trees ;)

The major point of SGML in this context is that elements have content models defined by regular expressions, just like any other grammar productions eg. BNF.

XML Is a Cheap DSL 4 months ago

SGML has at least SP/OpenSP, sgmljs, and nsgml as full-featured, stand-alone parsers. There are also parsers integrated into older versions of products such as MarkLogic, ArborText, and other pre-XML authoring suites, renderers, and CMSs. Then there are language runtime libs such as SWI Prolog's with a fairly complete basic SGML parser.

ISO 8879 (SGML) doesn't define an API or a set of required language features; it just describes SGML from an authoring perspective and leaves the rest to an application linked to a parser. It even uses that term for the original form of stylesheets ("link types", reusing other SGML concepts such as attributes to define rendering properties).

SGML doesn't even require a parser implementation to be able to parse an SGML declaration which is a complex formal document describing features, character sets, etc. used by an SGML document, the idea being that the declaration could be read by a human operator to check and arrange for integration into a foreign document pipeline. Even SCRIPT/VS (part of IBM's DCF and the origin of GML) could thus technically be considered SGML.

There are also a number of historical/academic parsers, and SGML-based HTML parsers used in old web browsers.

Digg is gone again 4 months ago

Is that the whole story? Why isn't reddit overrun by bots then (or are they?), and why wouldn't basic proof-of-work techniques fence against bots? Since they started out just in January, isn't it plausible to assume they didn't meet their target user figures and investors jumped ship?

XML is fundamentally incompatible with commonly used programming data structures, namely lists/arrays and structs/maps.

Another way to say this is XML is a grammar formalism that deals purely with serialisation rather than higher-level structures that might be serialised such as co-inductive data structures.

While HTML technically is not XML, it's very close to it and XHTML still is a thing.

XML and HTML-as-serialisation-format are both subsets of SGML.

The XML spec starts like this:

The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML.

Where "generic SGML" refers to markup beyond the basic HTML vocabulary hardcoded into browsers, such as SVG and MathML. XML was specifically designed such that mere parsing doesn't require element-specific rules such as SGML-derived HTML tag omission/inference, empty elements, and attribute shortforms, by excluding these features from the XML subset of SGML. Original SGML always required a DTD schema to inform the parser about these things that HTML has to this day, and not just for legacy reasons either ie. new elements and attributes making use of these features are introduced all the time (cf. [1]).

Now XML Schema (W3C's XML schema language, and by far the most used one) isn't very beautiful, but is carefully crafted to be upwards compatible with DTDs in that it uses the same notion of automaton construction to decide admissability of content models (XSD's Unique Particle Attribution rule), rooted in SGML's zero lookahead design rationale that is also required for tag inference. Relax NG does away with this constraint, allowing a larger class of markup content models but only working with fully tagged XML markup.

XML became very popular for a while and, like JSON afterwards, was misused for all kind of things: service payloads in machine-to-machine communication, configuration files, etc., but these non-use cases shouldn't be held against its design. As a markup language, while XML makes a reasonable delivery or archival language, it's a failure as an authoring language due to its rigidity/redundancy and verbosity, as is evident by the massive use of markdown and other HTML short syntaxes supported by SGML but not XML.

[1] https://sgmljs.sgml.net/docs/html5.html

I get what Nick is trying to do (allow F/OSS to continue receiving security fixes while requiring commercial users to pay), even forwarded his call for help or other support last year. I'm not sure though relicensing MIT code under AGPL is legally sound if your additions are just bug fixes.

The term "AI" has changed in recent years but if you mean classic game logic such as complex rules and combinatorial opponents then there's plenty of Prolog game code on github eg. for Poker and other card or board games. Prolog is also as natural a choice for adventure puzzles as it gets with repository items and complicated conditions to advance the game. In fact, Amzi! Prolog uses adventure game coding as a topic for its classic (1980s) introductory Prolog learning book Adventure in Prolog ([1]). Based on a cursory look, most code in that book should run just fine on a modern ISO Prolog engine ([2]) in your browser.

[1] https://www.amzi.com/AdventureInProlog/advtop.php

[2] https://quantumprolog.sgml.net