September 1940: Up in the Air

Up in the Air. Howard Bretherton. 1940.

This is the first film from the 25 DVD/50 movie musicals box I’ve seen. I was expecting horrid audio and video quality, but this isn’t so bad… the sound is a bit scratchy.

It a very simple (presumably low-budget) film about musical film-makers favourite subject: Performers putting on a show.

Some parts are probably somewhat offensive, like the very er “naive” black guy and the blackface bits. On the other hand, there’s a black guy in here (and in a major role), which makes a change.

Hm… Oh! This is one of seven films in this genre featuring two main characters called Frankie and Jeff, played by Frankie Darro and Mantan Moreland, but it’s not a series as such…

This is an enjoyable, brief little film, but it’s not exactly… good, either.

Popular movies in September 1940 according to IMDB:

PosterVotesRatingMovie
sc-tt0032324.jpg11617.6Charlie Chan at the Wax Museum
sc-tt0033253.jpg37877.5The Westerner
sc-tt0032342.jpg16567.3City for Conquest
sc-tt0033110.jpg10227.0Strike Up the Band
sc-tt0033144.jpg4436.9That Gang of Mine
sc-tt0032596.jpg2796.8Hired Wife
sc-tt0033095.jpg2126.8Spring Parade
sc-tt0032414.jpg2206.5Dr. Kildare Goes Home
sc-tt0032846.jpg6256.4No Time for Comedy
sc-tt0032612.jpg8366.2The Howards of Virginia

This blog post is part of the Decade series.

Z-Wave and Emacs

I’ve had a 433-MHz-based “home automation” system (i.e., light switches) for quite some time. It works kinda OK. That is, I’m able to switch the lights on and off, which is the main point.

But, man, the range of 433MHz devices sucks, including all Telldus models. I’ve been able to overcome the problems by having transmitters all over the apt, but getting wall-mounted light switches to work with any kind of reliability has proven impossible.

The problem is that the protocol is just inherently unreliable: It just sends commands out into the ether, and doesn’t have any replay logic or ACKs going on.

But there’s newer (but also old) tech available, and 433MHz devices are disappearing from the stores, and the winning protocol is Z-Wave.

So I got a Z-Stick:

It’s a nice device: You plug it in and it shows up as either /tty/USBx or /tty/ACMx (depending on the model, but it makes no difference), and you talk to it by squirting some bytes at it.

I had expected the protocol to be really well-defined and open, but it’s a proprietary protocol that people have been reverse-engineering for years, which led me to believe that there surely would be a nice repository somewhere that describes the protocol in detail, and has, say, an XML file that describes all the different network packages.

Nope.

But after some googling I found this gist that at least let me check whether I can talk to the device…

… and it works!

It turns out that the Z-Wave protocol is kinda nice. Each package has a checksum, and devices retransmit commands a few times unless they get an ACK, and Z-Wave plugged-in devices (like outlets) work as repeaters, so the Z-Wave network works as a mesh. It’s kinda cool.

There’s a ton of software to control these devices, but using something like Open HAB is just so… end userish.

Instead I wanted to just plug it into my existing Emacs-based system so that I don’t have to, like, use software. Software sucks.

If no machine-parseable spec is available, at least there must be some other sensible software out there that I can just crib implementation details from, right? So I binged “z-wave python”.

And just found Python OpenZwave, which turns out to be nothing but a wrapper around OpenZWave, which is a C++ library.

Whyyy.

It’s a simple protocol, really. You just read from a serial device and then squirt some bytes at the device. It’s not like you need to do Fourier realtime transforms on a vast byte stream or anything.

But who am I to criticise people for choosing odd programming languages to implement their free software? Since it’s C++, at least probably they created some kind of over-engineered monster where you have some XML files that define the protocol, and then they create objects from the stream and use a lot of polymorphism that’ll make the control flow impossible to follow (according to the “everything happens somewhere else” object oriented methodology), but that’s good, because I can just use the protocol definition files and ignore the rest.

Right?

Right?!?

No, the main work flow is based on nested if statements with lots of “switch( _data[1] )”. But surely after that they’ll parse the protocol packages into something sensible?

*sigh*

Well, at least they used variable names that’s understandable. But what’s data[4] and data[6]?

*sigh*

I”M SORRY! THIS IS…

Ok, again, I have no business giving a code critique of this library written by, I’m sure, very nice people and put on the intertubes for the world to peruse and use, and despite being written in the “least information density per pixel displayed” style, it’s clear and easy to follow, and has an impressive amount of comments. It’s still all kinds of wrong.

Perhaps it’s just coming from a different culture? It’s Windows-style programming?

I don’t know, but anyway, with the guidance from this excellent piece of, er, software, I was able to make Emacs parse and execute commands when I touch a wall switch.

And Z-Wave works! Where a couple my light switches were a bit hit and miss before, they now work with 100% reliability over the last week.

