Monika Mevenkamp

Princeton University

Since joining Princeton I have been part of the university’s Open Access Scholarly Communications project. In addition, I am responsible for the university’s existing digital repository, DataSpace.

The goal of the Open Access project is to develop a workflow tool that helps librarians collect articles published by Princeton faculty and submit them to an institutional repository. In the initial project phase I participated in a working group, mostly made up of librarians, as well as in discussions with MIT staff, who pursue a similar project. As the requirements for article discovery, publisher policy and waiver management became clear, I reviewed MITs open access policy management tool and implemented a workflow prototype tool, to evaluate RoR, Solr and Hydra as a possible software stack. Additionally I designed and built a waiver application in RoR. It communicates with a second RoR application via jQuery, REST and Solr to populate form data with faculty names and related data. These applications are hosted on production and test VMs, which I configured. Code deployment with Capistrano facilitated frequent reviews.

DataSpace is a web application, based on the DSPACE open source software, which is written in Java with a UI implemented by JSP pages and data stored in an Oracle database as well as the file system. Since I joined, I implemented UI changes and modified the submission workflow for the Senior Theses collection according to requests by the Dean of Students and Mudd Library. As a result, starting with the 2013 class year, theses are now available as full text on the Princeton network. I rewrote DSPACE’s checksum tool, so it checks, counts, or prints the status of all or selected documents. I enabled statistics gathering and have developed custom reports using JRuby and Solr queries to statistics data. All DSPACE code and configurations are now maintained under git, which simplifies the submission of code to the developer community. Some of my contributions have become part of the DSPACE code base.

Emory University and Educopia

During my 5 years at this position I was involved in strategic planning, software and systems design, development, and support, taking the lead role in many areas. I am a coauthor on two chapters in 'A Guide to Distributed Preservation' published by Educopia, and I gave the main technical presentations at annual meetings.

MetaArchive runs a network of servers, that ingest data from the web via HTTP-GET-based crawls onto their disks with the goal of preserving multiple 'healthy' copies of important electronic documents. UNIX servers, located at MetaArchive member institutions, are equipped with the LOCKSS open source Java software developed at Stanford. During my tenure the network grew from a purely American network to include locations in the UK, Spain, and Brazil.

Shortly after joining, I was invited by the LOCKSS team to help extend their RoR monitoring tool. I designed and implemented the conspectus, a RoR tool, now central to MetaArchive operations. It provides parts of network configurations in response to XML get requests. It integrates status information provided by a RESTful API, that I added to the LOCKSS monitoring tool and interfaces through AJAX/jQuery with a legacy PHP tool. The conspectus is highly configurable, with CSS files for different skins and global settings defining integration points with outside tools. To enable finer grained status reports and to simplify the creation of annual member reports, I implemented a set of Python/Django scripts. I augmented monitoring with Nagios, using standard as well as custom plugins, interfacing with the monitoring and reporting tools I developed.

Georgia Tech

While I worked at Georgia Tech I supported the library's DSPACE based institutional repositories. Among other projects I integrated Google Analytics into Georgia Tech's open access repository, SMARTECH, extended its statistics capabilities, and generally supported and adapted the software to library needs. In my other role I supported the library's archives department in its move towards using the Archivist Toolkit.";

Algorithm Animation

Princeton high school's computer science teacher mentioned on one of my regular visits, that animation helps students understand algorithms. Nonetheless, many students can not translate this understanding into code, especially where recursion is involved. I developed animations of mergesort (and a slightly improved version), a recursive factorial computation, and a permutation enumerator. In each case the animation shows the codes execution and related data changes side by side.

First I implemented the algorithms in Python, annotated the code with print statements that traced their actions in JSON format. I designed JavaScript classes for showing the data, code snippets, a stack of code snippets with push and pop methods, a class representing the action trace as it is printed by the Python routines. The action tracer allows step, run, and stop actions.

You can see the animations HERE and browse the html, css, JavaScript, and Python code THERE.

iPhone App

In February, 2012, I released my first iPhone Application. It is a proof of concept application showcasing the Concorde TSP code, developed by Appelgate, Bixby, Chvatal, and Cook.The code computes the optimal solutions to traveling salesman problems with many nodes.

The App serves as a companion to the Book In Pursuit of the Traveling Salesman by William Cook. It animates the solution progress for problems it reads from the Internet, generates randomly, or defines based on locally bundled data.

A newer version of the App is available for free from iTunes. Please try it and send us feedback.

QSopt Library

QSopt is a linear programming software package. It is written in the C programming language. I ported it to Windows/Visual-C++ and Java. I also wrote graphical user interfaces for this library and helped to develop its website.

Concorde

The Concorde graphical user interface can be used to apply the Concorde TSP Solver to a specified set of cities as well as several edge generating algorithms. It is implemented in Visual C++ and available for download to Windows users.

MCM Theater

MCM Theater is a Java package that I developed. It provides an easy to use class library for an introductory Java programming class. I used it in a Mini Course at Galloway for 8-th graders who developed small screensaver programs.";

Princeton High Google Site

When my children entered the Princeton high school, I found the schools web site disorienting and I tried to come up with ideas to help inform parents in a more user friendly fashion. Initially I considered using the Drupal CMS. While it offers great flexibility and many features, Drupal requires at least a minimum of tech support, which precluded its use.

In the end I settled on building a Google Site. Once the site layout with a Google Calendar, Announcements, and a few dedicated pages stabilized, upkeep mostly consisted of posting announcements and updating the calendar. The most difficult piece became finding relevant information and rewriting it for the web. I maintained the site from its inception in 2009 to the 2012/13 school year, when I trained my replacement to take over.

By 2011 all other PTOs in the school district started a google site, each mirroring the high school site's design. The district launched a site redisgn in the 2012/13 school year, which incorporated several of the PTO site's popular features, among them a search button, announcements on the front page, and google calendars.

Through the site I got in touch with the school's Director of Service-Learning and Experiential Programs. Discussing with her the administrative aspects of managing the service projects of about 350 10th graders, as well as the schools tutoring program, I introducing her to Google Forms and Google Group Mailing Lists, tinyurl, ...

Math Practice Sheets

When my son was supposed to practice multiplication tables I developed a web page that simply generated itself on the fly. I continued working on building sheets for various math topics. Some of them are accessible through the Math Practice Sheets link.

This is now many years ago .. but the sheets still work and may still be useful to someone.