# First Post

I've found that writing todo lists enormously increases my productivity while programming. Programming is all about breaking larger problems into smaller problems over and over until the problems are small enough to solve easily. Lists provide a map of the problems that need solving and make it possible to work on a smaller subset of them without having to simultaneously worry about the global structure of the program.

I'd like to learn more about creating computer programs able to play board games; to that end, over the next day or two I'm going to be working on an AI for 8×8 Connect 4 and try to accomplish the following:

1. Implement a Minimax algorithm using javascript since game logic and GUI are already written. The heuristic evaluation function will probably count the number of winning moves available to both players.
2. Add alpha-beta punning to the Minimax algorithm.
3. Create a Monte-Carlo Tree Search algorithm for Connect 4. I'm not currently very familiar with this technique, but based on what I've read so far, it looks like it is state of the art.
4. Have the programs play each other (with similar run times) and post the results.

## Other assorted ideas I'm thinking of trying (updated occasionally):

### State population flow

http://ilya.boyandin.me/assets/thesis.pdf Pupyrev et al. parallel flow diagrams look very promising.

### Project Gutenberg

Whale words and other text visualizations, both work specific and aggregate

### Dragon curve

Unfold with mouseover

### Submarine cables

• Animate history of them being laid
• Style like an old map
• Use canvas or webGL to show flow of information

### Fibonacci numbers

Show computation with recursion, memorization and newtons method

• Make front end to browse
• http://nuzzel.com/ does a most of this

### Analysing data with d3

Oscars, temp over time

• scrape
• nest
• group

### The actual hardest shot in bowling

https://news.ycombinator.com/item?id=9177469

• Maybe, the reason for the low success rate on the 4-6-7-9-10 split is because the really good pros rarely end up with it.
• Are strikes streaky?
• Do some players player better when ahead or behind?
• The 'best' bowler

### Degrees of Duncan

• Every player that's played with another player

• sf practice

### Server side code

• Boardgames
• Working git server with preview

### Stretching and shrinking time

• Speakers
• Spoofing
• Oscars
• signed distance field

### Making tools for d3

• jetpack
• starterkit
• graph-scroll
• swoopy/annotations

### Difference between playoff and regular season win rates

• Cubs got swept in playoffs after sweeping during season

### Number of seconds with a lead v chance of winning

• Which series/team/game had the most come from behind wins?
• Are win probably numbers calibrated correctly? Pats win percentage seemed low!

### Distance between two people

• export google location log as a KML, plot a connected scatter plot of lat dist v long dist
• Bump chart with 5 people?

### 2016 in everyone's graphics

• scrape everyone's graphics twitter accounts and find uniq url
• compare colors
• look at election graphics

### 2016 chart diary

• Take reddit notes and throw in one post

### Streaks

• During a rare happy stretch of Philly's blowout loss to the Hawks on Friday, the Sixers' broadcast team pointed out that Philly was on "an 8-3 run." I know the Sixers aren't good enough to put together normal NBA runs, but an 8-3 scoring gap is not a run. It is a randomly occurring blip that happens every game.

### 2017 chart diary

• when does a year start? you draw it

### Chart people's position overtime

• map overlay
• connected scatter plot showing distance, something weird like the time event thing

### Live Life dashboard

• weight/heart rate/steps (not sure if fitbit can be exported?)
• mouse/keyboard
• active applications
• git commits
• location (chrome location? android app?)
• 3d prolly