Hi Sigrid, I'm revamping Moby; it's being mostly subsumed by my js-vm PLaneT package.
To install, evaluate the following at your DrRacket REPL: (require (planet dyoo/js-vm:1:2/info)) This will install js-vm and the tools. Once that's installed, restart DrRacket. There should now be the following menu options under the Racket submenu: * Create Javascript Package * Run Javascript in Browser The first will create a .zip package at a specified place, and the latter will start up a web server and serve a page that runs the currently-edited program. As an example, enter the following as "test.rkt": ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #lang planet dyoo/js-vm:1:2 (printf "hello world\n") (check-expect (* 3 4 5) 60) (current-seconds) (image-url "http://racket-lang.org/logo.png") (check-expect (big-bang 0 (on-tick add1 1) (stop-when (lambda (x) (= x 10)))) 10) "last line" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Save the file, and then press Run. The interactions should evaluate up to the image-url expression, after which case the repl will error out with "Must be evaluated within Javascript". As long as your program is not accessing anything Javascript-specific, you should still be able to run and test your programs under DrRacket. (big-bang is currently a Javascript-specific function.) Next, choose "Run Javascript in Browser". DrRacket should bring up a status window, as well as opening up a web browser with the currently running program. Finally, choose "Create Javascript Package". DrRacket will prompt for a place to put the zip file, and then generate a .zip archive; its contents will be the files that were served under "Run Javascript in Browser." The falling ball example will be this: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #lang planet dyoo/js-vm:1:2 (define-struct world (radius y)) ;; The dimensions of the screen: (define WIDTH 320) (define HEIGHT 480) ;; The radius of the red circle. (define RADIUS 15) ;; The world is the distance from the top of the screen. (define INITIAL-WORLD (make-world RADIUS 0)) ;; tick: world -> world ;; Moves the ball down. (define (tick w) (make-world RADIUS (+ (world-y w) 5))) ;; hits-floor?: world -> boolean ;; Returns true when the distance reaches the screen height. (define (hits-floor? w) (>= (world-y w) HEIGHT)) ;; We have some simple test cases. (check-expect (hits-floor? (make-world RADIUS 0)) false) (check-expect (hits-floor? (make-world RADIUS HEIGHT)) true) ;; render: world -> scene ;; Produces a scene with the circle at a height described by the world. (define (render w) (place-image (circle RADIUS "solid" "red") (/ WIDTH 2) (world-y w) (empty-scene WIDTH HEIGHT))) ;; Start up a big bang, 15 frames a second. (check-expect (big-bang INITIAL-WORLD (on-tick tick 1/15) (to-draw render) (stop-when hits-floor?)) (make-world 15 480)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; As you might notice, some of the names of symbols have changed from Moby 2. I'll be releasing documentation for the new system shortly. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

