Translation of terms:
Play -> ply (or half-move)
Match -> game
The data doesn't support the conclusion that chess is becoming more defensive. It could be that time controls or new rule changes have changed the play. For instance, one proposed rule change is to not allow draws before move 50, which would definitely impact the number of moves.
Relatedly, if you want to analyze PGNs, I put together some Python code that can analyze PGNs in combination with a chess engine. It can also draw chess positions, if you find interesting positions you want to programmatically draw:
I'm kind of hoping someone will do a thorough analysis of the types of moves chess grandmasters make during a game. For instance, here is a chart from a GM book that categorized moves into four categories: http://imgur.com/BMOElXN
Not really, it was mostly made for my own use then thrown on Github in case someone wanted it. It works for most games, but isn't guaranteed to be able to parse all games. I added example code to the readme.
I remember my neighborhood getting pledges to donate towards a common goal, so the idea's been around pre-2001. I think the idea has been around for centuries, looks like it was used with the Statue of Liberty's pedestal: http://en.wikipedia.org/wiki/Crowdfunding
There's an argument that modern crowdfunding is important enough that maybe Brian Camelio is the father of [modern] crowdfunding.
No, I wasn't aware of that, but that is interesting.
Betty just grew out of my cheat sheet of commands. I was tired of repeatedly looking up things in my cheat sheet or Google, and decided to make this.
The current project has a limited number of commands, but I am hoping that by making it public, others will issue pull requests with things they'd want to use.
Its current state is command line only, which is for power users. But thinking ahead, on the roadmap I wrote that by the time it reaches v1.0, I'd like it to be extensible. This means it can be used from text-to-speech apps or whatever. Some futuristic use cases: I'm sitting on my bed, with my computer on my desk, and say "Betty: next song" and it just works. Or I'm running on my treadmill, talking aloud: I'd say "Betty: open the New York Times in Chrome" then "Betty: read me this article" and it just works. That'd be cool. I don't know specifically how to do everything I'd want to do, but those are the sorts of far future things that would be cool. In its current implementation, it's mainly for not having to keep looking up commands or options.
That would be cool indeed and I hope my comment didn't sound too negative. And you should definitely take a look at Inform (and similar), it's amazing what they can do. I think some interpreters are open source (edit: it seems it's not, I remembered incorrectly).
Ironically, with version 7, Inform itself switched to natural language syntax. The following is valid Inform 7 source code:
`The iron-barred gate is a door. It is north of the Drawbridge and south of the Entrance Hall. It is closed and openable. Before entering the castle, try entering the gate instead. Before going inside in the Drawbridge, try going north instead. Understand "door" as the gate.`
However, what makes a command like "examine sword, then take it and give it to the wizard" complex is not the parsing, but the world model. What if examining the sword reveals an engraving saying "Never hand this to a wizard"? What happens to giving if taking fails? What if the wizard himself is holding the sword? What if he attacks anyone holding a weapon? Etc.
Writing a natural language command line interface seems a lot more straightforward.
As for this tool: I like it. I like the idea that it's simple, and that the author didn't let details like it being difficult to do "well" or "better" stand in his way. I've thought along the same lines many times, not so much "how did I do _ (solution often involves awk, sort, uniq et al) -- I'm too familiar with the command line for that, but rather: Jeez, you've got a smart phone. The one guaranteed interface that works is audio in/out. How hard could it be to deploy solid limited domain voice control coupled with a dead simple state-machine for doing stuff like "next song", "stop", "play", "accept call".
I wonder if these projects (there must have been projects, right, ever since the first uptake of mp3s) get the first part working, then some moron suggests that the user will expect to be able to do "play song such-and-such by such-and-such" -- and then it's no longer (strictly) limited domain, and that doesn't work, so the scrap the whole thing.
It can also parse sentences like the one with the sword and the wizard shown above. It's really not very difficult to achieve those things, as imperative sentences have pretty uniform characteristics that make the problem of parsing imperatives much easier than general parsing. As said in another comment, the bulk of the complexity of these systems is in the world model, not in the parsing.
A drawback is that, although the system works for several languages including English, the documentation for game developers/IF writers is only in Spanish at the moment. Collaboration for translating it to English would be very welcome.
This calculator makes reasonable assumptions. For example, it doesn't use bootstrapping, and it assumes a normal distribution. I don't see how making these assumptions makes the calculator bad, it just means if you are a stats person who wants to do something different, you'll need to implement your own script. Outside of the HN crowd, there are people who don't code, who nonetheless work with a/b tests, and still need a measure of statistical confidence.
Since a binomial distribution approaches a normal distribution for large N, that's a valid assumption to make.
The arguments in this thread over which is the precise distribution are over analyzing, in my opinion. If I had an experiment that gave one winner with a binomial distribution, and a different winner with the normal approximation, I'd feel little confidence in the results and want to run it again or collect more data. I don't see how that would happen though.
Bootstrapping would be better, sure, but it would be confusing for an a/b test calculator to give you different numbers each time you refresh the page.
You're free to write your own R scripts if you want to do it yourself.
I agree with martian's advice about figuring out a minimum number of visitors you expect to need before analyzing the data, or else you're at risk of biasing the experiment by declaring a winner prematurely.