A movie totally worth watching: Around the World by Zeppelin, a semi-documentary of a multi-week 1929 zeppelin flight. Originally a Dutch production titled “Farewell”, the BBC Channel 4 version in English (and on Youtube) is just terrific.

What makes the film so marvelous is how much primary film footage they were able to use. The multi-week journal was a press event (funded by William Randolph Hearst) so most of the passengers on board were journalists. Including at least two film cameras. Really amazing to see all this vintage aviation, engineering, and socializing. Another thing that makes the film terrific is the storytelling, drawing most of its narrative from diaries kept by Lady Grace Drummond-Hay. She was a journalist with a fairly sharp eye and pen and her story makes for a nice structure for the trip. Beware the film is partly fiction; some of the events depicted (like an unlikely mid-Pacific repair) did not actually happen.

The story itself is just amazing, the history of airships. The Graf Zeppelin comes from a parallel Earth, a time when elegant dirigibles sailed the skies like cruise ships and navy aircraft carriers were airborne. This actually happened, lovely to see it play out in a film. The Graf Zeppelin company succeeded in operating a passenger service for a few years before improving airplane technology and the looming war made airship success unlikely. Not to mention the Hindenburg disaster.

There still is a German company operating zeppelins. I flew in the Airship Ventures craft a couple of years ago in the Bay Area, but sadly that company didn’t make it.

  2014-07-11 00:06 Z

I love the phrase between the thought and the act. It summarizes a slightly mystical experience of humanity, the difference between willing to do something and actually doing it. It comes up in all sorts of contexts. In twitch games it explains the value of better UI for allowing the player to do what they intend (as in League of Legends quick casting). In general human affairs it describes being effective. You may think of a great product idea but ideas alone are worthless; it’s the implementation that has value. The phrase also has a second meaning it ethics, the difference between thinking of doing something vs. actually doing it.

I think the best known use of this phrase is slightly different, coming from TS Eliot’s The Hollow Men.

Between the idea
And the reality
Between the motion
And the act
Falls the Shadow

I don’t like the use of “motion” though, since in so many cases the motion is the act.

The earliest use of the phrase “between the thought and the act” I could find occurs a few years before the Eliot poem, on page 242 of the 1917 book Educational Psychology by Kate Gordon. I have no idea if that book had much reach though. I wonder if the phrase comes from an older idea, maybe Greek philosophy?

Every time I think of the phrase, I hear the Crime & The City Solution song The Adversary.

Update: Douwe tells me of the 1910 Dutch poem Het Huwelijk by Belgian poet Willem Elsschot (English translation), which contains the phrase "tussen droom en daad", roughly the same meaning.

Update 2: my old gamer buddy Hronk wrote to tell me that this concept shows up in Shakespeare's Julius Caesar, Act 2 Scene 1, Brutus reflecting on the turmoil of making a decision.
Since Cassius first did whet me against Caesar,
I have not slept.
Between the acting of a dreadful thing
And the first motion, all the interim is
Like a phantasma, or a hideous dream
  2014-07-02 22:57 Z

My tweet last night “Node.js is the MongoDB of programming languages” got enough response I feel I need to explain it a bit. It’s an awfully snarky thing to say, but it has some truth.

MongoDB used to be the cool kids’ database. It’s appealing when you start using it: good docs, easy to get going, a plausible story on performance. NoSQL is exciting and MongoDB is an easy NoSQL system to try. But then people started looking closer and finding all the ways it broke and now MongoDB is out of favor, at least for serious production servers.

Node.js is now the cool kids programming language. It’s appealing; good docs, clean slate of libraries and tools, fast VM, and a plausible attempt at server performance. Non-blocking systems are exciting and Javascript closures make continuation programming easy. But now people are looking closer and finding all the ways Node.js is awkward or brittle and one starts to wonder.

I’m not saying Node.js is bad. There’s a lot of good in it, I particularly like that it’s made non-blocking programming more accessible than Python or Java or Nginx has. Mostly I’m just mocking the fashion of the month. It is a shame that people are rushing to this Brand New Thing without knowing the history and potential pitfalls. Just like we learned with MongoDB that ACID is hard, Node users are now discovering that reasoning about continuations is hard and memory management with closures is tricky, not to mention unwinding the stack on errors. The Node community is hard at work on improving things, hopefully that development process will lead somewhere productive.

For a more hilarious view on MongoDB and Node.js see Mongo DB Is Web Scale and Node.js is Bad Ass Rock Star Tech.

  2014-06-18 16:40 Z

Just finished another game visualization project, graphs of stats for the top 5000 BF4 players. It makes scatterplots for the player population of statistics like skill score vs time played, win/loss ratio vs. skill, and kill/death vs. win/loss. Lots of details in this Reddit post.

Another fun D3 project; scrape a bunch of data, cook it into a 2 megabyte CSV file, then do custom visualizations. I like the way the scatterplot came out and may re-mix it as a generic data exploration tool, a sort of GGobi lite in your web browser. Drop a CSV file into your browser window and get a simple tool for exploring it for correlations.

It’s frustrating trying to get attention for projects like this. All I know to do is post it to the relevant subreddit and hope for the up-votes, but that’s pretty random. My Reddit attempt for the LoL lag tool failed, and a site I worked about 50 hours on has had a total of a few hundred visitors after a week. Discouraging.

  2014-06-16 18:12 Z

I had no idea Microsoft’s Bing Ads included an option to import from Google AdWords. Complete with simple OAuth-like authentication and seamless data import. It’s been able to do that for at least a couple of years, I only learned about it today when setting up a Bing campaign.

Warms my heart to think my AdWords API project helped enable some data portability for Google customers. That’s essential to having a competitive market. Google AdWords is nearly a monopoly, so much so I’m surprised there’s not more anti-trust interest in Google’s ad business. Allowing customers to bring their data to competitors is a valuable step in staying honest and legal.

The drawback is Bing’s ads have to mirror Google’s crazily complex data model. (Quick, what’s an AdGroup, and how is it different from a Campaign or a Creative?) I also recently set up my first AdWords campaign in years and the frontend product is really complicated and confusing. It’s been nearly ten years since I worked on the AdWords advertiser UI, I was sad to see that it hadn’t gotten any simpler or clearer for advertisers.

  2014-06-10 16:04 Z

I just released Logs of Lag, a small project I’ve been working on. It’s a netlog analyzer for the game League of Legends. You drop a log file from the game on it and the tool gives you a nice report. Not a huge thing, but it’s been useful to me already.

The webapp is another of my line of client-heavy programs. It all runs in static files, no server needed at all, the parsing and rendering is all done in the browser. I really like this style of programming, it’s fun and interactive and easy to scale. I did end up making a simple CGI server for storing log files so that people could share reports with friends. I may yet rewrite that to just use S3 as a filestore and bypass my server entirely.

The code is on GitHub.

  2014-06-09 17:23 Z

There’s a new history of Perl making the rounds now that’s worth reading, if nothing else then for the dissonance of reading a whole thing written about Perl in the past tense. It reminded me of a bet my friend Marc and I made back in 1999 or so.

Marc and Nelson will agree that Python has more mindshare than Perl on May 1, 2004. If so, Nelson gets the contents of this envelope. If not, Marc does.

In 2004 I conceded he won the bet, based on this evidence of Google search result counts:

Perl: 28M. Python: 14M
Perl filetype:pl: 2.9M. Python filetype:py 0.2M

I don't think anyone would argue that Perl is still more popular than Python in 2014. I looked at those measures again today, but given how goofy Google’s results count can be I don’t put too much stock in this:

Perl: 28M. Python: 45M
Perl filetype:pl: 11M. Python filetype:py 2.9M

I wish I'd taken up his 2004 follow-on bet: Groovy vs Python. Oops. Meanwhile we both missed the language right under our noses, Javascript. Mostly I’m just grateful Java is on the way out. If it weren’t for all the work put into JVM efficiency I think it’d be entirely dead now.

  2014-06-09 16:00 Z

Interesting report of stolen Bitcoins, a phishing scam involving a Google ad. I just confirmed that the phishing ad is still running on Google on a search for blockchain.

The ad says the URL goes to blockchain.info. The URL displayed on mouseover on the link is to a Google redirector, goo.gl/vL2zmr. But when you click the link you go through a few redirectors and end up at blockchain-info.consulpisos.com, which is allegedly a phishing site. It sure looks suspicious; that page goes straight to a “type in your password” page, which the real site hides behind several clicks.

I don’t much care about the Bitcoin part of this, but Google should really not be selling ads with fake URLs on display.

  2014-06-07 15:45 Z

The indie game industry has been shifting in the past few years to a pre-funding model. Gamers pay for games before release, either via Kickstarter campaigns or by buying games in alpha release or Steam Early Access or the like. A lot of neat games have been funded this way (see: Minecraft) but I worry it’s bad for game consumers.

We’re no longer being asked to buy a game, we’re buying something completely ephemeral, the idea of a game. We hope that maybe someday the game will be released and we can play it. And we get no guarantee of a quality finished project. (See Clang, which cynically claimed their unplayable alpha tech demo counted as a game release). Games are no longer really released, they are put out as an “alpha”, then a “beta”, then laughably a “gamma”. Really, why bother even finishing a game if people will pay you for your game anyway? Avoid the whole review cycle!

The most predatory of these “buy the game that does not exist” things I’ve seen yet is Star Citizen. They have collected $44 million for a game where you fly around spaceships in a giant procedurally generated universe. Except that universe doesn’t exist and last I heard the only code you could actually run lets you look at a rendered spaceship sitting motionless in a hanger. Nevertheless, people are paying hundreds of dollars for special rare spaceships in the hopes one day they can fly them. The Star Citizen project is not a game, it’s a marketing campaign for a game. I sure hope it turns into a real game some day or a bunch of people are going to be disappointed. It’s many, many months behind schedule, to the extent there even is a schedule. Why bother shipping when you can just keep collecting money?

adapted from a Metafilter comment
  2014-06-03 18:12 Z

There are two terrible web properties out there that everyone hates, Scribd and Quora. Please don’t use them. Instead of Scribd just host a PDF anywhere, or upload text to pastebin or make a nice blog on WordPress or Medium or something. And instead of Quora use Ask MetaFilter or StackExchange.

Scribd’s business model is to host documents in formats that are unusable. For instance, here’s a copy of the Declaration of Independence. Or rather, the free preview; you have to download it to read the rest and a one-day guest pass costs $9. Here’s a copy of Elliot Rodger’s insane manifesto. It starts “This is the story of how I, Elliot Rodger, came to be.” Only I had to retype that phrase; if I copy-and-paste I get “]fjs js tfh stgry gl fgw J, Hccjgt Tgmahr, eknh tg dh” because Scribd uses some stupid DRM font. Easy enough for a pirate to reverse engineer but impossible for normal use. They also broke “Find”; there’s some Javascript thing overriding the browser that doesn’t seem to work.

Quora’s business model is to trick people into sharing information for free, then put it behind a login. It’s like Experts Exchange 2.0! For instance, on Quora you can read Who owns the copyright on content contributed to Quora? Only you can’t just read the text. Depending on your history with the site and the way you got there you may see a giant popup demanding you log in obscuring the page, or the first answer clear and then the rest blurred, or if you're lucky just the page. It appears nondeterministic.

Both businesses are deliberately trying to lock up text content to make it harder to access, to force users to pay or share advertising data or some such bullshit. The part that kills me is some engineer actually wrote code to deliberately break document sharing on the web. It’s terrible.

Update: the Quora CEO responded on Hacker News to correct me that Quora neither runs ads nor charges users. At the moment, they apparently have no revenue.
  2014-06-02 20:23 Z