OTB#75: There Will Be Blood

There Will Be Blood. Paul Thomas Anderson. 2007. ⚂

Is this one of those movies designed for an actor that acts big to be allowed to be totally over the top so that he can win an Oscar (see all male actor Oscar wins ever)?

Oh it is:

The standard joke is that the craft awards should be “most” instead of “best” (“most editing” always wins), but the same can be said for the male acting award.

Those movies are seldom much good, but Paul Thomas Anderson has done some good movies (like Inherent Vice), so perhaps this is better than you’d assume…

[time passes]

This is an intriguing movie. It doesn’t seem to have any… structure… so I have no idea where all this is going or what’s up, and that’s so unusual and fun.

The religious stuff is so in-credibly boring. I mean, I can’t credit anything with being as boring as those bits are.

[more time passes]

OK, I’ve lost all interest in this movie. I thought the oil bits were interesting, but then the movie focuses on the protagonist’s personal problems (which gives Day-Lewis plenty of opportunity to earn his Oscar), but which are just plain snooze-worthy.

I can totally see why these people rate this movie highly, but it’s not a good movie. The cinematography’s occasionally fun (with all the symmetrical scenes and the screen mostly filled with #000), and it starts off with lots of interesting bits, but then it peters out. I guess the reveal is supposed to be all shocking and stuff? I seemed kinda obvs to me…

In the leftover booze series, I’m trying to get rid of all these bottles, but particularly the St. Germain. Unfortunately the
Left Bank Martini
only uses a smidgen.

And it’s not very good. The dry vermouth dominates.

This blog post is part of the Officially The Best series.

Reagent is… Nice?

I’ve been procrastinating on writing a web-based admin interface for news.gmane.io… because I just haven’t been able to make up my mind as to what technologies to use.

I hate learning new stuff, but it feels pretty stagnant to tap away in Javascript (on the frontend) and PHP for whatever has to happen on the backend. I really just kinda dislike PHP for no particular reason, but it’s so convenient: If you need a simple API for doing whatever, you write a .php page and that’s it. No dependencies, no setup, pretty good error reporting: Everything built in in Apache.

But I don’t liiiike iiiittt. (Imagine a whiny voice.)

For the Gmane stuff, I had the additional problem that I have a lot of admin logic in Emacs, and I want to keep that. Because it’s really convenient, especially when doing mass updates.

So… it took me weeks to accept it, but if I don’t want to implement a lot of things twice, I had to use Emacs on the backend.

*insert shocked face here*

I wrote a very short PHP component that does the TLS and the auth, and just reads some JSON posted to it, sends it over to Emacs, reads the JSON from Emacs and spits it out to the client. Like… middleware.

I could have done the HTTPS server in Emacs, too, but there’s just too many variables to get that solid, and Apache works.

So. That’s the backend, and what about the frontend?

I have no knowledge of Clojure, ClojureScript, Java or React, so I settled on Reagent.

My first stumbling block was Clojure, of course. I’ve been writing in Common Lisp for my day job for a couple of decades, and Clojure is… not Common Lisp? And I’m not sure what the design philosophy behind it is. Is it perhaps “make it look cool enough so that Java people won’t notice that it’s Lisp”?

Compared to Common Lisp, it’s terse and tends towards line noise, just like Perl. I made the following comment on irc:

(lambda (bar) (foo bar)) is the same as #(foo %)

And got the sarcastic response back:

And I guess (lambda (foo zoo) (bar foo zoo)) is the same as #(bar %1 %2)?

And it is! It was a joke, but that’s exactly what it is. When people are sarcastic, but happen onto the actual language design, that says… something?

And, oy, don’t get me started on the threading operators (-> and –>). Perhaps designed to placate Java developers who can’t read anything but foo.bar().zot().foobar()? More than a few of the design decisions seem predicated on limitations of the Java language (which are then reflected in the JVM), like there not being “real” keyword arguments for functions.

My point is: My quibbles are irrelevant. Whatever the idea behind Clojure was — it worked. People love these tricks, because people love writing code that’s incomprehensible I mean clever.

We now have a Lisp that’s mainstream enough that you can do web development on it instead of writing Javascript. And for that we’re all grateful.

I have not learned Clojure in depth (to put it mildly), but learning enough to write a web page only took a day. I guess I’ll look back upon my first ClojureScript project in shame, but it, like, works, and it’s a lot more fun to add new stuff to it now than it would have been in Javascript.

My major problem with all this is… the tooling isn’t quite all there yet when developing. With leim and Figwheel, everything reloads nicely and magically in the browser while doing stuff, and when doing something egregiously wrong, I get nice error messages:

However, if the breakage isn’t during compilation, the error reporting is really, really bad:

That’s an error message from line 25173 in react-dom.js, and determining where the error in my .cljs file is is… difficult? I thought I must be doing something obviously wrong to not get better error reporting, but googling this stuff shows that people mostly are just putting a lot of prns everywhere, and that’s really primitive.

Even worse are Reagent errors that are less… errorey. I spent an hour on a problem with bind-fields because I thought it took a function parameter, but it wanted a vector. Absolutely no feedback whatsoever — nothing worked, but I didn’t see what the problem was before I googled “reagent-forms” “bind-keys” (with quotes), and the second answer is somebody who’d done exactly what I’d done.

And some of the error messaging seems wilfully obtuse:

This was because of:

Yes, those should be square brackets. (And note: No reporting on what line the error was on.)

*sigh*

But Reagent feels quite nice, and the Hickup HTML syntax is wonderful: The best I’ve seen in any language. Even real Lisps don’t have an HTML-generator syntax that’s that thought-through and regular. I mean… this makes me happy:

[:div
 [:h2 "New edit requests"]
 [:div#requests.log
  (map (fn [req]
         [:div.clickable {:on-click #(show-edit % req)
                         :key (:request-time req)}
			 (:request-time req) " " (:newsgroup req)])
       (:ok data))]]

Here’s the live admin interface in action, handling an edit request:

BC&B: Gardiane La Cargue w/ Cervelas Rémoulade

Busyness never ends, so I’ve had no time to read anything… which means that I can’t cook anything either. It’s this whole concept.

Finally, time for some food.

So the starter couldn’t possibly be simpler: It’s sausages with a Dijon mayonnaise. But that means that I get another crack at making mayonnaise: My two previous attempts at making aioli (basically the same thing) were less than perfect.

Simple ingredients.

This time, instead of trying to use an electric mixer thing, I thought I’d do it the old-fashioned way.

Just whisk the yolks a bit, and then add a teensy amount of oil, and whisk some more, and then a bit more and etc etc you get the idea. And it worked! The mayo didn’t break!

I did, however, spill the oil over the counter while doing all this. Do you know how many paper towels are required to map up two cups of oil?

All of them.

ALL OF THEM.

Should have used a squeegee instead.

The recipe didn’t specify heating the sausages, but I thought it sounded nicer warm…

And it’s a … simple dish? It’s Dijon mayo over sausage. But with some bread, it’s a very nice nibbly little dish to nibble on while reading a book.

Which is Geoff Dyer’s White Sands.

I’ve previously read only his Zona book. It’s about Stalker, and it’s fabulous. It’s structured as a sort of meditation and a diversion from doing what Dyer should be doing, so he’s retelling the plot of Stalker and talking about other things, and it has lines like:

There are more and more things […] from which one has to avert one’s ears and eyes. With television I have my strict rule, a rule applying to Jeremy Clarkson, Jonathan Ross, Russell Brand, Graham Norton and a whole bunch of others whose names I don’t even know; I won’t have these people in the house.

How can you not love this man? So I bough a handful of his books, but haven’t found the time to read them.

Let’s look at the first pages here:

Well, OK, this isn’t Zona. It reads like it’s a selection of magazine articles… which it turns out to be! Darn! That’s really not my favourite genre of writing.

But, I mean, it’s fine… Dyer tries to make it cohere with some interstitial bits, and many of the pieces are about travelling to see big outdoors art pieces (like the Watts Towers). But it reads like a collection of magazine articles. Interesting ones, and it made me want to go have a peek at some of these things, like the Spiral Jetty.

And the bit about Svalbard was very funny. I mean, Dyer is witty throughout: It’s a pleasant, fun read, but I was still disappointed. Perhaps with my expectations lowered somewhat, the next Dyer book I read will be less er disappointing.

So I need more food:

So this is yet another beef stew, and like the previous (how many is it now? three? four?) beef stews, it’s the same thing: Throw some beef into a pan with some wine, let it sit for a day in the fridge, and then steep the fuck out of it.

So the normal ingredients… this time the variation is that we have olives in the stew.

So chuck some chuck in a pan with some veggies, and pour over some wine, and then into the fridge.

It comes out looking quite purple the day after. And not very appetising.

Then we brown the shit out of it.

New gadget time! Patricia Wells (the author of the Bistro Cooking book that I’m cooking my way through methodically) has a thing for olives from Nyons. She specifies “preferably from Nyons” whenever she says “olives”. Perhaps it’s just an autocomplete bug in her typewriter? Anyway, I ordered some from Amazon in the US, and they arrived in a smashed glass. And then I ordered some from Amazon in the UK, and they arrived… ripe? The glass made a “WHOOSH” sound when I opened it, and the olives were rotten, through and through. And then I ordered some Nyons olives from (you guessed it) Amazon in France, and they arrived whole and edible.

So I get a chance to try out this new gadget, which de-pits pitted olives.

And… it works?

The Nyons olives tasted just fine, but I’m not sure it was worth it all. They’re kinda on the mushy side, and I prefer them a bit firmer, but they’re fine.

So, into a pot for some cooking. The recipe specified “two sprigs of thyme”, so I put half a plant in. Wells is very … careful? about spices and herbs.

Well, OK, doesn’t that look… appetising…

No, indeed, it does not.

Man, these pics are totally out of focus… I must have twiddled with something on the camera…

It tastes… like… it looks? It’s not very interesting this time either. Perhaps I’m using the wrong cuts of beef, or the wrong wine? It should just taste… more…

Oh, well.

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

OTB#75: A Clockwork Orange

A Clockwork Orange. Stanley Kubrick. 1971. ⚂

I’ve seen this before, but it was in my teens and I don’t really remember much about the actual movie. But everything from it is part of popular culture now, so it all seems so familiar anyway.

Surely those bar tables aren’t very practical.

Virtually no critics thought much of this movie, and watching it now, I sort of get why… There are so many striking, iconic shots in this movie, but it’s oddly paced. We get all the super-cool ultra-violence and rape in the first… half hour? 45 minutes? Yes, yes, it’s supposed to be appalling and stuff, but Kubrick makes it look fun and appealing. Who wouldn’t want to live the lives of this droog?

But then there’s a couple of hours of McDowell in the prison system, and that’s definitely less striking. And then three hours of McDowell getting his comeuppance, only we’re supposed to be somewhat sympathetic? For some reason that’s never explained?

What I’m saying is that the last nine hours are tedious.

The plot is really kinda stupid? It’s just based on coincidences that beggar belief.

The film was a huge worldwide commercial success:

The film was a box-office success grossing more than $26 million in the United States and Canada on a budget of $2.2 million.

[…]

The movie was the most popular film of 1972 in France with 7,611,745 admissions.

The novel sounds smarter than the movie:

There are sentimentalities: where in the book it was his drugs and syringes that he was shocked to find gone when he got home, in the film he has been provided instead with a pet snake, Basil, whom his parents have wantonly and hypocritically done in. Above all, Alex is the only person in the film who isn’t a caricature, the only person the film is interested in; whereas in the first-person narrative of the book, Alex was the only person Alex was interested in.

o

This is a bad recipe for getting rid of liqueurs, because there’s nothing here I want to get rid of, really. Well, the Triple Sec is probably getting a bit long in the tooth… So… Mezcal Margarita

But I poured the rest of the Midori out. That stuff just isn’t very good.

And this cocktail is rather meh.

This blog post is part of the Officially The Best series.