The Best of 2014
Inspired a bit by Michael Fogus' post, I thought I would share some of the things I read and did in 2014 in case anyone is looking for ideas for the new year.
Great blog posts
Relating tuning and timbre
- Author William Sethares discusses how we perceive consonance and dissonance in music, then uses that to programatically generate new instrument timbres that are consonant for any arbitrary tuning system.
Standards for Scientific Graphic Presentation
- An examination of the history of the standards for scientific graphs, that culminates in an effective demonstration that combines great readability with easy access to raw data. I think this post sets the standard for what scientific graphs in the information age should look like.
Consider the Lobster
- This was my introduction to an author by the name of David Foster Wallace. I nearly didn't read it at all because I have no interest in Maine, lobsters, or food festivals. But I promise that it's so much more than that.
One of a Kind
- This article opened my eyes to new methods in modern medicine, where it is becoming affordable to perform genetic sequencing on individual patients to identify the root cause of newly discovered diseases.
Transforming Code into Beautiful, Idiomatic Python
- Not a blog post but a talk given by a Python core contributor. It's an excellent discussion of how write idiomatic python. Hettinger is a very well-spoken presenter, and I think all his talks on the language are worth watching.
Solving Every Sudoku Puzzle
- A classic post by well known AI researcher Peter Norvig. This post completely changed the way I think about Python, and turned it into one of my favourite languages.
A first-person engine in 265 lines
Simpson's Paradox is Back
- Illustrates the cause of an unintuitve quirk in statistics where two positively correlated variables suddenly appear to be negatively correlated when conditioned on a 3rd variable.
Game Programming Patterns
- Probably should be read by all programmers. A bunch of design patterns that are useful and common in the world of game developers, but certainly have much use outside of it.
Masters of Doom
- I actually finished this in December of 2013 but, combined with Snow Crash, was useful for imagining the future of VR
The Pixar Touch
- This was recommended (along with Masters of Doom) by Fabien Sanglard for graphics programmers, and I couldn't agree more.
Mindfulness in Plain English
- There has been some papers published recently of the effects of mindfulness meditation on the human brain, which got me curious to find out more.
- A pretty good, though somewhat anemic, introduction to trying to determine when a random change in a measured value is meaningful or just random noise.
The Mom Test
- Teaches you how to ask the right questions to find out what your customers really need when starting a business.
- This book is all about helping you figure out what numbers you should be measuring in your business, with some ideas on how to make them go in the direction you want.
Information Dashboard Design
- If you're designing digital dashboards you really should read this book
The Ultimate Guide to Video Game Writing and Design
- This is a pretty good introduction to the things writers need to know about writing for video games. It's not a book about writing well, but about the specific challenges of games.
- A very interesting book talking about those immediate, from the gut decisions we all make - where they come from, how they go right, and how they go wrong.
The Parkour and Freerunning Handbook
- Essentially a manual on the techniques used in parkour.
Brave New World
- A happy population is a stable population.
- Cryptography, treasure hunting, and World War II.
- Required reading for VR enthusiasts.
Borderlands: The Pre-Sequel
- Feels a bit like filler in between Borderlands 2 and a future Borderlands 3, but adds enough new mechanics and content to keep things interesting.
The Stanley Parable
- A quirky indie title that explores the relationship between game designers and game players.
- In my opinion, this is one of the best stories yet told in a video game. This is my favourite game played this year.
Assassin's Creed Brotherhood
- Not as good as Assassin's Creed 2, and has a surprising amount of seemingly pointless filler content.
Risk of Rain
- Brutally difficult indie sidescrolling roguelike shooter
- A detailed world like BioShock Infinite, but trades BioShock's rich story for more freeform open-world action.
Online courses completed
- R is pretty much the standard language for data science right now, and this course provides a pretty good introduction.
Exploratory Data Analysis
- Introduces the graphing systems in R, and shows how to use them to quickly see into large data sets.
The Data Scientist's Toolbox
- Provides a basic introduction to tools like Github and R Studio.
Foundations of Virtual Instruction
- I've been interested in the way we teach students for a while now, and I'm curious how the internet will change that. Unfortunately, this course was very US-centric and I didn't think the content was too useful, though the course videos were well done.
- Teaching people how to write code without introducing them to computer security and cryptography is like teaching abstinence-only sex education. I think this stuff is very important.
Plans for 2015
I feel like I've spent a lot of time reading and learning over the past two years, but not a lot of time applying that knowledge to making things. I'd like to try and shift back to my 2010 / 2011 lifestyle when I spent more time writing code and building projects, then blogging about them. Some specific projects:
- Create a couple of game prototypes with Unity or Unreal, ideally for the Oculus Rift
- Write an interesting story for at least one of those game prototypes
- Write a few pieces of original music for one of those game prototypes
- Expand my guitar flashcard program to help me learn scales and chords on the guitar
- Learn how to operate a sewing machine and make... something
- Melt some aluminium (http://gingerybookstore.com/charcoalfoundry.html)
- Try writing a project in Nim and Rust