Adaptive Recognition with Layered Optimization

TonyB Speaking 'ARLO'

Contributing to ARLO

We are always looking for additional help in maintaining ARLO. Whether adding new features, fixing bugs, improving workflows, or running the servers, there's always a list of items todo.

We are happy to speak more in-depth with anyone interested in contributing to ARLO. Most recent work has been contributed by two part time developers (a Machine Learning specialist and a Full Stack developer).

We do have a private JIRA that we may be able to provide access to the archive of issues, though most work is priority driven by current user needs to ensure most effective use of the very limited time we have.


ARLO consists of two primary components, a Python/Django web interface (Nester) and a Java backend (ADAPT) which implements most of the machine learning search and classification algorithms. There is likely a place for someone of any skill level within these projects. The ARLO source code repositories are available on Bitbucket

Example Tasks

Java ADAPT API Conversion Currently ADAPT largely uses MySQL database connections to communicate with the Nester front-end. With the availability of the new API in Nester, we want to remove all database dependencies and instead use the API to ease deployment of ADAPT on other systems (such as the Stampede supercomputer) and improve long-term maintainability.
Suggested Skillsets Basic Java programming and experience with REST APIs.

Project / Library Hierarchy and Data Sharing This is a larger project to change around the data hierarchies within ARLO to faciliate enhanced data sharing for better multi-user experience. Currently, Libraries, which contain our MediaFiles, are very user-centric, making cross-user sharing of files difficult. While some sharing capabilities have been included, they are limited and require manual intervention directly in the database to facilite user needs.
Suggested Skillsets This will touch all components of the project, though on the Java side the changes may be minimal. However, due to the extensive changes required within the interface and database, I would recommend someone with a decent amount of Django experience.

Interface Cleanup 'Pretty' is often ignored over functionality. There are many minor changes to the web interface that would help the overall look and feel and give users a more enjoyable experience.
Suggested Skillsets Basic Django / JavaScript with some interface design experience, or even just fresh ideas to try.

Systems Administration

We currently use one central server for our Production environment as well as all development work. While little changes over time, code deploys are still manual as well as ensuring data backups and monitoring system performance. Occasional service crashes and restarts do occur, signs of us pushing our single server too far.

Most SysAdmin work though involves deploying ADAPT to remote systems, namely the Stampede supercomputer, to run massively parallel experiments. This effort involves both maintaining the code and running binaries, as well as ensuring that all required data files are sync'd from the central server to these additional environments. Each test run essentially requires a complete check of the environment and data files prior to launching.