Adaptive Recognition with Layered Optimization
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
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.
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.