Oct. 15th, 2002

bryant: (Default)

Knockaround Guys is probably the last chance you'll get to see Vin Diesel in a supporting role for a while, but that's not why you want to see it. You want to see it because it's a nifty little ensemble drama with a nasty sense of humor and a tight story structure. Sure, Vin is good and he gets to beat people up, but Barry Pepper and Seth Green and Andrew Davoli are pretty good too. Dennis Hopper's kind of phoning it in, but John Malkovich is delightful. Solid stuff.

The guys who wrote and directed this also wrote Rounders, which I thought was really good if you cut away the obligatory romance bit. Knockaround Guys has no romance, and thus is free to be purely what it is. It's a Mafia movie in the sense that the Mafia is the context within which the characters operate, but it's not about the Mafia in the way that (say) Goodfellas was about the Mafia. It's about friendship and manhood and other such manly matters... oh, hell, I'll just say it. It's a coming of age movie.

But it does have some good fight scenes.

bryant: (Default)
Now that my MT -> LJ bridge is finally working the way I want it to, I'll take the time to do a little documentation.

The basic architecture is as follows. I have an MT template containing a verbose RSS .91 feed, which is an index template, so the page it produces is rebuilt every time I post. I added a CGI script residing on my server to the list of URLs to ping when my blog is updated. The CGI runs blagg (an RSS aggregator) with the LiveJournal plugin, which pushes the post to my LiveJournal.

Notes:

Blagg is not a very smart parser; it expects the RSS tags to come in a certain order. Specifically, it requires first <title>, then <link> then <description>. As it happens, this is not the order in which the default MT RSS .91 template presents the tags, so I had to modify a copy of the template to put things in an order blagg would understand. I also expanded the description field to contain the entire post, since I wanted people to be able to read the full entry without leaving the LJ page. Finally, I replaced encode_xml="1" with encode_html="1" throughout the template, since encode_xml encodes some characters in a way that most browsers won't understand. Specifically, IE can't make sense of &apos;.

My CGI script looks like this:

#!/usr/bin/perl -w

use strict;
use XMLRPC::Transport::HTTP;

my $server = XMLRPC::Transport::HTTP::CGI
                        -> dispatch_to('weblogUpdates')
                        -> handle
                        ;

package weblogUpdates;

sub ping {
        `/home/durrell/bin/pushlj.sh &`;
        return "OK";
}

pushlj.sh is this:

#!/bin/sh

lockfile=/tmp/lj-bridge.lck

blagg=/home/durrell/bin/blagg
plugin=-plugin=livejournal
mode=-mode=automatic
login=-login=bryant

REQUEST_METHOD=

i=1

while [ $i -lt 5 ]; do
        if [ ! -e $lockfile ]; then
                touch $lockfile
                $blagg $plugin $mode $login
                rm $lockfile
                i=5
        else
                sleep 60
                i=$(( $i + 1 ))
        fi
done

Why a separate script? Because in case I run into a lock, I don't want the CGI to sit around waiting for the lock to vanish. Also, I intend to put a five minute delay in there to give me time to edit a bad post before it hits LJ.

Why the REQUEST_METHOD= bit? Because blagg processes its command line switches with CGI.pm. This is a very clever method of processing arbitrary switches in an elegant manner, but if REQUEST_METHOD is set, then CGI.pm won't look for parameters on the command line. So I have to unset it somewhere. Getopt::Long really ought to have a method for processing arbitrary switches, but that's a rant for another post.

Finally, since I'm using version 1.0 of the livejournal plugin, I had to edit the plugin a little to make it set the preformatted flag for posting. I also tweaked it a little to store the password in the plugin itself, since I don't like the idea of exposing the password on the command line (and thus in the process table). Version 1.1 of the plugin allows you to specify preformatted mode with a command line switch, but I haven't upgraded yet.

October 2025

S M T W T F S
    1234
567891011
12131415161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 04:15 pm
Powered by Dreamwidth Studios