Book Club 2025: A Presumption of Death by Jill Paton Walsh

I stumbled across this while doing some testing of the “missed books” command in bookiez.el. It’s one of those “… and FAMOUS DEAD AUTHOR” books, so I assumed it was going to be totally awful. But I saw that it had positive reviews, so I gave it a shot.

It’s pretty bad. I mean, it’s competently written on a sentence by sentence basis, but it’s got none of Sayers’ charm and wit. It’s just incredibly tedious. I made it one quarter through before realising I just didn’t care at all about what was going on, and I ditched it.

A Presumption of Death (2002) by Jill Paton Walsh (buy used, 4.02 on Goodreads)

Perplexingly Book-Learned Emacs

As I was whining yesterday, it’s perplexingly difficult to find a (semi-)programmatic way of determining whether an author has written a new book. Or even manually in some cases. The best advice is, like, “Follow them on Goodreads” or something?

(To recap those two previous posts for those who hate clicking links — there’s plenty of databases of published books, but as far as I can tell, there are no databases of “published works”. That is, if the book was published today, would you consider it to be “a new work by this author” and not a new edition, a reprint, a translation, or whatever.)

But I wondered whether I could finally find something useful for an LLM to do? Sure, LLMs are plagiarism machines that use all of the world’s energy, but what can it do for me? So I signed up for the Perplexity AI, and an hour later:

Yes, I’m a prompt engineer now.

I’ve gotta give it to Perplexity — signing up for the API, adding some money and getting it to spew some data at me was totally painless. I created a little library called perplexity.el (and put it on Microsoft Github), but it’s totally trivial: It just does a url-retrieve request with some headers set, and you get JSON back.

So in the screenshot above, it’s listing all the books by David Sedaris it knows about, and also helpfully what kind of book it is.

That’s OK, and it’s of course trivial to just use that to list books that are newer than the last book I have from him. So I guess I could use this to automatically get all new books from the authors I’m interested in.

I also did a variation where I asked “list all the books by this author, but exclude books on this list:”, and then list all the books I already have by this author.

And as you can see, that, er, kinda changed what it’s outputting? Now it’s including a lots of plays that it didn’t before?

Typically enough, LLMs give different answers every time I ask, so this isn’t, you know, data to be relied on in any way. Sure, it’d be better if it was actual data instead of hallucinations and LLM navel lint, but it’s better than nothing.

The response times from Perplexity are all over the place — sometimes it responds within a couple seconds, and sometimes it takes a minute, but whatchagonnado.

Let’s test another author:

Amy Hempel. She’s awesome. I hit the m command (to list “missing” books), and:

All those three are books that exist! And that I don’t have.

I tried asking it again, and then it only listed two of these books — the non-repeatability of the results is annoying, but again, LLMs are toys, and if you get anything useful out of them, that’s nice, but your expectations can’t be low enough.

For giggles, let’s try this a “list missing books” on Megan Whalen a few times:

1st.

2nd.

3rd.

Oh well. I tried adjusting the temperature, but no go. I guess I could run the query several times and aggregate the results, but it’s already pretty slow…

After using this for a handful of authors, I’m now deep in debt. OK, perhaps not from the API usage, but because I’ve bought, like, fifteen books while just testing things out here…

I’ve added convenient commands to the search buffer to go to bookshop.org so that I can shop, as well as Goodreads to check whether the books actually exist. (They mostly do, but there are of course some hallucinations.)

And now I can also do that thing I wanted where there are certain authors that I track, and then query Perplexity for books they’ve released the last few years. Let’s see, I’ve marked a few authors, and:

Let’s repeat that:

And again:

*sigh*

Heh, if I remove Anthony Horowitz, I get:

Sure, sure… If I have just Stross and MacLeod, I get:

OK OK OK.

Is there a way to make Perplexity try, like, harder? (This is with Sonar Pro.) The prompts are in the package.

[Edit an hour later: OK, I guess I get it… Perplexity is based on web searches, and it just doesn’t like to do a lot of searches? So I’m going to have to loop through each tracked author and then aggregate the results.]

But… it does actually kinda look like even I managed to find something actually useful to use an LLM for, even if it’s literally janky? Actually?

Whodathunk.

[Edit a couple days later:]

I couldn’t help myself, and checked what results OpenAI and Gemini gave me. Of course they can’t tell me about “what’s new” because they don’t get “knowledge updates” very often, but I can ask them for missing books, for instance. Let’s do David Sedaris as an example again, and the query is basically “list all books by David Sedaris, but exclude books from this list:”, and then the list of the books I already have.

Here’s Perplexity (sonar-pro).

Here’s Gemini (gemini-2.0.flash).

Here’s OpenAI (gpt-4o).

I’ve put all the query stuff in query-assistant.el on Microsoft Github. I didn’t really expect them to be better — and they aren’t — so no big surprises there.

Book Club 2025: Djevelkysset by Unni Lindell

The week of mysteries continues…

Lindell is one of the most successful mystery writers in Norway, and reading this, it’s both obvious and a bit confusing why this is the case. At the same time.

The story is told in extremely short scenes — if this was a TV series, it would be one of those where you get 15 seconds per scene before it switches to the next one. There’s over a dozen central characters, and we flit by them all constantly, and this both makes reading this exhausting and kinda thrilling simultaneously. I guess you could call the viewpoint a close third person in a malfunctioning washing machine on a constant spin cycle? Every time we flit to a new person, we get some of what they’re thinking, even if it’s just “the smell of the glass reminded her of the catastrophe” — often infuriatingly vague, and but more often trivial.

I kinda hated the book? But I can’t deny that it’s also pretty successful in doing what it’s trying to do.

Djevelkysset (2012) by Unni Lindell (3.49 on Goodreads)

Do Lists Of Published Works Exist?

tl;dr: Does anybody know of a site/API where I can find a list of books published by an author? Before you answer “just use Wikipedia/Goodreads/Amazon/openlibrary”, read on…

After tinkering with my bookiez.el package today, I naturally started to want to buy more books. I was thinking about implementing something that would alert me when authors I particularly like release something new, if that’s simple to implement.

So I was looking at (to take a random example) David Sedaris:

The last book I have is from 2018? He must have published something after that, but how to find out?

Because if you go to Goodreads and sort by publication year, you get this:

And there two things on the top there do indeed look like new books, and I bought them from Bookshop.org. But what are the rest of those things? Yes, indeed, they’re radio shows, and then a collection, and then… er… a Kindle essay, and then there’s…

OK, so I tried openlibrary.org, but it has the similar problems, as evidenced by the first screenshot up there. Among the 122 books Sedaris has published (apparently), there’s “A Carnival of Snackery Lib/E”, “A Carnival of Snackery”, “Carnival of Snackeries : Diaries”, “Carnival of Snackery : Diaries”, and finally of course, “Carnival of Snackery”.

I don’t know whether this phenomenon has a name… “The Tragedy Of The Pedantry?” You see this problem all the time, like on discogs. If you’re trying to buy all albums by Joe Jackson, you get an overview that starts with this:

The first two things are indeed his first two albums, but then you get an “album” by the BBC Transcription Service (these were vinyls they sent out to far-away broadcasting outposts like the BBC offices in Gibraltar, so that they could play some rockin’ Joe Jackson live to the people in Gibraltar — good work by the BBC). BUT I DIGRESS.

If only there was a button on the form where people submit data like this like “is this something you thing that reasonable people would consider an actual ‘new release’ by this person?” button. I know, that takes using common sense and having some taste (is a collected edition a “new release”? a translation? an illustrated edition?), so it’s basically impossible, but it sure would be nice to have a button when viewing these lists that says “hide effluvia”.

I guess the best one can hope for is Wikipedia:

But the nerds at Wikipedia are so geeky — it’s not as apparent here, but if you look at somebody who does series, it’s almost impossible to see whether they’ve done any new books lately. As an example, C. J. Cherryh:

And that goes on and on, and you basically have to read the entire thing to see whether she’s done anything new lately.

