Jeffrey Harrington http://jeffharrington.org (239)-472-6472 jeff@parnasse.com Sanibel, Florida 33957 OBJECTIVE ---------------------------------------------------------------------------------------------------- To continue to design and program useful cutting edge rich multimedia applications that will benefit society. EXPERIENCE ---------------------------------------------------------------------------------------------------- January 2008-PresentFreelance, Clients include Social Media Today. Sanibel, FL Position/Title - ActionScript 3 Programmer - MySQL/PHP Programmer June 1997 - January 2008eSchool Online - A Division of Harcourt Connected Learning acquired from OpenTV which was acquired from ACTV, Inc. New York, NY Harcourt Connected Learning solution connects educators in an innovative way to the student data, assessments, and instructional resources they need daily. Position/Title - Senior Programmer for eSchool - Lead Flash Programmer - Lead Java Programmer - Lead developer and architect for eSchool versions 2.0 to 4.1, a browser-based video enhancing educational product utilizing web, CDROM, and streaming video delivery. eSchool 4.0 utilizes an Ajax approach that we invented in 2000 using hidden frame sets and XML blocks to seamlessly replace DIVs with new content. Sole developer for eSchool 2.0, eSchool 3.0 and eSchool 3.1 client-side playback and authoring. Wrote Javascript controlled-video players using Flash, Real, Windows Media, Java Media Framework and Quicktime. - Lead developer and architect for the Flash Media Server eSchool streaming application. - Developed custom Flash Actionscript libraries for utilization by content producers for streaming audio, state-based Flash data persistence and streaming video. Led library development after discussion and analysis of workflow needs. - Developed stand-alone eSchool client application and integrated it into a Blackboard/SCORM system. - Developed eSchool Content Building Block for integration into Blackboard. - Developed system for dynamically authoring text into Flash content from within the eSchool authoring environment using the Kinesis Flash compiler. Decompiled Flash into XML and after modifying text recompiled the Flash before compiling it back into the eSchool playlist. Led the developmental effort around analyzed eSchool workflow needs. - Lead Developer for HyperTV's eSchool/HyperTV Authoring. The authoring system uses Java Web Start and the Thinlet Java GUI system to allow internal users to create eSchool synchronized content. - Lead Client-Side programmer for HyperTV, a 2 box interactive TV application. Inventor and chief architect of HyperTV 3.0 client-side all-Flash system. - Technical Production Manager and Lead Programmer for 600+ hours of HyperTV events, including Box Fusion (a 24/7 data-driven music video webcast delivering convergent web/Flash push content since October 1, 1999), 15 Days of Bond (200+ hours of TBS convergent programming), One Love - Bob Marley Celebration (6 hours of webcasts). Coordinated and scheduled content production, synchronized with live television control rooms for realtime broadcast. - Various developmental projects using Swing API and Thinlet API, chat client and server design, general GUI design and analysis, multimedia API's, Real, Windows Media Player, Quicktime client software integrated with DHTML and Javascript. - Developed Perl programs to generate Excel spreadsheets from CSV databases with the DBD module, walk and parse web sites with the module Mechanize and various parsing modules for content analysis, and to slurp content for re-deployment. - Received US Patent 6,513,069, sharing inventor credit, January 28, 2003 - Enhanced video programming system and method for providing a distributed community network - Received US Patent 7,120,871 as sole inventor - Enhanced video programming system and method utilizing a web page staging area. - Five further interactive TV and web application patents applied for, through ACTV; 2 patents with Harrington as sole inventor. - Abato, M., Ullman, C. D.., Harrington, J. M. & Duda, C. R. 1999 Enhanced video programming system and method using a local host for network communication. US-pending & EU-00311131.7-2202. - Abato, M., Ullman, C. D.., Harrington, J. M. & Duda, C. R. 1999 Enhanced video programming system and method utilizing user profile information. US-pending, EU-00308630.3-2202 & EU-00308415.9-2202. - Abato, M., Ullman, C. D.., Harrington, J. M. & Duda, C. R. 1999 Enhanced video programming apparatus and method providing a shared whiteboard. US-pending & EU-00308709.5-2202. - Harrington, J. M , 2001 System and Process for incorporating, retrieving and displaying an enhanced flash movie. US-pending - Harrington, J. M , 2001 System and Process for controlling flash movies through a remote server. US-pending October 1, 1995 - June 1997Children's Television Workshop New York, NY Children's Television Workshop Interactive Division Position/Title - Developed, designed and implemented a Java Castanet Channel for CTW which is a multi-page sticker story book with rich sound and pixel-accurate click and carry detection on layered offscreen-buffered graphics. - Developed and programmed a Java application for aiding in the production of Java Coloring Books with menus, dialog windows, and palette selection. The program outputs HTML which drives the CTW series of electronic coloring books. - Developed and programmed a Java application for producing multi-page JavaScript-enhanced HTML stories. The program outputs HTML, JavaScript and Microsoft VBScript and includes JavaScript browser-type detection for selecting the appropriate scripting function. A proprietary scripting language (based around HTML) drives the program. - Developed, designed and implemented a Java Castanet Channel for CTW which is an electronic coloring book with weekly picture updates. Selected as Channel of the Week by Marimba, Inc., January 27, 1997. - Developed and programmed (sole developer) a proprietary Java educational multimedia system with multi-threaded double-buffered moving animation and background loading of additional activities. The system uses a class library of 'game objects' and 'loader objects' that know how to load and pre-process their audio and graphics in the background. Selected as a Cool Applet by Gamelan. The suite of games includes a pop-up alphabet book with multiple animations, a click and carry puzzle with a payoff animation, a click and carry sticker book activity and an electronic coloring book. - Member of programming team responsible for award-winning CDROM educational games using C++ and a proprietary object-oriented scripting language. Programming credits on three titles distributed by Electronic Arts: Get Set to Learn!, Elmo's Building Blocks, Search and Learn Mystery - Implemented debugging facilities and added new verbs to proprietary multimedia scripting language by using Borland C++. Wrote scripts in Perl for the purpose of enhancing the conversion of PICT graphics to a proprietary animation format. December 1994 -September 9, 1995American Music Center New York, NY The American Music Center is a national service organization and information center dedicated to building a national community for new American Music. Position/Title - Configuration and maintenance of a suite of over 4500 pages of text and HTML on the Web. Responsibilities include HTML programming and graphic design, configuration and programming of PC databases, custom Perl and basic Unix shell programming, development of CGI forms (with Perl scripts) for credit card purchases and a real-time guestbook. Development of an on-line Unix database in Perl with searches producing HTML output. Use of Perl and Unix scripts to create tracking reports for each WWW visit for enhancement of internal page links. - Produced a complete Internet presence on the World Wide Web for the American Music Center by posting in Internet news groups and procuring links to our WWW site. - Developed an on-line system to produce and display listings of composer's works by writing short programs in C to write programs in dBase. - In-house database programming and modification in dBase. Produced a series of programs to find errors in the dBase database using C to create lists of unique data with statistical output. November 1988- December 1994Choice In Dying New York, NY Not for profit organization addressing the needs of the terminally ill. Position/Title - Computer Programmer, Network Supervisor - 1994 - Participated as the local support person in the configuration of a WAN database project with Dickinson Partners, Inc. using MS Access as a front-end to a SQL server. Configured and trouble-shooted WAN protocols involving conflicts between ODBC and local configuration of Windows 3.1. Installed and configured Access software for data entry staff and trained staff in use of the new system. - 1994 - Began implementation of Choice In Dying WWW Home Page, a hypertext document on the Internet advertising Choice in Dying services and information. - 1994 - Participated in the migration of Novell 3.11 file server to a larger and faster system. Helped trouble-shoot software configuration problems with Horizon Technologies of NY, Inc. - 1994 - Functioned on task force to recommend revisions to the Access database software mentioned above. - 1994 - Developed in-house training manual and trained staff on the use of the Internet. Training included basic information on use of Unix text editors, pico and e, and use of mailers, elm and news reader, tin, introductory use of Unix. - 1994 - Conceived and chaired staff task force to implement a complete on-line BBS system for Choice in Dying using Maximus software. System runs on a 486 with a 14400 baud modem. Managed BBS as system operator, configuring message base and email protocols; simplifying menus. Answered questions from the public on how to access the BBS. Trained staff on use of the BBS. - 1994 - Implemented a database and produced reports using Paradox for analysis of a survey mailed to emergency medical technicians. - 1994 - Conceived and implemented a program in C to transform Medline database search output into sorted text in standard bibliographical format. - 1994 - Used and configured Easistat (a statistical software package) to analyze a Choice In Dying membership survey. Wrote program in C to take Easistat text output and transform it into sorted state by state frequency analyses. - 1993 - Began preliminary work on an expert system/hypertext project for Choice In Dying to be called My Life, as computer project supervisor and programmer. System would have allowed professionals or laypeople to develop a values history utilizing an interactive hypertext front end to an expert system that would pinpoint logical inconsistencies in the user's responses to questions about end of life medical treatment preferences. Was to be written in the PDC Prolog language for use on IBM PC's running MS-DOS. Project never completed due to non-receipt of necessary grant funding. - 1993-1994 - Established dial-up Internet connection for Choice In Dying. Performed staff training on accessing Internet email. Began presence on Internet news groups, sci.med, misc.emerg.services, misc.legal, posting the availability of Choice In Dying services and responding to daily email. Subscribed to BioEthics-L mailing lists and participated on list as a Choice In Dying representative. - 1992-1994 - Continuing database development, maintenance and report preparation with Paradox and dBase databases for public relations staff and Choice In Dying Living Will Registry. - 1992 - Conceived and supervised a project to transfer library of legal publications from a Ready, Set, Go! DTP format to ASCII format for out-sourcing of printing and mail-handling. - 1990-1994 - Developed database for books and periodicals in Choice In Dying library and prepared reports about the book collection using dBase. - 1990-91- Numerous database and report programs for a Wang computer system as part of duties of computer programmer at Choice In Dying written in Wang Basic. Reports were for determining fund-raising program effectiveness and accessed a 1 million record database in a proprietary format. Helped establish inventory program for the Wang database for tracking of publication sales by Choice In Dying - also written in Wang Basic. - 1989 - Rescued a Choice In Dying corrupt membership database (approximately 10,000 records) in a proprietary format (RAISE) and converted database into a dBase appropriate format. Used scripting language for file translation into an ASCII format for export into dBase. November 1987- PresentPersonal Programming Projects New York, NY Position/Title - 2005: Developed cacophonous.org, a new music blog using Perl to drive MovableType templates which dynamically scrape a Del.icio.us tag-feed and a database of RSS feeds and podcasts to produce new music playlists. Developed the New Music reBlog a new music meta-blog which utilizes third party reblogging software with customized Movable Type XML-RPC calls to post blog entries periodically triggered by a Perl script and cron job. - 2004: Web/Wiki guru for Sequenza21 - a new music portal. - 2003: Developed beepSNORT, a new music blog using MovableType templates. Programmed two RSS news feed generators with Perl, one to access the database of NetNewMusic and one to 'scrape' a third party news site. The programs run every 4 hours and create RRS version .91 news feed. The NetNewMusic RSS news feed is featured as a music news source at several prominent news aggregators. - 2002: Developed two online music portals, The Classical MP3 Portal and NetNewMusic using PHP and MySQL and the portal software PostNuke. The Classical MP3 Portal current receives between 3500 and 1500 unique visits a day. - 2001: Ported contrapuntal expert system (see below) to Java using the Java 2 MIDI file extensions. Programmed a series of WebL bots for walking MP3.COM referring musician pages for analysis of 'like-minded' artists. - 2000: DX7 Patch File Translator and 2,000 Csound orchestras are featured in book published by MIT Press, 'Using Csound' by Richard Boulanger. - 1998: Featured in Id Design magazine (a high profile magazine for visual designers) for VRML design for the world, Pagan: Floating World, a combination of virtual 3D architecture and music. - 1997: Programmed a Web 'Bot' in C++ for Windows 3.1/95. The program accesses WWW graphics databases, queries the database with a user-selectable topic, parses the output and sends a series of requests over the Internet for .gif and.jpg files. (The user can input 'Bill+Gates' and see a series of pictures of Bill Gates from around the Internet). The program uses WinSock 1.1 and Windows graphics procedures in C++ to get and display the graphics. Written for sale on the WWW (release date late 1997). Programmed a Castanet Channel for the Virtual Museum, Net in Arcadia using Bongo. - 1996: Programmed a series of VRML worlds: VRML Worlds of Jeff Harrington. Developed a Virtual Harmonium (A VRML 2.0 musical instrument) was selected as VRML Site of the Month by Virtus Corp. It was a finalist in the SGI VRML Excellence Awards and has been featured at the SGI VRML 2.0 Gallery since December 15. It is currently being downloaded 300-600 times a day. Picked as Cool Site of the Day - Iso-Topically Cool March 6, 1997. Programmed a series of 12 shareware Screen Savers with Borland C++ for distribution on the WWW using the graphics of the Net in Arcadia WWW site. Programmed custom screen savers for Children's Television Workshop and for the Girls Who Eat Ribs WWW site. The screen savers employ novel video-like blitting effects, including zooming, and rapid image transformations. Over 800,000 downloads of the Net in Arcadia screen savers. Developed a DX7->Csound patch bank converter using Gnu C++ in Linux. To be published on CDROM for the book Using Csound by Richard Boulanger (MIT Press 1997). Csound is a music language which compiles to digital audio files. - 1995: Became moderator of the Usenet newsgroup, comp.music.research. Development and maintenance of a WWW virtual museum, Net in Arcadia. Selected as Cool Site of the Day, May 11, 1995, Spider's Pick, May 13, 1995, Seeress of the Web, May 17, 1995. Picked by Webaholics as one of the Legendary 50 WWW Sites in the World, featured in the book One Thousand Really Cool WWW Sites. Net in Arcadia currently receives 1,000 visits a day. Establishment of a personal Internet domain: parnasse.com. Programmed an interactive Perl Game, Dr. Wilhelm Werner Webowitz, (simulates an interactive psychiatrist modeled after the classic Eliza program). Selected as Deep/Unusual Site of the Day and Funky Site of the Day (British Cool Site) September 18, 1995. It is currently being featured in AI teaching courses around the world. - 1994: Added 5 and 6 voice capability to the expert system, CPS. Modified it for diatonic music; optimized it by replacing all array references with pointer references. Ported it to the Gnu C++ Compiler for future modifications and GCC code optimizations. - 1993: Wrote AreaCode, a shareware DOS utility which displays the city(s) for each area code. Modified a public domain listing of area codes using Icon for use with compiled Prolog. - 1992: Created a genetic algorithm front end (in C) to CPS for utilization of simulated-annealing processes to drive the input of the expert system. A random set of solutions to a contrapuntal problem are given a genetic sequence. As solutions to the problem are approached (as determined by CPS) these sequences are allowed to produce variants of themselves through genetic crossover and mutation processes. - 1991: Programmed CPS - expert system (in Lattice C) for the composition of music. CPS takes as its input, music files which are interpreted as numerical information. These sets of pitches and rhythms are transposed and delayed to discover combinations of delay and transposition which meet the requirements of the rule base. Written in the C programming language, approximately 1200 lines of code. Input and output uses Deluxe Music Construction Set files in a multi-tasking environment so that the expert system's files can be sampled in real-time while more contrapuntal solutions are being found. - 1990: Began distribution of personal musical compositions over the Internet as MIDI files and PostScript scores. FTP site: ftp.gmd.de music/scores/harrington. Since 1990 this has led to performances in Moscow, New Zealand, Germany, Siberia and the US. - 1989: Created and distributed a suite of 3 real-time computer video improvisations to accompany personal electronic music compositions using the Amiga personal computer and customized graphic software. - 1988: Programmed MT32ED - sound module editing program for the Amiga. Utilizes MIDI protocol to allow editing of the external MT32 synthesizer. Shareware Amiga utility program. Written in the C programming language, approximately 900 lines of C code. Interface created with the help of a 4GL GUI programming front end system. Transmitted and received information with real-time RS-232 protocols as part of the MIDI standard. Saves synthesizer configurations in a binary format, uses Amiga printer device drivers to make printouts of the synthesizer configurations. - 1987-88: Programmed WonderSound - a user-friendly sound synthesis program for the Amiga with graphics screens, menus, two windows. Allows user to create sound files for later playback through the Amiga audio system (used Amiga specific audio device drivers). Distributed by JumpDisk Software, Inc. Written in the Lattice C programming language, approximately 1500 lines of code; employs advanced signal processing algorithms. User controls program with mouse-based gadgets and menus; saves waveforms in a universal binary audio file format for use in third-party Amiga music programs. SKILLS, TECHNOLOGIES & PROJECTS ---------------------------------------------------------------------------------------------------- - Java - Perl - Flash/Actionscript 2.0/Actionscript 3.0/Kinesis/Flex - Javascript - XML/XSLT/XPath/XML-RPC/ - Ajax/LiveConnect - PHP - SQL/MySQL/Oracle/MSSQL - HTML/CSS/DOM - Digital Video/Interactive TV - Blackboard - Multimedia Workflow Analysis - C++ - Windows - Unix/Linux/Cygwin - Mac OS X EDUCATION & INTERESTS ---------------------------------------------------------------------------------------------------- - 1986-1988 TULANE UNIVERSITY, New Orleans, M.F.A. in Music Composition - 1978-79 JUILLIARD SCHOOL, New York, Masters Program in Music Composition - 1974-78 LOUISIANA STATE UNIVERSITY, Baton Rouge, B.F.A. in Music Composition, Minor in Computer Science (studies in Fortran, programming work in MUSIC VB a Fortran-based music software language) References available upon request.