Letter to Alpheios Users

As anticipated, the release of Firefox 45.0 with its support of e10s disabled the Alpheios tools. However, subsequent releases of Firefox 45 and Firefox 46 have restored normal functionality to Alpheios. We still expect Firefox to disable Alpheios in the near future when they finally make the "electrolysis" feature the default. But for the moment everything is working as normal.

If you wish to continue to use Alpheios after Firefox disables it, it will be necessary to run it in an earlier version of Firefox such as 46.0.1 (https://support.mozilla.org/en-US/kb/install-older-version-of-firefox).

Multiple versions of Firefox can be installed on the same computer but you should be aware that the older version will not be receiving the latest security patches and fixes, so it would be prudent to confine its use to the classics sites you are familiar with, and use the current version for everything else. Thomas Koentges from Perseus and the Open Philology Project in Leipzig has kindly packaged Alpheios with an earlier version of Firefox into a VM virtual box that appears to work well and provides significantly better security than running an earlier version of Firefox directly in your local machine's operating system. ( http://1drv.ms/1M3VqbP ) But even this would also be only a temporary solution, although one with many possibilities for future development.

Users who need only simple word lookup functionality, may want to look at the Paideia Institute's Chromium plugin for Google Chrome. It provides browser-based access to the Perseus Word Lookup Tool. You may also wish to examine the functionality of the University of Chicago's Logeion.

But these are only partial and temporary solutions. In anticipation of this problem, we attempted to crowdfund the programming necessary to adapt Alpheios to Firefox's new requirements. Although we didn't raise enough money in that appeal, we did raise enough concern in the classics community about the potential loss of what has become a very popular resource, that three major organizations and several quite senior programmers have volunteered to help make the necessary changes. We should like to express our deepest gratitude for the endorsements of our appeal by leading classicists, the financial support we have received and the technical support now being offered.

With this level of interest and support it appears that it may be possible to not only address the specific changes needed for Firefox, but also to make the same functionality available on other browsers and deployable on individual websites and mobile devices. Thus the notes below cover both Immediate Needs and Long Term Strategy. If you recognize any topics where you have special expertise, we should certainly welcome additional help. It is distressing to have a hiatus in the availability of Alpheios, and we wish it to be as short as possible.

Background

The Alpheios tools were developed between 2007 and 2010 with private funding. Our primary mission was to provide a reading environment that enabled anyone to learn Latin and Greek by reading primary source texts in their original language. Our goal was to make the process of learning and reading as efficient and as enjoyable as possible, putting at the user's disposal all of the necessary supporting resources, including treebanks, aligned translations, dictionaries, grammars, inflection tables, vocabulary lists, etc. We knew that we could not anticipate all of the texts a user would want to read, nor could we produce a highly curated level of annotation in the form of treebanks and translation alignments for an unlimited corpus, but we wanted to provide as many services as possible at a basic level for all texts, as well as advanced functionality for the highly curated texts. And finally, although we started with a goal of supporting Latin and Greek, we wanted to ensure that the addition of other languages would be as simple and straightforward as possible. (Arabic and Chinese were soon added and Persian is being added at the moment, courtesy of the Roshan Institute at the University of Maryland.) The design of the tools took all of these goals into account. We developed them as Firefox plugins because that was the only feasible way to give users access to the functionality on any web page containing a text they wanted to read or study, regardless of who published that page, and at the time, Firefox provided the most advanced support for browser plugins. It's a testament to the generous initial investment, and the professional architecture and coding of the Alpheios tools, that they have remained fully functional with very few changes through the 40+ iterations of Firefox since the Alpheios funding officially ended in 2010.

But the technological landscape has changed significantly since the Alpheios tools were developed, and we have reached the point at which the current code requires significant revision to remain functional. In addition, Firefox's plans to eliminate support for its original XUL-based browser plugin architecture means that any fixes we make to the current Alpheios code base could be relatively short lived.

Immediate Need

Nonetheless, since the timeframe for replacement of XUL is not yet certain, it might be worthwhile to restore the functionality of the current code.

  • Fix Browser Crash

    Currently the tools appear to crash the browser. The most urgent problem would be to debug and fix this. We believe it is caused by changes in Firefox 45 for multi-processor support. Relevant issues from Mozilla's bug-tracker are:

    Bug 1225882
    Bug 1215867

    The crash has been resolved in the current beta release of Firefox 46, although the Alpheios tools remain non-functional there, indicating that the underlying problem remains.

  • Meet new Add-Ons requirements

    The Mozilla Add-Ons team has indicated that we would also need to make a number of code changes to pass their review and be officially signed by them. Although it is possible that we could continue to publish the add-ons on our own site, as we have before, they wouldn't be available through the Firefox add-ons page, and Mozilla could refuse to allow any unsigned add-ons to be installed, as they have before. The Add-Ons team has requested the following changes to the Alpheios Basic Libraries:

    • Replace any code that creates DOM nodes from HTML strings containing potentially unsanitized data, by assigning to innerHTML, jQuery.html, or through similar means per Mozilla's guidelines . Some specific examples of the code that need to be fixed follow, but there are many more:
      • diagram/alpheios-diagram.js, line 110
      • content/infl/alpheios-infl.js, line 288
      • content/prefs/alpheios-prefs.js line 518

      They can accept our making these changes incrementally, as long as we show some progress with each release.

    • Upgrade to a recent officially published release of the jQuery library. We currently use a custom version of jQuery with a small modification that we made to enable it to work correctly with XUL elements, but this is likely no longer be needed, and our use of a custom version of jQuery makes the Add-Ons team unhappy.
    • Review and fix various errors appearing in the console

Long Term Strategy

The technological landscape has changed significantly since the Alpheios tools were developed. The success of Google's Chrome browser has led to new architecture and approaches to the development of browser plugins. With the development of node.js and NPM, and bundling and build tools like Bower and Grunt, the options for developing and deploying packaged libraries for javascript applications have also matured. General purpose Javascript application frameworks like Angular provide much of the state and templating functionality for which we previously relied on the browser framework. And with browser adoption of HTML5, CSS3, Web Workers, ES6 and other new technologies, the options for development of client-side functionality have advanced significantly.

These advances offer us an opportunity to consider how to redevelop the Alpheios functionality in such a way that it can serve not only the Alpheios Reading Tools, but also other online reading environments for ancient texts. We can leverage many aspects of the original Alpheios design, particularly its approach to modularization and configuration, as well as its interfaces to supporting services.

We believe the best long-term strategy for Alpheios would be to build a set of core Javascript libraries, that can be distributed as npm and bower packages, to provide reading support services in a mix-and-match approach, depending upon the language and functionality desired. These libraries would interface when needed with hosted services for server-side functionality using standard APIs for access to morphological parsers, annotation stores, lexicons and so forth. Existing services would be used, but in some cases new services may be needed to be developed and service APIs formalized. These libraries could then be used to provide client-side reading support functionality not only as embedded libraries in sites built to use them but also as components in a replacement browser plugin for Alpheios. The plugin code would then be very lightweight and could be customized as needed for specific browsers, but the core functionality would be shared across all browser implementations.

Links and Resources

The source code for the Alpheios Reading Tools is all openly available in our SourceForge repository under a GPLv3 license.

The code is fully documented, and this developer's guide would be the best introduction to the code.