
APPLICATION PROGRAMMING INTERFACE USAGE
for the
ATTENDEE META-DATA SYSTEM (Gen. 2)
Released by The OpenAMD Team in cooperation with
2600 Magazine, OpenBeacon.org, and The Next HOPE
|
|
Summary:
This document describes the public API of the OpenAMD system which will be deployed at The Next HOPE Conference. The Next HOPE is being organized by 2600 Magazine: The Hacker Quarterly at The Hotel Pennsylvania in New York City from July 16-18, 2010. This document is targeted at a novice to intermediate developer who wants to participate in the conference in an innovative way.
Overview:
What is OpenAMD?
OpenAMD is short for "Open Attendee Meta-Data." It is a project that merges real-time RFID tracking with social networking. Conference attendees who receive an OpenAMD active RFID badge will be able to track and interact with each other through the OpenAMD system.
What is RFID?
RFID is and abbreviation of Radio Frequency Identification. It is an electronic signature-tracking system comprised of tags and readers. There are many variants made by many manufacturers, and RFID is very common around the world. It allows an object or animal to be tagged and tracked the same way one might use a bar code, only with radio triangulation one can identify an exact location. OpenAMD employs the OpenBeacon RFID system, developed by hackers in Germany for the Chaos Communication Congress.
What does this project track?
The RFID technology only tracks the ID number that is embedded in the badge. Attendees can enter that ID number via the OpenAMD social networking site along with basic information about their interests and demographic profile, which will then give the users access to interact with other conference attendees and play games through the system. It is designed to help you make new friends with similar interests.
I don't want to be tracked!
Participation in RFID tracking is completely voluntary. If you wish, you can request an electronics-free “unpopulated” badge at registration, or simply remove the battery from your “populated” RFID badge at any time. There will be a limited number of the full-featured badges. Register early to be guaranteed one.
What is this API thing?
API is a common abbreviation for Application Programming Interface. The API will allow people to build applications before and during the conference. This document tells coders how to play with the OpenAMD system.
How can I test an application for use at the conference?
The OpenAMD team will be setting up a data stream which will use testing data to make sure your application works properly. If your application works with the test stream, then it should work at the conference in July. We will be updating this document with additional information as the conference approaches.
TOP LEVEL:
The current API URL is:
https://api.hope.net/
Given no arguments this will redirect to the documentation page.
AUTHENTICATION:
OAuth is used as the authentication mechanism to prevent login credentials from being sent in clear text. Users must first create an account using their badge ID number, which is then used to obtain an authentication token.
DUMPING LOCATIONS and FIELDS:
The directory of the location dump is:
/api/location
Location dumps contain the following fields:
area: Section of the building the user is physically located in (i.e. “Hammocks.”)
time: Time of day this information was dumped, in 24-hour format, with no colon
x: Horizontal location coordinate determined by triangulation
y: Vertical location coordinate determined by triangulation
user: The individual's badge RFID number
button: The state of the badge button: “true” for on, “false” for off.
Dumped data is stored in the in the JSON format.
Example:
{
"area" : "Engressia",
"time" : "2387",
"x" : "46.7369918823242",
"y" : "83.1452331542969",
"user" : "12983",
"button" : "False"
}
Subsets of location dumps may be accessed through URL arguments such as:
/api/location?area=Engressia
/api/location?user=49282
/api/location?time=3215&limit=20
Additional fields may be added at a later time.
SPEAKERS:
The directory of the Speaker list is:
/api/speakers
Speaker data is also stored in stored in JSON format, which can be cached as a static file, and contains only two self-explanitory fields:
{
"name" : "Johnny",
"bio" : "Johnny's bio"
}
TALKS:
Talk (seminar/workshop) data is stored in the following location:
/api/talks
Talk data is also stored in stored in JSON format, which can be cached as a static file, and contains the following fields:
speakers: List of presenters separated by commas
title: The name of the talk
abstract: Talk abstract provided by the presenters
time: Date and time of the talk, in YYYY/MM/DD 24:59:59 format
track: Which room the talk is hosted in
interests: Which of the predefined interest categories the talk falls under (see below for list of categories)
Example:
{
"speakers" : ["Judas","JohnnyX"],
"title" : "Ancient Egyptian Music and DRM",
"abstract" : "A discussion of the development of musical notation, which was designed as a means of reproducing music while making it impossible for the general public to perform without permission.",
"time" : "2008/7/18 13:00:00",
"track" : "Hooper",
"interests" : ["media","crypto"]
}
Just like Locations, subsets of talks may be accessed through arguments such as:
/api/talks?speakers=JohnnyX
/api/talks?interests=politics
INTERESTS:
Interest categories can also be cached in a static file, and are stored in:
/api/interests
in the following format:
["politics","social engineering", ...]
Current list of categories:
new tech, activism, radio, lockpicking, crypto, privacy, ethics, telephones, social engineering, hacker spaces, hardware hacking, nostalgia, communities, science, government, network security, malicious software, pen testing, web, niche hacks, media
Note: speaker/seminar information is not yet available for The Next HOPE, so this listing is the interest categories from The Last HOPE in 2008. The documentation will be updated closer to the 2010 conference.
PROFILES:
Realtime user data is stored in:
/api/users
in the following format:
{
"name" : "JohnnyX",
"x" : "32.54091324",
"y" : "54.10958384",
"interests" : ["new tech,radio,lockpicking,crypto,telephones,social engineering,hacker spaces, hardware hacking,nostalgia,communities,science,network security,malicious software, pen testing"],
}
Additional fields may be added at a later time, and if users allow them.
STATISTICS:
Various ad-hoc statistics are stored in:
/api/stats
This is currently unused, but is here to support future development.
Some ideas for statistical graphs which can pull data from this dump:
Age Histogram /api/stats/age?viz=hist
Popularity of Talks: /api/stats/poptalks?viz=dot