conferences

PhantomJS+Selenium: Easy Automated Testing of AJAX-y UIs

Martin Haye and Mark Redar, California Digital Library

Web user interfaces are demanding ever-more dynamism and polish, combining HTML5, AJAX, lots of CSS and jQuery (or ilk) to create autocomplete drop-downs, intelligent buttons, stylish alert dialogs, etc. How can you make automated tests for these highly complex and interactive UIs?

Part of the answer is PhantomJS. It’s a modern WebKit browser that’s “headless” (meaning it has no display) that can be driven from command-line Selenium unit tests. PhantomJS is dead simple to install, and its blazing speed and server-friendliness make continuous integration testing easy. You can write UI unit tests in {language-of-your-choice} and run them not just in PhantomJS but in Firefox and Chrome, plus a zillion browser/OS combinations at places like SauceLabs, TestingBot and BrowserStack.

In this double-team live code talk, we’ll explain all that while we demonstrate the following in real time:

  • Start with nothing.
  • Install Selenium bindings for Ruby and Python.
  • In each language write a small test of an AJAX-y UI.
  • Run the tests in Firefox, and fix bugs (in the test or UI) as needed.
  • Install PhantomJS.
  • Show the same tests running headless as part of a server-friendly test suite.

Towards Pasta Code Nirvana: Using JavaScript MVC to Fill Your Programming Ravioli

Bret Davidson, North Carolina State University Libraries

JavaScript MVC frameworks are ushering in a golden age of robust and responsive web applications that take advantage of evergreen browsers, performant JS engines, and the unprecedented reach provided by billions of personal computing devices. The web browser has emerged as the world’s most popular application runtime and the complexity[1] and scope of JavaScript applications has exploded accordingly. Server-side web frameworks like Rails and Django have helped developers adhere to best practices like modularity, dependency injection, and unit testing for years, practices that are now being applied to JavaScript development through projects like Backbone[2], Ember[3], and Angular[4].

This talk will discuss the issues JavaScript MVC frameworks are trying to solve, common features like data binding, implications for the future of web development[5], and the appropriateness of JavaScript MVC for library applications.

[1] http://en.wikipedia.org/wiki/Spaghetti_code
[2] http://backbonejs.org
[3] http://emberjs.com
[4] http://angularjs.org

Organic Free-Range API Development - Making Web Services That You Will Actually Want to Consume

Steve Meyer and Karen Coombs, OCLC

Building web services can have great benefits by providing reusability of data and functionality. Underpinning your applications with a web service will allow you to write code once and support multiple environments: your library's web app, mobile applications, the embedded widget in your campus portal. However, building a web service is its own kind of artful programming. Doing it well requires attention to many of the same techniques and requirements as building web applications, though with different outcomes.

So what are the usability principles for web services? How do you build a web service that you (and others) will actually want to use? In this talk, we’ll share some of the lessons learned - the good, the bad, and the ugly - through OCLC's work on the WorldCat Metadata API. This web service is a sophisticated API that provides external clients with read and write access to WorldCat data. It provides a model to help aspiring API creators navigate the potential complications of crafting a web service. We'll cover:

  • Loose coupling of data assets and resource-oriented data modeling at the core
  • Coding to standards vs. exposure of an internal data model
  • Authentication and security for web services: API Keys, Digital Signing, OAuth Flows

A reusable application to enable self deposit of complex objects into a digital preservation environment

Jill Sexton, Mike Daines, Greg Jansen, UNC Chapel Hill Libraries

Patron-initiated ingest of complex, multi-part objects into digital preservation environments remains a challenging problem for many libraries. In this talk we discuss how we approached this problem at UNC Chapel Hill.

Behold Fedora 4: The Incredible Shrinking Repository!

Esmé Cowles, UC San Diego Library.

  • One repository contains untold numbers of digital objects and powers many Hydra and Islandora apps
    It speaks RDF, but contains no triplestore! (triplestores sold separately, SPARQL Update may be involved, some restrictions apply)
  • Flexible enough to tie itself in knots implementing storage and access control policies
  • Witness feats of strength and scalability, with dramatically increased performance and clustering
  • Plumb the depths of bottomless hierarchies, and marvel at the metadata woven into the very fabric of the repository
  • Ponder the paradox of ingesting large files by not ingesting them
  • Be amazed as Fedora 4 swallows other systems whole (including Fedora 3 repositories)
  • Watch novice developers setup Fedora 4 from scratch, with just a handful of incantations to Git and Maven

The Fedora Commons Repository is the foundation of many digital collections, e-research, digital library, archives, digital preservation, institutional repository and open access publishing systems. This talk will focus on how Fedora 4 improves core repository functionality, adds new features, maintains backwards compatibility, and addresses the shortcomings of Fedora 3.

Sustaining your Open Source project through training

Bess Sadler (Stanford University Libraries) and Mark Bussey (Data Curation Experts) will discuss their experiences developing and delivering training for Project Hydra.

Topics covered:

  • Working practices for developing training materials
  • Sharing the work when there are no dedicated resources
  • Inviting community (and student) input to create higher quality content
  • Strategies to keep training docs up-to date
  • Strategies to make training materials available to the widest-possible audience
  • Using surveys (Survey Monkey) to assess the effectiveness of your training program

Building for others (and ourselves): the Avalon Media System

Michael B Klein, Senior Software Developer, and Julie Rudder, Digital Initiatives Project Manager, Northwestern University

Avalon Media System is a collaborative effort between development teams at Northwestern and Indiana Universities. Our goal is to produce an open source media management platform that works well for us, but is also widely adopted and contributed to by other institutions. We believe that building a strong user and contributor community is vital to the success and longevity of the project, and have developed the system with this goal in mind. We will share lessons learned, pains and successes we’ve had releasing two versions of the application since last year.

Our presentation will cover our experiences:

  • providing flexible, admin-friendly distribution and installation options
  • building with abstraction, customization and local integrations in mind
  • prioritizing features (user stories)
  • attracting code contributions from other institutions
  • gathering community feedback
  • creating a product rather than a bag of parts

Dead-simple Video Content Management: Let Your Filesystem Do The Work

Andreas Orphanides, NCSU Libraries

Content management is hard. To keep all the moving parts in order, and to maintain a layer of separation between the system and content creators (who are frequently not technical experts), we typically turn to content management systems like Drupal. But even Drupal and its kin require significant overhead and present a not inconsiderable learning curve for nontechnical users.

In some contexts it's possible -- and desirable -- to manage content in a more streamlined, lightweight way, with a minimum of fuss and technical infrastructure. In this presentation I'll share a simple MVC-like architecture for managing video content for playback on the web, which uses a combination of Apache's mod_rewrite module and your server's filesystem structure to provide an automated approach to video content management that's easy to implement and provides a low barrier to content updates: friendly to content creators and technology implementors alike. Even better, the basic method is HTML5-friendly, and can be integrated into your favorite content management system if you've got permissions for creating templates.

We Are All Disabled! Universal Web Design Making Web Services Accessible for Everyone

Cynthia Ng, Accessibility Librarian, CAPER-BC at Langara College

We’re building and improving tools and services all the time, but do you only develop for the “average” user or add things for “disabled” users? We all use “assistive” technology accessing information in a multitude of ways with different platforms, devices, etc. Let’s focus on providing web services that are accessible to everyone without it being onerous or ugly. The aim is to get you thinking about what you can do to make web-based services and content more accessible for all from the beginning or with small amounts of effort whether you're a developer or not.

The goal of the presentation is to provide both developers and content creators with information on simple, practical ways to make web content and web services more accessible. However, rather than thinking about putting in extra effort or making adjustment for those with disabilities, I want to help people think about how to make their websites more accessible for all users through universal web design.

Visualizing Library Resources as Networks

Matt Miller, New York Public Library, NYPL Labs.

Library resources are typically presented linearly in the form of a catalog search results page or an iterative list of subjects, books, special collections, etc. This talk explores the possibilities created when thinking of library resources as interconnected networks. We will look at the progress of a project to visualize NYPL resources such as catalog subject headings[1][2] as a network. We will also look at moving beyond visualizations into building network interfaces, such as our archival access term explorer[3] prototype.

[1] Catalog Subject Headings Visualization
[2] Time lapsed catalog network
[3] Archival access term explorer prototype

Syndicate content