What we learnt from our first exhibition
Data Licences is our ongoing project that aims to simplify the privacy policies that govern the way our data is used by websites. It’s a blend of tactile objects, RFID, screens and a till printer that helps people understand more about how their data is used.
Getting hands-on with data
Our installation at Big Bang Data at Somerset House invites people to scan a 3D printed object representing a type of personal data. Once they’ve done that they’ll learn a bit about the risks and benefits of sharing that kind of data, before answering a series of questions about how they’d like that data to be use. The installation then prints a receipt showing their licence, which for visitors can take home.
We used three Raspberry Pis in the installation, small, inexpensive but versatile computers. They talk to a Mac Mini which shows the Data Licence Market, a display of the most recent licences and some real-time insights into visitors attitudes towards privacy.
What I love most about our Data Licences installation is the variety of disciplines at play. The hands-on work of designing and assembling the wooden casings for the electronics sits alongside the screen-based work of writing the code that runs on the Raspberry Pis. They’ve merged together to create something really compelling for visitors to enjoy.
Ten things I learned building the installation
Raspberry Pis are robust enough to go into space, but your installation hardware and code need some special consideration before sending them into the battleground of an exhibition. Here’s a rundown of what I learned:
1 Design redundancy into your installation
I deliberately chose to use three Raspberry Pis While it would save money and simplify the layout of the installation, this deliberate design choice of having independent parts creates redundancy that leaves your installation useable if a single part fails.
2 Use faster storage
It’s tempting to use the unbranded microSD cards that come with Raspberry Pi starter kits. I think a lot of the strange and intermittent bugs that I came across while developing and testing our installation can be chalked up to their use. Jeff Geerling has written an extensive article, running benchmarks of branded and unbranded storage on the Raspberry Pi. A good SD card gives you a more stable platform to develop on, which should remain reliable throughout the exhibition.
3 Set the Raspberry Pi to read-only mode
To avoid corrupting your SD card, it’s important to shut down your Raspberry Pi before removing power. In an exhibition environment, gallery staff will want to turn things off at the end of gallery hours to save energy. It’s an unnecessary burden on the staff to have them learn and run the shut down commands every day. By putting your Pi in read-only mode, it stops write actions to the SD card and allows power to be abruptly cut without causing data corruption.
4 Make your code recover from errors automatically
Node.js is a great programming environment we use in our projects. It comes with a package manager, which simplifies bringing in extra functionality. One of my favourites is PM2, which automatically restarts crashed Node.js apps. It’s originally for high-performance web apps, but has a great use case in exhibitions that run all day. It means recovering from uncaught bugs or weird visitor interactions won’t require any intervention while you’re off site.
5 Create a trimmed image of your Raspberry Pi
In the mad rush of making a project, it’s likely that something will break and stop your Raspberry Pi from booting up. Instead of manually setting up a fresh install every time this happens, make an image of your SD card at important milestones in development. These instructions from the Raspberry Pi forum will show you how. Unlike other backup methods, these instructions remove most of the free space on your card, saving your hard drive space and allowing the images to be used on cards that are smaller than the original.
6 Use SQLite instead of a full-blown database
Information about each Data Licence is saved so we can analyse them for patterns and trends that we share on the display. We originally used a Postgresql database server, but found that it sometimes failed to start. SQLite is a stand-alone database system that doesn’t require a server and saves directly into a file. Libraries likely exist for your language: a quick search should point you in the right direction.
7 Make your installation reset state after inactivity
Our installation takes visitors through a wizard that finishes with their completed Data Licence. Some people might walk away without finishing, meaning the next person starts mid-way through the experience. To avoid this confusion, which usually leads to the next person walking away, we added a timer that restarts the experience after two minutes of inactivity.
8 Use Frameless and Guided Access
We built the user interface for the installation in HTML. Safari frames websites with distracting toolbars, and it seems the techniques for removing them don’t work in iOS 9. I came across an app called Frameless hat presents a website without these distractions, giving the interface the feel of a native iOS app. Combined with switching on Guided Access mode, it locks the device into a single app and gives the visitor an immersive interactive experience.
9 Use Google Chrome in kiosk mode
Chrome has a hidden feature that launches a website in full screen mode and without toolbars. This is perfect for installations that show web-based content and negates the need for a keyboard and mouse to get the browser into Presentation Mode. On Mac OS, run the command “open -a “Google Chrome” — args — kiosk https://projectsbyif.com" in Terminal.
10 Take advantage of Apple Automator
Finally, hidden away in the Utilities folder in Mac OS is an app called Automator. It lets you create applications that run ordered commands when opened. With the kiosk mode command, we made an Automator app that starts the Data Licences market visualisation server, pauses briefly, then opens Chrome in full screen with the visualisation website. This is packaged up nicely in an app that can be run automatically on login.
There are always small bugs to iron out during the opening moments of an exhibition, but following these steps should help your installation be reasonably stable.
Other things worth noting:
- Enabling automatic log in, combined with Automator apps, lets you have a system ready to run the installation by simply turning on the computer.
- Make sure you’ve disabled automatic sleep and screensaver after periods of inactivity and disabled update reminders.
- Leave some basic maintenance instructions with exhibition staff in case something goes wrong. Include any passwords and web addresses that need to be loaded up. It’s always good to demonstrate how to do some quick fixes (like what plugs to turn on and off) to someone.
Those interested in looking at how the installation works in more detail can find the code we wrote for it on GitHub.