Second Spider-Man Trailer, ReviewedFebruary 14th, 2012 | no comments
The comic books never had the burden of each issue being taken as a whole, but the movies come out too seldom to be truly episodic, so each movie needs to feel complete. A power franchise like Spider-Man also means the producers have to plant seeds for larger story-arcs and future villains and plot points, but each movie still needs to end with resolutions, and to have resolutions it must first establish complications. So, screenwriter James Vanderbilt has chosen to use Peter’s parents to bind the action with sentiment. We’ll see if that works. » Continue Reading…
Blood Wedding at Constellation TheatreFebruary 13th, 2012 | no comments
Luckily director Shirley Serotsky does away with melodrama and presents this tragedy with duende, earthy and ethereal. Key to the plot’s emotional twists is the bride, played by Victoria Reinsel, who has to choose between passion and love. The story is accompanied by music throughout, primarily by guitarist Behzad Habibzai sitting on the side of the stage. Actors join in by singing, most joyfully when rousing the bride with “Awake, O Bride, awaken,” the guests’ celebration contrasting with the bride’s own sense of doom. » Continue Reading…
2012 Cupid’s Undie Run in WashingtonFebruary 12th, 2012 | no commentsValentine’s is almost upon us, and here in the nation’s capital, that means hundreds of people running through town in pink underwear. Hats off (pants too, I guess) to the folks behind Cupid’s Undie Run for putting together the city’s best fundraiser, raising money for the Children’s Tumor Foundation. Here are my favorite photos from the event.
CaBi Dashboard with Google Chart ToolsFebruary 10th, 2012 | no comments
The stepped area chart resembles a seismograph, recording the number of available bikes and empty docks. The values are stacked on top of each other instead of overlapping, so the total is consistent. The program does not retrieve old historical data; it accumulates data as long as you keep the window open. The AJAX code enables the charts to be continuously updated, live from Capital Bikeshare‘s XML feed. The frequency is chosen by the user. They can be displayed in any order. The most valuable sort shows the most unbalanced stations on top, those where the number of docks or bikes is closest to zero. The order of the charts is updated as new data arrives that affects the sorting order. » Continue Reading…
AJAX to the RescueFebruary 8th, 2012 | no commentsI first heard of AJAX years ago, and knew that I’d have to tinker with it soon. Well, I finally found a good opportunity to test it out, using it to let my CaBi Mapper application get fresh data without having the user refresh the browser.
My goal for the CaBi Mapper app was to let the user decide when to get new data from the server. I added a “refresh” button that initiates the AJAX process. (Hopefully it’s not confusing to have it next to the “recalculate” button, which takes existing data and uses it to redraw the images in the current viewport.) » Continue Reading…
Super Simple Encryption AlgorithmFebruary 4th, 2012 | 2 commentsTo implement the latest feature in my Hangman game, I needed a way to disguise the phrase entered by the person customizing the puzzle. The configuration screen sends the puzzle via the “get” method, which basically means the form’s data get included in the URL. I wanted to use the URL so that people can email their puzzles to each other.
What I found on the web was too long and complicated. My own requirements were simple enough to allow for a more graceful solution. Phrases needed to hide only alphabetic characters, and furthermore the puzzles always appear in uppercase, so there are only 26 characters we need to encrypt. » Continue Reading…
Custom Hangman Puzzles for Valentine’sFebruary 3rd, 2012 | no comments
The puzzle is encrypted into the URL, so you can link to it in an email without giving away the answer. Here are some samples, inspired by the Necco “Sweethearts” candy hearts with messages stamped on them: » Continue Reading…
CaBi Mapper: Bikeshare Availability & ActivityFebruary 2nd, 2012 | 1 comment
The data came from Capital Bikeshare‘s bikeStations.xml file, which is constantly updated as bikes are checked out and returned. It includes latitude and longitude, so mapping is easy. PHP lets you read in the entire XML file with a single function, simplexml_load_file. I used the Google Maps JavaScript API v3 to draw the map (with help from OpenStreetMap).
|
Site by M.V. Jantzen |

A new trailer for the upcoming
Death stalks the stage in 

One way the game lets you customize puzzles is by entering phrases directly into the URL, using a parameter I call “phrase”. It then covers its tracks by removing that part from the browser’s address field. But for sharing via email, that URL needs to remain visible. So, I had to find a good encryption method for the puzzles. For the encrypted puzzles I call the parameter “secret”. (See 
At the same time I’m launching a new feature letting you choose your own puzzle. Starting at the 