Ender’s Game, Pedagogy, and Programming

Ender’s Game

This post is spoiler free. Having never read Ender’s Game until two weeks ago, I was thrilled when Katie, my dear wife, surprised me with a copy of the book just before Christmas. She has a wonderful habit of buying books for me that she thinks I’ll enjoy, even if there’s no particular occasion.

I expected a fast-paced, satisfying sci-fi novel, and was not disappointed. I realized quickly, however, what had elevated the book to such legendary status. It that was that Ender’s Game speaks to so many people, across so many ages and ideals, all at once. Politics, war, love, government, science, teaching, learning, duty, religion, nationalism: these weighty topics saturate the novel from start to finish, and each is up for trial. Each topic in turn is shown in a disturbing light, and few have any glimmer of hope or goodness left when the book comes to a close.

Without giving away the plot, it can at least be said that Ender’s Game is partly about pushing students to the brink. It’s about dangerously balancing between what happens when they’re pushed to realize their full potential, and when they’re pushed too far.

Read on →

Wercker Config File for Yeoman Webapp Generator Projects

Getting Wercker to test your Yeoman Webapp

Wercker is a great continuous integration service that works well with just about any stack or application, including apps built with Yeoman’s ubiquitous Webapp Generator. I’ve been using Wercker for about 3 months now and have loved it. The Wercker team is very friendly and has been helpful on numerous occasions.

Read on →

ClojureScript REPLs Now in SublimeREPL

Well that was easy!

I realized the other day that there were no ClojureScript REPLs in SublimeREPL, the REPL plugin for Sublime Text 2 and 3. No hard work on my part, just a simple commit that added a config file, but as of SublimeREPL 2.0.0, the plugin now has two REPLs for ClojureScript: a browser REPL and a Rhino REPL.

Version 2.0.0 is now available via Package Control. Thanks to @wuub for all of the amazing hard work.


The Simplest Way to Install and Use Rlwrap With a ClojureScript Repl

Arrow keys not working in your ClojureScript repl?

For some reason, whenever I would run lein trampoline cljsbuild repl-listen while setting up a ClojureScript browser repl, all arrow keys, Emacs style navigation (ctrl-p, etc.), and history were not working. They worked fine in the normal lein repl, but something went wrong either with trampoline, cljsbuild, or both. Either way, Google informed me that I should probably be using a tool called rlwrap to fix it.

Installing rlwrap on OSX

There are lots of articles about installing rlwrap into your clojure folder and running some awful looking Java commands, but there’s a much easier way: just use Homebrew to install it. brew install rlwrap will get you set up, and then you’ll be able to run rlwrap lein trampoline cljsbuild repl-listen with fully functional arrow keys and history. You’ll even get back the old-school flashing cursor when you match parens. Righteous!

Thoughts on Learning Lisp

Were I not so lucky

Having been writing Clojure (my first Lisp) and Scheme (my second) regularly over the past year, I’ve often wondered what my experience would’ve been if I hadn’t been introduced to Lisp by Zachary Kim, a friend and former co-worker whom I greatly respect.

It was easy to trust him that Clojure was worth learning, worth suffering through the absurd Emacs configuration on OS X, and worth learning Emacs. The keyword being trust. Would I (or others) have been able to trust that recommendation if it didn’t come from a good friend?

Read on →