Patriots Day

An early scene in Patriots Day features people singing country music in thick Boston accents. Sadly, this was not the most unpleasant moment of the film.

The movie tells the story of the 2013 Boston Marathon, in which brothers Dzhokhar and Tamerlan Tsarnaev each planted and set off a homemade bomb near the finish line, killing three people and injuring many more. Mark Wahlberg plays hot-headed and indiscreet Boston police sergeant Tommy Saunders, who’s been given an unfavorable assignment at the race by his commissioner (John Goodman) as payback for an earlier infraction. But when things go down, he keeps his wits about him in the early moments of confusion, and then pours himself into the investigation, even after it’s taken over by the FBI (whose lead agent is played by Kevin Bacon).

There’s a good movie in Patriots Day, but it’s unfortunately buried in one that’s not so great. The action scenes are where the film really shines: the bombing itself, its immediate aftermath, the initial part of the investigation, and the confrontations that occur when the suspects find themselves cornered. But there are also parts where it really drags. The movie spends way too much time setting things up and getting us way too familiar with characters who aren’t all that essential to the story, and then it keeps dragging us away from the investigation to check in on them. In the heat of the final showdown, the film grinds to a halt for a few minutes so that Wahlberg’s character can show us that he’s sensitive and has feelings, despite already giving us one of those scenes earlier with his wife (played by Michelle Monaghan).

Long stretches pass without any updates on the investigation, and I often found it difficult to tell how much time had passed between events portrayed. For example, the first of the aforementioned “Sergeant Saunders is a sensitive guy” scenes features him going home to his wife. It was probably meant to be at the end of a long day, many hours after the bombing, but it’s easy to mistake that for just a few minutes after the investigation has gotten up and running. Further, while it’s inevitable that a film like this will have the “look at these pictures from the real-life event” moments at the end, this one takes it to new levels of excruciation and pandering with several minutes of interviews and reenactments. And this time it doesn’t even do the courtesy of running them over the end credits when it’s okay to leave because the movie is technically over.

Another thing that I found particularly frustrating was the repeated portrayal of the authorities doing despicable things with an “ends justify the means” attitude. A woman is interrogated while being repeatedly refused due process and legal counsel. Miranda rights are suspended. Officers exceed their jurisdictions. The people of Boston and the neighboring communities are essentially held hostage. Even if we assume that the film is merely depicting what actually happened, it certainly doesn’t have to glorify it to the extent that it does.

My biggest aggravation with the film is that its problems are so obvious and so fixable. It’s ultimately a failure of editing. All of the sins committed by director Peter Berg could have been swept under the rug in the cutting room, but this movie insists on accentuating the mundane and worshipping the contemptible. I can only hope that David Gordon Green’s Stronger (due out later this year and dealing with the same topic) does it better.

Live by Night

With Good Will Hunting, Gone Baby Gone, and The Town, Ben Affleck proved that he can write great films. And with Gone Baby Gone, The Town, and Argo, he showed that he can direct great movies. Live by Night demonstrates that he’s also capable of writing and directing some not-so-great films.

Joe Coughlin (played by Affleck) is a career criminal, much to the dismay of his police officer father (Brendan Gleeson). He lives in Prohibition-era Boston, a town ruled by gangsters, but he doesn’t want any part of the gangster life. And yet he’s stupid enough to be fooling around with Emma (Sienna Miller), who just happens to be the girlfriend of gangster boss Albert White (Robert Glenister). They plan to run away together to California after Joe pulls off one more big heist, but things are not meant to be. The heist goes bad, and some cops get killed. Plus, Albert finds out about Joe and Emma. Fortunately for Joe, the cops show up to arrest him before the mob can do any serious damage to him, but then they beat him to within an inch of his life before throwing him in jail for a few years. Emma isn’t as lucky.

When Joe gets out (considerably earlier than he otherwise would have, thanks to his father’s intervention), he wants revenge against Albert. Albert has been pushed out of Boston by a rival gang and is now running things down in Miami. Joe joins up with that rival gang, gets himself sent to nearby Tampa, and does his best to run things for his boss while plotting against Albert.

Live by Night is a film that tries really hard to be Miller’s Crossing. But trying is not enough. It’s got good people (the cast also includes Chris Messina, Zoe Saldana, Chris Cooper, Elle Fanning, and several others you’ll recognize by face if not by name), and I suppose the acting is good enough, but the story is just all over the place. It takes forever to set up its stupid premise, and even longer to decide how it wants to end. Along the way, there are far too many distractions from the real plot. There may be a decent 90–100-minute film in there somewhere, but at over two hours, it’s just a chore.

Command and Control

The Titan II intercontinental ballistic missile was one of the deadliest weapons ever created. It was over a hundred feet tall, but you wouldn’t have seen one standing on a launch pad during its heyday because they were kept in underground silos, poised to launch at the press of a button (or the turn of a couple of keys, or however that worked). It could reach the edge of space in five minutes, and the heart of Soviet Russia in twenty, carrying a nuclear warhead more powerful than the combined force of all of the bombs dropped during all of World War II, including the two atomic bombs dropped on Hiroshima and Nagasaki.

The Titan II rocket was created in the early 1960s but really should have been retired by the late 1970s. Some claim that the main reason they were still kept at the ready in 1980 is that they were to be used as bargaining chips in the de-escalation talks—we’ll get rid of ours if you get rid of yours. But nonetheless, they were still around and still operational, so they required regular maintenance. And that’s how a small team of engineers found themselves in a Damascus, Arkansas missile silo on September 18, 1980. While working on a platform near the top of the rocket, someone accidentally dropped a wrench socket, which struck a panel near the bottom of the rocket and ruptured a fuel tank. The gaseous fuel started spewing out, filling the silo. Any spark could create a massive explosion, which could, in turn, detonate the warhead and take out a sizeable chunk of Arkansas. Including a nearby Democratic convention attended by Vice President Walter Mondale and Arkansas Governor Bill Clinton.

