UnboundID LDAP SDK for Java 3.1.1

We have just released the 3.1.1 version of the UnboundID LDAP SDK for Java. It is available for download via the LDAP.com website or from GitHub, as well as the Maven Central Repository.

This is a relatively minor update release, and you can get a full list of changes from the release notes (or the Commercial Edition release notes for changes specific to the Commercial Edition). Some of the most significant changes include:

  • Updated the AddRequest constructor that allows you to create a request from an LDIF entry. It will now accept an LDIF add change record (including the “changeytpe: add” line, and optionally including controls) in addition to an LDIF entry.
  • Added two new LDAP listener request handler implementations that can be used to limit the load that clients can leverage against a listener. One implementation allows you to limit the number of requests that may be processed concurrently, while the other allows you to limit the overall rate (in operations per second) at which requests may be processed.
  • Fixed a bug in which the LDAP connection pool statistics were not always properly updated for a failed attempt to create a new connection for the pool.
  • Added a new --helpSASL argument for LDAP command-line tools that support authentication. This argument obtains a list of the supported SASL mechanisms and the options that are available for each.
  • Updated the command-line argument parser to provide support for using a properties file to supply the default values for arguments not explicitly provided on the command line. Tools that support this feature now include a --generatePropertiesFile argument that can be used to generate a template with the supported properties for that tool.
  • Updated the command-line argument parser to support grouping related sets of arguments together in the usage information.

UnboundID LDAP SDK for Java 3.1.0

We have just released the 3.1.0 version of the UnboundID LDAP SDK for Java. It is available for download via the LDAP.com website or from GitHub, as well as in the Maven Central Repository. The release notes provide complete details about the changes in this release, but some of the major changes include:

  • Added the ability to launch command-line tools in an interactive mode, in which the user will be prompted for details needed to connect and authenticate to the target directory server (if applicable for that tool), as well as for any required arguments. The tool will then display a table allowing the user to customize values for all of the arguments, and the user can run the tool with the desired settings or merely display the non-interactive command line that would be used to run with those options.
  • Updated the LDAP debugger and in-memory directory server tools to provide the ability to automatically generate source code for any client requests that they receive. This can be helpful when porting existing LDAP-enabled applications to use the UnboundID LDAP SDK for Java.
  • Updated the LDAP connection pool to make it possible to configure a minimum available connection goal. If a goal is set, then the connection pool will try to maintain at least that many connections available for immediate use. This can help reduce the need to create new connections on demand under periods of heavy load.
  • Added support for LDIF translators that can be used to transform LDIF change records when reading from or writing to LDIF. These translators are particularly helpful when using multiple threads to read or write change records in parallel.
  • Improved compatibility with servers that don’t support the most recent TLS implementation and don’t correctly handle TLS client hello messages that reference the newer protocol.
  • Updated the LDAP connection pool health check mechanism to provide support for validating a connection after authentication has completed. It was previously only possible to verify a connection after it was established but before it was authenticated. Added a new health check implementation that can check for various password policy-related conditions (e.g., a password that has expired or is about to expire), and another new aggregate health check that can invoke several health checks as a single unit.
  • Improved the LDAP SDK’s handling of connection timeouts so that an unsuccessful connection attempt is less likely to block for longer than the configured timeout.
  • Deprecated the LDAPConnectionOptions auto-reconnect option. This option has always been very fragile and useful only in very limited circumstances. The functionality is still present (and will continue to be available in) the LDAP SDK, but applications are strongly recommended to use a connection pool, even when only a single connection is needed, because it provides much better and more reliable support for dealing with connectivity problems.
  • Added support for specifying a number of additional options when authenticating with the GSSAPI SASL mechanism, including the ability to obtain credentials from a keytab.
  • Added a new Entry.applyModifyDN method that can update the client-side representation of entry to reflect the changes that would be applied by a given modify DN operation. This updates both the entry DN and the corresponding attribute values in the entry.
  • Updated the in-memory directory server and the LDAP listener framework to make it possible to configure a maximum number of concurrent connections. You can also specify an entry to use as the in-memory directory server’s root DSE.

UnboundID LDAP SDK for Java 3.0.0

We have just released the 3.0.0 version of the UnboundID LDAP SDK for Java. It is available for download via the LDAP.com website or from GitHub. There are a few pretty significant announcements to accompany this release:

  • The Commercial Edition of the LDAP SDK is now open source under the GPLv2 and LGPLv2.1 licenses. The Commercial Edition contains everything in the Standard Edition, plus a lot of additional functionality that is specifically intended for use in interacting with UnboundID server products.
  • The source code and packaged releases are now available on GitHub at https://github.com/UnboundID/ldapsdk. We will continue to maintain the repository, mailing lists, and discussion forum at SourceForge, but GitHub is now the recommended public repository for the LDAP SDK source code. Both public repositories now contain the Commercial Edition code along with the code for the Standard Edition and the Minimal Edition.
  • The Commercial Edition and Minimal Edition releases of the LDAP SDK are now in the Maven Central Repository. Both have a GroupId of “com.unboundid”. The Commercial Edition has an ArtifactId of “unboundid-ldapsdk-commercial-edition”, and the Minimal Edition has an ArtifactId of “unboundid-ldapsdk-minimal-edition”. Previously, only the Standard Edition was available (GroupId “com.unboundid” and ArtifactId “unboundid-ldapsdk”).

The following additional features, bug fixes, and enhancements are also included in this release:

  • The LDAP SDK now supports a JSON-based configuration syntax that can be used to specify a number of properties used to create LDAP connections and connection pools. It can include information about which servers to use (and if there are multiple servers, how to choose between them), how to authenticate (via simple authentication or several SASL mechanisms), how to secure the communication, and a number of other properties.
  • You can now manually invoke a synchronous health check against a connection pool, optionally with a different health check mechanism than is configured for the pool.
  • Improved the mechanism used to enforce a connect timeout. If a timeout occurs, it may be possible to close the associated socket and terminate the background connect thread more quickly.
  • You can now specify an alternate certificate key and/or trust store format (e.g., PKCS12 rather than the default of JKS) when launching the in-memory directory server from the command line.
  • There is improved support for command-line argument parsing, including support for arguments that provide information about LDAP controls, and better support for validating common argument formats.
  • Update the default settings for LDAP connection pools to eliminate the potential for the pool to block for up to five seconds if a connection is needed but none is immediately available.
  • When using value patterns (as in tools like searchrate, modrate, authrate, etc.), it is now possible to provide a path to a file whose lines should be accessed in sequential order. It was previously only possible to access file contents in random order.
  • The identify-unique-attribute-conflicts example tool now supports an optional filter. If provided, the tool will only report conflicts in entries matching that filter.
  • Ensure that connection pool statistics are properly updated to reflect connections closed as a result of a health check failure.
  • Fix a bug that could prevent the LDIF parser from using the correct matching rule for attributes if it is provided with access to an LDAP schema.
  • Fix a null pointer exception that could be thrown when attempting to retrieve the set of required or optional attributes from an object class definition if the associated schema is missing definitions for any of the superior object classes.
  • The Commercial Edition of the LDAP SDK has been updated with support for a number of new controls and extended operations, a filter syntax for searching inside attribute values that represent JSON objects, and other enhancements.

Neil’s Underrated ’85 Picks

Stone Pillow

US Release: November 1985

Lucille Ball had been in over 40 movies before her first television appearance, but it’s TV that really made her a star. So it’s fitting that her final movie role would be this made-for-TV drama in which she plays Flora, a jaded, feisty, no-nonsense homeless woman who knows all the tricks needed to survive the New York City streets. Daphne Zuniga is Carrie, a naive, fresh-out-of-college girl struggling in her job at a homeless shelter. While out on a fact-finding mission to try to better understand the homeless, Carrie encounters Flora just in time for both of them to get mugged. Mistaking her for a runaway, Flora grudgingly takes Carrie under her wing to gives her a first-hand look at what it’s like to live on the streets.

Stone Pillow is a far cry from the comedy roles that made her famous, and her trademark red is completely gray, but you can’t help but recognize Ball’s voice as she completely owns this movie. It’s a captivating drama that manages to be an effective social commentary without feeling awkward or heavy-handed. Zuniga does a fine job in her supporting role that thankfully takes a back seat to Lucy’s lead, and I was pleasantly surprised to see Mike Starr make an uncredited appearance.find an uncredited appearance from Mike Starr.

Poison Ivy

US Release: February 1985

Summer camp movies are one of mankind’s greatest inventions, right up there with electricity and the wheel. And Poison Ivy has to be one of the best summer camp movies ever made. It’s not that there’s anything all that unusual or innovative about it, but it’s just done really wellThere’s not really anything all that unusual about it, but it’s just done really well. There are the usual camper stereotypes, like the athlete, the fat kid, the nerd, the smoothfast-talking con manartist, and the runaway, but there’s more depth to their characters than you might find in one of the lesser movies. Michael J. Fox (probably mostly known for Family Ties at this point, since Back to the Future and Teen Wolf wouldn’t hit theaters for another few months) is the big star, as noted by his appearing no fewer than four times on the VHS cover art, but Nancy McKeon (The Facts of Life) has the more nuanced role as the assistant nurse who is attractive and draws the attention of many of males of varying ages but isn’t merely is much more than a sex symbol. On the other hand, Adam Baldwin’s “head counselor with a stick up his ass” role does seem pretty one-dimensional, and Robert Klein’s camp director gives a few enthusiastic speeches but is otherwise pretty insignificant. Despite a fairly prominent credit on the VHS cover, Jason Bateman is nowhere to be found in the movie.

At times, Poison Ivy feels a lot like a younger and tamer version of Revenge of the Nerds. Many of the campers are misfits but they mesh well together, and the camp’s big “color wars” competition a lot in common with the Greek Games. It also reminds me of the 1990 “who’s who of network television” movie Camp Cucamonga, which makes sense because Bennett Tramer wrote them both (along with a fair amount of Saved by the Bell). Poison Ivy is probably familiar because it doesn’t do much that hadn’t been done before, but it does it well and with a great dose of nostalgia to boot.

Heavenly Bodies

US Release: February 1985

Jane Fonda’s early 1980s workout videos made aerobics popular in the home, but it didn’t get much big-screen attention until Heavenly Bodies. It features Cynthia Dale as Samantha, who manages to escape her boring day job and join up with friends KC and Patty to turn a dilapidated warehouse into an aerobics studio. Sam’s upbeat attitude and nonstop energy help to quickly grow the membership, and she even signs a deal with the local pro football team to whip their players into shape (and gets a love interest in the process). Things really take off when Samantha lands a gig hosting an early-morning workout show on TV, but that doesn’t sit well with Debbie, the girlfriend of a rival gym owner who thought she had the TV show locked up. When Debbie convinces an investor to buy the Heavenly Bodies building and terminate their lease, Samantha does a little Network-style rant on her show and challenges the other gym to a marathon aerobics competition for the building.

