Some emacs-related links I pointed people at earlier, dropped here for posterity, with commentary.
12.04+ seems to have Emacs 24.3 in its default repos. Just in case, here is a decent PPA with good instructions:
| // Ported from Stefan Gustavson's java implementation | |
| // http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf | |
| // Read Stefan's excellent paper for details on how this code works. | |
| // | |
| // Sean McCullough banksean@gmail.com | |
| /** | |
| * You can pass in a random number generator object if you like. | |
| * It is assumed to have a random() method. | |
| */ | 
| if (typeof window.localStorage == 'undefined' || typeof window.sessionStorage == 'undefined') (function () { | |
| var Storage = function (type) { | |
| function createCookie(name, value, days) { | |
| var date, expires; | |
| if (days) { | |
| date = new Date(); | |
| date.setTime(date.getTime()+(days*24*60*60*1000)); | |
| expires = "; expires="+date.toGMTString(); | 
| import random | |
| for i in range(0, 100): | |
| if not i % 15: | |
| random.seed(1178741599) | |
| print [i+1, "Fizz", "Buzz", "FizzBuzz"][random.randint(0,3)] | 
| macro $ttos { | |
| case {_ $x} => { | |
| var pattern = #{$x}; | |
| var tokenString = pattern[0].token.value.toString(); | |
| var stringValue = makeValue(tokenString, #{$here}); | |
| return withSyntax($val = [stringValue]) { | |
| return #{$val}; | |
| } | |
| } | |
| } | 
| (require '[clojure.walk :refer [macroexpand-all postwalk]] | |
| '[clojure.pprint :refer [pprint]]) | |
| (def ^:dynamic *platform* :clj) | |
| (defmacro +clj [form] | |
| (if (= :clj *platform*) | |
| form | |
| ::elide)) | 
| import { Component } from "React"; | |
| export var Enhance = ComposedComponent => class extends Component { | |
| constructor() { | |
| this.state = { data: null }; | |
| } | |
| componentDidMount() { | |
| this.setState({ data: 'Hello' }); | |
| } | |
| render() { | 
| Welcome to DrRacket, version 6.0.1 [3m]. | |
| Language: racket; memory limit: 128 MB. | |
| exercise 2.1 | |
| 1/2 | |
| -1/2 | |
| -1/5 | |
| -3/1 | |
| exercise 2.2 | |
| (0,2.5) | |
| (1.0,3.5) |