Thanks, Cloudflare

I’m using a link checker plugin on this blog, but I’ve noticed lately that about half of the external links are marked as broken. (The plugin marks those links with a line through the text like shown above.) But when I click on the links, they work perfectly.

So I just had a peek at the plugin’s dashboard:

And virtually all of the “broken” links are “403 Forbidden”, so my immediate thought was: “OK, all these sites probably use Cloudflare, and Cloudflare has (by default) paranoid anti “bot” settings.”

Right again! Indeed, the vast majority of these 403s are from Cloudflare.

And it’s because the link checker bot fails the “are you human?” captcha.

Some of the 403s are from Cloudfront, and some are from Akamai (the two other big reverse proxy services), though.

But… I guess that this means that the days where you could automatically check whether links still work are over? So I should just disable the plugin?

*sigh* I guess so.

Comics Daze

Oops, I’m still getting up at the wrong time of day after having a cold. But why not read some comics, then?

Hey! It’s snowing again!

And I’ve gotten a bunch of comics in the mail that I’m excited to read, so let’s get started.

Shearwater: Animal Joy

03:06: Good Night and Sweet Dreams! by Teddy Goldberg (Kuš)

Ah, yeah, I bought a bunch of small books from Kuš — not their mini series, and not the main anthology series, but thicker single creator books.

Heh heh.

This is great. It’s a collection of dream stories — and unusually enough for these kinds of things, the stories seem genuinely dream-like. Many of these scenes make me go “yes! that’s what a dream is like!”

David Allred: The Beautiful World

03:17: I Love Comics, Who Loves Me? by Yan Cong (Kuš)

The eternal question.

Hey! That’s a recurring dream of mine, too — finding my way to a comic book store and then browsing, usually finding fantastic comics, but sometimes not.

This book collects several shorter pieces — most of them are dream stories, but some (like the above) are not. Love the artwork here.

Speech balloon placement is pretty odd throughout — sometimes you’re supposed to read the speech balloons from left to right, and sometimes the opposite direction. I’m wondering whether some of these stories have been flopped or something?

03:32: So Buttons #14 by Jonathan Baylis and others

I got this from here.

Cool — it comes with a nice origami bird.

This is a collection of short autobio stories.

Some are amusing anecdotes, and some are heartbreaking. It’s a really strong issue — I like it.

Jessica Pratt: Here In the Pitch

03:51: Chest Face by Dean Haspiel

This is another kickstartererd book.

Haspiel’s artwork is sharp as usual.

This is billed as a “satire”, and I guess so, but, uhm, it’s like… it’s not very funny? The comic seems to search for a reason to exist.

04:05: Zine Panique: épé et sorcellerie

It has these people.

So the theme this issue is sword & sorcery…

… but I guess not strictly.

Most of the pieces are in English (or are silent), but there’s one in French (about a very tired magician).

I dunno… most of these are parodies, I guess, but… not that funny? It’s like most of these artists don’t really have much feeling, one way or another, for the subject matter, so the pieces don’t feel very, er, necessary.

Tristwch Y Fenywod: Tristwch Y Fenywod

04:26: Crease #1 by Austin English (Domino Books)

An all star lineup adapts various texts — I guess the theme is “transgression” or something?

Hankiewicz on Genet is great.

I feel like I’ve seen the Ian Sundahl/Anonymous strips before? Or… some other excerpts from My Secret Life? They seem familiar somehow…

It’s a good issue, and I think E.A. Bethea’s piece is perhaps the most compelling.

Kreidler: Hands

04:59: Search & Destroy by Atsushi Kaneko (Fantagraphics)

This seemed kind of interesting at the start — mostly because of the over-the-top frantic storytelling — but the story is basically “collect all the jewels”, only here it’s a person collecting 48 body parts that have been stolen from her. This is apparently an adaptation? based on? an old Tezuka serial? So that makes sense.

It’s even got a child sidekick.

The pages sometimes veer towards a kind of Yuichi Yokoyama-ness, but er not as good. But then again, is anything?

I found this book kinda tedious, and perhaps I should take a nap now.

The Sound: Jeopardy

07:01: Young Hag and the Witches’ Quest by Isabel Greenberg (Abrams)

This was on the TCJ Best Of list, so I bought it.

This isn’t exactly my favourite art style…

And with the Obligatory Limited & Desaturated Colour Palette it doesn’t exactly sing.

The Wolfgang Press: A 2nd Shape

I’m mostly just annoyed with the binding — it’s so tight that whenever there’s frequently speech balloons hidden in the gutter and you have to beeeend and struggle with the book to actually read it. And this is an Abrams book! If they printed hardback novels with this kind of shoddy book design work there’d be riots!

