Attack of the Bacon Robots!

I recently indulged myself by buying a copy of the hardback limited edition of Penny Arcade's Attack of the Bacon Robots. See the bottom of This pont for extremely terse details.

Cover


The book is cool. It was $30, and it has a hard cover, so I could at least use it as a plate or something if the nuclear bombs hit. The exciting thing about this story is not the content of the book, but the *particular* book. The *instance* of the book. This book, my friends, is the one thousand three hundred and thirty-seventh copy printed. Out of Fifteen Hundred. Do I need to put that into decimal digits for you?

Book 1337


It is copy 1337.

My immediately surge of excitement was quickly quelled by those around me. "Hah!", said an officemate. "Surely it is a joke. It is impossible that you should be so lucky as to geet the 1337 book. It must be a ruse by the Penny-Arcade authors to trick you. There must be multiple books that say they are the 1337th."

IS IT TRUE, PENNY-ARCADE? ARE YOU TRICKING ME?

Hey look it is a natural language programming environment OH GOD STOP IT

This is a bad thing.


Part 4 - Making Play More Friendly

Chapter 1 - New Commands

Section 1 - Echo-location

Understand "shout [text] to/at/for [any person]" as answering it that (with nouns reversed).


This was written by the genius (that is not sarcastic) interactive fiction author Emily Short, in her short "Beauty and the Beast" spinoff, Bronze.

As far as I can tell, it means "when the player enters a command such as "shout Hello at Bob", the 'answer' action should be invoked with the first argument being Bob and the second argument being the text "Hello". Maybe.

PyPy is self-hosting

Look at this thing: Armin Rigo: "Self-hosted". Pypy can translate itself with pypy-c.

I am hoping that Twisted will have a buildslave that runs the tests on Pypy by the end of the year.

I am learning about Functional Programming


(define (parse initial callback)
;; Construct and return a purely-functional parser of length-ten
;; strings.

;; `initial' is the initial data to process.
;; `callback' is a function to call with length-ten strings.

;; The return value is a function which accepts data as an
;; argument. The return value of *that* is a function with an
;; identical signature. When you want to push more data into the
;; parser, always pass it to the most recently returned function.

(lambda (data)
(let ([buf (string-append initial data)])
(if (>= (string-length buf) 10)
(begin
(callback (substring buf 0 10))
(parse (substring buf 10) callback))
(parse buf callback)))))

(((((parse "hello" write) " world") " radix") " is") " here!!!!!!!!!!!!!!!")