Command and Control is a harrowing documentary (based on Eric Schlosser’s book of the same title) that takes a close look at this real-life, but little-known, disaster. It’s got archival footage from the incident mixed with training videos, footage captured of the last remaining Titan II rocket (which has been decommissioned and turned into a tourist attraction), and dramatic re-enactments of the event. It also features extensive interviews with many of the people involved. It’s highly informative, providing a lot of information without feeling too complicated or overwhelming. And it maintains a good amount of intensity, even though you presumably have a pretty good idea how it’s going to turn out. There is a bit of a political bent to it, and you’ll be relieved to know that bureaucracy can still function in times of crisis, but it mostly sticks to the facts and allows you to draw your own conclusions.

The Story of UnboundID

unboundid-logo-blue-background-white-unbound-orange-id-600x139

At the end of 2016, I ceased to be an employee of UnboundID and became an employee of Ping Identity. Ping acquired UnboundID in early August of 2016, but most UnboundID staff remained employees of that company through the end of the year (mostly for bookkeeping convenience). As a co-founder, I was with UnboundID from the beginning. Here is our story.

Once upon a time, Sun Microsystems had the best LDAP directory server on the market. The 5.1 and 5.2 releases of the Directory Server Enterprise Edition (DSEE) product, which introduced multi-master replication and 64-bit support, respectively, were very exciting.

But then for some reason, Sun’s directory server engineering team seemed to contract a chronic case of inertia, in which everyone was content to rest on their laurels. It certainly wasn’t because the product had reached perfection, nor from a lack of ideas for improvement. After a while, I became frustrated with the lack of progress, and I wrote a hundred-plus-page document (which became known as the “directory manifesto”) that was full of things that we could do to improve the product. It had plenty of low-hanging fruit that would address pain points that customers were experiencing and lots of bigger ideas to help ensure our continued dominance of the high-end directory server market. But to no avail.

Eventually, I was able to nag the right people long enough to let me start working on a new directory server that was intended to be a DSEE replacement. And thus I became the first developer working on what would become OpenDS. Sun was committed to open sourcing all their software, from Solaris to Java to all of their enterprise software, and before long, we released OpenDS under the same CDDL license that they initially created for OpenSolaris.

At that time, Sun’s Directory Server engineering team was mostly split between Austin, Texas and Grenoble, France. In 2007, someone got the idea that it would be good to have it headquartered all in one place, and Grenoble was chosen as that one place. As a result, the five U.S. employees most closely connected with OpenDS were laid off: director of engineering Steve Shoaff, marketing lead Don Bowen, engineering manager David Ely, open source community manager Trey Drake, and myself as architect.

It didn’t take the five of us long to decide that we wanted to create a new company developing on top of the OpenDS codebase. We were still passionate about the product and excited about the opportunities that it could afford, and we planned to contribute back to the open source community. We even followed through on that with a handful of commits within a couple of weeks of the layoff. But then some nastiness arose between us and Sun’s management that I don’t want to get into here, and it became clear that we were no longer welcome participants.

So by the time we founded UnboundID (on December 17, 2007), we were to be competing against Sun. We’d comply with the terms of the open source license when altering existing code, but newly-created files would be our own private intellectual property, as allowed by the CDDL. We would, of course, also go head-to-head with other directory server vendors, like Oracle (who bought Sun within a few months of our departure), IBM, Microsoft, and CA. And we’d be up against open source offerings like OpenLDAP and the 389 Directory Server. We should’ve had no chance. And yet we were shockingly optimistic. We had a lot of ideas, a lot of drive, and dare I say a pretty good amount of talent.

Upon officially forming the company, David, Trey, and I worked furiously to make improvements to the codebase. We made dramatic improvements in performance, concurrency, and scalability. We added killer features, like support for transactions, filtered logging, change subscriptions, data transformations, data integrity checksums, and some new controls and extended operations. We made the server easier to manage by improving the out-of-the-box configuration, refined the command-line and interactive text-based interfaces, and added a web-based administration console.

We also created a new Java-based API for interacting with LDAP servers, because the existing options sucked. Before we released the UnboundID LDAP SDK for Java, you could basically choose between the horrible, confusing clunkiness of JNDI (where LDAP support is bolted on as an afterthought), or the buggy and no-longer-maintained Netscape Directory API. We wanted to create an API that made it easy to write applications that could take full advantage of any LDAP server, including the enhanced functionality we were building into our own software.

While David, Trey, and I were churning out the code, Steve and Don were working to sell it. And they did. Amazingly, we got our first customer within a matter of months: a large network equipment provider that supplied telephone companies with the equipment used to run their data centers. They loved our software, our enthusiasm, our ability to react quickly, and our willingness to put our source code in escrow so they wouldn’t be screwed if we went out of business. And before long, a number of big telcos were kicking the tires on our stuff and salivating at the idea of a modern, high-powered, feature-rich, and administrator-friendly directory service.

This first customer was a huge win for us. They resold our software and provided first-line support, which helped alleviate any downstream concerns about our viability. They declared our software to be carrier-grade, which served as validation to other potential customers in other industries. And it was also nice to be able to start getting a paycheck.

