2×10%

Since this summer, I’ve er had some time on my hands, so I thought I’d work at fixing Emacs bugs. (Or closing stuff that’s no longer relevant.) And since working towards some goal is more fun, I decided that 10% of the Emacs bug tracker would be nice.

There was about 4500 open bugs in the tracker, so that was 450 bugs, which I completed in August.

After taking some time off, I thought it was time for another 10%. Which is, of course, 410 bugs, since there’s now a smaller number of open bugs in the tracker.

I have the best math. And this way, each 10% is easier.

And today, tada, Emacs reported

11 today; 410 bugs; target 410; start 2019-08-07T20:40:02

and I’m done! Which is perfect timing, because I’ve got a cold, so writing a bragging blog post is just my speed.

So now there’s about 3500 remaining open bugs in the tracker. “But wait,” you say, “I can’t find my slide rule but according to all maths, 4100 less 410 isn’t 3500, probably”. You are indeed a mathematical genius. But I’m not the only one working at trolling I mean trawling the bug database. In particular, Stefan Kangas has closed hundreds and hundreds of bugs concurrently with me. (And, of course, the rest of the gaggle of Emacs people working at the usual rates of reporting/fixing.)

In addition, since I’m from finance, I can apply the newest financial science innovations: Linear extrapolation.

By using these latest technologies (i.e., a ruler and a sharpie), I can predict:

In 2021, there will be more closed bugs than have been opened! It’s an inversion of the OxC Index! It’s a brave new world! This time it’s different!

And now it’s time for another break, I think. Well, at least after my cold clears up; I might as well continue a bit more while feverish…

BC&B: Poulet Rôti aux Herbes Pile ou Face w/ Le Cachat

OK; time for more food. The next selections from the Bistro Cooking book in the cheese section is this thing:

It’s… uhm… Simple? It’s chevre with cottage cheese and some herbs.

I did not have summer savory (because it’s autumn), so I just went with thyme.

So you dump it all into a food processor and then run it until it’s smooth.

And then pat down into a bowl.

It’s… uhm… it tastes like… even blander chevre? I mean, cottage cheese doesn’t bring a lot of flavour, and “several sprigs” of thyme didn’t really add much, either?

Then it’s supposed to be covered by a layer of eau de vie, which is apparently French for “any kind of booze that’s not made from grapes”, so I went with a pear liqueur. I don’t know whether that was a good idea or not…

And then into the fridge. It’s supposed to stay there for some days?

OK, on to the main course, which is a roast chicken with a bizarre amount of greenery:

Adding that all up together, that’s almost 200g of green stuff to be slathered onto the poor chicken.

Look!

Greens!

The main greenery was supposed to be sorrel leaves, which are out of season, so I substituted with wood sorrel… but… I should probably have gotten a couple more plants, because it’s almost all stems.

So the final weight of the leaves…

… was less than the recipe called for.

But into the food processor it goes.

Darn. I forgot to take a pic when the fud professor was all full of herbs, because it was an impressive sight. Once it had been chopped up, it’s no longer as exciting.

OK, then the chicken is coated with egg yolks (to make the herbs stick)…

… add salt and pepper …

… and all those herbs.

Now that’s a herbed chicken.

And some butter, of course.

Meanwhile, I baked some bread to go with the dish.

So the chicken went into the oven at 250C, and then baste it ever ten minutes. I’ve recently gotten a turkey baster, so I got to try it for the first time. It’s really effective.

I had kinda expected all the herbs to just turn into ash, but I guess the basting help keep it from burning off. Still, it doesn’t look very pretty now, does it?

After 90 minutes, out to rest for some minutes before cutting.

Then the sauce is made from just reducing the liquids from the pan.

So I naughtily added some tomatoes and bread, and then sliced some bits off the chicken, and there we are.

Oh, but I need something to read!

The next book on the shelf is The Elephant of Surprise by Brent Hartinger. Let’s read the first two pages:

See? It’s a very frothy, teenagery kind of book. I think I’ve read the previous books in this series…

So how’s the chicken? It’s delish! Sort of! I mean, it’s moist and tender and just about perfectly cooked. Goes super well with the ridiculously tasty tomatoes and the freshly baked bread slathered with butter.

But!

Those herb and that sauce… I just don’t get it. Despite there being a great variety of herbs used, I basically could just taste parsley. With a hint of tarragon. If I had had the described amount of sorrel it would have been a different thing, but it was just parsley that came through. Couldn’t taste the chervil or the dill or the sorrel, just paaaaarsley.

If parsley is your favourite thing in the world, this is the recipe for you.

But I had a solution: I just stopped adding sauce to the chicken, and then it was delicious. I ate until I died. Literally. I literally died.

The book paired well with the chicken: It’s also a light, moist and tender treat. Hartinger has a way of writing the way I remember writing as a teenager; full of digressions and bad jokes. But he also does a really weird thing in this book: He goes on these long didactic sections about Freegans, of all things. I know, this book is from 2013 so it was probably a novelty at the time, but now it’s just like “er well that’s a turn of events”.

Hartinger writes the kind of stuff that goes down really easily on a sentence by sentence basis. There’s nothing awkward here and there are no snags. If I were 14, I would have absolutely adored this book, and I kinda quite like it quite a bit now.

Oh, yeah… the cachat… two days later is still tastes like slightly herbed chevre with some pear booze on top.

That’s not bad, but I think I would have preferred eating the chevre just as it came from the shop.

This blog post is part of the Bistro
Cooking & Books
series.

BC&B: Daube de Boeuf Auberge de la Madone aux Cèpes et à l’Orange w/ Gâteau au Chocolat Le Mas de Chastelas

It’s been a while since I cooked anything for this silly blog series, but I’ve been like busy and stuff. And so I’m going to cheat and not actually read a book (this is a food/book pairing blog, I’m sure you don’t remember).

So just food this time, but it’s food that takes a while to er marinate or something.

Look at all these ingredients! Well, OK, the laptop with SG1 isn’t going into the pot, but the rest is.

It’s basically beef in wine (Boeuf Bourguignon or something), so you need some meat that can cook for a long time, so I chose these, but I’m a bit leery about the one to the right… doesn’t seem fatty enough…

Well, it’s all chopped and in a pot. Easy enough.

Then the wine is added, and then…

… it’s into the fridge for 24h to … get all flavourful or something.

So while that’s taking care of itself, I thought I’d make a cake.

It’s a suspiciously simple recipe, and it’s got a suspiciously small amount of flour…

I mean, these are the ingredients. Chocolate (half a kilo), butter (a quarter kilo), sugar, eggs (ten of them) and a teensy smattering of flour. How is this ever doing to result in a cake?

OK, so first get the chocolate a-melting in a pot-in-pot water bath thing. I know that everybody recommends doing this in the microwave these days, but doing it this old-fashioned way is fine by me: It’s a bit slow, but….

… I’ve got to separate ten eggs! I’m pretty good at separating eggs, but I’m not perfect, so I’m doing it in an intermediate small bowl to catch mishaps.

See? The chocolate is totally melting.

And the eggs are separating! I only fucked up a couple.

Mmm… chocolate…

And egg whites.

And then the butter is dissolved into the chocolate. I have to say, the resulting mess is really, really tasty.

The egg yolks are whipped a bit, and then the minuscule amount of flour is whisked into it, and then it’s all whisked into the chocolate/butter mixture (that’s now cooler).

Now the batter tastes even better!

And then all the egg whites are whisked gently, gently into the mess…

And then into a springform. That’s a heavy cake, dude.

So after I had popped the cake into the oven to bake (for just 15 minutes) I re-read the recipe and saw that it called for a 27cm springform, while I had used a 24cm springform.

OOPS.

