Your friends at Viget present Extend, a Code & Technology Blog

Fun with Cellular Automata

Drink in that impressive title for a moment. It's definitely better than the reality of me saying "I implemented Conway's Game of Life ... in Processing ... poorly ... using Khan Academy's online code editor". It's the truth, though.

After working on pixel drawings with the kids, I was inspired to try more programs of my own. Having never implemented the Game of Life before, I thought it would be a good opportunity to put my recently-discovered expertise with pixel drawing to work. The rules of the game are simple:

  1. If a live cell has fewer than 2 neighbors, it dies (from underpopulation)
  2. If a live cell has more than 3 neighbors, it dies (from overcrowding)
  3. If a live cell has 2 or 3 neighbors, it lives on to the next generation
  4. If a dead cell has exactly 3 neighbors, it is born (from reproduction)

The bonus is that it's a "zero player" game — my favorite!


8 Insanely Useful ActiveAdmin Customizations

Here at Viget, we've successfully used ActiveAdmin on a number of custom CMS projects. ActiveAdmin is a great help in providing a sensible set of features out-of-the-box, while still allowing heavy customization for great justice. It also has a very opinionated way of doing things, which can make customization a bit tricky (eg. layouts via Arbre, Custom Pages, etc.)

After working with ActiveAdmin for a couple of years, here are 8 customizations that I find myself using often:


Gulp + Browserify: The Everything Post

Getting Started

One weekend, I decided to really immerse myself in Grunt and RequireJS. Gotta stay up on these things right? Done. Then Monday rolls around, “and just like that Grunt and RequireJS are out, it’s all about Gulp and Browserify now.”

(╯°□°)╯︵ ┻━┻

When I was done flipping tables, I set aside my newly acquired Grunt + RequireJS skills, and started over again with Gulp and Browserify to see what all the fuss was about.

You guys. The internet was right. To save you some googling, doc crawling, and trial and error I went through, I've assembled some resources and information I think you'll find helpful in getting started.

 ┬─┬ノ( º _ ºノ) 


Teaching Kids Programming with Khan Academy

Like many other programmers with children I'm interested in passing my skills on to them. If you've ever had the opportunity to work with me, this may or may not be a horrifying proposition — I'll let you be the judge.

My two oldest (9 and 7) are now at a good age to start learning the basics, so I've been spending every Wednesday morning before work teaching them with the help of Khan Academy. Since I'm new to this, there's definitely a lot of trial and error to figure out the intersection between their interests and capabilities. In the process I've discovered a few things that work and a few that don't. These lessons are specific to me, but you may find them helpful.


How Arduinos Helped Me Fix My Car Horn

There seems to be a common issue with 2002 Mitsubishi Montero Sports* where the horn will suddenly turn on if it’s cold out, and have no intentions of turning itself off. I discovered this first hand with my own Montero Sport earlier this winter on a particularly chilly night. The quick fix was to disconnect the battery, plug it back in when I wanted to drive, and then remember to unplug it again overnight (did not always go well). Unrelated, I have been experimenting with Arduinos here and there, and this is the story of how working with Arduinos let me (pretty much) fix my car horn.