OTB#75: Battleship Potemkin

Potemkin. Sergei M. Eisenstein. 1925. ⚅

I’ve been looking for the Pet Shop Boys version of this movie, but that’s apparently never been released, so I watched this movie while playing the CD and things probably didn’t line up perfectly… I mean, it can’t because silent movies have a kinda vague connection to timing anyway…

The 2K restoration of the movie looks pretty awesome.

[time passes]

What a fucking amazeballs movie! I basically cried all the time. It’s just fantastic, and not in a “well, it’s good for a movie made back then”, but it’s just totally flabbergastingly amazing.

It’s so unusual, too. There’s no character development or anything like that. It’s like from a different continuum of movie making, where everything was better.

I did try listening to the original Edmund Meisel score, but it’s… horrible. It’s horrible. The Pet Shop Boys score is magnificent. This movie landed at #75 on the Officially The Best list, but that’s probably because people hadn’t seen this movie with he Pet Shop Boys score. If they had, it’s would have been #1.

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

OTB#75: The General

The General. Clyde Bruckman / Buster Keaton. 1926. ⚃

Lobster? Who are they, then? Over the years, the companies doing releases and restoration of classic (and not-so-classic) movies has been ever-changing. Let’s see… there’s Criterion, of course, who’s been going all along. And BFI, doing more and more stuff, presumably gummint-funded. But I was thinking of… Arrow… and Tartan… and Carlotta… And… oh, yeah, Artificial Eye! They were awesome. Hm… Eureka? All these companies doing releases I would just snap up if I saw them somewhere, and most of them gone now.

Anyways, this has been restored pretty nicely… there’s some juddering and brightness differences between frames, but it looks pretty good. Hm…. Are they doing mostly public-domain stuff?

Hm:

At the time of its initial release, The General, an action-adventure-comedy made toward the end of the silent era, was not well received by critics and audiences, resulting in mediocre box office returns (about half a million dollars domestically, and approximately one million worldwide). Because of its then-huge budget ($750,000 supplied by Metro chief Joseph Schenck) and failure to turn a significant profit, Keaton lost his independence as a filmmaker and was forced into a restrictive deal with MGM.

But it’s more well-liked now:

In the decennial Sight & Sound poll of the greatest films ever made, international critics ranked it #8 in 1972 and #10 in 1982. It ranked #34 in 2012.

But what about 1992 and 2002!? Shame on you Wikipedia!

I’m not quite sure why it’s so highly rated. I’m not expert in 20s movies, but I’ve seen my share, and if it weren’t for it not having sound, I would have guessed it was a later movie: It’s incredibly technically accomplished. If you sit there thinking “but how did they do that with those huge cameras they had in the 20s” then it’s very impressive indeed.

I guess I agree somewhat with the contemporaneous reviews:

The Los Angeles Times reported that the picture is “neither straight comedy nor is it altogether thrilling drama” and goes on to state that the picture “drags terribly with a long and tiresome chase of one engine by another”.

There are bits here that are funny, and I laughed out loud at two scenes, but it does suffer from just going over similar scenes, again and again. Still, it’s thrilling to see the amazing scenes on the trains: They look so dangerous and out-of-control. It’s an achievement for sure, but I think the reviewers in 1926 were basically correct.

OK, this get-rid-of-liqueurs cocktail has more St. Germain. But Love On Sale also has dry vermouth…

… and I think I just don’t like dry vermouth?

OK, I tasted the stuff separately, and it’s just not very pleasant.

There. Gone.

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

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: