mrspeaker's head in a monitorYou find yourself at the entrance to the Hompage of Mr Speaker. In a darkened corner sits a trunk containing HTML5 games and some JavaScript tidbits. In a dark corner you spy a Twitter account. Exits are North, East, and .

?> _

Wanna do new JavaScript + React?

Here's the "easiest" way to get started with the latest version of JavaScript (so much new stuff in es2105!) and the most popular kid (for this week, at least) in the JS framework playground: React.

This approach uses the wonderful new JSPM package manager... so if you're not willing to place your bet on this particular horse, then head over to WebPack land to see if they have a similar guide. Also, if you want to see the final product - here's my "ES2015+React boilerplate".

Read on for more »

Announcing JS.scala v0.1

I'm pleased to announce the initial releas of JS.scala. JS.scala compiles JavaScript source code to Scala source code, allowing you to write your web application entirely in JavaScript! Finally, the expressive power of JavaScript available on the JVM via Scala (some call it "the bytecode of the JVM bytecode").

How does it work? Well, given the JavaScript input:

const a = 42
const b = "Hello, World"
const sq = x => x * x
const dsq = x => {
  const dx = sq(x)
  return dx * dx
const d = dsq(a)

const exclaimer = {
  apply: name => name + "!"

exclaimer.apply("Hello, World")

We get the lovely Scala output: Read on for more »

Mac service: open iTerm at selection path

Opening the current folder or file path in iTerm is something I want to do a lot. The second time I ever wanted to do this I decided I should automate it. The 10,000th time I wanted to do this, I actually did automate it.

Here is an applescripted automator service to open the current selection path in a new iTerm window:

mac services list
Clicking on the option will spawn a new iTerm window, and cd to either the folder path, or the containing folder if it's a file:
path opened in bash
Read on for more »

(Nearly) Getting Started with ClojureScript

UPDATE: Holy cow, they fixed the docs! Sooo, I don't know if it was directly related to this rant, but the quick-start docs now rock! So go forth and ClojureScript!

So you've decided to do your next pet-project in ClojureScript because Rich Hickey is awesome and the Web is awesome, therefore, Clojure on the Web must also be awesome. This article walks you through the many-and-varied steps of trying to get up and running with ClojureScript, by closely following the repo docs.

Read on for more »

CHIMP-8: a lil’ CHIP-8 VM

And now for something completely different... a full implementation of a CHIP-8 interpreter, complete with "sound" (via the Web Audio API).

But why? Well, it all started when I fell over a link to an article about Another World, and ended many hours later with the complete (as I can be bothered making it) CHIMP-8 interpreter! Feel free to have a peek at the source on GitHub, then go off and implement your own. CHIP-8 is the perfect interpreter/VM to get your feet wet with.

Nodevember Conf talk: Gonzo Game Dev

Here's my talk "Gonzo Game Dev" from 2014's Nodevember conference. There were a few great games talks at the conference - most showing you how to make games properly. Mine focused on just gettin' done! Also got all preachy about games as art. You should watch it: