News for hackers. Stuff that matters.

gorkaerana

Re:Quality non-fiction books are the antithesis of AI slop on Thursday July 23, 2026 @04:49AM (#49018630)
Paul Preston's "The Spanish Civil War" would be the poster child of the "quality non-fiction" category specified in this post's title. He is, in my opinion, the leading Hispanist historian [1], and I hold his work in the highest esteem. I can also very much recommend his book "A People Betrayed".

Regarding the other two authors in my previous comment: Hugh Thomas was also a leading Hispanist historian [2], and Antony Beevor is a prominent military historian [3]. I expect both books to be in the same vein as Preston's.

(Quick aside for the astute reader that noticed all of the recommended authors being non-Spanish: I find Spanish politics extremely polarized; the Spanish Civil War being perhaps the most polarizing topic. As such, I find outsider's perspectives to be more balanced and objective.)

References:

1. https://en.wikipedia.org/wiki/Paul_Preston

2. https://en.wikipedia.org/wiki/Hugh_Thomas,_Baron_Thomas_of_S...

3. https://en.wikipedia.org/wiki/Antony_Beevor

Re:Quality non-fiction books are the antithesis of AI slop on Thursday July 23, 2026 @04:18AM (#49018383)
Books on the Spanish Civil War I have read and can wholeheartedly recommend:

- "The Spanish Civil War" by Paul Preston

- "Homage to Catalonia" by George Orwell

Books on the same topic on my reading list (and quite frankly can't wait to get hold of them):

- "The Spanish Civil War" by Hugh Thomas

- "The Fight for Spain" by Antony Beevor

Re:Pythons new httpx fork: httpx2 on Thursday May 14, 2026 @05:06AM (#48132842)
I have only had positive experiences using pydantic tools. They keep iterating on the pydantic validation tool and are planning on a v3 at some point, and pydantic-ai has been a superb addition to the AI engineering toolkit; which makes me hopeful and confident about the work they will do with httpx2. I look forward to explore their eval and observability tools.

I do wonder about pydantic being a VC-backed company and how much of a load-bearing column for the Python ecosystem they are. HN has similarly discussed uv at great length. For what it's worth, Mitchell Hashimoto has an interesting point of view [1] on this matter: "I think VC is unfortunately (for the cons) the best tool we have as an industry right now to produce the highest amount of accelerated, public good R&D right now".

May we only reap the benefits of the situation.

[1] https://lobste.rs/s/oznirn/redis_cost_ambition#c_66fiqh:~:te...

I think it's fair enough to consider porting a subset of rewriting, in which case there are several successful experiments out there:

- JustHTML [1], which in practice [2] is a port of html5ever [3] to Python.

- justjshtml, which is a port of JustHTML to JavaScript :D [4].

- MiniJinja [5] was recently ported to Go [6].

All three projects have one thing in common: comprehensive test suites which were used to guardrail and guide AI.

References:

1. https://github.com/EmilStenstrom/justhtml

2. https://friendlybit.com/python/writing-justhtml-with-coding-...

3. https://github.com/servo/html5ever

4. https://simonwillison.net/2025/Dec/15/porting-justhtml/

5. https://github.com/mitsuhiko/minijinja

6. https://lucumr.pocoo.org/2026/1/14/minijinja-go-port/

I cannot quite replicate those results myself: https://github.com/gorkaerana/hn-programming-language-trends.

In my analysis, as a percentage of total job posts, Python jobs start to rapidly increase in 2022, even before the current AI craze started by the release of ChatGPT on November 20 2022. They peaked in 2024 and seem to have stalled since. Rust and C++ jobs (again, as a percentage of total job posts), have gone toe-to-toe since mid 2023.

That being said, many improvements to be done to my analysis, as it relies on simple word match.

Re:SQL pipe syntax available in public preview in BigQuery on Thursday February 13, 2025 @09:58AM (#43036490)
I'm tempted to give it a try just for the "For HackerNews enthusiasts" section of their landing page, which states "The PRQL compiler is written in Rust" and "We talk about “orthogonal language features” a lot". Love me some banter in technical documentation :D
Re:Surnames from nicknames nobody has any more on Tuesday February 11, 2025 @05:51AM (#43011330)
A cool feature of the Spanish naming custom is that it can infinitely keep track of surnames. E.g., following @alricb's comment below, let's consider Pablo Picasso, who's name was Pablo Ruiz Picasso [1], after his father José Ruiz Blasco [2] and his mother María Picasso López. Surnames in the Spanish custom are concatenated with the following algorithm: father's first surname, mother's first surname, father's second surname, mother's second surname, and so on. In Pablo Picasso's case this would result in Ruiz Picasso Blasco López.

Or in Python:

```

from itertools import chain

fathers_surnames: list[str] = ["Ruiz", "Blasco"]

mothers_surnames: list[str] = ["Picasso", "López"]

kids_surnames: list[str] = list(chain.from_iterable(zip(fathers_surname, mothers_surname)))

```

Pablo Picasso's example is also a good way to touch upon your comment on how elites have used naming customs differently (I guess to distinguish themselves): Pablo's parents are listed in Wikipedia as "José Ruiz y Blasco" and "María Picasso y López", as opposed to the standard "José Ruiz Blasco" and "María Picasso López" (which I chose above). Similarly, Pablo was given the pompous birth name "Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Ruiz y Picasso", instead of the more humble one (or maybe two) names that has been custom in Spanish.

Tangentially, I would say piling up names like this is more of a Catholic tradition than a Spanish one, e.g., the Archduchess Maria Theresa of Austria-Este, born Maria Theresia Beatrix Gaëtane, Erzherzogin von Österreich-Este, Prinzessin von Modena [3].

[1] https://en.wikipedia.org/wiki/Pablo_Picasso

[2] https://en.wikipedia.org/wiki/Jos%C3%A9_Ruiz_y_Blasco

[3] https://en.wikipedia.org/wiki/Archduchess_Maria_Theresa_of_A...

Re:Python Project-Local Virtualenv Management Redux on Wednesday April 03, 2024 @06:10AM (#39915478)
My Python virtual environment and dependency management journey has been the following:

1. Just `pip` and `venv`; specifying dependencies via "requirements.txt" and "dev_requirements.txt", and tool configuration options in bespoke files. Too involved and with too many parts, yet it made do for my use cases.

2. `poetry` together with "pyproject.toml". Big quality of life improvement: commands like `poetry add`, `poetry build` make the process much less involved so one can just focus on actual development. Having all of the tooling configuration in a single place (that being "pyproject.toml") also helped with context switching.

3. `uv` for quick and dirty Python projects, `rye` (with the `uv` backend) for anything above that. In short, I think of `uv` and `rye` as faster siblings of `pip` and `poetry`, respectively. Once you get used to creating virtual and environments and installing dependencies in milliseconds or a few seconds it's difficult to go back to it always taking many seconds.

In hindsight, I would have been content just using `poetry`, but `uv` and `rye` do make for a faster and hence better developer experience.

P.S.: how messed up is it that only now we are agreeing on a convention for putting a project’s virtual environment into an in-project directory called `.venv`?

Spanish also delights us with unlucky surnames. E.g., three acquaintances of my father have the family names "Feo", "Bastardo", and "Gay"; which translate, respectively, to "ugly", "bastard", and, of course, "gay".
A slightly unfortunate name for Spanish speakers, I'm afraid: "putero" can mean either "brothel" or "man who maintains sexual relations with prostitutes" [1].

Fun fact: the Mitsubishi Pajero had to be marketed as Montero in Spanish speaking markets as "pajero" is Spanish for "wanker" [2].

[1] https://dle.rae.es/putero

[2] https://dle.rae.es/pajero

> I'm honestly more surprised that they're saying they've only got the first word figured out.

They have figured out the rest of the words, as per the last image in the announcement tweet [1]. It's just that they don't make sense in modern Basque (source being me being a native Basque speaker).

[1]: https://twitter.com/aranzadi/status/1592129224806404097?s=20...