But I mean… I guess it’s OK? Would I have liked it more if I were 12? If I’d never read any Camelot stories before? (Oh, I forgot to mention that this retells the entire Morgana le Fay/Merlin/etc story.) Eh. Probably not, but I would have finished it, at least. I ditched this half way through, because I’m just not all that interested.

Tarwater: Nuts of Ay

07:58: Tif et Tondu: L’assassin des trois villes sœurs by Lapière & Sikorski (Zoom)

This is surprisingly good.

It’s like a real mystery/action/thriller kind of thing, with a twisty ending and all.

The Weather Station: Humanhood

08:36: Les trembles by Thomas Merceron (Quintal éditions)

This is a very handsome book… I bought it from here.

Is that a sketch? Nice!

Ooh, I like this…

It’s very Yuichi Yokoyama — but this time around, not as copied gestures, but integral to the book.

It’s fantastic!

The (wordless) story is very simple, really — a man goes on a trip to the countryside, and then goes back home and cooks dinner. And it’s riveting!

It goes from very macro (the galaxy) to very micro (atoms), and it’s kind of oddly moving? Ace!

08:51: This Year Is Next Year’s Last Year by C. Sperandio (Kuš)

This is one of those books where they’ve put new text in an old comic (and edited it some). It’s well done.

And very topical. I mean, the fourth panel on the right hand page could be about Musk, right? But it’s really about January 6th.

And there’s also joke novelty ads and stuff.

It’s fun, but it not funny enough.

Eat-Girls: Area Silenzio

09:06: Cicada Comics by Cris Siqueira

Heh heh. “Her role as a mysterious stripper”.

This is a lot of fun — it proceeds at a very appealing pace.

There’s a murder mystery, and a new fad sweeping the nation — “handistry” — where people have surgery on their hands to extend the life line to live longer, etc. It’s a smart and funny book.

09:35: K-Hole Comics by Three Six

*gasp* Drugs!

This is about being on ketamine, and it’s really well told.

It’s interesting — good storytelling chops.

OK, I’m fading now, but perhaps a could more short comics before I call it a night. I mean day.

Blood Incantation: Absolute Elsewhere

09:52: Wedding Juice and Other Melodramas by Sanika Phawde

This is a lot of fun.

It’s very good, but way too brief. Just when it’s getting started, the book is over. Well, this is the first issue in a series, so I’m aboard…

10:02: Smoke Signal 43 edited by Gabe Fowler (Desert Island)

Wow, that’s some lineup… I guess this issue is to er commemorate Desert Island moving to a new location? Or something?

Anyway, it’s an impressive issue.

Many of the artists use the huge pages to their advantage, and it turns into a pretty compelling anthology after some initial pages that seem more random…

10:24: The End

OK, that’s enough comics for one night. I mean day.

WordPress Link Rot Tweak

A few years ago, I amended the Emacs package for WordPress so that it automatically grabbed a screenshot of
whatever I linked to. That’s a low effort solution to the link rot problem — i.e., inevitably, all web sites die, and your blog ends up talking about web sites readers can no longer read.

Now, the Wayback Archive helps a lot with this, but it doesn’t have everything. Doing a “real” backup of web pages, HTML and all, would of course be better than screenshots, but that requires a lot of effort (considering all the security implications of running foreign JS on your own site, etc). So doing screenshots is, of course, not a perfect solution, but it’s a lot better than nothing. At least your readers can read themselves the things you’re talking about.

Anyway, I’m doing this post because the original way the package displayed the screenshots was just bug ugly. So I’ve now changed it:

I think that’s kinda useful, eh? (You can try it yourself with the links above, for instance.)

Anyway, the resulting Javascript and CSS is on Microsoft Github in the ewp package. I’m not actually expecting people to use this code as is in their WordPresses — I just hope somebody writes a WordPress plugin that does all this automatically (on the server side, without any client support). Because I think everybody who blogs should be doing this — there’s nothing as frustrating as searching for a subject, and then landing on a ten year old blog that talks about that vaguely, but all the links are now dead.

So c’mon. Write that plugin. Save the world.

Inserting Images Automatically in ewp

I’ve had code for ages to handle images automatically in Emacs and the WordPress Emacs package, but it hasn’t been integrated well before, and it’s been a bit hacky, leaving temporary files behind and stuff.

So I’ve now finally cleaned it up, and here’s how it works in practice:

See? Blogging with images is easy in Emacs.

Now, for this to work, you need a camera that uploads snaps automatically, of course. I use a Sony a9, but there’s many options out there — or you can use a wifi SD card, like I talk about in that blog post, too.

Which reminds me: I was wondering whether the new Sony a1 II camera is good for my use case. The a9 is almost perfect, but since I’m shooting one-handed in low light conditions, it sounds like the a1 would be even perfecter. (That’s a word.)