Plus, we were able to leverage this deal to get good terms on an initial round of funding from an investor. We were able to hire more people (many of whom were former colleagues from Sun who were all too happy to jump ship from their new Oracle overlords), and we started working on new products. David took on the Synchronization Server, and I started on the Directory Proxy Server.

The Synchronization Server provides a way to mirror the contents of two or more data repositories, so that changes made in one system appear in the other systems, usually in a matter of milliseconds. It can do one-way or bidirectional synchronization. It can synchronize all the data or just a configurable subset. And you can connect to a number of different types of repositories, including LDAP directory servers (both UnboundID and non-UnboundID), relational databases, NoSQL databases, and more (plus an API for developing your own support for additional types of data stores). It’s ideal for migrating data from your existing repository into the UnboundID Directory Server, and for keeping both infrastructures in sync for whatever length of time is necessary to complete the migration, or indefinitely if you want to keep both systems up and running.

As its name implies, the Directory Proxy Server is an LDAP proxy server. In the simplest deployments, it allows you to achieve better performance and higher availability through load balancing and advanced health checking techniques. In larger deployments, you can use entry balancing to transparently split data up into multiple sets (much like database sharding) for even greater scalability. It can also transform requests and responses as they pass between clients and backend directory servers, and you can do this on a per-application basis in case some clients have different expectations for how the data should look or how the server should behave.

We continued to grow. We sold more software. We gained more customers. We hired more employees. We wrote more code. But sadly, we also suffered some losses. Trey decided it was time for him to move on, so he left the company. But even more tragically, Don Bowen passed away in late 2009. He’d been diagnosed with brain cancer a mere three days after we founded the company, and somehow he continued to make incredible contributions toward our success for over a year and a half. I met Don in my first job out of college, at Caterpillar, where he introduced me to the world of LDAP. Within a few months, he’d gotten an offer to join the Baltimore-based startup (initially called B2B Communications, but later renamed TidePoint Corporation) and he took me with him. When that went south, we went our separate ways, only to meet up again when we both joined Sun at about the same time. We were friends as well as colleagues, and a tremendous amount of who I am today is because of Don.

And the work goes on. As more customers migrated from existing environments and deployed into new environments, we realized that we needed to provide public interfaces to allow our software to be customized, so we created the Server SDK. Our server products had always been very extensible and componentized, but before the Server SDK, we were the only ones who could take advantage of that. The Server SDK made it possible for customers to write their own extensions to customize the behavior of the server, from intercepting and altering operation requests and responses, to creating new loggers, password validators, extended operations, SASL mechanisms, sync sources and destinations, proxy transformations, and more. The initial intention was to only make the Server SDK available to customers who’d gone through at least some kind of training (it allows you to run custom code inside the server, so there’s a chance that a buggy extension could make the server unusable), and I really wish we’d stuck to that more than we did. But for the most part, it was a hit with customers, and an even bigger hit with the sales engineers helping them evaluate and then migrate to our software.

We also introduced a couple of additional server products: the Analytics Engine and the Data Broker. The Analytics Engine (formerly called the Metrics Engine) provides simple, graphical access to all kinds of historical information about the operation of the server broken down in all kinds of ways (e.g., the number of requests per second of each operation type, and a breakdown of their result codes and processing times), along with metrics from the underlying system like CPU, disk, and network utilization. The Data Broker provides several REST-based interfaces to interact with the environment, including support for OAuth 2 and OpenID Connect (for authentication, authorization, and federation), and SCIM (for data access). As much as I love LDAP and will continue to tout its superiority over HTTP, the kids these days are all about the web APIs, so we must oblige.

But even as we worked on new products, the Directory Server continued to grow and improve. I am particularly passionate about security, so that’s been a big focus of mine over the last several years. We added support for data encryption, several two-factor authentication mechanisms, more password storage schemes and password validators, sensitive attributes, retired passwords, password reset tokens, improved account lockout, signed logs, and more. But we also added a lot of non-security-related features, like JSON support, alarms and gauges, soft deletes, assured replication, and indexing improvements. It’s gotten faster, easier to use and administer, and just plain better.

On the whole, we’ve had an unbelievable run. We did have one down year with less-than-stellar sales, but for all other years, we reached or exceeded our goals. That continued through 2016, which was one of our best years ever (even if you ignore the whole “our company was bought” thing). We certainly weren’t floundering, and we weren’t really even looking to be acquired. We had partnered with Ping Identity on a number of deals in the past, as each company’s software complemented the other’s very well without too much overlap. And then Ping was acquired by Vista Equity Partners, who were looking for other opportunities to get into identity management, and then people started talking and it all sort of became a three-way deal, with the UnboundID acquisition by Ping Identity following Ping’s own acquisition within a couple of weeks.

So what’s next for the bigger, better Ping Identity? I can’t get into any specifics, but we’ve got a lot of great things in the works. Most of the UnboundID staff, and I believe all of the technical staff, are continuing on into Ping. Some people are changing roles (many moving up, others moving laterally), but my job isn’t really changing all that much. I’m still writing code, and hope that continues far into the future. Some of our product names have changed (for example, it’s now the Ping Identity Directory Server rather than the UnboundID Directory Server), and some haven’t (it’s still the UnboundID LDAP SDK for Java), but we’re still working to ensure that they remain the best products out there. So I need to get back to work.


P.S. I know that the only people I mentioned by name in this walk down memory lane are the UnboundID founders. I certainly don’t mean to imply that we’re the only ones responsible for or vital to the company’s success. There are so many other people that made big contributions to the company that I can’t list them all without fear of leaving someone out, without fear of mentioning someone who’d rather be left out, and without fear of making this long post even longer. So let me just say that if you worked for UnboundID in any capacity, you have my sincerest thanks.

Hidden Figures

Before computers were made of circuits and vacuum tubes and transistors, they were made of flesh and bone and neurons. The term “computer” used to refer to someone who performed calculations, and NASA had a lot of them. Many of them were women, and many of them were black. The white men invented the math needed to get rockets into and out of space, and the black women did the grunt work of plugging away at the numbers. Hidden Figures tells the true story of three African-American women who were critical to the success of the space program, and who accomplished extraordinary things in spite of the racism and sexism that surrounded them in 1960s Virginia:

  • Katherine Goble-Johnson (Taraji P. Henson) was a mathematical genius who could out-compute just about anyone on the planet, regardless of their race or gender. She was the first black woman allowed in the elite group of people responsible for figuring out rocket trajectories, and she quickly rose from just performing calculations and double-checking other people’s work to tackling the hardest problems that needed to be solved. Not the least of which was finding a bathroom that she was allowed to use.
  • Dorothy Vaughan (played by Octavia Spencer) was a computer who also had the informal responsibility (without the title or the extra pay) of supervising the other black female computers. She knew their strengths and helped ensure they went to the areas where their abilities would be put to greatest use. And when NASA started looking to IBM machines for performing calculations, she made sure that she and her colleagues were among the first at NASA to know how to program them.
  • Mary Jackson (Janelle Monáe) was an engineering wizard who may have had the respect of white male colleagues like Karl Zielinski (one of many European Jews who fled to America to escape Nazi persecution), but whose sex and color prevented her from getting the educational credentials needed for her to be considered one of their peers. So took the matter to the courts.

Although most of the time is devoted to their work at NASA, we still get a good look at their everyday lives. This is especially true of Katherine Goble, a single mother being courted by Jim Johnson (Mahershala Ali), and much of what we see of the other women outside of NASA seems to be focused on getting the two of them together.

Katherine’s work also seemed to get about as much attention as the other two combined, with Mary’s storyline in particular feeling a little under-represented. But with a runtime of a little over two hours, it may well be the case that some of Mary’s content ended up on the cutting room floor. That’s unfortunate, particularly when it seems like an early scene that portrayed Katherine as a child prodigy could’ve been left out to allow for more time with the other two, but it ultimately doesn’t hurt the film much.

Beyond the three excellent leads, only Kevin Costner (in the role of Al Harrison, who is apparently a composite based on a few different people) warrants additional comment for his performance, although that’s largely because his character was the most significant to the story. The film has other recognizable faces, like Kirsten Dunst and Jim Parsons, but there’s really nothing too noteworthy about their performances.

Ultimately, Hidden Figures is inspirational, educational, funny, and entertaining in just about every other way. It’s a great way to spend a couple of hours of your time.

Lion

The IMDb trivia for Lion states that lead actor “Dev Patel had to develop a new physique to portray Saroo and attended several hours in the gym in order to inhabit his part. He also grew a beard…” Which is weird, because the end of the film includes the obligatory sequence of photos showing the real-life people involved with the event, and I was struck by how little Patel’s character resembled the real-life (notably pudgier and beardless) Saroo. Of course, by the time the end of this movie arrives, you’ll probably have abandoned your hope for things that make sense.

Five-year-old Saroo lives with his mother Kamla, older brother Guddu, and baby sister Shekila in rural India. They live a very modest life, so Saroo and Guddu try help bring in extra money any way they can. One night, Guddu sneaks out to see if he can find work. Saroo goes with him, but is too tired to work so Guddu leaves him to sleep on a bench at a train station. There’s a passenger train parked there, and Saroo boards it to sleep. When he wakes, the train is moving, and it turns out the train has been decommissioned and is being piloted, without any passengers, across the country. When he finally gets off a couple of days later, he’s in Calcutta, a large city where they speak Bengali rather than Hindi, and where homeless children are not uncommon. He doesn’t know where he’s from, or even his mother’s name, but it doesn’t seem like people would be all that intent in trying to reunite him with his family even if he did know all the relevant information.

Saroo is ultimately placed in an orphanage, where he is adopted by an Australian couple (played by Nicole Kidman and David Wenham). Jump ahead twenty years, and Saroo (now played by Patel) has been living a pretty posh life. Then he’s struck with a memory from his early childhood, and suddenly he remembers that he’s not from Australia or from Calcutta, and he becomes obsessed with finding his real home. This simultaneously turns him into a dick and a moron, and he abandons the people he cares about to spend all his time on Google Earth.

This movie was all set to be predictably mediocre. By the time the plot reveals itself, you know how it’s going to end, and there’s no chance of anything truly surprising. But at least you can hope that it’ll be a worthwhile journey. Maybe some of that hope will even survive the film’s glacial pacing. But when the main character takes his turn into the completely unbearable, and after you’ve had to overlook a couple of “why don’t they just…” moments, you’ll probably realize that you aren’t going to get anything more than uncomfortable tedium. Kidman does a good job, and she even looks like her real-life counterpart, but there’s really not much else to say about the rest of the film.

Cameraperson

Kirsten Johnson has been shooting documentary films for over twenty years, including highly-lauded films like Citizenfour, The Invisible War, and Fahrenheit 9/11. She’s traveled the world, and seen where all the best atrocities were committed. And now in Cameraperson, she’s compiled clips from many sources to provide a dark and powerful look at the world she’s experienced.