In defiance of all known laws of mathematics, this movie is approximately 150% montage. There are three separate montages (Samantha at her old job, fixing up the building, and doing aerobics with ever-increasing class sizes) before we encounter a scene with any substantial dialogue. You won’t find any needless exposition here, and it’s practically a master class in “show don’t tell” filmmaking. It’s cheesy at times, motivations aren’t always clear, and it’s unlikely to inspire anyone to get off their butt and start exercising, but it is a movie that’s fun to watch and even stands up well under repeat viewings.

The Party Animal

US Release: January 1985

More than a decade before VH-1 ran its Where Are They Now? series, The Party Animal somehow managed to spoof it. It’s a documentary-style look back at the college career of Pondo Sinatra, a guy with only sex on the brain but thus far a complete lack of experience. His experienced roommate Studly agrees to help him, but his efforts (like a wardrobe makeover and an utterly ridiculous Cyrano de Bergerac sequence) just don’t seem to pan out. Even Studly’s mentor Elbow can’t seem to get him over the hump. It’s only when a professor makes a reference to an aphrodisiac in a lecture that Pondo’s luck begins to change.

There is nothing subtle about this movie. It’s more about quantity than quality, and while some of the gags miss the mark badly (like an uncomfortably racist scene, or a drug sequence that goes on too long without much payoff), a lot of them work. It’s not as classy as your higher-brow sex comedies like Porky’s or The Last American Virgin, but it’s also willing to venture into territory that other movies wouldn’t dream of touching (e.g., a scene in a sex shop where Pondo browses while a couple of employees have a conversation on arms reduction in the voice of Marlon Brando). The premise may have been done to death, but there’s stuff in The Party Animal you won’t find anywhere else.

The Perils of Gwendoline in the Land of the Yik Yak

US Release: January 1985

In one of the most ridiculous of the Indiana Jones clones, Tawny Kitaen plays the titular Gwendoline. She’s looking for her father, who never came back from a mission to find a rare butterfly. For some reason, she latches onto a guy named Willard (who has about as much charm and machismo as you’d expect from someone with that name) and finagles him into being her guide on a mission to find out what happened. And despite learning almost immediately that her father is dead, they set off into dangerous territory to try to figure out exactly what happened and to find that elusive butterfly.

This is really just a boob delivery mechanism masquerading as an action-adventure film, and it accomplishes that quite effectively if not brilliantly. A jungle storm necessitates disrobing to fashion a means of capturing the rainwater. A cold night spent tied up by superstitious natives requires what basically amounts to phone sex in order to keep warm. And the final act takes place in a no-boys-allowed hidden city that is kind of a sexy Coliseum of topless chariot racing and hand-to-hand combat. This isn’t the place to look for classy, edge-of-your-seat excitement, but few movies deliver trashy over-the-top absurdity as well as this one.

The Movies I Watched in 2014

As per usual, I watched a lot of movies in 2014.  In fact, it seems I watched even more movies in 2014 than I did any previous year.  There have been years in which I’ve seen more in theaters, and there have been years in which I’ve seen more outside of theaters, but this year the combination of the two is higher than in any previous year.
Here’s a quick rundown of some statistics:

  • I watched a total of 1785 movies over the course of the year.  765 of those were at a theater, and 1020 of those were outside of a theater.
  • 613 (80.01%) of the in-theater movies were at an Alamo Drafthouse, and 130 (16.99%) were presented by the Austin Film Society.  20 (2.61%) were at the Violet Crown, and 2 (0.26%) at the Regal Arbor Cinema.
  • 451 (58.95%) of theatrical screenings were movies I’d never seen before, as compared with 314 repeat watches.  538 (70.33%) of in-theater movies were repertory screenings versus 227 new releases.
  • All but two new release screenings were digital; Interstellar was the only new release I saw on film, and I saw it in both 70mm and 35mm formats.  However, repertory screenings were a goldmine of honest-to-goodness film presentations, with a whopping 74.04% of repertory screenings on 35mm, 70mm, or 16mm film, rather than digital.  Note that this doesn’t count 33 theatrical presentations of movies on VHS, since they are neither film nor digital.
  • I did not see any movies in 3D over the course of the year.  However, I did see two films that contained 3D scenes.  The 1962 British sci-fi comedy Paradisio uses 3D for scenes in which the protagonist wears X-ray glasses, and the 1991 horror movie Freddy’s Dead:  The Final Nightmare has a few minutes of 3D for a scene in a dream world.  Both were theatrical screenings of 35mm prints.
  • Of the 1020 movies I watched outside of a theater, 438 (42.94%) were watched on physical media (DVD, Blu-ray, VHS, or Beta), as compared with 582 movies legally streamed (from Amazon, YouTube/Google Play, Vimeo, VHX, and UltraViolet).  I did not watch any movies via any kind of television service, nor did I watch any illegally-downloaded movies.
  • 684 (67.06%) of the non-theatrical movies were first-time watches, versus 336 movies that I had seen at least once before.

The Best Big New Releases

A disappointing number of top ten lists that I’ve seen from critics seem to have an inordinately large focus on big Hollywood releases.  I suppose those are the movies that most people tend to watch, but it’s hard to consider them the best or most enjoyable movies of the year.  Nevertheless, if I were to pick the best movies out of those that I consider “big” releases, they would be:

    1. Snowpiercer (at least, it had a $40M budget and was big outside the US)
    2. Big Hero 6
    3. The Lego Movie
    4. Guardians of the Galaxy
    5. Captain America 2:  The Winter Soldier
    6. Edge of Tomorrow
    7. Oculus
    8. Interstellar
    9. Dumb and Dumber To
    10. Neighbors

