The Drama of Data: Whirligig Productions Builds An Interactive Theater With Node.js, Drones, and Twilio SMS
Nothing spells drama like actors and audience both vying for power from a Greek oracle. Deus Ex Machina, isn’t your typical theatrical production. Robert Matney, Co-Artistic Director at Whirilgig Productions, built out an entirely new way for audience and actors to not only interact with a story, but build it in realtime via Twilio SMS.
Robert Matney was inspired by the work of his peers and collaborators, Punchdrunk, and Hidden Room Theatre, who used software to give the audience agency in a story. Matney’s production of Deus Ex Machina tells the tale of the Greek tragedies of The Oresteia, a series of plays about a curse being lifted from the House of Atreus and all the vengeance, battles for power, and bloodshed that ensues. Audience and actors alike are thrown into the fire, assuming the role of greek gods duking it out for power.
To give each audience ...
Votr Part 5: AngularJS and CRUD Using RESTful APIs
This is the fifth and final part in a series of blog posts about building a real-time SMS and voice voting application using Node.js and TwiML. I began working on this application during some downtime at a Startup Weekend event back in the summer of 2012. It was both an excuse to learn Node and build a reusable app for something that my team is often asked to provide at events (SMS voting). Let’s take a moment and recap where we’ve been.
In part one, we created the Node application and captured incoming votes over SMS and stored them in a CouchDB. I chose to use Express as the web framework and Cloudant and my CouchDB provider.
In part two, we created a real-time visualization of the voting using Socket.io and Highcharts. As votes came in a bar chart depicting the current state of the vote ...
Votr Part 4: AngularJS and Authentication with CouchDB
This is the fourth part in a series of blog posts about building a real-time SMS and voice voting application using Node.js. In part one, we created the Node.js application and captured incoming votes over SMS and stored them in a CouchDB. In part two, we created a real-time visualization of the voting using Socket.io and Highcharts. In part three, we tweaked our app to scale to thousands of votes per second and millions of total votes.
Through the first 3 parts of this series we now have a scalable voting application that can process votes for events via SMS or voice and display the real-time progress of voting. However, there is currently no web interface for an administrator. Creating events or modifying them require making changes directly to the documents in CouchDB. In this blog post, I will walk through the process of creating a simple ...
Building a Real-time SMS Voting App Part 3: Scaling Node.js and CouchDB
This is the third in a multi-part series of blog posts on building a real-time SMS and voice voting application using Node.js. In part one, we created the Node.js application and captured incoming votes over SMS. In part two, we created a real-time visualization of the voting using Socket.io. In this blog post, we will discuss tweaking our app to scale to thousands of votes per second and millions of total votes.
At the end of part two of this blog post series, I mentioned that while we had a working SMS voting app with a cool real-time visualization, it was not a solution that was going to scale. The reason for this was because of how I chose to structure and retrieve my data. My database consisted entirely of event documents that ...
Building a Real-time SMS Voting App Part 2: Socket.io and Highcharts.js
This is the second in a multi-part series of blog posts on building a real-time SMS voting application using Node.js. In part one, we created the Node.js application, set-up the CouchDB database and captured incoming votes over SMS with Twilio. In this blog post, we will create a chart that displays the status of the voting and update that chart in real-time using Socket.io.
Now that we can accept votes via SMS and store those votes in our database, it’s time to create a live view of the voting. There are many ways to visualize voting, but a bar chart is probably the most simple way. There are numerous graphing and charting libraries, and I spent quite a bit of time looking for the right one. Here were my requirements:
- Client-side JS
- Easy to update data and refresh
- Great default styles
After doing some digging, I ...