Emacs Screensaving Redux

Yesterday, I tweaked my toy Emacs screensaver to display images, and discovered that that was very slow indeed.

Today I started actually benchmarking this stuff instead of just guessing what was taking all that time, and surprise, surprise, the problem wasn’t where I thought it was at all.

Instead it was in the xelb library, where it would do a pessimal conversion of strings into bytes. With a three-line patch, it now takes 0.06s to convert one of these xcb:PutImage objects into a byte array, where it previously would take 0.8s.


Now it almost looks like it’s doing the images that way on purpose and not because that’s how fast it can go!

I really like the xelb library: It’s very clearly structured and is written in a very correct way. But I’m guessing that nobody has tried using it for something as wacky as this before.

I’ve now sent a patch to the maintainer.

More Emacs Screensaver Fun

As I’m no doubt you all remember *cough* *cough* I hacked up an Emacs-based screensaver the other year because XScreenSaver twaddles the DPMS too much. (Yes really! I mean probably! I didn’t actually look at the source code.)

My er solution used a transparent X frame to catch the mouse/keyboard so that it knew when to wake up, but did the display in Emacs itself. (Which I used to display album covers in an Emacs buffer.) This turned out to work, like, 90% of the time, but sometimes the display would just stop updating… probably because of confusion as to what was on top: Emacs or the transparent frame?

So today I finally sat down and poked around in the xelb source code to see how you put a bitmap into a window, and… it’s easy? You just basically send a xcb:PutImage message to the X server with the image data.

Easy peasy. Just look how fast it is!

OK, that’s painful to watch, right? Why not just blop it all onto the screen at once? Because if I use a width/height in the XPutImage message that’s bigger than 255, the X server just says “nuh-uh”. And that’s even after enabling big requests with:

(xcb:+request+reply x (make-instance 'xcb:bigreq:Enable))

As expected, there’s zero hits on that Google thing for this stuff, because… well… nobody does this stuff. But on the off chance they have done this… does anybody know of how to make it possible to blob over larger bitmaps into a window?

The source code is on Microsoft Github, if anybody wants to poke around…

But if it has to be done in a bitwise fashion, I can probably speed it up: It’s implemented in the most naive, slow fashion possibly. The stuff that converts a PPM image into the 255×255 32-bit blocks is what takes all the time, really, but I didn’t want to spend time doing something clever about that if there was a way to un-blockify the transfer.

So… anybody know? *crosses finger*

Hm… well, if I randomise the placement of the tiles, it’s at least a bit more fun, I guess:

Yeah, OK, I have to reimplement that…

[edit: My benchmarking was way off — the thing that takes most of the time is the xcb:PutImage transfer itself. I guess the xcb library doesn’t really … like sending off (what?) 30MB worth of data over the network connection. There’s a xcb:shm:PutImage, where you just stash the data in memory somewhere, and then out the memory location into the message, and the X server will peek into the process’ memory… I think… but I have no idea how to get the memory location on the Lisp side of Emacs.]

ELC1997: BrainBanx

BrainBanx #1-6 by Elaine Lee, Temujin and others, published by DC/Helix.

After a couple of less than totally thrilling series, I’m having high hopes for this series: The best Lee comics I’ve read have been science fiction, and this is science fiction… so there!

(Oh, Here’s an explanation of what this blog series is.)

I’ve switched to a new camera (a Sony), so I’m not sure whether these shots of the comics will be totally out of focus or blurro or just plain bad… Let’s read the first three pages and find out.

Uhm… it’s partly out of focus? Hm… perhaps I should up the f? Anyway, as you may not be able to tell from the slightly blurry speech bubbles, this is… a lot! We start of with an infodump about a guy telepathically existing in that red-headed woman’s brain, because she’s a secret agent and… he’s her… er… uhm… inside guy? So I guess that’s, like, er, better than him just talking via a walkie-talkie or something? Probably?

Temujin’s artwork is quite something. I’m not sure whether it’s totally out of control or pure genius. These layouts are so out there. I mean — that guy’s chin up there? That shouldn’t work, and yet it totally does when reading this page. (We’re being dropped into a flashback, or perhaps really the-guy-in-her-head showing her what had happened… So the dreamy loss of orientation is a part of the story.

Here’s another example — she’s talking to that (possibly) skeezy guy, and being shown a previous encounter more or less at the same time. I love it! It’s such a condensed way of showing the reader all they need to know without hitting them over the head with it.

It’s also a bit exhausting, especially since there’s some characters that are insane, and some that are telepathic…

Oh, I should definitely decrease the aperture size and just rely on the stabiliser in this camera, I think. Sorree!

Oh, what’s the story about? I… don’t even want to try to start explaining that much, because it’s such a rich world, and while it may seem from the above that we get a lot of information dumped on us, it’s always interesting. Basically, it’s about a secret agent that’s investigating a genetic research laboratory. Well, that sounds straightforward enough.

In Starstruck, Lee has these extensive (and very entertaining) text pieces, so I was wondering whether she’d do the same here. But this is all we get, where she talks, in a very straightforward manner, and the world of BrainBanx. Laid out like that, it does remove some of the mystery, I think.

Temujin experiments with a bunch of different rendering styles, which makes perfect sense for a book like this.

Hm. Well, on this two-page spread, on the left we have our heroine being (semi-)raped by a cat-man. Like, every heroine has to undergo sexual assault? It’s a cliché I didn’t expect from this book. But um the right-hand page we have our heroine invading the mind of that blonde woman, which is also a violation (read the snakey text for an explanation).

The juxtaposition is very knowing.

Lee explains that some speech balloons were left off a page, and says that there’s a lot of overlays. And, yeah, it does look like a very complex job — so many colour holds (drawings in colour only) that sometimes intersect with the black lines and sometimes now.

Oh, right, Lee had researched voodoo for that Ragman series for DC. Never waste research.

I love the style Temujin uses inside that guy’s head.

Lee explains that she doesn’t like “as you know, Bob” dialogue.

Mark Pennington does the inks on (most of the pages of) the final issue. It’s not a good fit — he makes the faces look very odd and amateurish.

And we end with a drawing dedicated to Lou Stathis, probably most known for editing Heavy Metal in the early 80s, I think? Oh, right, he’d just died, and he worked for DC at the time.

Well, anyway, I really loved reading this book. There’s such a lot going on — a bewildering number of characters and different intrigues, but somehow they’re all distinct. The rendering helps a lot. The only two people I (sometimes) had difficulty with keeping apart were the two people in the agent’s head, which seems oddly appropriate.

It’s a slightly exhausting read, but hugely entertaining and quite interesting.

The series has, unfortunately, never been reprinted or collected. But you can pick up the issues very, very cheaply:

Which I guess means that it wasn’t a very popular series. I’m not able to find a single review of the series on teh internets either.

Now that’s unpopular.

June Music

Music I’ve bought in June.

It’s a good mix of stuff… old and new. And new stuff from old favourites like Aksak Maboul:

Hm. Well, there’s not actually that much new stuff from new people this month, is there? Last month we had Irreversible Intanglements and Yves Tumor, but this month we have a 1984 album by Can Can:

I had that album on mp3, but I re-bought it on vinyl (an unplayed copy from the US!), and it sounds ever so much better. It’s one of those forgotten new wave gems…

Speaking of which, I’ve been reading John Lydon’s autobiography:

It’s fascinating — reading it is just like listening to Lydon speak, which is a lot of fun. But over five hundred pages, it’s a bit… much? Especially since he has a tendency to be all oblique, and just assumes that everybody knows the history of the Sex Pistols already, so he just talks about what he thinks about the proceedings, without really saying, like… what happened? Just a typical example: He mentions that they didn’t want to sign with Virgin because the others thought they were hippies… and then four pages later, Virgin releases the album, and… there’s nothing about how that happened.

So it’s like sitting in a bar with an interesting guy talking at you for hours and hours, but you can’t get a word in with any followup questions.

I’m just halfway through, but I think I’m reaching my limit. Pub’s closed!

ELC1995: Indiana Jones and the Spear of Destiny

Indiana Jones and the Spear of Destiny #1-4 by Elaine Lee, Dan Spiegle and Will Simpson, published by Dark Horse comics.

(See this for what this blog series is about.)

Hm! I assumed that this was an adaptation of one of the movies? Wasn’t one of them called something like “Spear of Destiny”? But it’s not; it’s an original story by Lee. Let’s read the first three pages:

On the first issue, the pencils are by Will Simpson, and they’re kinda staid and traditional, which, I guess, suits a Indiana Jones comic book. But the characters don’t really look a lot like Harrison Ford or Sean Connery. It’s very clear storytelling, anyway, and the story is a classic Harrison Ford thing, only set in Ireland. It deals with yet another Christian relic, though.

The characters have a bunch of dreams and/or visions, which sometimes seem to build up to nothing more than a non sequitur.

In the second issue, Spiegle takes over the artwork completely, and things get more lively.

The characters look even less like their movie counterparts, though.

The comic, like the movies, have action scenes with exposition-heavy scenes intertwined. It does work here, but it almost shouldn’t.

Spiegle always likes putting in fun layouts, and his thing here is to do a reverse S reading order, mostly on the right-hand pages, for some reason or other. Brian Chippendale is probably the only comics creator to do the “snake” layout consistently throughout a book — here Spiegle is just carefully leading the eye toward the left in the middle part of the pages.

I like it; it’s fun. And it usually works, but there was a couple of pages where I found myself “er… middle portion to the right or to the left”? But on most of the pages, like the above, it’s virtually impossible to read it in the wrong order.

Well, what do you say about this one? It’s a perfectly serviceable Indiana Jones series. It’s a bit choppy in parts, because the characters didn’t really seem to have much character or motivation, and I found myself going “well… why…?” more than is comfortable.

It’s not very exciting.

The series has been reprinted and collected by Dark Horse. Some fans have made a youtube series with the same name, but it doesn’t seem to have anything to do with the Lee series? I just sampled the first episode…

I’m unable to find even a single review of this series on the web, so I guess it didn’t make much of an impression.