The Real Best New Releases

In all honesty, I have a hard time buying any list of best movies from a professional film critic that is mostly comprised of mainstream movies.  Here is my real “best of” list for 2014 releases, expanded to 20 so that I can fit in more really great movies:

  1. Boyhood
  2. Big Bad Wolves
  3. Blue Ruin
  4. Snowpiercer
  5. Joe
  6. The Drop
  7. Grand Piano
  8. Locke
  9. August: Osage County
  10. Citizenfour
  11. Under the Skin
  12. The Great Beauty
  13. The Overnighters
  14. Whitewash
  15. That Guy Dick Miller
  16. Life Itself
  17. Ernest & Celestine
  18. Housebound
  19. To Be Takei
  20. Nightcrawler

Movies To Watch For

Over the course of the year, I had the opportunity to see movies that either haven’t been released yet or about which I’m uncertain about their American release status.  At any rate, if you have the opportunity to see any of these movies, you should take it.

  • Arlo and Julie
  • Bob Birdnow’s Remarkable Tale of Human Survival and the Transcendence of Self
  • Electric Boogaloo
  • Goodnight Mommy
  • Haemoo
  • Intramural
  • Kung Fu Elliot
  • Man from Reno
  • Shrew’s Nest
  • The Treatment
  • Wicker Kittens
  • Wyrmwood

The New Releases Everyone Seems to Be Wrong About

These are movies I’ve seen people rave about in a manner that seems completely unjustified and may be a sign of mass delusion:

  • 20,000 Days on Earth
  • The Boxtrolls
  • Chef
  • Dawn of the Planet of the Apes
  • Dear White People
  • The Immigrant
  • Jodorowsky’s Dune
  • The Raid 2
  • Rich Hill
  • Top Five
  • The Trip to Italy
  • Whiplash

My Favorite Theatrical Marathons / Movie Series

One of the best things about the amazing film programming in Austin is that it often results in movie marathons (several movies in a day) or film series (several movies spread out over a period of days or weeks) that are centered around some actor, director, or theme.
There are a number of regular Drafthouse film series that deserve recognition, including Terror Tuesday, Weird Wednesday, Video Vortex, Cinema Cocktails, and Master Pancake Theater, along with the AFS Essential Cinema, History of Television, and Savage Gold series.  These are ongoing, long-term series that are always great, expertly curated, and entertainingly introduced.  But for this section I want to focus primarily on one-time events, and these are some of my favorites from 2014:

  1. The Drafthouse “Waltered States” Walter Matthau marathon.  I’m clearly biased here, because this is one that I got to program.  I’ve wanted to do a Walter Matthau marathon for about as long as I’ve known that movie marathons were a thing, and this year I got the chance.  I showed The Fortune Cookie, Cactus Flower, Fail-Safe, The Bad News Bears, and Charley Varrick.
  2. The Drafthouse Police Academy marathon.  All seven Police Academy movies on the big screen (although only parts 3, 4, 5, and 7 were in 35mm).  I legitimately love all of these movies (well, maybe not Mission to Moscow) and never thought I’d have the chance to see them in a theatrical marathon.
  3. The AFS Essential Cinema month of Barbara Stanwyck films, including The Lady Eve, Internes Can’t Take Money, Lady of Burlesque, and Ball of Fire.  That last one became one of my favorite comedies ever.
  4. The AFS “Savage Gold” marathon.  Savage Gold is a regular AFS series in which Lars Nilsen and Max Meehan team up to provide an amazing double feature of obscure VHS movies.  But they outdid themselves when they teamed up with Zack Carlson for an all-night, six-movie marathon of Don’t Go Near the Park, Beyond the Doors, Lady Street Fighter, Bad Girls Dormitory, Final Score, and D.T. in “Dawg Territory”.
  5. The AFS “Jewels in the Wasteland” series.  Richard Linklater selected a number of great and often obscure films from the years 1980 through 1983.  He and Lars Nilsen introduced each of the films and led a discussion afterward.  Scheduling conflicts sadly prevented me from seeing Veronika Voss, Reds, and Out of the Blue, but I did get to attend The King of Comedy, Valley Girl, White Dog, Melvin and Howard, Every Man for Himself, Star 80, Das Boot, Cutter’s Way, Fanny & Alexander, Rumble Fish, and Atlantic City.
  6. The Drafthouse “Noir City” series, in which film noir preservationist Eddie Muller presented 35mm prints of a number of great noir films.  The lineup included Too Late for Tears, Try and Get Me, Larceny, Crashout, Cry Danger, The Breaking Point, Repeat Performance, Three Strangers, Alias Nick Beal, and The Chase.  Many of these films aren’t available except for the prints restored and maintained by the Film Noir Foundation.
  7. The AFS Old-School Kung-Fu Weekend.  This has apparently become an annual event, in which kung fu film expert Dan Halstead selects a number of films to screen.  This year’s selections included:  Shaolin vs Lama, The Kid with the Golden Arm, Master of the Flying Guillotine, 7 Grandmasters, The 36th Chamber of Shaolin, and The Man from Hong Kong.
  8. The AFS “Godard vs Truffaut” series, in which Lars Nilsen picked four films by Jean-Luc Godard (Breathless, Pierrot Le Fou, Week End, and A Woman Is a Woman) and Chale Nafus picked four from François Truffaut (the Antoine Doinel series of The 400 Blows, Antoine et Collette + Stolen Kisses, Bed and Board, and Love on the Run).  Lars and Chale alternated weeks and tried to make a case for their respective filmmaker.  Sorry, Lars, but I have to side with Chale on this one.
  9. The Drafthouse “Caged” Nicolas Cage marathon, consisting of Vampire’s Kiss, Leaving Las Vegas, Fire Birds, Con Air, and Raising Arizona.  I’d never seen Fire Birds before, but I absolutely loved it, and I never thought I’d get to see Vampire’s Kiss in a theater.  And it looks like this may be an annual event, since “Caged 2” is happening the first weekend of 2015.
  10. The Drafthouse “Merylthon” Meryl Streep marathon, conceived by a number of Drafthouse servers while working the aforementioned “Caged” marathon.  They went on to select and introduce the films for the marathon, which turned out to be Postcards from the Edge, Sophie’s Choice, The River Wild, The Iron Lady, and Death Becomes Her.

