HNHacker News
TopNewBestAskShowJobs

tannhaeuser

11,757 karma · joined October 21, 2016

https://quantumprolog.sgml.net
submissionscomments
tannhaeuser··on Bez: Generating a browser engine from specs and tests
Tried this (a CSS renderer specifically) two years ago, but the LLMs at the time weren't up to it and would either pull-in external libs or tell me "it's a very complex task" and generate a mere skeleton for a simplistic case of default layout.
tannhaeuser··on Tcl/Tk 9.1
I don't dare to think about the horrible output of an LLM generating COBOL with hallucinated English dropped in.
tannhaeuser··on macOS Golden Gate Is a Buggy Mess
Can Golden Gate really be considered a fix release for Tahoe with its massive AI updates?
tannhaeuser··on I said no and Apple said yes
Looks like I'll never upgrade past Sequoia.
tannhaeuser··on Tin: full-text search for Postgres
Postgres does have pg_fts (tsvector/tsquery/tsrank) which is a quite sophisticated full text search package integrated with functional indexing and query optimization. Why would I use something vibecoded that isn't part of core Postgres instead?
tannhaeuser··on I think I hate the internet
Yes it's bad and it'll only get worse but how about thinking positive and towards ways out of the crisis? If your problem is with social media specifically, you could join the Fediverse (Mastodon, Piefed/Lemmy and co.) which while not perfect by any means is a bit more resilient and can be used to continue participating in niche interests while avoiding tribalism, doom, and propaganda.
tannhaeuser··on Show HN: Sokoban AI Solver
If you mean letting an LLM generate code for a Prolog planner from an English problem description, that has been done successfully already with last year's models eg [1].

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

tannhaeuser··on Bring back crappy forums
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.
tannhaeuser··on JSON-LD explained for personal websites
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.).
tannhaeuser··on JSON-LD explained for personal websites
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.

tannhaeuser··on W Social, public institutions and the theater of European digital sovereignty
Indeed a very odd sight between WC matches. I don't normally watch much TV, but I think this warrants further investigation and inquiry.

No mention of long-term stake of EU in ActivityPub platforms either, as if W would be our savior.

tannhaeuser··on Your ePub Is fine
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

tannhaeuser··on Python 3.14 garbage collection rigamarole
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.

tannhaeuser··on Python 3.14 garbage collection rigamarole
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.

tannhaeuser··on macOS Container Machines
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.
tannhaeuser··on Microsoft builds MacBook Pro rival with NVIDIA-powered Surface Laptop Ultra
I only have used the power connector on a Surface Go tablet but have really no complaints. I've never been much of an MS person, but with that thing Windows (10) certainly left on a high note for me.
tannhaeuser··on Blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD
Debian LTS/extended LTS
tannhaeuser··on Prolog Coding Horror
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

tannhaeuser··on Prolog Coding Horror
"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

tannhaeuser··on Prolog Basics Explained with Pokémon
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...

tannhaeuser··on Abstract Machines for Logic Programs
> 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.
tannhaeuser··on Accelerating Gemma 4: faster inference with multi-token prediction drafters
Tested gemma4 26 MoE 4bit quantisized gguf on llama.cpp following these guides with mmap'd I/O on a 16GB MBP and it was unbearably slow (0.0 t/s).
tannhaeuser··on Migrating from DigitalOcean to Hetzner
Not every fscking story has to be about AI.
tannhaeuser··on Microsoft hasn't had a coherent GUI strategy since Petzold
Windows until 24H2 (when Edge and the last remnants of IE were replaced by Chrome) supported HTML apps [1], introduced with Windows 98 Active Desktop. They weren't used much but actually not that bad for end-user needs.

[1]: https://learn.microsoft.com/en-us/previous-versions/ms536495...

tannhaeuser··on German implementation of eIDAS will require an Apple/Google account to function
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.

tannhaeuser··on Colibri – chat platform built on the AT Protocol for communities big and small
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.

tannhaeuser··on Apple discontinues the Mac Pro
For LLMs and other pure memory-bound workloads, but for eg. diffusion models their FPU SIMD performance is lacking.
tannhaeuser··on Java 26 is here
> 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.

tannhaeuser··on XML Is a Cheap DSL
> 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.

tannhaeuser··on XML Is a Cheap DSL
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.

Page 1 of 34Next →