I find all this not only annoying, but slightly bewildering: There’s readers that want to buy books, and they’re fans of certain authors, so they want to be reminded that there are new books when there are new books. And by “new books” all readers mean “has this author written a new book and it has been published?”, and usually nothing else.

If you manage to eventually find the “all books” for an author on Amazon, for instance, and manage to select “publication date”, you get this:

OK, English only…

What? Oh, there’s a 3 book collection set… and a kindle edition… OK, I don’t care about Kindle, I just want papery books:

GAAAH

So there is no way on Amazon to get it to list out new books by an author — they’d have to do the tagging I describe above, and obviously that’s not something a small startup like Amazon has the means to do.

Sorry for the lame joke, but they actually used to do this when they were a small startup — you could get a list of “works by” sorted by publication order, so that you can, you know, buy stuff.

And of course, just searching for “david sedaris” just gives you popular books…

Changing to “newest arrivals” gives you junk — OK, there’s two things in the first line by David Sedaris, but nothing that could be called “a new work by”.

So I’m just asking the Internet in general: Has anybody, somewhere, made a web site that lists works by authors in a way that can be used to check whether somebody has published a new book lately?

I’m guessing not, because that just seems totally impossible, but I thought I’d ask.

Oh, for giggles I tried ChatGPT:

Which starts off pretty reasonably…

But ends in 2003!? (Same with 4.5.)

After chatting a bit with it to list David Sedaris books, I got it to stop trying to divide things into sections, but it includes things like “Themes and Variations” that’s a Kindle essay, as well as “The Best Of Me” which is a compilation. But this doesn’t stop in 2003, at least.

LLMs are notoriously not very up-to-date, so it’s not ideal for the functionality I have in mind. And I don’t want to. But I’m guessing that’s going to be my best bet? I have to get a doctorate in prompt engineering first.

A Book Tracking Package for Emacs

In 2013, I got tired of rooting through the book cases every time I bought a new book (to see whether I already had it, because who can remember those things).

So I bought an ISBN bar scanner, and whipped up some basic code in Emacs to keep track of what I’d bought. I’ve used it for over a decade now, and it works fine, but it’s super duper basic:

It’s basically just a buffer that lists all the authors, and then if you click them, you get:

A list of all the books from that author, as well as the registered publication date.

So that’s fine, but:

The data quality from the various ISBN lookup providers is pretty bad. I mean, it’s not only the inconsistency, but it’s also sometimes altogether wrong, because ISBN reuse is a thing, unfortunately.

In addition, I’ve been buying ebooks too, and these are totally outside this system. Whenever I buy a papery physical book, I blitz it with the bar code scanner, and it’s registered — it takes me literally two seconds or less. With ebooks, I’ve got no system at all, and I’m buying via three different online stores, so my book shopping headache has reestablished itself.

So I hear what you’re saying: Just bite the bullet and use Librarything for everything. And I say: No! So there! stomps foot

Voila!

I spent one day tinkering with this thing, and now I can edit the data to satisfy my CDO (it’s like OCD, only the letters are in the proper alphabetical order), and I can add ebooks (manually-ish, sigh). When the data is easily available like this, the obvious errors (like with the author name above) can be fixed very quickly.

I added more support to the isbn.el library to do Goodreads queries, too. Goodreads doesn’t have an API any more, so I have to do some web scraping, which sucks, but this increased the number of book covers by 180%, since the services that do have an API aren’t as comprehensive. So whatchagonnado.

Covers are nice.

I also added a new command to just list all the books in one big buffer:

Because I realised that having a buffer with authors, and then books by specific authors is all well and fine, but it’s really just much faster to C-s for a book name than to first find the author, and then find the book. I mean, I’ve not got a million books; it’s just er:

That many.

Hey, now I can get data out of this thing by just clicking on the columns… Let’s see… I’ve got 432 unread books! Sure! I’ll get to them all one day.

(Actually, looking over that list, it looks like I’ve forgotten to mark a large number of books as read… uhm… I’m guesstimating about 100? I should revise the data one of these days.)

Anyway, the code is on Microsoft Github. I’m not sure anybody would find this usable as is, but perhaps there’s some useful bits. At least the isbn.el library in there is somewhat helpful.