Even if they didn’t make the top ten, I should at least give honorable mentions to:

  • The Drafthouse David Lynch influences series (Rear Window, Lolita, Mon Oncle, Peyton Place, Sunset Blvd., and Hour of the Wolf)
  • The Drafthouse “Dismember the Alamo” horror marathon (TerrorVision, House of Dracula, Ernest Scared Stupid, and Killer Klowns from Outer Space)
  • The Drafthouse / AGFA Cinemapocalypse marathon (Heat, Raggedy Ann & Andy: A Musical Adventure, The Miss Nude America Contest, Lolly Madonna XXX, and Miami Blues)
  • The Drafthouse Something Weird marathon (Blood Feast; Pot, Parents, and Police; A Pistol for Ringo; Man or Woman; and Crazed Vampires)
  • The Drafthouse Marx Brothers retrospective
  • The Drafthouse Back to the Future marathon
  • The AFS Roger Corman series (A Bucket of Blood, Pit and the Pendulum, X:  The Man with X-Ray Eyes, and Gas-s-s-s)
  • The AFS Arthouse Horror series (Possession, Kwaidan, Amuck, and Hausu)
  • The Drafthouse Dirty Harry marathon
  • The Drafthouse “East Meets Weird” Asian film marathon (Killers on Parade, The Aimed School, Goke: Body Snatcher from Hell, The Happiness of the Katakuris, and Why Don’t You Play in Hell?)

My Favorite Individual Theatrical Repertory Movie Screenings

There were so many amazing repertory screenings over the course of the year that I feel it’s important to call special attention to some of my favorites:

  1. Ernest Goes to Camp.  There is no movie I have seen more often than this one in my life, but I had never seen it in a theater until this year, and at a screening with director John Cherry no less.  My deep affection for this movie began in my childhood but hasn’t wavered a bit over the years.
  2. Scream for Help.  I only discovered this movie earlier this year during my 1984 project (as described below), but I instantly fell in love with it and wanted to see it with an audience.  As if by divine inspiration, Max Meehan shares my love for this movie and picked it for the most recent iteration of Savage Gold.
  3. Scenes from a Marriage.  There is no possible way that a three-hour Swedish film, predominantly comprised of scenes with the same two people in unremarkable settings with virtually no action, can be this riveting.  I still need to watch the original five-hour miniseries from which the theatrical version was edited, but I am in awe.
  4. All that Heaven Allows.  This one took me completely by surprise.  A 1955 romance in which a woman faces life as a social pariah if she allows herself to fall for lower-class gardener.  It’s a seemingly-ridiculous premise, but it’s played with such immense gravity that it becomes utterly enthralling.  Plus, the movie just has an amazing look to it.
  5. Glengarry Glen Ross.  I’d seen this before, but never on the big screen.  It’s simply amazing.
  6. Crimewave (aka The Big Crime Wave).  I’d heard some friends raving about this obscure Canadian comedy about a writer who can’t seem to write the middle parts of stories, so I got it on VHS and really liked it.  Then, it was impossibly given a digital restoration that made it look so amazing and in the right aspect ratio and it got even better.
  7. Corn’s-a-Poppin’.  This is an hour-long film commissioned by the owner of a small theater chain who happened to be the brother of some popcorn bigwig and wanted to promote eating popcorn in movie theaters.  So he hired some people who made industrial films for a living and created an amazing piece of work that would be completely lost if it hadn’t been for the fact that one of the writers was a young Robert Altman.  It’s a shame that it’s still virtually inaccessible to most people, since it seems that the only way you can watch it is to get the only 35mm print in existence.  It’s thoroughly entertaining and seems to be making the rounds so maybe there’s hope for some kind of wider availability in the future.
  8. Targets.  I came across this Bogdanovich-directed, Corman-produced, Karloff-starring mishmash of a film a couple of years ago and was immediately taken by it, especially after watching the DVD featurette describing how it came to be.  I was ecstatic about getting a chance to see it on the big screen this year, and I was not let down.
  9. Top Hat.  I’d never seen this Fred Astaire / Ginger Rogers dance-filled musical comedy before this year, but it is stunning.
  10. City Lights.  Is this the best Chaplin film?  It’s certainly way up there.  In a year that I also got to see him on the big screen in The Gold Rush and The Circus, I’d have to say that City Lights outshines both of them.  It’s darn near cinematic perfection.

