Sun Nov 01 2015 16:17 October Film Roundup:
This month starts very mainstream, with lots of gunplay and explosions, but—plot twist!—takes a right turn into the avant-garde. And then ends with some random stuff. Just the way I, and, hopefully, you, like it.
- Inside Man (2006): A Sumana recommendation. I never would have seen this movie based on the poster. It looks like "Denzel Washington Has A Gun: Part XI". If I were in charge of the poster it would just say "SPIKE LEE MADE A HEIST MOVIE". However, the point is moot, the poster was designed, let's just live with it.
This movie's really fun. It's got good twists, all the characters are genre-savvy ("This isn't Dog Day Afternoon"), and the tension to violence ratio is very very high. It's also full of classic New York set pieces like the cops suddenly falling into a big argument about MTA trains versus Metro North. Good stuff.
Fictional video game watch: the kid in this movie is playing a PSP game that's a parody of 50 Cent: Bulletproof.
- Sneakers (1992): Another Sumana recommendation. I know that this is Brendan's favorite movie, but it's... not my favorite movie. It is okay. I like its portrayal of pre-Internet tech companies and the common varieties of nerd. The action is corny, and even though they've both done thrillers before I feel like Robert Redford and Sidney Poitier are kind of acting below their pay grades. I... don't regret seeing it? But not a revelation or anything.
- The Martian (2015): Matt Damon, regretting his performance in Interstellar (2015) as the least competent astronaut imaginable, called a Hollywood do-over and portrayed the most competent astronaut imaginable. Seen with Sarah, who disliked it, not as much as Interstellar, but she felt it was like watching a documentary. I like documentaries, so although I wasn't crazy about this movie I had a good time. I loved the 'aha!' moments of puzzle-solving that did duty for plot twists.
My least favorite thing about The Martian: Jeff Daniels's incompetent NASA administrator. I don't object to portraying NASA brass as incompetent, but when something like this happens, and your reaction is sustained incompetence, you can't keep your job. Yet there he is in the epilogue, still running NASA, happy as a clam. I hate clams. Always so damn happy. Who do they think they are?
This film takes an Alphaville strategy where, logically, the film must be set in the future, but the Earth scenes are effectively set in 2015. All the gee-whiz technology is in the space or Mars scenes. It's a good choice, and something you don't notice watching the movie in 2015, but I don't think it will hold up well. But maybe it's better than having some token future changes. Also they did a lot of smaller-scale time skipping, where events on Mars are interspersed with what happens on Earth twelve minutes later, when Earthlings become aware of what happened in the previous shot. I think that decision will probably age well.
Fictional video game watch: this movie mentions real video games. No credit.
- In Bruges (2008): They say the neon lights are bright... in Bruges. This was a fun movie that had some laughs, some really good plot twists, and then disappeared up its own ass trying to set up an ending with maximum dramatic irony. Great dialogue though. I was inspired to see this movie by this random NYCB comment from 2012, so beware! You never know when you might inspire me?
- Bombay Velvet (2015): I witnessed an interesting phenomenon during this movie. It's full of things Sumana hates in movies—mainly graphic violence against women—but unlike other movies the presence of these elements didn't make her hate the movie as a whole. She really liked this movie, because pretty much everyone in the movie is Indian. Getting to see a nearly all-Indian cast in a gritty retro-noir movie is a rare occurrence.
This is an Indian movie for people who love American movies, which may explain why its IMDB rating is a measly 5.8 compared to Baahubali's bestounding 8.8. The Scorsese influence (via Scorsese's editor Thelma Schoonmaker) is really strong. In addition to the violence and the lavish spectacle you get riffs on other Scorsese films: Raging Bull, Taxi Driver, The King of Comedy; maybe Shutter Island, I dunno, didn't see that one. The political corruption was top-notch.
Overall it's kind of a borderline recommendation for me, but I thought it was a better take on the "rags to blood-soaked riches" story than Scarface, so if you love that kind of movie, I think you'd really like Bombay Velvet.
Also, Bombay Velvet probably has the best soundtrack of any movie I've seen since the invention of Film Roundup. Hot nightclub jazz + all-out Bollywood singing. It's great.
- The Forbidden Room (2015): I feel like Guy Maddin is the Thomas Pynchon of avant-garde film. He surveys the landscape and says "Damn, this is a landscape of pretentious crap. I'm going to show you how it should be done, but at the same time I'm going to be really goofy so you know I don't take it seriously." And that's The Forbidden Room. It's a pretty fun movie but it's really painful to look at. Everything looks like it's been sitting in a film canister in someone's garage for sixty years, and the fact that it's intentional doesn't help.
The only visuals I enjoyed were the animated appearance of the nightclub singer Blob-U-Lo(?), a sort of incomprehensible phenomenon that can only be perceived as a hole in space. Super creative. He/it sings a song about being obsessed with butts, in case you were doubting the Pynchon comparison. Here's the music video.
- World of Tomorrow (2015): A fun sci-fi short, full of cool ideas and abstract eyeball kicks. Recommended.
- Cosmodrama (2015): I pitched this to Sarah as "the antidote to The Martian", and that much is correct. In The Martian an astronaut is abandoned by his companions and must rely on Science™. In Cosmodrama a group of astronauts are abandoned by Science™ itself, and must recreate their knowledge of the universe from scratch. It's a French film, so you know it's all a metaphor for the human condition.
For the first time ever, I was annoyed that a science fiction film included too much science. You could take the title literally: it's a dramatization of Cosmos (1980). Unfortunately this makes it unclear which of the movie's ideas you're supposed to take seriously once you leave the theater.
If you're already up on dark energy you don't need to see people explaining it; if you're not, this film makes it feel like a plot device instead of a real-world scientific mystery. I really liked the use of Lee Smolin's hypothesis about universes being created inside black holes (this is the official multiverse cosmology in Constellation Games, BTW), but it's just a hypothesis at this point. In the movie it's presented as a discovery and it's likely to read as technobabble. Especially since it's accompanied by real technobabble that has no factual basis.
In a Lem-esque twist, the astronauts are never named and are identified in the credits only by their specialties. One of them is "the semiotician" (Lem would have written "the cyberneticist"). In another Lem-esque twist, this movie wants to be Solaris but isn't nearly as deep. It looks great though. A classic 1970s spaceship in glorious digital high definition.
- The White Haired Witch of Lunar Kingdom (2014). A.k.a. "The White Haired Beauty", a.k.a. too many other titles to count. A mediocre Chinese historical action movie. Little bits of it were cool, but overall not worth the running time. Probably the best thing about this movie is that its historical hook is an incident called "The Case of the Red Pills". The pills sound really gross. Oh, also there's a plot point where someone gives the order: "You must deliver these snacks." The snacks look delicious.
- How To Marry A Millionaire (1953): Pretty fun, so long as you don't expect a step-by-step guide. Apparently marrying a millionaire is a matter best left entirely to chance. Some surprising plot twists as William Powell, initially set up as a creepy old guy, turns out to be a mensch. Also a baffling sequence before the titles, where the orchestra plays the overture for, like, four minutes, and you're just watching the orchestra do its thing. I didn't come here for no Leopold Stokowski, I wanna see some dames pass the Bechdel test! We speculated this was to make the experience feel like watching a Broadway musical, but How To Marry A Millionaire isn't a musical. My current hypothesis is, that bit was just supposed to play as people were walking into the theater.
There's a fashion show in this movie, and although the outfits everyone wears for the rest of the movie still look cool and glamorous, nearly everything in the fashion show is tacky and ugly. And I gotta ask: did that stuff ever look good or is it a joke?
And now, the continuation of Television Roundup. We actually finished a show this month!
- The Legend of Korra (2012-2014): Really really fun. Creative action scenes, good humor, realistic family dynamics, cute animals, enough twists on the "Chosen One" narrative that it wasn't annoying, a big ensemble of characters who wax and wane in importance over the seasons. We had to pay attention at close to an adult level since it's assumed we watched a previous show we didn't actually watch. We had a lot of fun speculating about the worldbuilding. Highly recommended.
Random character notes that I enjoyed: Every season Korra figures out she's being manipulated a little earlier, until in the final season she's too smart for that plot twist to work at all and they have to give that job to Bolin. Bolin, whose job throughout the series is to be Phillip J. Fry. Seriously, he never makes a decision or says a line that Fry wouldn't make or say in the same situation. It could get tiresome, but Bolin gets less time after season two. And Varrick has a cool arc that reminds me of Londo from Babylon 5. Londo starts off as a buffoon, then becomes a monster and ends up a tragic figure. Varrick starts out as a buffoon, then becomes a villain and ends up a hero—but he never stops being a buffoon! Also, he's Dr. NakaMats. Great stuff.
Tue Oct 20 2015 09:03 Bot Techniques: The Wandering Monster Table:
In preparation for the talk I'm giving Friday at Allison's unofficial Bot Summit, I'm writing little essays explaining some of the techniques I've used in bots. Today: the Wandering Monster Table!
In D&D, the Wandering Monster Table is a big situation-specific table that makes it possible for you, the Dungeon Master, to derail your carefully planned campaign on a random mishap. You roll the dice and a monster just kind of shows up and has to be dealt with. There are different tables for different scenarios and different biomes, but they're generally based on this probability distribution (from AD&D 1st Edition):
- 65% of the time you will get a Common monster, like a really big rat.
- 20% of the time you will get an Uncommon monster, like a hobgoblin.
- 11% of the time you will get a Rare monster, like a neo-otyugh.
- 4% of the time you will get a Very Rare monster, like Ygorl, Lord of Entropy.
This doesn't mean you're going to run into Ygorl (Lord of Entropy) once every twenty-five adventures. There are a ton of Very Rare monsters, and Ygorl is just one chaos lord. He can't be everywhere. What this means is that most of the time the PCs are going to experience normal, boring wandering monsters. Die rolls form a normal distribution, and 68% (~65%) of die rolls will fall within one standard deviation of the mean. Those are your common monsters.
Go out two standard deviations (95%, ~65%+20%+11%) and things might get a little hairy for the PCs. Go out three standard deviations (99.7%, ~65%+20%+11%+4%) and you're looking at something really weird that even the Dungeon Master didn't really plan for. But what, exactly? That depends on the situation, and it may require another dice roll.
The WMT is a really good abstraction for creating variety. I use it in my bots all the time. Here's a sample of the WMT for Serial Entrepreneur:
common = ["%(product)s",
uncommon = [
"%(product)s... %(variant)s...? Just throwing some ideas around.",
"%(product)s... or maybe %(variant)s...",
"%(product)s or %(variant)s?",
rare = [
"I don't think I'll ever be happy with my %(product)s...",
"Got a meeting with some VCs to pitch my %(product)s!",
"I'm afraid that my new %(product)s is cannibalizing sales of my %(variant)s.",
"The %(product)s flopped in my %(state)s test market... back to the draw
very_rare = [
"Am I to be remembered as the inventor of the %(product)s?",
"Sometimes I think about Edison's famous %(product)s and I wonder... can my %(product2)s compare?",
"I haven't sold a single %(product)s...",
"I hear %(billionaire)s is working on %(a_product)s...",
This creates a personality that most of the time just mutters project ideas to itself, but sometimes (uncommonly) gets a little more verbose, or (rarely) talks about where it is in the product development process, or (very rarely) compares itself to other inventors. The 'common' bucket contains nine entries which are slight variants; the 'rare' bucket contains 32 entries which are worded very differently.
The WMT works the same way in Smooth Unicode and Euphemism Bot. All these bots have their standbys: common constructs they return to over and over. Then they have three more tiers of constructs where the result is aesthetically riskier, or the joke is less likely to land, or a little of that construct goes a long way.
I also use the WMT in A Dull Bot to a more subtle purpose. Each tweet contains a random number of typos, and each typo is chosen from a WMT. One of the common typos is to transpose two letters. A very rare typo is to uppercase one word while leaving the rest of the sentence alone.
The WMT fixes one of the common aesthetic problems with bots, where every output is randomly generated but it gets dull quickly because the presentation is always the same. Since you can always dump more stuff into a WMT, it's an easy way to keep your bot's output fresh. In particular, whenever I get an idea like emoji mosaics, I can add it to Smooth Unicode's WMT instead of creating a whole new bot.
There's a Python implementation of a Wandering Monster Table in olipy.
Fri Oct 16 2015 20:47 Auditioning: Sampling a Dataset to Maximize Diversity:
My latest bot is Roller Derby Names, which takes its data from a list of about 40,000 distinct names chosen by roller derby participants. 40,000 is a lot of names, and although a randomly selected name is likely to be hilarious, if you look at a bunch of them they can get kind of repetitive. My challenge was to cut it down to a maximally distinctive subset of names. I used a simple technique I call 'auditioning' (couldn't find a preexisting name for it) which I first used with Minecraft Signs:
- Shuffle the list.
- Create a counter of words seen
- For each string in the list:
- Split the string into words.
- Assume the string is not distinctive.
- For each word in the string:
- If this word has been seen fewer than n times, the string is distinctive.
- Increment the counter for this word.
- If the string is distinctive, output it.
My mental idea of this process is that each string is auditioning before the talent agent from the classic Chuck Jones cartoon One Froggy Evening. One word at a time, the string tries to impress the talent agent, but the agent has seen it all before. In fact, the agent has seen it all n times before! But then comes that magical word that the agent has seen only n-1 times. Huzzah! The string passes its audition. But the next string is going to have a tougher time, because with each successful audition the agent becomes more jaded.
You don't have to worry about stopwords because the string only needs one rare word to pass its audition. By varying n you can get a smaller or larger output set. For Minecraft Signs I set n=5, which gave a wide variety of signs while eliminating the ones that say "White Wool". For Roller Derby Names I decided on n=1.
Here's the size of the Roller Derby Names dataset, n-auditioned for varying values of n:
|∞ (original data)||40198|
Auditioning the Roller Derby Names with n=50 excludes only the most generic sounding names: "Crash Baby", "Bad Lady", "Queen Bitch", etc. Setting n=1 restricts the dataset to the most distinctive names, like "Battlestar Kick Asstica" and "Collideascope". But it still includes over half the dataset. There's not really a lot of difference between n=10 and n=4, it's just, how many names do you want in the corpus.
I want to note that this is this is not a technique for picking out the 'good' items. It's a technique for maximizing diversity or distinctiveness. You can say that a name excluded by a lower value of n is more distinctive, but for a given value of n it can be totally random whether or not a name makes the cut. "Angry Beaver" made it into the final corpus and "Captain Beaver" didn't. As "beaver" jokes go, I'd say they're about the same quality. When the algorithm encountered "Captain Beaver", it had already seen "captain" and "beaver". If the list had been shuffled differently, the string "Captain Beaver" would have nailed its audition and "Angry Beaver" would be a has-been. That's show biz. This technique also magnifies the frequency of misspellings, as anyone who follows Minecraft Signs knows.
Also note that "Dirty Mary" is excluded by n=50. It's not the greatest name but it is a legitimate pun, so in terms of quality it should have made the corpus, but "Dirty" and "Mary" are both very common name components, so it didn't pass.
PS: Boat Name Bot (Roller Derby Names's sister bot) does not use this technique.
There's no requirement that a boat name be unique, and TBH most boat-namers aren't terribly creative.
Picking boat names that have only been used once (and are not names for human beings) cuts the dataset down plenty.
(4) Tue Oct 13 2015 09:42:
Recently I gave a talk called "The Enterprise Media Distribution Platform At The End Of This Book". It summarizes my first eighteen months on the Library Simplified project at NYPL Labs. The goal of Library Simplified is to make it as easy to check ebooks out from a public library as it is to buy them from Amazon.
We've just secured a multi-year grant to expand the project, and we are hiring up from two developers to eight. We are quadrupling the size of our development team.
This is a really satisfying job for me because I'm making life substantially better for people who aren't already well off. If you like that prospect, if you like what I say in the "Enterprise Media Distribution" talk, and you want to work on this project, you should apply for one of these position by sending your resume to firstname.lastname@example.org.
For instance, we need someone with devops experience. We'll be dealing with e-commerce, cryptography, and machine learning—all things I know little about. We don't care if you have a CS degree, but if you have a Library Science degree or have worked in the publishing industry, that would be useful. We have big collections in Spanish, Chinese and Russian, but nobody on our team reads those languages. Stuff like that.
With that in mind, here are the job listings:
As you can see if you click around, getting into the HR system to formally "apply" for these jobs requires filling out a really long form. (Update: and now these links don't even work anymore because the jobs got shifted around.) Instead of doing that, send your resume to email@example.com and we'll only ask you to fill out the form if we want to bring you in for an interview.
All these positions are in New York City, in the big building on 42nd Street with the lions. This is a project funded by grants, and the salaries we offer are not competitive with Facebook or Goldman Sachs, but they are competitive with other nonprofits. The benefits are good. This is not a job that ruins your life. It's 35 hours a week and you get four weeks of vacation per year. I work from home about one day a week. Send me email or leave a comment if you have any questions about benefits.
(1) Sun Oct 04 2015 11:05 To Stop Disturbance:
I was reading to Sumana the most interesting bits from Washington Goes To War, a book by David Brinkley about the changes to Washington D.C. over the course of World War II. It's full of interesting historical tidbits, including:
- The attempt to notify essential personnel of the attack on Pearl Harbor, without notifying the other 27,000 people in the same football stadium watching the Washington Redskins game.
- An entirely legal scheme by which a Washington columnist and the Spanish ambassador arranged payoffs in exchange for "the columnist [writing] about previously unknown virtues he saw in Francisco Franco."
- The controversial origins of having taxes automatically deducted from your paycheck.
But the thing Sumana wanted me to record verbatim was the policy that Washington D.C.'s Casino Royal put into place for dealing with the inevitable fistfights between soldiers and sailors. "Night after night," these inter-service resentments boiled over, and so the Casino Royal wrote down these rules and posted them "on a wall backstage under the heading TO STOP DISTURBANCE."
- Lower the house lights
- Turn the spotlight on a large American flag hanging from the ceiling
- Start up an electric fan aimed at the flag, causing it to flutter
- Have the band instantly stop playing dance music and strike up "The Star-Spangled Banner".
- Call in the military police and the navy's shore patrol
It always worked. The soldiers and sailors stopped swinging at each other, faced the flag and stood at attention while the band played. There was no way a uniformed military man in wartime could refuse to do this, however angry he was. Before the anthem was finished, the military police and the shore patrol were walking up the steps from Fourteenth Street.
The one that really gets me is #3. I can see how this behavior would be drilled into you as a reflex action, but #3 makes it feel like they're trying to inspire you, remind you what you're fightin' for. And then the MPs show up.