It’s a bit overfull, but I hope it’s baked enough now… The recipe calls the baking method “bizarre”: 15 minutes in the oven, then 12 minutes out of the oven with a lid on top to “steam”. Well, there’s no way to put a lid on that, but I put a slightly bigger bowl over it and hoped for the best..

OK, it sank a bit…

What!

OK, it’s more than a bit too moist in the middle (well, runny, actually), but it’s totally, utterly delicious! It’s so light and fluffy! It’s … like… a chocolatey omelet! A chocolate souffle! This is one of the best chocolate cakes I’ve ever had! Such a clean, great chocolate flavour, with a fabulous light texture.

I’m definitely going to do this cake again, but I’m getting a bigger springform to get a more even bake. Or perhaps I should get out my slide rule and do some maths on how to scale the recipe down.

Wow.

OK, still in a chocolate coma the next day, the meat is now all marinated and stuff.

Smells surprisingly good for a cold casserole of raw meat. I guess it’s the herbs that do it.

I don’t know how well this photographs, but the meat is now purple.

So the red wine is reduced a bit…

And the meat, after being patted dry, is given a good browning. This seems like a pretty strange way of doing it, but then again, I know nothing. But can you even get a good sear after the meat has been in an acid liquid for 24 hours?

Well, I don’t know. Difficult to tell with the purple colour, anyway…

And then the veggies are also sauteed, and then it all goes into the sauce to “barely simmer” for four hours.

A heaping of mushrooms are also sauteed. The recipe calls for cépe mushrooms, which I couldn’t find fresh in the shop at all. The recipe also says that if you can’t find cépes, then use “mushrooms”.

Mushrooms.

I googled and found that some people (especially Americans, apparently?) use “mushroom” as a synonym for champignon, so I got a bunch of those.

Then, after four hours, they’re added to the rest, along with orange juice and orange zest. Smells nice! Looks horrible!

OK, and now I was prepared for something wonderful and… eh… no. Not at all. Was there something off with the orange? I used organic ones so that the zest wouldn’t be all POISON and stuff, but… the flavour… is really harsh. It tastes like I’ve dropped a bottle of orange extract into the dish: It has a horrible, astringent, artificial smell and taste.

WHAT A DISAPPOINTMENT.

As for the meat — as I suspected, the leaner cuts were dry, but the fattier bits had the perfect consistency: Moist and totally tender.

But also pretty much inedible due to the orange zest.

Oh, well, I can eat more chocolate cake (with some port) instead. Cheers!

This blog post is part of the Bistro
Cooking & Books
series.

BC&B: Tapenado Restaurant Maurice Brun w/ Oeufs en Meurette

This is a slightly unusual tapenade — it’s big and chunky and is supposed to be eaten like an appetiser. Well, I’m on board with that, because I love olives.

I was unable to find olives from Nyons, so I substituted some other, less Nyonneuse olives. I wonder what makes them special… Hm… Ah, they’re called “Tanche” olives. I should try to get some to see what they’re like.

Anyway, the other ingredients are thyme, capers and anchovies, which is the normal ingredients for this sort of thing, I think. And then there’s rum. That’s a bit more speecial. Anyway, blast them in the food processor, but only until they’re chunkily chunked.

That’s not a very… pleasant sight now is it? OK, I’ll sprinkle some thyme over it.

There! I did it!

OK, I have to quickly get started on the book to read while shovelling tapenade into my mouth. It’s Patrick deWitt’s French Exit, which was shortlisted for the Man Booker prize, which is never a good sign. But you can read the first three pages while I’m setting the table.

Caught up?

OK, let’s get eating and reading. deWitt is going for witty and worldly, I guess, while this tapenade is going for super-rustic, so it’s not an obvious pairing. The tapenade is quite good, though. Olives are always nice, and the pop of super-salty anchovies here and there provide excitement. And the rum does do something for it all. Adds a kinda effervescent thing.

Quite nice.