The subjects of the clips run the gamut. War, genocide, rape, and torture are prominently represented, both through stark images of the aftermath (e.g., the artillery-pocked wall of a mosque), and in interviews with those who lived through the ordeal. We hear the struggle of a single mother who’s facing a second unintended pregnancy, and we see a Nigerian midwife trying to keep babies alive in an under-equipped hospital. Occasionally, we’ll get something light, like children practicing ping-pong or an astrophysicist enthusiastically trying to explain quantum entanglement. And Johnson makes it personal by including footage of her own Alzheimer’s-stricken mother.

Some of the most polished footage feels like it has been rescued from the cutting room floor, where it just didn’t fit into the final version of the film for which it was originally shot. Some of it appears to be B-roll, meant to provide cutaways or background visuals for voiceovers. On a couple of occasions, we get a behind-the-scenes peek when the camera is left rolling while filmmakers decide how they want to set up a shot. And once, we’re treated to a shot of a blank wall in footage captured to overwrite a portion of a tape that someone in a position of authority deemed not suitable for public release.

It’s easy to see how a film of this type could have ended up feeling disjoint or unfocused, but somehow it all works, and the segments complement and amplify each other. It’s a heavy film and certainly could’ve been a real downer, but it seems to find the humanity when it needs to, and even occasionally feels a bit inspiring when we learn what people have overcome. And as you would expect from a longtime cinematographer of her caliber, the shots are gorgeous even when the camera is trained on something that is decidedly not. It’s unquestionably a documentary that’s worth your attention, even if you may need a little recovery time after it’s over.

Certain Women

With a population of just over 7000 people, Livingston, Montana may be a tiny city by many standards. But it may as well be the center of the universe in Kelly Reichardt’s latest film, which features three loosely-connected vignettes based there:

  • Laura (Laura Dern) is a lawyer who must deal with a client (Jared Harris) who has been injured on the job as a result of an employer’s negligence, but who refuses to accept that he’s ineligible to sue because he’s already taken a small settlement.
  • Gail (Michelle Williams) and her husband Fuller (James Le Gros, who also happens to be sleeping with Dern’s character) are building a new house and want to use rustic building materials. Albert (Rene Auberjonois) is a confused older man with a bunch of sandstone blocks (remnants of an old school torn down decades ago) on his property. They’d be perfect for the house, but Albert is still holding onto the delusion that he might make use of them, and Gail is frustrated by the lack of support she’s getting from Fuller.
  • Elizabeth (Kristen Stewart) is a recent law school graduate whose anxiety over her ability to repay her student loans causes her to mistakenly take a second job teaching a twice-weekly night class in a town that’s four hours away. But a lonely ranch hand (Lily Gladstone) looks forward to those classes as the highlight of her social calendar.

Certain Women is Reichardt’s deepest dive into character study since 2006’s Old Joy, which is to say that it provides only the barest of plots. The first story, with Dern and Harris, is the only one to offer any kind of excitement and will be the most approachable to those more accustomed to blockbuster-type movies (although there’s still a fair amount of downtime before we get to its climax). But those times when nothing much is happening are also the times that feel the most genuine, and that leave plenty of room for you to admire the quality of the performances and the filmmaking. The pacing and sparseness are also very appropriate for the laid-back, small-town life on display, but without the respite of grand vistas or a catchy soundtrack, it’s not hard to see why some audiences might be bored out of their minds while watching it.

My Favorite First-Time Watches of 2016

my-favorite-first-time-watches-of-2016

I saw a total of 1482 movies last year, and 1012 of those were films I’d never seen before. Rather than trying to come up with a top ten list for the year (although if I had to pick a favorite new release, it would probably be either Anomalisa or Hell or High Water), I just decided to provide a list of some of my favorite movies that I watched for the first time last year. So here’s the list (also available on Letterboxd):

The 12 Disasters of Christmas (2012) — The Mayans were right about 2012 being the end of the world, but they also knew how to stop it, and they ensured that knowledge would survive the end of their own civilization by encoding the secret in the Christmas carol “The 12 Days of Christmas”. Now Jacey, with the help of her parents Mary and Joseph, must use menstrual cramps to help her find five golden rings hidden around their small town of Calvary to stave off destruction.

Alyas Batman en Robin (1991) — One of the greatest possible results of the lax copyright laws of the Philippines, the Caped Crusader and his sidekick, sing, dance, and fight their way through nemeses like The Joker and The Penguin.

Anomalisa (2015) — An animated film about a man who sees everyone with the same face and hears everyone with the same voice. And then he encounters a woman with a different face and a different voice.

Author: The JT LeRoy Story (2016) — A documentary about a sensational young writer. It’s best to go into this one with as little knowledge as possible.

The Autopsy of Jane Doe (2016) — A father and son (Brian Cox and Emile Hirsch) spend a stormy night performing an autopsy on an unknown female.

Bad (aka Andy Warhol’s Bad; 1977) — A woman runs a combination beauty parlor, boarding house, and hitwoman service.

Bad Black (2016) — Made on a budget of hundreds of dollars and unlimited enthusiasm, this Ugandan action movie features a kid named Wesley Snipes who teaches a doctor to be a badass. The running commentary alone is worth ten times the price of admission.

The Bandit (2016) — A documentary about Burt Reynolds, Hal Needham, and the creation of Smokey and the Bandit.

The Bat Whispers (1930) — A master criminal has made a name for himself by announcing his thieving intentions to the police ahead of time and still pulling off the job. Then, he sets his sights on a mansion full of lots of interesting people.

Beauty and the Beast (1946) — Jean Cocteau directs what must be the definitive live-action version of this tale as old as time.

Bound (1996) — A former criminal (Gina Gershon) intends to make good, but that flies out the window when she falls for a woman (Jennifer Tilly) with a plan to steal from her mafioso boyfriend (Joe Pantoliano).