The Best Lesser-Known Movies from 1984

It’s an indisputable fact that 1984 was just about the best year ever for movies.  You are probably familiar with the “big name” releases for that year, including:

  • Bachelor Party
  • Beverly Hills Cop
  • Children of the Corn
  • Ghostbusters
  • Gremlins
  • Friday the 13th part IV:  The Final Chapter
  • Footloose
  • Indiana Jones and the Temple of Doom
  • The Karate Kid
  • The Last Starfighter
  • The Muppets Take Manhattan
  • The Natural
  • The Neverending Story
  • A Nightmare on Elm Street
  • Police Academy
  • Red Dawn
  • Repo Man
  • Revenge of the Nerds
  • Sixteen Candles
  • Splash
  • Star Trek III:  The Search for Spock
  • The Terminator
  • This Is Spinal Tap
  • Top Secret!

Given that this year was the 30th anniversary for all movies released in the year 1984, I wanted to try to see how many of these movies I could find.  I started with a list of 145 movies and ended up watching 365 (with quite a few more I didn’t get to).  Along the way I revisited a lot of great films and made a lot of amazing new discoveries.
I have no idea what you’ve seen and what you haven’t, so I won’t try to make one of those “best movies you haven’t seen” lists.  But here is a list of what I consider the top 84 lesser-known movies from the year 1984 (listed alphabetically, since I don’t want to try to rank them):

  • Alley Cat
  • Angel
  • Baby Love (aka Lemon Popsicle 5)
  • The Bear
  • Birdy
  • Black Devil Doll from Hell
  • Blame It on Rio
  • Blastfighter
  • Blind Date
  • The Boy Who Loved Trolls
  • Breakin’
  • Breakin’ 2:  Electric Boogaloo
  • Breakin’ in the USA
  • Breakin’ Through
  • A Breed Apart
  • The Brother from Another Planet
  • The Buddy System
  • The Cartier Affair
  • City Killer
  • Cloak & Dagger
  • Contract for Life:  The S.A.D.D. Story
  • The Census Taker
  • Delta Pi (aka Mugsy’s Girls)
  • Dreamscape
  • The Dungeonmaster (aka Ragewar)
  • Eight Diagram Pole Fighter
  • Electric Dreams
  • Ernie Kovacs:  Between the Laughter
  • Eureka
  • The Fantastic World of D.C. Collins
  • Fatal Vision
  • Firestarter
  • Firstborn
  • The Flamingo Kid
  • Flashpoint
  • Furious
  • Gone are the Dayes
  • The Goodbye People
  • Harry and Son
  • Hell Riders
  • The Hotel New Hampshire
  • Ice Pirates
  • The Jesse Owens Story
  • Just the Way You Are
  • Lace
  • The Lonely Guy
  • License to Kill
  • Mass Appeal
  • A Matter of Sex
  • Mister Roberts
  • Monaco Forever
  • My Mother’s Secret Life
  • Night of the Comet
  • The Night They Saved Christmas
  • Ninja III:  The Domination
  • Nothing Lasts Forever
  • Octavia
  • Oddballs
  • Over the Brooklyn Bridge
  • The Ratings Game (aka The Mogul)
  • The Return of Captain Invincible
  • The River Rat
  • Runaway
  • Sam’s Son:  Michael Landon’s Story
  • Savage Streets
  • Scream for Help
  • Second Time Lucky
  • Secrets of a Married Man
  • Silent Night, Deadly Night
  • The Sky’s No Limit
  • A Soldier’s Story
  • Starman
  • The Stone Boy
  • Stranger than Paradise
  • Streets of Fire
  • Suburbia
  • Surf II
  • Swing Shift
  • Teachers
  • The Toughest Man in the World
  • Vamping
  • Voyage of the Rock Aliens
  • Wet Gold
  • The Wild Beasts

My Favorite New Discoveries Not from 2014 or 1984

Believe it or not, I also watched a fair number of movies released in years other than 2014 or 1984.  Many of them were rewatches of movies I’d already seen, but I also got to see a lot of movies for the first time.  Some of my favorite new discoveries include:

  • All That Heaven Allows
  • All the Marbles
  • Atlantic City
  • Ball of Fire
  • Cisco Pike
  • Corn’s-a-Poppin’
  • Demon Seed
  • Disaster on the Coastliner
  • The Egg and I
  • Enter Nowhere
  • Fire Birds
  • Flesh Eater
  • Four Frightened People
  • Laura
  • Lonely Are the Brave
  • Marooned
  • On the Right Track
  • Phantom of the Mall:  Eric’s Revenge
  • Play Misty for Me
  • Polk County Pot Plane
  • Repeat Performance
  • The Russians Are Coming, The Russians Are Coming
  • Scenes from a Marriage
  • Straight Time
  • The Telephone Book
  • That Man from Rio
  • Too Late for Tears
  • Top Hat
  • What Ever Happened to Aunt Alice?
  • White Dog

The New LDAP.com and a New LDAP SDK Release

Today, UnboundID is unveiling a new LDAP.com website, in addition to a revamp of the company’s main UnboundID.com site. LDAP.com is the new home for the UnboundID LDAP SDK for Java, but it’s also intended to be a general resource for all things LDAP. It includes information about many other LDAP APIs for a wide range of programming languages, as well as a number of commercial and open source LDAP server offerings.