Of course there are no real reviews for the thing I’m interested in: Does the wifi FTP functionality work as well on the new a1 as it does on my a9? But I found this:

Eeek! “Improved FTP capabilities and integration with Sony’s Creators’ Cloud for automatic file uploads to services like Adobe Lightroom or Google Drive” could either mean that the FTP works as before (i.e., it works really well locally, too), or it means that they only allow “improved” FTP towards “Sony’s Creators’ Cloud” or the other central storage solutions, which isn’t what I want at all. That’d be horrible. I hate improvements sooo much…

Anybody happen to know? Many other cameras also offer automatic upload functionality, but most of them also use some crappy cloud solution instead of local FTP — I’m running an FTP server on this laptop, and the camera uploads the images directly to the laptop. It’s fast and reliable.

I mean, the a9 works well, so I’m in no hurry to switch, but…

HTML, but not too HTML

When writing blog posts, I use ewp, an Emacs package to administrate WordPress. It offers an editing mode based on the revolutionary idea of just writing HTML.

Everything is cyclical in computing, so people move between writing things in raw HTML and using arcane and unholy systems, mostly based on some Markdown dialect. I understand the frustrations: It feels like there should be something that’s less annoying than using some WYSIWYG tool that invariably freaks out and ruins your post, or typing all that annoying HTML yourself, or using Markdown and then having to have some kind of build step.

In my opinion, Markdown is fine for writing README files, but if you’re writing blog posts, it just gets in the way. A blog post is mainly just paragraphs like the one I’m typing (and you’re reading) now, which is just text with no markup. Or there’s some slight formatting for emphasis or the like, but honestly, there’s not much difference between the HTML and Markdown versions for that.

Markdown is nice for headings and code snippets, but doesn’t really offer much useful for blog posts. And the things that blog posts need, which is images/screenshots and links: Markdown doesn’t help you much there.

Is that really better than the HTML version? And what, then if you need more stuff in the link?

It just gets worse and worse — what if you need to put more data into the links? The nice thing about HTML is that it’s well-formed and not very hacky — the more cruft you add to the HTML, the more unreadable it gets — but linearly. Markdown makes the easy stuff trivial, and the difficult stuff worse. (Here’s there the Greek chorus of “but you can just write HTML in Markdown” comes in, but that’s worse than just writing HTML in the first place.)

So: I write HTML, and Emacs takes care of displaying the images I’m linking to, so a blog post looks like this while I’m writing:

(To digress: I’ve noted over the years the many, many posts on HackerNews about statically generated blogs, and people have more fun spending time tinkering with their setups than actually writing blog posts, and that’s fine. But I’ve noted that virtually none of these systems have a mechanism for dealing with images in a natural way — because that’s just kinda hard. The nearest you get is “then you just create an S3 bucket and put the image there, and then you go to the AWS console to get the URL, and then you paste that into the Markdown here. See? PROBLEM SOLVED!!!” That’s why blog posts from all these people (random example) are almost always just walls of text.)

Anyway, here’s my problem:

YIKES! WHAT THE… Yes, I hear you.

To protect myself a bit against link rot, ewp screenshots everything I link to automatically. So on the blog, you can just hover over a link to see (and read, if you want to) what I was linking to at the time, and that will survive as long as my blog survives (while most of the things I’m linking to disappear, apparently).

But that means that I have to stash that data somewhere, and I stashed it in the links, which means that the HTML then becomes unreadable.

This is Emacs, however. What about just hiding all that junk?

Yes, that’s the same paragraph with the links hidden. And if I want to edit the links themselves, I can just hit TAB on the bracket:

And TAB again to hide:

Note that the links and stuff are still present in the Emacs buffer, so the normal Emacs autosave functions work perfectly, and there’s no danger of losing any data.

Similarly, the image HTML in WordPress can be pretty messy:

Because images have extra classes with their IDs, and you can click on images to get the full sizes, so they’re (almost always) wrapped in an <a>. Now, when writing articles, Emacs displays the images instead of the HTML, so we don’t see all that cruft anyway, but when editing image heavy articles, it can take some time to fetch the images, and we don’t want to be staring at junk like that while waiting for the images to arrive.

So let’s hide them like this:


And TAB can be used to cycle through the three different forms:

I think that looks kinda pleasant to work with…

Anyway, I think that’s as far as I want to go with hiding the HTML-ness of things. I mean, the temptation here is to start going in a more WYSIWYG direction, and translating <b>…</b> into bold text and all that sort of stuff, but… I’m more comfortable just looking at the tags?

So there you go: In the “just write HTML/no don’t write HTML” wars, I’m on “just write HTML but have the editor hide some of the worst of the cruft” tip.