Criminally Insane (1975) — Ethel (Priscilla Alden) is an obese woman with a history of mental illness. People who try to get her to eat less tend to wind up dead.

Dirkie: Lost in the Desert (1969) — A young boy named Dirkie finds himself alone with his dog in the Kalahari Desert.

Don’t Kill It (2016) — In this Fallen meets It Follows kind of horror comedy, a demon hunter (Dolph Lundgren) must find a way to take out a demon that possesses whoever kills its previous host.

Down Under (2016) — A hilarious Australian comedy about two groups of idiots facing off against each other in a race war.

Eating Raoul (1982) — Paul Bartel and Mary Woronov star in this dark comedy about a couple who invite horny men to their apartment with the promise of sex, only to kill and rob them.

The Edge of Seventeen (2016) — An awkward, self-centered teenager (Hailee Steinfeld) hates the world, and she becomes even more incorrigible when her brother (Blake Jenner) starts dating her best friend (Haley Lu Richardson). Featuring a surprisingly good supporting performance by Woody Harrelson.

Elle (2016) — Isabelle Huppert plays a woman whose father is a serial killer, whose mother enjoys gallivanting with hot young men, and whose son is having a baby with his awful girlfriend. She also runs a video game company that is producing a highly sexualized game, and now she is a rape victim.

Enter the Ninja (1981) — An American veteran turned ninja (Franco Nero) learns that Filipino businessman (Christopher George) is intent on taking the farm of his war buddy (Alex Courtney, whose wife is played by Susan George).

The Favor, the Watch, and the Very Big Fish (1991) — Louis (Bob Hoskins) is a photographer who specializes in religious imagery. Sybil (Natasha Richardson) is a woman who does voiceover work in pornographic movies. Sybil tells Louis about a gifted pianist (Jeff Goldblum) who is about to be released from prison, and Louis hires him to portray Jesus in his photographs.

Fences (2016) — Denzel Washington plays a man who sees himself as fighting the good fight to provide for his family, but is in actuality one of the best villains of the year. But the real superstar of this film is Viola Davis, who provides what is unquestionably the greatest performance of 2016.

Fraud (2016) — A highly unique and mostly fictional narrative is seamlessly crafted from assorted YouTube clips.

The Fugitive Kind (1942) — A wanderer (Marlon Brando) finds his way into a small town and gets a job at a store run by a lonely woman whose cruel husband (and the store’s owner) is dying of cancer. Directed by Sidney Lumet, and featuring Joanne Woodward, Maureen Stapleton, and R.G. Armstrong.

Fury (1936) — A man (Spencer Tracy) is mistaken for a murderer while driving through a small town whose inhabitants decide to take matters into their own hands and carry out the execution themselves. But the man survives, and he wants revenge.

Good Luck, Miss Wyckoff (1979) — A white schoolteacher is raped by a black janitor, but then finds herself in a forbidden relationship with him. The impressive cast includes Donald Pleasence, Robert Vaughn, Earl Holliman, Ronee Blakley, Doris Roberts, R.C. Armstrong, and Dana Elcar.

The Handmaiden (2016) — A mischievous Korean girl agrees to help a con man win the hand (and fortune) of a wealthy Japanese woman, only to find that the situation is much more complicated than it first seemed. Another masterpiece from director Park Chan-wook.

Häxan (aka Witchcraft Through the Ages; 1922) — A Swedish silent film that depicts the history of witches and demons and other types of mystical folklore.

Hell or High Water (2016) — A pair of brothers (Chris Pine and Ben Foster) plan to rob several branches of a Texas bank with little regard for their clientele. Jeff Bridges is determined to stop them.

Heroes for Sale (1933) — A William Wellman film about a man who can’t catch a break. He was a war hero, but whose credit went to someone else, and who just ended up as a morphine addict unable to hold a job.

The Hitch-Hiker (1953) — A couple of guys on a fishing trip pick up a hitchhiker that turns out to be an escaped serial killer. Directed by Ida Lupino.

The Horror of Party Beach (1964) — A small beach town is terrorized by monsters created by radioactive waste. A scientist works to find a way to fight the monsters, with the help of his daughter and her boyfriend.

Hunt for the Wilderpeople (2016) — When a kid’s foster mom dies, the government wants to take him away from foster dad Sam Neill. The two take to the New Zealand bush to prevent that and become infamous in a The Legend of Billie Jean sort of way.

Hush (2016) — A deaf woman (Kate Siegel) must protect herself from a very determined home invader.

Inseminoid (1981) — When a woman exploring another planet is raped and impregnated by an alien, she starts killing her crewmates.

The Invisible Guest (2016) — A man wakes up in a locked hotel room with a dead body and desperately tries to prove that he’s not the murderer.

Jackie (2016) — Natalie Portman plays the widow of John F. Kennedy in the wake of his assassination.

Jungle Trap (2016) — Shot in the 1990s but only recently completed, James Bryan and Renee Harmon tell the story of people who travel to a haunted hotel in the jungle to get an artifact from a native tribe.

Kings of the Road (1976) — A Wim Wenders film about a man who runs a traveling movie theater, and a depressed man who hitches a ride with him for a while.

Kisses for My President (1964) — When Leslie McCloud (Polly Bergen) is elected the first female president of the United States, her husband (Fred MacMurray) becomes the first male First Lady. Also featuring Eli Wallach.

Kubo and the Two Strings (2016) — A boy with a magical storytelling ability must defend himself and his sick mother against her father and sisters.

Les Vampires (1915) — A seven-hour French silent film (originally released as a serial) about a reporter trying to expose a group of criminals that call themselves “The Vampires”.