I don’t have any Z-Wave outlets yet, so I haven’t bothered to implement sending commands to devices, but I’m sure I’ll have to implement that at some point. But as far as I can tell, that should be pretty straight-forward. I foresee a lot of “but what’s _data[7]?” in my future.

Somebody should still create a Z-Wave repo with protocol definitions, especially since it’s now an open-ish standard. But only as PDFs, of course.

[Edit: I should have googled a bit more, because it pretty much looks like everything I wondered about is in the OpenHAB distribution, which is in Java and has more XML protocol definition files than you can shake a stick at. Well done, Java peeps.]

August 1940: Night Train to Munich

Night Train to Munich. Carol Reed. 1940.

I’m guessing that Carol Reed isn’t a woman? Yes? It just occurred to me that I did no filtering for gender when I bought these films, so I’m wondering whether this is going to be a 120 movie sausage fest…

Anyway! I was very impressed by the montage at the beginning of the movie, showing Germany moving into one neighbouring country after another. Very efficient.

While The Mortal Storm was a melancholic look at what happened inside Nazi Germany, Reed displays none of that diffidence in his movie. Instead this is a call to arms. But of course, that was an American movie, and this is a British one.

This is a really good spy thriller, with lots of turns and twists and fun. Great, roaming cinematography and likeable actors, too.

And very funny.

The version I saw was the Criterion blu-ray, and it looks good and sounds great, which is a relief after being subjected to a Amazon Prime version of a film earlier today.

Popular movies in August 1940 according to IMDB:

PosterVotesRatingMovie
sc-tt0032484.jpg141547.6Foreign Correspondent
sc-tt0032617.jpg22477.5I Love You Again
sc-tt0032842.jpg32297.3Night Train to Munich
sc-tt0032986.jpg2537.1Rhythm on the River
sc-tt0032273.jpg23977.1Boom Town
sc-tt0033107.jpg26116.9Stranger on the Third Floor
sc-tt0032983.jpg21686.7The Return of Frank James
sc-tt0032376.jpg13026.7Dance, Girl, Dance
sc-tt0033288.jpg2666.6Young People
sc-tt0032481.jpg2366.6Flowing Gold

This blog post is part of the Decade series.

July 1940: The Great McGinty

The Great McGinty. Preston Sturges. 1940.

I like the plot structure, what with most of the movie being a flashback, and I like that the protagonist is, well, a crook. But such a personable crook. It’s all about grift and the mob running US politics and stuff, really, and we’re cheering them on.

Being a crook is the greatest!

The ending is nothing like I expected it to be. Cool!

(Is that a beaver skin top hat?)

Popular movies in July 1940 according to IMDB:

PosterVotesRatingMovie
sc-tt0033028.jpg73907.8The Sea Hawk
sc-tt0032194.jpg33017.7All This, and Heaven Too
sc-tt0032554.jpg25357.5The Great McGinty
sc-tt0032943.jpg62207.4Pride and Prejudice
sc-tt0033149.jpg56257.3They Drive by Night
sc-tt0032206.jpg5986.8Andy Hardy Meets Debutante
sc-tt0032277.jpg4776.8Boys of the City
sc-tt0033254.jpg4116.6When the Daltons Rode
sc-tt0032829.jpg3416.4My Love Came Back
sc-tt0032686.jpg4336.4The Lady in Question

This blog post is part of the Decade series.

June 1940: The Mortal Storm

The Mortal Storm. Frank Borzage. 1940.

This is the first war film in this blog series, and I assume that there’ll be a lot more, but perhaps not before December 1941? It’s the first one that touches on the war in Europe at all, except for a throw-away line in His Girl Friday.

Anyway, this isn’t quite the war movie I was expecting. It’s a movie about Germans, and the ones that aren’t Nazis are portrayed very positively indeed. So it’s an anti Nazi film, but with more pacifist overtones than would follow once Hollywood became a part of the war effort.

For all its good intentions, it’s a kinda pedestrian film? The actors mostly just stroll through the movie without making much impression. (But I did enjoy the old woman at the farm while the Nazis were looking for that guy. So stoic.) There’s nothing particularly exciting about the cinematography.

So it’s more about the idea of the movie than the film itself, and I was watching it with ever-increasing detachment.

(Except the final chase scene, which was thrilling, of course.)

Popular movies in June 1940 according to IMDB:

PosterVotesRatingMovie
sc-tt0032811.jpg33737.9The Mortal Storm
sc-tt0031359.jpg27177.4Gaslight
sc-tt0032520.jpg23637.3The Ghost Breakers
sc-tt0032285.jpg17897.1Brother Orchid
sc-tt0032840.jpg3947.1New Moon
sc-tt0033169.jpg3146.8Tom Brown’s School Days
sc-tt0032901.jpg2186.2Phantom Raiders
sc-tt0033117.jpg8345.7Susan and God

This blog post is part of the Decade series.