Jonathan James Trevor

Architect/researcher/manager/developer/hacker who draws upon a broad research background and a wide range of excellent development skills to create user-centered applications and systems. These range from desktop applications, to web-based applications, to hand-held mobile applications, to drivers for RFID hardware. I address and solve problems at any level of a system, from the human computer interaction and user interface design, to the database schema and security issues. I enjoy pushing the limits of what is technically possible, and creating truly useful tools and applications for people - from those using computers to solve problems they have in their day to day lives, to tech savvy developers.

Education

  • Ph.D. 'Infrastructure Support for CSCW'
    Computing Dept., Lancaster University, U.K.
    (October 1991-February 1995)
  • B.Sc. (Hons) Computer Science (1st Class)
    Lancaster University, U.K.
    (October 1988-June 1991)

Career Summary

Career Highlights

Patents

I have filed a broad range of software and system patents, 43, covering many of the projects above. 10 of these have been issued

Programming, Platforms, Protocols & Markup

  • Primary language expertise:
    Javascript, PHP, .NET/ASP.NET (C#), J2ME, Java, J++, C, Visual Basic, Python, and SQL
  • Other languages:
    Tcl/Tk, VBA, Pascal, Ada, Lisp, Prolog.
  • Platforms and infrastructures:
    YUI, Windows XP/NT4/Windows2000/98/95 (shell, win32 API etc), MS Office API's, SQL Server 2000, X-windows and Motif, X(chi)-kernel, Unix, ISIS distributed system, ANSA testbench
  • Protocols:
    XHR/Ajax, Web Services (SOAP/WSDL), HTTP (all aspects), TCP/IP, DDE, OLE, SMTP, Applets, Servlets, CGI, and WAP
  • Markup languages:
    HTML (including CSS, DHTML etc.), XML (DTD), WML, HDML

Developed Systems

  • October 2008
    Yahoo Query Language (YQL)
    YQL is a web service that allows developers to access, transform, update and mashup any data on the web using a simple SQL-style language. YQL's server-side Javascript enables developers to perform complex data transformation and move their application logic on Yahoos infrastructure and cloud storage. An open plugin architecture enables anyone to create new data sources and run code in YQL and access it globally. An interactive console helps developers interactively explore the data table sources and develop queries.
    Language:Java, Javascript/Rhino
  • February 2007
    Pipes
    Pipes is a service platform for processing well-structured data such as RSS, Atom and RDF feeds in a Web-based visual programming environment. Developers can use Pipes to combine data sources and user input into mashups without having to write code. These mashups, analagous in some ways to Unix pipes, can power badges on personal publishing sites, provide core functionality for existing or new Web applications, or serve as reusable components within the Pipes platform itself
    Language:Javascript, DHTML, PHP
    APIs/Platforms:Ajax, YUI
  • May 2006
    Mixd
    Mixd was a mixed mobile, email and web system that allows users to set up groups and text or share photos within those groups regardless of device or communication method. The system required several session management layers over SMS, email and the web to track and forward messages across different groups without requiring a user to explicitly name the group when replying.
    Language:Javascript, DHTML, PHP
    APIs/Platforms:SMS gateway, Ajax, SMTP
  • April 2006
    Checkmates
    Checkmates prototype is a mobile application for telling your friends where you are and seeing where they are on a scrolling mobile map. You can even use a custom map from inside a building. The application featured a novel 5-way radial/pie menu system which is well suited mobile devices with limited input capabilities.
    Language:Java, PHP
    APIs/Platforms:J2ME, MIDP2.0, Flickr
  • November 2005
    Local Event Browser
    A completely client-side demo of many Yahoo! APIs, created for the launch of the Yahoo! AJAX maps API. The map acts as the center of the experience and your browse movement on the maps viewport determines the events fed into the application. These appear on the map, a detail list, a tag cloud and a calendar - all of which dynamically change as the map is dragged.
    Language:Javascript
    APIs/Platforms:Ajax maps, many Yahoo developer APIs
  • January 2005
    DoKumobility
    DoKumobility is a service-oriented architecture that standardizes access to any type of document source provider and applies a pluggable set of web services to those files. The distributed and loosely- coupled nature of the system lends itself naturally to supporting mobile document-centered work. The end user experience is selecting a document from any source service and applying another service to it. DoKumobility enabled mobile users to manage, print, and share documents no matter where they are.
    Language:C#, .NET
    APIs/Platforms:WSDL
  • May 2003
    AnySpot
    AnySpot provides a web service platform for ubiquitous access to any file and folder and the ability to share them on an ad-hoc basis. The core features are:
    • Rapid access to the current versions of the files you need from anywhere at any time: history tracking allows quick retrieval of recently accessed documents
    • Seamless file and folder sharing without having to move them to special locations: enabling seamless and immediate creation of extra-nets or sharing cached versions of large files on your office machine
    • Integration with existing document services, such as NetPrint and InterFax.
    The system provides numerous methods of access, including a task-based multi-lingual web interface, a phone interface for most web-capable cell phones, and a WebDAV protocol handler to enable remote editing and browsing from applications like MS Office. AnySpot's web services architecture enables pluggable file sources to connect the core mid-tier to any file system (Standalone PCs, Linux/Unix, PC domains etc) while a similarly pluggable security model enables authentication against most common security providers (Radius, LDAP etc), providing single sign on if desired. AnySpot was based on an earlier conceptual prototype (PIPs) and re-architected to a more product-level system supporting a wide variety of real networks and security schemes found in more realistic customer environments. The current version has been released to many groups within Fuji Xerox, and will be integrated into one core FX product and distributed to tens of thousands of customers.
    Language:C#, SQL;
    APIs/Platforms:ASP.NET, .NET, Web-services; MS SQL-Server 2000, PrintMe, NetPrint, InterFax, and Windows Shell
  • June 2002
    Video Guestbook
    FXPAL's Video Guestbook promotes organizational knowledge and awareness of corporate visitors. The capture component of the system includes an agent-based conversational interface running on a touch screen display (to greet visitors), a business card scanner (to capture visitors' details), a video camera (to capture visitors' faces) plus microphone (to capture pronunciation of visitors' names). After visitor data has been captured, a recommender bar in Outlook or Internet Explorer presents matching contact results based on the current content in a manner that does not disrupt their tasks, but which allows them to access contact details with a single interaction.
    Language:ASP, VB6;
    APIs/Platforms:Windows, MS Office, IE/MSHTML
  • April 2002
    SwapDV
    The SwapDV project took an existing set-top PVR/DVR (Replay) and attempted to extend it's capabilities to promote 'community channels', where family and friends could subscribe and download the latest videos of their children and watch them on their set-top box through a peer-2-peer network. The project became FXPAL's first Open Source project which I continued to direct. It attracted several external developers and the software gained over 3000 downloads in just 2 months with 20,000 web hits. The software was featured on several popular technology community web-sites such as slash.org.
    Language:Java;
    APIs/Platforms:Win 2000/XP, Gnutella, ReplayTV
  • March 2001
    PIPs
    The Personal Interaction Points research system combines users' networked resources or 'personal information clouds'ówith device-specific user interfaces for performing common tasks on shared document devices such as projectors, public displays, and multi-function copiers. We developed and compared personal interfaces that are embedded (i.e., integrated or co-located with the shared device) versus portable (i.e., accessible via portable devices such as mobile phones or PDAs). The application integrated with the NT domain security model to seamlessly impersonate a user at a remote device and connect to their desktop resources (by extracting their encrypted password from an RFID card).
    Language:C, HTML, J++, ASP/VB;
    APIs/Platforms:TI RFID, HTTP, COM, Win NT4/2000; APIs: Windows Shell (Thumbnailing)
  • July 2000
    M-Links
    The M-Links system created a real world ubiquitous information system using the most pervasive content, devices, and networks: namely the Web, mobile phones, and mobile phone networks. M-Links used a Java servlet middleware proxy system to process web pages and provide the user with a list of links (and other entities like phone numbers and addresses) from that page which they could dig through in the same way they might dig through folders on their desktop to locate files. When users find a useful link, M-links connects them with a set of appropriate services, analogous to right clicking on a document and using the context menu on a desktop. For instance, a user can navigate to a PDF document link and e-mail the PDF (or URL) to himself for later use at the desktop by selecting the link and applying the e-mail service.
    Language:Java, XML+DTD, WML, HDML, HTML;
    APIs/Platforms:WAP, HTTP, Servlets
  • Nov 1999
    Media Note
    Media Note enabled users of WAP phones, smart pagers (RIM) and Palm devices to access and collaborate over normal documents and web page (via any appropriate device 'to hand') using shared comments t over regions of documents (like paragraphs Word). Comments could be recorded in a wide variety of media (appropriate to the device being used - text, voice, scribbles) which could be transcoded as necessary for rendering to any type of output device. The system allowed user's to dynamically couple and de-couple devices in the environment with themselves (so if the user forgot their cell phone they could use a nearby public phone) as well as plug-in new MIME-MIME transcoders and device profiles.
    Language:Java, XML+DTD, WML, HDML, HTML;
    APIs/Platforms:WAP, HTTP, OLE, COM, Win NT4/2000, Servlets, MS Office, Palm Weblications, Phone.com WAP-alert
  • June 1999
    Abstract CVE library demonstrator
    The demonstrator provided a 3D interactive system for users to enter and display queries on a remote library database. The system employed various novel techniques for navigating and interacting within an abstract data environment and made use of several sorting and force-displacement algorithms to place the results in the environment. The system employed a clustering algorithm to collect 'common' hits together in the space to form 'clouds' and users could define how these clusters are formed based on various criteria weightings. The system was used in several public venues.
    Language:Java, Tcl/tk;
    APIs/Platforms:HTTP and DIVE (a distributed virtual reality platform)
  • March 1999
    Anchored Conversations "Sticky Chat"
    The application allowed chat spaces such as IRC channels and ICQ chats to be loosely attached like Post-It notes to a wide variety of applications, including MS Word, PowerPoint and Internet Explorer. Sticky chats could be moved between applications, or re-attached elsewhere in the document easily. Once a sticky chat is attached to a document, the document can be sent and shared with others within seconds, who may then manipulate and edit the document, and the sticky chats.
    Language:Java, VBA, VB ActiveX control;
    APIs/Platforms:HTTP, Win 95/98/NT4/2000
  • June 1998
    E-scape session services
    A set of services which allow users to easily locate and join on-going collaborative sessions. The services novelty lies in the ability to support the connection to any type of heterogeneous session through a framework of extensible and downloadable plug-in launchers that manage these connections. The services are written as a suite of Java servlets that present HTML interfaces and communicate through a combination of normal HTTP requests and more specific requests which are 'piggy-backed' on the protocol.
    Language:Java;
    APIs/Platforms:HTTP and DIVE (a distributed virtual reality platform
  • June 1998
    Shared Universe Platform
    The platform implements a general model for sharing data and events between heterogeneous applications, with varying network and computational characteristics. The model exploits the notion of a distributed tuple space for communication, provided in the platform by the ëLimbo2' tuple space implementation. The model supports different models of collaborative session to be concurrently applied to the shared space.
    Language:Java;
    APIs/Platforms:A local Tuple Space based distributed system and DIVE
  • Nov 1997
    Scene graph semantic editor
    A Tcl/Tk based interface using a 'Lego' approach to allow end-users to add complex semantic behaviors to VR-scenes. Users draw lines between externalized application variables and define additional constraints to constrain, link and modify the standard behaviors of the initial starting 'blocks'.
    Language:Tcl/Tk;
    APIs/Platforms:VRML, distributed systems and Dive
  • Mar 1995
    BSCW system
    The BSCW (Basic Support for Cooperative Work) system provided a desktop-like metaphor to allow users to upload, browse and download shared files on a remote BSCW server. In addition, the BSCW system provided other services such as message forums, calendars, group-based access control and workspaces. The server was written exclusively using Python CGI scripts and incorporated most aspects of the HTML and HTTP standards (Basic authentication, Mime-Multipart encoding, conditional GET etc.). Adhering to standards and using a web browser as the client enabled the BSCW system to be easily deployed and had over 10000 registered users when it won the European Software Innovation Prize in 1996.
    Language:Python (CGI);
    APIs/Platforms:HTTP, NT4, and UNIX
  • Jan 1996
    Drag'n'Drop uploader
    A client-side add-on to the BSCW system used a combination of Visual Basic and DDE to detect files being dragged into a web browser, which would subsequently be transferred to the BSCW server using the Mime multipart standard for encoding.
    Language:Visual Basic;
    APIs/Platforms:HTTP, NT4/95
  • Aug 1994
    Ariadne system
    The system recorded a user's interaction with a variety of on-line library catalogues which where subsequently reconstructed and displayed using an X-windows interface and a set of web pages. The captured record of activity can be used to enable librarians and even the program itself to identify problems with the search strategies employed by the user.
    Language:C;
    APIs/Platforms:X-Motif, UNIX
  • Mar 1992
    COLA platform
    The COLA (Cooperating Objects for Lightweight Activities) platform implemented a model of cooperation which focused on the mechanisms for sharing objects within cooperative activities rather than the policies which govern how those mechanisms are employed. The model consisted of four elements: activities, roles, events and shared objects. The COLA platform provided mechanisms and several Interface Description Languages (IDLs) to manipulate and describe these elements, and provided a novel 'object adaption' mechanism which supplied a level of indirection between object interfaces and object users.
    Language:C, Yacc/Lex;
    APIs/Platforms:ISIS distributed system, X-Motif

Previous Employment

  • Senior Research Scientist and Group Manager
    FX Palo Alto Laboratory, Palo Alto, CA, U.S.A.
    (November 1999-August 2005)

    I managed the Applications of Web Services group and a central theme to my research and the groups was to consider how technologies, mobile or embedded, can enable people to access and use the right resources at the right time. Other areas of interest and expertise include:

    • The provision of user-interfaces to enabling users to manipulate and browse large amounts of content on impoverished devices (like mobile phones).
    • Mechanisms and infrastructures for converting and representing real-world documents and media on a wide variety of devices with very different capabilities.
    • Supporting ad-hoc or impromptu collaboration between people, both at or away from their everyday work environments, and the issues of access and data sharing between heterogeneous applications and systems.

    While at FXPAL I was part of the intellectual property review panel and produced over 20 Inventions, 29 Technical Reports and 9 Software Transfers.

  • Site Manager
    Computing Dept., Lancaster University, U.K.
    (Mar.1997-Oct. 1999)

    Site manager for a European Esprit funded project "eSCAPE: Electronic Landscapes" (project #25377). I was responsible for both coordinating local site research activities and the development of concept demonstrators in my role as site manager. The eSCAPE project investigated the exploration and development of the concept of an 'electronic landscape' as a virtual environment that provides interconnections to other virtual environments. A number of themes were central to my research in this project, including:

    • the provision of user-interfaces to enabling novice users to build semantically rich, complex and persistent worlds;
    • developing mechanisms and infrastructures to support large or infinite virtual landscapes, including the use of active pre-caching strategies and semantic culling algorithms to provide seamless boundaries;
    • supporting cooperation and data sharing between heterogeneous applications and systems through the use of tuple spaces;
    • providing generic and extensible session management facilities to allow the location and launching of cooperative applications through supporting services on the World-Wide Web.

    In addition to driving my own research agenda as site manager I was responsible for the development of a coherent site wide research strategy, and coordinating the activities of those involved in the research, to ensure that the aims and objectives of the research are met. This includes the development of new research initiatives, planning how best to resource different areas of research and general responsibility for Lancaster's commitments in the project.

  • Research Fellow
    GMD (German National Research Centre for Computer Science), Bonn, Germany
    (March 1995-Feb. 1997)

    Research fellow at the GMD FIT.CSCW research institute, employed under the European Commission Human Capital Mobility Program. My work focused on investigating the potential and pitfalls of the World Wide Web for supporting group work and CSCW within the framework of the BSCW (Basic Support for Cooperative Work) project (partially funded under contract TE2003 of the Telematics Application Program). Working initially in a three and then nine-member team I was heavily involved in the development and deployment of the BSCW system and jointly responsible for the research strand of the project. The BSCW system provides cross platform collaborative information sharing on the WWW using a file manager metaphor with discussion forums, activity awareness, and member administration. A number of themes were investigated during this period at GMD, including:

    • Exploring the limits of the current WWW architecture and standards
    • Investigating the advantages and disadvantages of the WWW for the deployment of applications, especially CSCW applications.
    • Extending the WWW to better support awareness and synchronous communication
    • Defining and managing of groups in a collaborative system

    The BSCW system was awarded the first prize in the European Software Innovation Award (ESIP96) competition in December 1996.

  • Research Assistant
    Computing Dept., Lancaster University, U.K.
    (Aug. 1994-Feb. 1995)

    Research Assistant for the Ariadne Project. While completing my Ph.D. I developed parts of the Ariadne system. The Ariadne project, funded by the HEFCs JISC New Technologies Initiative, concentrates on two novel areas of computer based support for information retrieval: visualization of the search process and collaborative browsing. The system aimed to observe, record and analyze the collaborative learning process and to enhance the opportunities and effectiveness of the collaborative learning that already occurs. It provides this using transparent data capture of a user's database session, followed by an enhanced playback of the session.

  • Postgraduate
    Computing Dept., Lancaster University, U.K.
    (Oct. 1991-February 1995)

    PhD. thesis on "Infrastructural Support for CSCW". The thesis investigates the problems with existing support for CSCW applications and services at both the distributed system level and the more purpose built cooperative environments. The thesis presents a more 'lightweight' and policy free model to supporting CSCW, called COLA. This model has been developed and realized on top of the ISIS distributed systems toolkit and its services are usable through several X-windows browsers and a variety of libraries. A number of research themes were explored by the thesis, including:

    • Finding the requirements for basic technical support for CSCW applications and services.
    • Facilitating an awareness of information and actions within cooperative environments.
    • Extracting the useful aspects and features of Distributed systems and Object models to support sharing.
    • Investigating the relationship between shared user interfaces and more fundamental support for CSCW.
    • Using a separation of cooperative semantics from the supporting mechanisms which those semantics drive to support a wide-variety of possible CSCW applications.
    • Extracting the shortcomings of existing CSCW application models to construct a generic platform for supporting cooperative applications.

    During the Ph.D., time was spent at British Telecom. Labs, Martlesham, where the COLA model was applied to a Quality Assurance Process (Summer 1992) and in a spatial (VR) setting (Summer 1993). The COLA model benefited in its development from participation in the COMIC Esprit Basic Research Project (6225). The COMIC project examined many different facets of CSCW, from ethnographic studies of the real-world cooperative work to how CSCW applications can be technically supported (e.g. the COLA platform).

Reviewing and Professional activities

  • Conference chairs/committees:
    ECSCW'97 poster chair, CVE2000 workshop chair, CSCW2000 program committee, CVE 2002 program committee, Web3D program committee, CSCW'2002 associate chair, CSCW'04 Demonstrations co-chair, WWW'05 Applications track vice-chair.
  • Conference reviewing:
    ECSCW'93, CSCW'94, WWW (1996), CSCW'98, CSCW'00, UIST'00, CVE2000, UIST'02, COOP'02, WWW'04 (applications track)
  • Journal reviewing:
    CSCW Journal, ACM Transactions on Human Computer Interaction and Distributed Systems Engineering Journal.
  • Other:
    Currently serve on Editorial board and reviewed for International Journal of CSCW, Project proposal reviewer for NSERC (Canadian Science Council), NSF reviewer, Conversant on Doctorial Colloquium (UbiComp 2003).

Seminars, Presentations and panels

I have given a wide range of invited seminars and technical presentations of my work over the last ten years both within academic and industrial environments. A selection includes:

Publications

I have always been involved in research as part of a research team and have worked closely with others in the development and presentation of research ideas. The publications listed here reflect this team orientation by having multiple authors, favoring CSCW/Web and more recently Mobile/UbiComp conferences and journals.

Journal and Magazine Articles

Conference Papers