How Technology Terrifies and Inspires Wonder

The following essay was prepared for a talk I gave at TEDxOU 2014. The talk may be viewed at Learning how to program will change your world. When you learn how to program you develop analytical and critical thinking skills that allow you to see the world differently. You are empowered; you create applications […]

The Paradox of Recommender Systems

I am taking a Coursera class on recommender systems right now. It is excellent, just the right blend of mathematics and practice. Exposure to the content of the class motivated this post. In case you aren’t familiar with them, recommender systems are computing systems which make recommendations to the users of an application. You’ve surely […]

Practical Blocks: Refactoring for Small Victories

Blocks are a great way to encapsulate reusable units of code that still require a degree of customization. They let you abstract out common patterns, leaving behind more concise code that yields to the programmer for the details. But blocks are a relatively new concept for Obj-C developers, and it isn’t always clear when you […]

Data Visualization: Annual GDP Rate of Growth

The map visualizes GDP growth rates for the world from 1961 to 2011. Positive growth is represented as increasingly dark shades of green and negative growth as shades of red. The timeline makes it possible to view changes in growth from one year to the next or more casually. Significant historical events are clearly visible […]