LDAP.com has a lot of information about LDAP, including in-depth descriptions of protocol operations, key data structures like distinguished names and search filters, the LDIF format, and a glossary of LDAP terms. It also provides a pretty comprehensive list of LDAP specifications and reference documents, including RFCs and IETF drafts, as well as result code and OID references.

We’re also releasing a new 2.3.8 version of the UnboundID LDAP SDK for Java. This is a minor release with only a couple of feature enhancements and bug fixes, including:

  • We’ve added a new Filter.simplifyFilter method that can be used to rearrange search filters so that they can be better optimized and processed more efficiently by many directory servers. This primarily involves simplification of the elements inside AND and OR filters, like removing unnecessary nesting (e.g., if an AND filter is nested inside another AND filter, then the elements inside the inner AND filter are moved into the outer filter), getting rid of duplicate elements, and replacing an AND or OR filters containing a single element with just that element. You can optionally re-order the elements inside an AND or an OR filter in a way that will make elements that are generally more efficient to process come before those that are generally less efficient to parse.
  • We’ve added a utility class for working with and comparing object identifiers (OIDs).
  • We fixed a thread-safety bug in the in-memory directory server.
  • The LDAP SDK document now contains information about a number of LDAP-related specifications defined in RFCs and Internet Drafts, as well as result code and OID reference documents.

The new 2.3.8 release of the LDAP SDK is available for download on LDAP.com or from the SourceForge project page. It’s also available in the Maven Central Repository.

UnboundID LDAP SDK for Java 2.3.7

We have just released the 2.3.7 version of the UnboundID LDAP SDK for Java. You can get the latest release online at the UnboundID Website, the SourceForge project page, or in the Maven Central Repository.

Complete release note information is available online at on the UnboundID website, but some of the most significant changes include:

  • Updated the logic used to select the TLS protocols to use for secure communication. SSLv3 is now disabled by default in response to the recent POODLE bug. On IBM JVMs, the set of enabled TLS protocols should be more broadly compatible with earlier TLS versions when support for TLSv1.1 or TLSv1.2 is enabled.
  • Added the ability to perform improved SSLSocket validation, which makes it possible to perform certificate hostname validation in a more secure and convenient manner than was previously available. It is also now possible to get access to the SSL session associated with a connection secured via SSL/TLS or StartTLS.
  • Added a new server set that can work in a DNS round-robin configuration, in which multiple IP addresses are associated with the same resolvable name.
  • Added an LDAPConnectionPool.shrinkPool method that can be used to reduce the number of currently-available connections to a specified number.
  • Improved support for class inheritance in the LDAP SDK persistence framework. If one class marked with @LDAPObject is a subclass of another class marked with @LDAPObject, then the logic used to construct the entry’s DN for instances of the subclass may be inherited from the superclass. Also, DN fields and entry fields will be properly handled in subclasses, and improvements have been made in requesting specific attributes to include in search result entries.
  • Added a new interceptor API to the in-memory directory server. This API can be used to alter or reject an LDAP request before it is processed by the server, to alter or suppress search result entries or references, and to alter LDAP results before they are returned to the client.
  • Updated the searchrate, modrate, authrate, and search-and-mod-rate tools to support altering the rate at which they process operations over time. Also, update these tools to make it possible to programmatically interrupt their processing.
  • Improved support for automatic referral following and auto-reconnect to ensure that the newly-established connection will properly use StartTLS if the original connection had successfully used StartTLS to secure its communication.
  • Fixed a bug in the Entry.applyModifications method that could cause valid modifications to be rejected if those modifications targeted attributes used in the entry’s DN but would not actually have resulted in a change to the entry DN.
  • Fixed a bug in the Entry.diff method in which, if provided with a specific set of attributes to examine, the method would not examine variants of those attributes containing attribute options.
  • Fixed a potential null pointer exception that could arise as a result of a race condition in the course of closing a connection. Fixed a potential illegal argument exception that could arise when closing a connection pool if multiple concurrent threads were used to close the connections but no connections were currently available in the pool.

UnboundID LDAP SDK for Java 2.3.6

We have just released the 2.3.6 version of the UnboundID LDAP SDK for Java. You can get the latest release online at the UnboundID Website or the SourceForge project page, and it’s also available in the Maven Central Repository.

This is primarily a maintenance release, containing bug fixes and some minor enhancements over the 2.3.5 version. A fully copy of the release notes for this version may be found on the UnboundID website, but some of the most notable changes include:

  • It is now possible to create a connection pool with a health check, without the need to set the health check after the pool has been created. The primary benefit of this approach is that the health check will be used for the initial set of connections that are established when the pool is created.
  • The LDIF change record implementations have been updated to add support for change records that include request controls.
  • Update the GSSAPI and DIGEST-MD5 SASL bind requests to support the use of the integrity and confidentiality quality of protection modes.
  • Improve support for processing asynchronous operations so that it is possible to invoke an asynchronous add, compare, delete, modify, or modify DN operation without needing to provide a result listener if the result will be accessed using the Future API. Also update the connection pool to make it possible to invoke multiple add, compare, delete, modify, modify DN, and/or search operations concurrently over the same connection as asynchronous operations.
  • Ensure that the thread-local connection pool uses the LDAPConnection.isConnected method as further verification that a connection is still established before attempting to use it.
  • Fix a bug in the in-memory directory server that prevented the updated values of certain attributes (e.g., modifiersName and modifyTimestamp) from appearing in the entry returned in a post-read response control.
  • Fix a potential thread safety bug in the get entry connection pool health check.

UnboundID LDAP SDK for Java 2.3.5

