The following is an account of the improvements made to Diogenes from version to version, in reverse chronological order, excluding straightforward bug-fixes.
Version 3.1
September 2007
-
Thanks to the Perseus Project, Diogenes now comes equipped with morphological data on all of the words in the TLG/PHI disks and with the LSJ Greek and Lewis-Short Latin dictionaries. It comes with an English dictionary, too, to make those dictionaries more accessible to non-native speakers of English. As a result of including all this data, the size of the download has increased enormously.
-
Instead of linking to the Perseus web-page, clicking on Greek and Latin words now sends an AJAX request to Diogenes which inserts the analysis and definition into the margin of the page. Not only are the words in the databases clickable, so too are the words in the dictionary definitions: click on any Latin, Greek or English word to get its definition. Click on citations in the definition to jump to the context.
-
Before distributing Diogenes, the Perseus analysis tool called Morpheus is run over the corpora, and the lemmata are matched up with dictionary definitions. The AJAX server script does a binary search on this list of analyses when a word is clicked. To enable morphological searching, an inverted list, with lemmata mapped to inflected forms, is also shipped with Diogenes.
-
Unicode developments: Unicode input was added and made the default. Utf-8 output now prefers the basic Greek codepage where the extended codepage duplicates it. On the Mac, utf-8 additionally defaults to decomposed characters. Many Unicode equivalents were added from the TLG beta code manual.
-
Upgraded to Xulrunner 1.9a8pre (pre-release codebase of Firefox 3), which fixes many Mac UI bugs. This means that the minimum requirement for the Mac is now version 10.4 of OS X.
Version 3.0
June 2007
-
The graphical interface is now based on the Mozilla (Firefox) platform. A custom browser, implemented in XUL and Javascript, communicates with a local Perl server which it starts and stops and which provides the content. For the most part, the same code is used for all three major platforms, enormously easing maintenance and release management. Diogenes is now bundled with Xulrunner for each platform, and releases for all platforms can be made on a single (Linux) machine.
-
The improvements made in version 2.1 (see below) are released to the public for the first time. The code for handling user-defined corpora is rewritten to make the user interface more intuitive.
-
In networked mode, the server allows individual users to have their own settings profiles, via cookies.
Version 2.1
Summer 2006
-
The monolithic Perl module Diogenes.pm is refactored into smaller modules to ease maintenance.
-
The CGI script constituting the web interface is rewritten to be much more maintainable and to ease the adding of new features. The code to generate PDFs and GIFs via LaTeX is removed, as this was a stopgap measure dating to a time when few browsers could display polytonic Greek, and the code complicated the interface enormously. LaTeX output can still be generated from the command-line.
-
New features added to the web interface: user-defined corpora, continuous marginal line-numbering in the browser, the browser shows context before as well as after the desired point.
-
Unfortunately, this version was never released to the public, for I ran out of time at the end of the summer, and the extremely complex, platform-specific code introduced in version 2.0 made making a release a big hassle. This was a primary motivation behind finding a different solution, which led to adopting the Mozilla platform in 3.0.
Version 2.0
Summer 2006
-
An experiment in packaging Diogenes in such a way that it would be easier for non-technical users to install it. The idea was to provide a dedicated browser that started up the Perl server behind the scenes, without user intervention. The problem was that this was implemented differently on different platforms: in Objective-C using the WebKit framework in OS X, and in Visual Basic, using the .NET framework on Windows. The result was buggy and hard to maintain, with fragile dependencies. The presence of binary code for two foreign platforms made it hard for a single developer to manage a release.
-
A native installer was provided for Windows, and a simple application bundle for OS X.
Versions 1.4.0 to 1.4.3
Summer 2005
-
Included a CPAN directory with all Perl modules not included with core Perl. Originally intended to ease installation on OS X, also helps to protect against random changes, such as when CGI.pm suddenly started to use multipart forms by default.
Versions 1.3 to 1.3.4
Summer 2004
-
Started using Darcs for revision control.
Versions 1.0 to 1.1
2002
-
More or less feature complete with respect to browsing and searching the databases, so Version 1.0 is declared. Biggest remaining problem is that client/server architecture makes it difficult for non-technical users to understand and install.
Versions 0.9 to 0.93
2001/2
-
Added links to Perseus morphological tools, Coptic support.
-
Added jump to browser in context of search results.
-
Wrote a dedicated HTTP server instead of using Apache to run the web interface. This leads to Diogenes being usable on Windows.
-
I was sent documentation on PHI file formats, and on that basis, I fixed the browser to take advantage of block-end citation info in .idt files. Ironically, this did not speed it up.
-
Added Setup script and lots of Greek encodings.
Version 0.7 to 0.8
Summer 2000
-
Added general-purpose mechanism for defining user-defined Greek encodings, including UTF-8, WinGreek, etc. output.
-
Major redesign of module (inheritance, documentation). Added: multiple patterns, select_authors, support for the DDP and inscriptions disk. Removed legacy code derived from latex2html and changed license to GPL. Made web interface work with mod_perl.
Versions 0.1 to 0.5
Summer to Autumn 1999-
CGI script written and latex/gif output added (since few browsers then supported Unicode). Improvements to the text browser. First public distribution.
-
TLG word list parsing and searching added. Imperfect text browser added.
-
Module and command-line script separated. Automatic generation of regular expressions and transliteration of Greek from Perseus format added.
-
A number of various ad hoc Perl scripts for doing brute force Latin searches put together in one script; support for Greek added.