But more food is required, so:

This is basically poached eggs on toast with a red wine sauce. Oh, right, it says to in the subtitle up there.

But so many ingredients for the sauce!

Chop!

Chop!

Chop!

And then this is supposed to really cook for ten minutes to reduce. That’s a lot of wine.

For the toast, we’re supposed to cut out rings of rustic bread with a cookie form thing, but I don’t have that, so I used a cocktail glass.


Poor birb.

Into the oven to get some broiling.

The sauce is thickened by adding a flour/butter mixture to the sauce slowly. It’s not explained what’s the point of mixing them together first is. Wouldn’t doing a normal roux work?

Add add.

Whisk whisk.

And now the toast is ready, so it’s time to do something I’ve never done before: Poach eggs.

So I’ve got my water/vinegar cooking, switch it off, and then I add a couple of eggs and let them steep for three minutes. I managed to get the eggs into the water without burning my fingers! I’m a pro!

That… does… not look very appetising.

But as soon as it’s on the toast it looks delish!

And then I poured some of the sauce over and did my best to eat before the eggs cooled off.

Mmm… almost perfect yolks. Yum yum.

This was pretty good. The eggs are eggs are eggs, but the red wine sauce did add something special to it all. I mean, besides making the plate look like I had committed a grisly murder.

Perhaps there should have been less sauce.

But know I know how to make poached eggs on toast, at least. I should do that more in the future.

I didn’t get to read much while eating the eggs (JUST EAT NO READ), but the books is a bit annoying. deWitt tries so hard to do this style of writing that it comes off more like a proposal for a romantic indie comedy: The characters deliver one line after another like this; always seeing like scripted world-weariness. Oh yeah. It’s being made into a movie.

Quelle surprise.

So I guess it was a successful gambit for the author, but not a win for the reader.

The author piles on the quirks and the repartee and characters, and it almost works. It’s almost a charming book. It’s probably going to be a very charming little movie. Michelle Pfeiffer plays the lead.

The most annoying thing about this book is probably the hapless son: He’s given absolutely no positive characteristics, but even so, a young, stunningly beautiful woman can’t help but love him. That shit’s just not necessary in a novel, but in a movie, it’s a must, of course.

On the positive side… uhm… well, OK, deWitt writes with a light touch. Everything breezes by. It’s pleasant. It’s a nice read. While nothing’s actually funny, everything happens with with a little smirk and a wink.

Except for the requisite third act tragedy to give the movie the required gravitas.

This blog post is part of the Bistro
Cooking & Books
series.

Parsing Exif Data

Emacs is moving away from ImageMagick support, and is instead handling all the major image formats (PNG, JPEG, etc) natively. The reason for this is that the ImageMagick libraries have a pretty bad track record: Over the years, a large number of Emacs crashes have turned out to stem from ImageMagick crashing. While things have been getting better, this is still a problem, especially as Emacs is being used as a web browser and a buffer overflow can lead to code execution.

But ImageMagick provides features that the native libraries do not, like image scaling and rotation, and without image scaling, everything’s sad. Have you tried looking at a web page in Emacs with all images being ENORMOUSxGINORMOUS pixels large?

Sad.

Fortunately, Emacs 27, while deprecating ImageMagick, has gained native image transforms at the same time, so we’re all set, I think. The only thing that’s missing is a way for image-mode and the like to suss out what the rotation of images should be, and that data is stored in the Exif portion of JPEG images.

So this weekend I finally got started with writing an Emacs Lisp package to parse Exif data (in JPEG images)… and I finished, too, because the format is way simple. Which shouldn’t come as a surprise, because it’s meant to be implemented by camera manufacturers, and they er well you know.

But it’s an interesting format. It has the smell of being cobbled together from whatever formats people had lying around, and it’s not… er… smart. I don’t think I’m being controversial when I’m saying that.

I’m not an Exif expert: All I know what was I googled while writing exif.el yesterday. If I say anything horribly wrong here, I’m er horribly wrong:

Basically, the Exif format is a TIFF file plonked into the APP1 field of a JPEG. The TIFF format is the weirdness: It’s based on four-byte (32 bit) offsets instead of something sensible like length specifications. And the offsets are always from the start of the TIFF file, so they’re absolute. (Well. Relative to the start. Relatively absolute.)

This means that there’s no way to say “just extend this string”: You have to recompute (or regenerate) the entire TIFF file, because everything that points to something after the string will have their offsets changed. One person writing one of the many web pages that try to explain the format laconically commented that no Exif editors do so correctly, or without corrupting at least some part of the data.

The main part of the TIFF is the IDF: The Image File Directory. It looks like this:

LL
TT|FF|LLLL|VVVV
TT|FF|LLLL|VVVV
TT|FF|LLLL|VVVV
...
NNNN

LL (two bytes; a 16 bit number) say how many entries there are, and then each entry is 12 bytes long. In each entry TT is the tag, FF says what “format” the data is, LLLL says how long the data is (a 32 bit number), and VVVV is the value of the data.

Simple, eh? Hah!

The format is stuff like “ascii”, “short” and “long”. A “short” is 2 bytes and s “long” is 4 bytes. To find the actual length of the data, you have to multiply LLLL with this number of bytes, so if you introduce a new format (with a different byte length), there’s no way for older parsers to know how long the data is! No wonder it’s common for Exif editors to mangle the data.

Besides not making sense, it’s not even any kind of optimisation, because no part in a TIFF file can be longer than what can be described by a 32-bit number, so having LLLL just specify the length directly would have been just as fine.

*sigh*

And then the real fun: If LLLL (times the format length) is shorter than 4, then VVVV is the value. If it’s longer than 4, then obviously it can’t fit into VVVV, so… VVVV (a 32 bit number) holds an offset value that points to a place in the TIFF file where the data really is.

But there’s nice things about the TIFF format. I mean, it has fractions. (They’re represented by eight bytes, the numerator is the four first and the denominator is the last four.) Ideal for parsing with Common Lisp, but unfortunately Emacs Lisp doesn’t have rational numbers.

Oh, I didn’t mention what NNNN is: It’s a pointer to the next directory section, which is er useful if er you have more than 65536 directory entries, I guess.

I think the funniest part of the Exif format is that the numbers embedded in it can be either little-endian and big-endian. Fortunately this is called out explicitly with a bit that says either “II” (Intel) or “MM” (Motorola), so it’s no biggie, but it’s just weird that they couldn’t decide on one or the other.

But isn’t it nice that all this archaeological technology lives inside our modern devices and programs? Just think of that the next time you see an image that’s correctly rotated for sure.

NFLX2019 September 20th: Between Two Ferns: The Movie

Between Two Ferns: The Movie. Scott Aukerman. 2019. ☆☆☆☆★★

*gasp*

This is like the first Netflix Original in a while that isn’t “well, if you like that kind of stuff, here’s a movie that’s kinda like what you’d like to see, only not actually that movie you’d like to see”.

Instead if’s a mockumentary about Between Two Ferns, the Interwebs TV show where Zach Galifianakis insults celebrities.

I’ve only seen a handful of episodes. They can be very amusing, but the concept is so limited that it doesn’t really… feel vital.

But this movie kinda works! They do the obvious thing: Pack the two ferns into a car and make it into a road movie with some interviews between the ferns interspersed. They’ve got some funny performances in here: Chrissy Teigen is great, for instance, and the Peter Dinklage thing is funny.

But there’s also scenes where they… inexplicably… try to go for real emotions and stuff, and those kind of drag.

And also: As with the Interwebs series: The jokes aren’t really that good. It’s also disappointing that they don’t have enough confidence in their jokes and then resort to explaining them (“La Croix”), which is just embarrassing.

This post is part of the NFLX2019 blog series.