We have just released the 2.3.5 version of the UnboundID LDAP SDK for Java. You can get the latest release online at the UnboundID website or the SourceForge project page, and it’s also available in the Maven Central Repository.

There are a lot of improvements in this release over the 2.3.4 version. A full copy of the release notes for this version may be found on the UnboundID website, but many of the improvements are related to connection pooling, load balancing, and failover, but there are other additions and a number of bug fixes also included in this release. Some of the most notable changes include:

  • Added a new fewest connections server set. If used to create a connection pool in which connections span multiple servers, the pool will try to send each newly-created connection to the server with the fewest number of active connections already open by that server set.
  • Updated the LDAPConnectionPool class to make it possible to specify an alternate maximum connection age that should be used for connections created to replace a defunct connection. In the event that a directory server goes down and pooled connections are shifted to other servers, this can help connections fail back more quickly.
  • Updated the failover server set to make it possible to specify an alternate maximum connection age for pooled connections that are established to a server other than the most-preferred server. This can help ensure that failover connections are able to fail back more quickly when the most-preferred server becomes available again.
  • Added a new version of the LDAPConnectionPool.getConnection method that can be used to request a connection to a specific server (based on address and port), if such a connection is readily available.
  • Added a new LDAPConnectionPool.discardConnection method that can be used to close a connection that had been checked out from the pool without creating a new connection in its place. This can be used to reduce the size of the pool if desired.
  • Added a new LDAPConnection.getLastCommunicationTime method that can be used to determine the time that the connection was last used to send a request to or read a response from the directory server, and by extension, the length of time that connection has been idle.
  • Updated the connection pool so that by default, connections which have reached their maximum age will only be closed and replaced by the background health check thread. Previously, the LDAP SDK would also check the connection age when a connection was released back to the pool (and this option is still available if desired), which could cause excess load against the directory server as a result of a number of connections being closed and re-established concurrently. Further, checking the maximum connection age at the time the connection is released back to the pool could have an adverse impact on the perceived response time for an operation because in some cases the LDAP SDK could close and re-establish the connection before the result of the previous operation was made available to the caller.
  • Updated the LDIF writer to add the ability to write the version header at the top of an LDIF file, to ensure that modify change records include a trailing dash after the last change in accordance with the LDIF specification, and to fix a bug that could cause it to behave incorrectly when configured with an LDIF writer entry translator that created a new entry as opposed to updating the entry that was provided to it.
  • Dramatically improved examples included in the Javadoc documentation. All of these examples now have unit test coverage to ensure that the code is valid, and many of the examples now reflect a more real-world usage.
  • Improved the quality of error messages that may be returned for operations that fail as a result of a client-side timeout, or for certain kinds of SASL authentication failures. Also improved the ability to perform low-level debugging for responses received on connections operating in synchronous mode.
  • Updated the in-memory directory server to support enforcing a maximum size limit for searches.
  • Added a couple of example tools that can be used to find supposedly-unique attribute values which appear in multiple entries, or to find entries with DN references to other entries that don’t exist.
  • Made a number of improvements around the ability to establish SSL-based connections, or to secure existing insecure connections via StartTLS. Improvements include making it possible to specify the default SSL protocol via a system property so that no code change may be required to set a different default protocol, allowing the ability to define a timeout for StartTLS processing as part of the process for establishing a StartTLS-protected connection.
  • Fixed a bug that could cause the LDAP SDK to enter an infinite loop when attempting to read data from a malformed intermediate response.
  • Fixed a bug that could cause problems in handling the string representation of a search filter that contained non-UTF-8 data.

Fruitvale Station

Being a police officer must be a pretty crappy job. Not only would you have to deal with horrible people and dangerous situations on a regular basis, but you’d probably also be disliked by a substantial portion of the population. The idea of the corrupt cop is a popular one in movies and on television, but it certainly has a basis in real life. If it seems that there is a higher incidence of police misconduct now than in the past, that may well be a direct result of a much greater percentage of the population carrying around cameras and the ease with which pictures and videos can be shared and re-shared. An ordinary traffic stop in a crowded area can yield more footage than the Kennedy assassination, and if an officer gets out of line, it’s no longer a matter of whose testimony is more believable.

Hopefully this “always being watched” mindset will benefit all of us by keeping the police honest and in turn improving the public opinion of them, or at the very least by getting the bad ones off the street. But in order for this to work, bad things have to happen to people, and Oscar Grant (portrayed by Michael B. Jordan) was one of those people. On one hand, he wasn’t always the most stand-up guy: he’d sold drugs and gone to jail; he’d cheated on his girlfriend; he’d gotten fired for repeatedly failing to show up for work on time. But on the other hand, he was trying to get better: he’d stopped selling drugs; he’d stopped cheating on his girlfriend; he loved his daughter very much and took a very active role in raising her. And he certainly didn’t deserve the treatment he received from transit police over-responding to an incident on the metro.

This is a powerful film enhanced by its great performances. Jordan is a key part of this, but so too is Melonie Diaz (as his girlfriend), Octavia Spencer (as Oscar’s mother), and Ariana Neal (his daughter). The film is based on a true story, although it’s not always clear how far they stray from what really happened. At times they paint what feels like an excessively flowery picture of racial harmony and civil behavior, to the extent that a drug deal gone wrong feels like it could have ended with the buyer and seller hugging it out. But this is done so well and provides such a stark contrast to the darker elements of the movie that I’m happy to believe that’s the way things really happened.