Lethal Seduction (2015) — A talented high school student falls for an older woman (Dina Meyer), much to the chagrin of his mother (Amanda Detmer). And that’s before learning that the other woman is a jealous psychopath.

Lilya 4-Ever (2002) — A teenage orphan from Estonia goes to Sweden in the hopes of finding a new life for herself, only to be forced into service as a prostitute.

Little Sister (2016) — A woman in training to become a nun goes home to visit her family, and her goth past, when her injured brother comes home from military service. Featuring Ally Sheedy, Keith Paulson, and Barbara Crampton.

The Lobster (2015) — A dystopian future hotel provides a strong incentive for couples to find their soulmates: if you don’t find your match, you’ll be turned into an animal or hunted for sport. Featuring Colin Farrell, Rachel Weisz, John C. Reilly, Olivia Colman, and Léa Seydoux.

Loving (2016) — The true story of an interracial couple (Joel Edgerton and Ruth Negga) fights for the right to live together in Virginia, whose case went all the way to the Supreme Court.

Lupin the Third: The Castle of Cagliostro (1979) — A Studio Ghibli film about a master thief whose big haul turned out to be all counterfeit. He decides to go after the counterfeiters and rescue a damsel in distress in the process.

Kung Fu Panda 3 (2016) — A clumsy but pure-of-heart panda (Jack Black) must deal with meeting his real father and learning more about his roots while also squaring off against a supernatural villain from the spirit world.

Mad Love (1935) — A gifted surgeon (Peter Lorre) has a crush on an actress. When her pianist husband loses his hands in a train accident, the surgeon replaces them with hands from a recently-executed knife thrower.

Magic of Spell (1988) — A Taiwanese film about Peach Boy (obviously played by a girl) who must face off against a blood-consuming devil and his magical henchmen. So of course Peach Boy teams up with a bunch of hybrids, including a dog-girl, a monkey-boy, a chicken-girl, and a ginseng boy.

Manchester by the Sea (2016) — A man with a traumatic past must deal with the death of his brother and the son he left behind. Starring Casey Affleck and Michelle Williams.

Miss Sharon Jones! (2015) — A documentary about an R&B singer who must put her career on hold while she seeks treatment for pancreatic cancer.

Moonlight (2016) — A look at various stages in the life of a boy growing up in a rough neighborhood with a mother who is an addict, who is taken under the wing of a drug dealer, and who must confront his own sexuality.

The New 8-Bit Heroes (2016) — A documentary about the challenges of indie game development for the original Nintendo Entertainment System.

The Nice Guys (2016) — A Shane Black period crime drama comedy about a single-dad private investigator (Ryan Gosling) is hired to investigate the death of a porn star, which has also drawn the attention of another brutish detective (Russell Crowe).

The Novack Murders (aka Beautiful & Twisted; 2015) — A “based on a true story” Lifetime drama about Ben Novack Jr. (Rob Lowe), a wealthy hotel owner who is very into Batman. When he ends up dead, his wife (Paz Vega) is the prime suspect. Also featuring Candace Bergen.

Paperhouse (1988) — A girl has drawn a picture of a house, only to find that she can visit that house and that changes to the drawing adversely affect that house and the sick boy who lives in it.

Pee-wee’s Big Holiday (2016) — Pee-wee Herman ventures out of his small town for the first time after becoming fast friends with Joe Manganiello and being invited to New York for his birthday party.

Pete’s Dragon (2016) — A car accident orphans a young boy named Pete in the woods, where he is found and raised by a dragon with the ability to become invisible. Pete is found by a forest ranger (Bryce Dallas Howard) whose father (Robert Redford) claims to have had his own brush with the dragon.

Pippi in the South Seas (1970) — Pippi Longstocking enlists the help of her friends Tommy and Annika to help rescue her sea captain father from his pirate captors.

Presenting Princess Shaw (2015) — A documentary about a woman who uploads her homemade musical creations to YouTube, and a musician on the other side of the world who discovered her videos and decided to turn them into something much more polished.

The Quiet Earth (1985) — A scientist wakes up one morning to find the world devoid of people after an experiment gone horribly wrong. He eventually learns that he’s not the only survivor, but those few people who are left are still in imminent danger.

Raiders! The Story of the Greatest Fan Film Ever Made (2015) — A documentary about a couple of boys who loved Raiders of the Lost Ark so much that they spent years creating their own nearly-complete shot-for-shot version of the film. Decades later, they reunite to complete that one remaining scene.

Remember the Night (1940) — A prosecutor (Fred MacMurray) is concerned that he might lose a Christmastime shoplifting case, he’s able to get the trial postponed until the new year. But he feels guilty about leaving the defendant (Barbara Stanwyck) to sit in jail, so he bails her out only to find himself stuck with her for the holidays.

Road House (1948) — Night club owner Jefty (Richard Widmark) becomes jealous when singer Lily (Ida Lupino) falls for his best friend, and club manager, Pete (Cornel Wilde). Jefty gets his revenge by framing Pete for robbery and turning him into his indentured servant.

Road to Salina (1970) — When a drifter (Robert Walker, Jr.) wanders into a remote gas station/restaurant, its owner (Rita Hayworth) mistakes him for her long-lost son, and the man indulges her fantasy. Also featuring Ed Begley and Mimsy Farmer.

S Is for Stanley (2016) — When an aspiring Italian racecar driver drove a taxi to make ends meet, he was hired to transport a giant phallus across London in a blizzard to a movie set. Thus began the thirty-year working relationship between Emilio D’Alessandro and Stanley Kubrick, and thus begins this thoroughly charming documentary about one of the greatest directors of all time from the perspective of the man who would become his personal assistant.

