Ian Cunnyngham grew up in Columbus, Ohio where he was immersed in computers from a young age, working as a web-designer and systems administrator during high-school and eventually co-founding a software company in 2005. After returning to school, he transferred from The Ohio State University to the University of Hawai’i at Hilo in 2009 and graduated in 2012 with a double major in Physics and Astronomy and a minor in Mathematics. Ian intends to enter the industry – working on problems of big data, machine learning, and distributed computing – and intends to attend graduate school down the line. His interests include futurism, playing music, meditation, and since moving to Hawai’i, spinning fire and free diving.

Home Island: Big Island
High School:
Institution when accepted: University of Hawaii at Hilo

Akamai Project: Designing KeOLA: The Keck Observation Log Archive
Project Site: W.M. Keck Observatory
Mentor: Luca Rizzi

Project Abstract:

In the course of any observing run, astronomers must keep track of many different pieces of information to effectively utilize their science data later.  For each observation taken, they must track which object is being targeted, telescope configuration, where the frame is stored, and any notes they want to remember for later (among other things).  Additionally, weather conditions, changes in seeing, and any other notes that apply to the night as a whole, must be logged.  Currently, this is achieved through paper logs that the astronomer is responsible for filling out by hand and keeping track of afterwards.  The goal of KeOLA is to create a software solution to replace these logs — tracking the data created in real-time, and filling in as many details as possible automatically — while achieving the same flexibility and ease of use as the paper logs.  The software should provide a much more consistent and extensive archive for use by astronomers and support staff, mitigate gaps of information and errors, and save significant time.  To achieve all the desired functionality, an entire software ecosystem had to be realized.  A daemon to launch new logs based on the telescope schedule, a monitoring script to track new frames and extract all their FITS metadata in real time, a central database, an interface between the database and the user application, and a rich web client encompassing real-time log functionality, as well as administration tasks.  All pieces were designed to be as logically independent and maintainable as possible, while still using cutting-edge technologies and techniques.  Python was used for all server-side scripting; MongoDB, a document-based database, was selected due to its flexibility as the backend data store; a Python based microframework named Flask was utilized to serve data to the Web client; and a combination of sophisticated JavaScript libraries, including Backbone.js, were used for creating the browser-based client.  As of now, the application has a majority of its core functionality in place, and is undergoing trials before being phased into normal use.