Safe Neighborhood (2016) — A fun, brutal Christmas thriller in which a teenage girl must stave off a home invasion and the advances of the horny preteen boy she’s babysitting. Featuring Virginia Madsen and Patrick Warburton.

Snowmageddon (2011) — A snow globe shows up on a family’s doorstep just as a series of disasters plague the small town of Normal, Alaska. Inside the globe is a model of the town, and whatever misfortunes befall that model also affect the town.

Southside with You (2016) — A dramatization of Barack Obama’s first date with wife-to-be Michelle.

Stroszek (1977) — Werner Herzog’s film about a lovable German alcoholic who decides to accompany a battered prostitute and an elderly man to travel to America to make a new life for themselves, only to find that it’s not quite the land of opportunity they had hoped.

Taxi (aka Taxi Tehran; 2015) — Filmmaker Jafar Panahi may have been banned from making movies by the Iranian government, but he circumvents that by posing as a taxi driver and turning his car into a studio to create a very candid film about life in the oppressive country.

Three Colors: Blue (1993) — Juliette Binoche stars as a woman who survives the car accident that killed her famous composer husband and their daughter, only to learn that her husband also left behind a pregnant mistress.

Three Colors: Red (1994) — A woman accidentally runs over a dog that belongs to a retired judge. When she tries to return the dog, she learns that the man is secretly spying on and recording the private conversations of everyone around him.

Three Colors: White (1994) — A Polish man living in France is forced into poverty when his marriage is dissolved for his inability to consummate. He enlists the help of a friend to make his way back into Poland.

Tickled (2016) — A journalist discovers the underground world of online tickling competitions and starts digging to see if he can find more about its origins.

Tower (2016) — It’s been fifty years since a sniper took up a position at the top of the University of Texas tower. This documentary features dramatized interviews with those who were there and rotoscoped recreations of the events of the day.

Under the Shadow (2016) — Being a woman in Iran is already a pretty horrifying experience, but things get worse when her home is invaded by a supernatural force.

The Uninvited (1988) — A man (Alex Cord) plans to sail his yacht to the Cayman Islands to withdraw his ill-gotten funds before they can be seized by the government, with the help of his henchmen (George Kennedy and Clu Gulager). But the crew find themselves in mortal danger from a radioactive cat escaped from a research facility.

Wendy and Lucy (2008) — An unemployed young woman named Wendy (Michelle Williams) is traveling to Alaska with her dog Lucy in the hopes of finding a job. When Wendy is detained for attempting to shoplift, Lucy goes missing.

The Young Offenders (2016) — A pair of young Irish lads with a penchant for ticking off the police embark on a cross-country bike trip in the hopes of getting their hands on a multi-million-Euro brick of cocaine that had been lost in a boat accident.

Zootopia (2016) — In a world where animals have learned to live together in peace, a young, ambitious bunny stumbles on a plot to return predators to their violent roots.

UnboundID LDAP SDK for Java 3.2.0

We have just released the 3.2.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 the Maven Central Repository.

You can get a full list of changes included in this release from the release notes (or the Commercial Edition release notes for changes specific to the Commercial Edition). Some of the most significant changes include:

  • Added a new transform-ldif tool that can be used to apply a number of transformations to data in an LDIF file. This includes the ability to scramble, replace, redact, or exclude a specified set of attributes; to replace existing values for a specified attribute; to use a sequential counter for values of a specified attribute; to add a given set of values to entries matching specified criteria; to exclude entries matching specified criteria; to rename attributes; to replace the base DN for entries in a specified subtree; and to flatten a DIT.
  • Updated all classes that offer a public void close() method that doesn’t throw any exceptions other than a possible IOException so that they implement the java.io.Closeable interface. This includes classes like LDAPConnection, LDAPConnectionPool, LDIFReader, LDIFWriter, and all EntrySource implementations. This allows code using these classes to take advantage of the try-with-resources facility introduced in Java SE 7.
  • Added support for parsing entries that contain information about the operations processed in the server for servers that support the syntax described in draft-chu-ldap-logschema-00.
  • Updated the modrate tool to make a number of improvements, including support for a number of controls, the ability to replace multiple values rather than just a single value, or the ability to perform an increment modification rather than a replace modification.
  • Added a new JSONBuffer class that can be used to efficiently construct the string representation of a JSON object, and a JSONObjectReader class that can be used to read JSON objects from an input stream. Added the ability to generate formatted, multi-line string representations of JSON objects with improved human readability.
  • Updated the LDIF reader to make it possible to specify the character set to use when reading data. Updated the LDIF writer to make it possible to automatically include a comment below any base64-encoded values that provides a non-base64-encoded representation (with special characters escaped) of the preceding value.
  • Updated the in-memory directory server to support the LDAP no-operation control as described in draft-zeilenga-ldap-noop-12.
  • Added a new base64 command-line tool that can be used to encode and decode data using the base64 format.
  • Dramatically improved the robustness of the identify-references-to-missing-entries and identify-unique-attribute-conflicts tools.
  • Updated the argument parser to add support for subcommands with their own distinct set of arguments.
  • Added support for timestamp arguments, which can be used to specify timestamps in either the generalized time syntax (including the time zone), or in a number of formats that indicate a time in the local time zone.
  • Updated the command-line tool API to provide the ability to default to interactively prompt for passwords that may be needed but not provided, and to send output to a specified file.
  • Updated the rate adjustor so that generated sample rate files include a number of additional examples for common patterns like square, stairstep, sine, sawtooth, triangle, and hockey stick.