Center for HCI Development Log
This site is an attempt to keep a log of development activities undertaken by CHCI developers across the various projects in the Center. We will start a new page of activities after each development meeting. Please contribute to the log, adding pointers to design work and brief descriptions of implementation work. (Significant changes that are likely to be visible to ROLE users should also be added to the TeacherBridge Software Revisions page.)
Development activities 021212 - now
Design and implementation work:
- 021212 - Concept map: Design work for changes based on first few weeks of classroom use of this tool. [PLI]
- 021216 - Alternate domain name support: Updated docs on configuring Apache and BRIDGE for multiple domain names on the same bridge server. (http://java.cs.vt.edu:8888/MOOsburgDesign/134) [PLI]
- 021217 - CORK database garbage collection: Design notes at http://java.cs.vt.edu:8888/MOOsburgDesign/135. [PLI]
- 021217 - Logout on Web Client: Logout link now appears on text and chat web pages. This was requested by one of the ROLE teachers who is using bridge to coordinate a robotics team between two schools. [PLI]
- Changes to
cork.impl.servlet.CORKServlet, cork.models.chat.ChatServlet, and bridge.apps.text.TextDataServlet.
- 021219 - Asynchronous version loading. Craig's timeline is (or will soon be) the primary interface to objects contained in the
bridge.apps.conf.ProjectWorkspace objects that are being used in the Awareness classroom projects. Loading all old versions can be slow, so bridge.relation.VersionMultiplexer has been updated to load old versions in the background. [PLI]
- 021219 - Workspace configuration. Design notes on workspace configuration issues that have come up in the Awareness activities (http://java.cs.vt.edu:8888/Awareness/29). [PLI]
- 021228 - Deferred JAR loading. Design notes on extensions to support lazy downloading of jar files by the bridge client (http://java.cs.vt.edu:8888/MOOsburgDesign/136). [PLI]
- 021229 - Deferred JAR loading. Initial implementation of support for lazy jar downloading in
bridge.apps.jnlp.JarLoader, bridge.DefaultComponentViewSource, and chci.demo.DemoServer. [PLI]
- 030104 - Relational database support. Added notes for object to support relational database content on web pages, based on request from MCPS Science Superviser for a mechanism to track chemicals that need to be disposed of. (http://java.cs.vt.edu:8888/MOOsburgDesign/137). [PLI]
- 030105 - Map configuration editor. Added minimal notes on issues with the current map configuration UI and proposed revisions. (http://java.cs.vt.edu:8888/MOOsburgDesign/138). [PLI]
- 030111 - Web Editor/Netscape Bug. Added workaround for a Netscape (on Windows only?) bug that will likely appear in other web editor implementations: NS will complain with a "page contains no data" error if the result of posting a form is a redirect back to the posted url. Such redirects are useful because they prevent re-submission of the form if the user clicks the browser's reload button. Adding a bogus parameter (e.g., "?reload=true") to the url solves the problem. (
brige.apps.text.TextDataServlet) [PLI]
- 030112 - Browser cache support. Improving support for browser caching of static data served from the BRIDGE server. [PLI]
- 030118 - Minor UI fixes. More web options for calendar, keyboard shortcuts for object delete and permissions change, support for deleting multiple objects, pre-loading of templates directory to speed up "Add To..." option, option to set templates directory for Workspace and ProjectWorkspace objects. [PLI]
- 030118 - Version History Browser. Added
bridge.relation.VersionBrowser to allow access to version history from the Java client. An option for opening the browser appears in the file menu. [PLI]
- 030123 - Referential Integrity. Updated notes at http://java.cs.vt.edu:8888/MOOsburgDesign/104 [PLI]
- 030125 - Data Table enhancements. Added notes on revisions to data table support at http://java.cs.vt.edu:8888/MOOsburgDesign/140 [PLI]
- 030125 - TimeGraph support. Added tools for generated activity visualizations for data from awareness project video transcripts (e.g., here). Code is in package
edu.vt.chci.logs.timegraph. [PLI]
- 030128 - Navigation controls. Updated design notes for MOO and concept map tools (http://java.cs.vt.edu:8888/MOOsburgDesign/128). [PLI]
- 030129 - Auto-logout on discussion. Added auto-logout feature requested by one of the ROLE teachers. [PLI]
- 030131 - WeatherIcon. Added notes for a "WeatherIcon" component to handle data from weather stations at several of the schools. (http://java.cs.vt.edu:8888/MOOsburgDesign/142). [PLI]
- 030207 - Numerous minor fixes. [PLI]
- Added support for including URL-style arguments in shorthand links, e.g., "*a page?op=edit*". This was motivated by the need for customizing rendering behavior for printing concept maps as needed by students on the awareness project. (http://java.cs.vt.edu:8888/MOOsburgDesign/128)
- Versioning fixes:
- Added "Last modified by ..." blurb at the bottom of each page
- Fixed problem with changes being incorrectly attributed to "guest"
- Fixed problem with version list in full editor Version Browser not being selectable on long version histories. The problem was
cork.models.sharedlist.SharedListModelWrapper firing events in a thread other than the AWT event dispatch thread. This will potentially affect lots of other UI components that use this class. (E.g., the user and object lists)
- Whiteboard fixes:
- Fixed connected text tool
- Fixed problem with recursively embedded whiteboards. Doing this (adding an image of a whiteboard to itself) is still a bad idea, but it should no longer kill the server.
- Added option to render all objects linked to from a whiteboard in the web rendering. This is useful for concept maps, where nodes may have text (or other) object attached to them.
- 030210 - Owner, permissions, and location label. Design notes on proposed revisions to the panel that appears at the bottom of windows in the full editor (http://java.cs.vt.edu:8888/MOOsburgDesign/144). [PLI]
- 030210 - User List Enhancements. Design notes on proposed revisions to the BRIDGE user list classes (http://java.cs.vt.edu:8888/MOOsburgDesign/145) [PLI]
- 030211 - Rendering text as an image. Added support for rendering text objects as type
image/jpeg, e.g., to allow markup on the whitebaord. Modifications to bridge.apps.text.TextDataServlet. [PLI]
- 030212 - Data Table Web Editor. First draft of support for editing data tables from the web. (
bridge.apps.table.SharedMapSpreadsheetModelServlet.) [PLI]
- 030214 - Applet support. Notes on support for embedding applets as interactive content in workspaces, moos, etc... (http://java.cs.vt.edu:8888/MOOsburgDesign/148) [PLI]
- 030215 - Applet support. Initial implementation of a component for embedding applets (
edu.vt.chci.applet) [PLI]
- 030216 - CORK database garbage collection. Initial implementation based on notes described in http://java.cs.vt.edu:8888/MOOsburgDesign/135. Most of the logic is in
bridge.util.GarbageCollector, with changes to chci.demo.DemoServer to start the collector. [PLI]
- 030228 - Explorer UI Enhancements. Switched to sortable JTable-based UI for the BRIDGE object explorer window. Also fixed drag images under OSX, so that the whole list/tree/table no longer appears when an object is dragged. Changes in
chci.util and bridge.apps.web. [PLI]
- 030301 - PNG Encoding. Added
encodeComponentAsPNG(...) methods to cork.impl.servlet.CORKServlet. This is slower than JPEG encoding, but is lossless, can result in smaller files, and supports transparency. [PLI]
- 030303 - File upload feedback. Added progress bar on file upload from the full editor. Changes to
bridge.models.file. [PLI]
- 030305 - Button Editor Design. First draft of design notes for button editing tools. (http://java.cs.vt.edu:8888/MOOsburgDesign/151) [PLI]
- 030305 - Web editor for Formula tool. Formula objects can now be edited from the web. (Changes to
edu.vt.chci.formula.rpn) [PLI]
- 030306 - Calendar web editor. Support for editing calendar objects from the web. [PLI]
- 030307 - Formula support in data table. Data table objects now support formula evaluation. [PLI]
- Uses Java (Math) Expression Parser from http://www.singularsys.com/jep/. Local copy in
/home/java/jep-2.24/jep-2.24.jar on java.cs.vt.edu. build/Config.unix and Makefile.config will need to be updated to include this jar file. (Updated versions of these have been checked into CVS.)
- Minor updates to table design notes at http://java.cs.vt.edu:8888/MOOsburgDesign/140
- Changes to several classes in
bridge.apps.table
- 030307 - Graph renderer. Added simple graph rendering tool based on expression parser classes used in data table. Code is in
edu.vt.chci.formula.graph. [PLI]
- 030308 - More functions for data table. Added additional functions to be used in formulas in the data table object. Added package
bridge.apps.table.function to hold these. [PLI]
- 030308 - Subscribing to BRIDGE calendar objects. Added support for retrieving rfc21445-formatted
text/plain rendering of calendar objects. This allows tools like Apple's iCal to subscribe to bridge calendar objects. In theory this should work for calendaring tools from Netscape and Microsoft. [PLI]
- 030312 - Calendar web editor updates. Fixed browser refresh problems and "silent" error generated if no event name is given when adding a new event from the web editor. (Changes to
bridge.apps.cal.DefaultCalendarViewServlet.) [PLI]
- 030316 - Releasing client-side replicas that are no longer in use. First draft of changes proposed here: http://java.cs.vt.edu:8888/MOOsburgDesign/154. This is preliminary work to support server federation, and will allow clients to indicate when they are no longer using a previously-retrieved object replica. This should significantly reduce bandwidth and memory footprint for some kinds of applications (e.g., MOO-ish apps). The first implementation included changes in a number of CORK and BRIDGE classes, so please report any odd behavior. [PLI]
- 030406 - Server Federation design. Updated notes (http://java.cs.vt.edu:8888/MOOsburgDesign/110). [PLI]
- 030407 - Server thread termination. Fixed problems (in
edu.vt.cs.collab.cork.impl.inet) with server-side threads not being properly terminated when we users are dropped. Apparently under 1.3+ it is necessary to explicitly shutdown input and output on Sockets to ensure that blocked threads are released. [PLI]
- 030414 - "Next generation" CORK server. Posted initial notes on server changes to provide greater scalability (http://java.cs.vt.edu:8888/MOOsburgDesign/158). [PLI]
- 030414 - Server Federation design. Updated notes (http://java.cs.vt.edu:8888/MOOsburgDesign/110). [PLI]
- 030416 - Server Federation. First draft implementation of caching federated server (
edu.vt.cs.collab.cork.impl.inet.CachingServer). [PLI]
- 030416 - Template evaluation options. Adding option to evaluation StandardTemplate header, footer, and sidebar content relative to either the template object or the web site. [PLI]
- 030421 - Concept mapping tool notes. Updated notes at http://java.cs.vt.edu:8888/Awareness/24 to describe options for alleviating select/navigate tool confusion. [PLI]
- 030428 - Map layer configuration. Adding drag-and-drop interface for configuring GIS map data. Code changes in
edu.vt.chci.cove.nav.map and notes at http://java.cs.vt.edu:8888/MOOsburgDesign/138. [PLI]
- 030503 - Integration with VT directory services. Added notes at http://java.cs.vt.edu:8888/MOOsburgDesign/159. [PLI]
- 030504 - Link editor panel. Added first draft of a reusable panel for editing links to drawing figures or map spots. Notes at http://java.cs.vt.edu:8888/MOOsburgDesign/160, code in
bridge.swing.LinkEditorPanel. [PLI]
- 030505 - TOC/Button generator. Updated notes at http://java.cs.vt.edu:8888/MOOsburgDesign/151 [PLI]
- 030510 - ObjectAlbum. Added
bridge.apps.web.ObjectAlbum implementation. This object allows thumbnailed collections of images or other objects to be constructed. [PLI]
- 030510 - Random Object Picker. Added
bridge.apps.web.VariableObjectSet implementation. This supports display of a randomly chosen object from a set. [PLI]
- 030526 - GIS Reference Wrote a quick reference for using ArcView and working with GIS data projections http://java.cs.vt.edu/public/users/wschafer/GISReference [WAS]
- 030531 - Property Editor Field. Added notes on a text field support class (http://java.cs.vt.edu:8888/MOOsburgDesign/162) that would facilitate property editor UIs. [PLI]
- 030617 - Guided Editing. Added notes on a "guided activity" tool suggested by Don S. (http://java.cs.vt.edu:8888/MOOsburgDesign/163). [PLI]
- 030618 - Property Editor Field. Added initial implementation of helper class to support atomic property editing without modal dialogs in
...bridge.swing.PropertyEditorHelper (notes at http://java.cs.vt.edu:8888/MOOsburgDesign/162) [PLI]
- 030701 - Revised Timeline Architecture. Added notes on new architecture for timeline rendering (notes at http://java.cs.vt.edu:8888/Awareness/46) [PLI]
- 030702 - Initial Timeline Implementation. Added initial classes (based on updated design notes at http://java.cs.vt.edu:8888/Awareness/46) for a generic timeline widget. Basic layout, cell rendering, and selection capabilities are in place. [PLI]
To discuss at the next meeting:
Project ideas:
- Better ("real") parser for wiki text, probably based on antlr [PLI]
- https support [PLI]
- bridge-based survey tools, possibly as part of more comprehensive form/database creation tool (http://java.cs.vt.edu:8888/MOOsburgDesign/126) [PLI]
- ftp interface [PLI]
- data import/output design (with JSX)
- additional functions in data table formulas
Farooq's spring 2003 semester work:
- Consider the following analysis of a desktop system (MOOsburg) and its corresponding mobile application (MOOsburg++) - With MOOsburg++, MOOsburg is now accessible anywhere, any time, and on all platforms (provided it supports Java). MOOsburg users collaborating with MOOsburg++ users are not aware that they are interacting from MOOsburg++, and vice versa. This results in both users not knowing each other?s capability in terms of opportunities (how richly can they interact with their devices) and constraints (how is interaction limited by bandwidth, memory, screen resolution, etc) afforded by the underlying devices (handhelds and desktops in this case). We refer to this factor as device capability awareness. Incorporating device capability awareness in these systems has at least two advantages. Firstly, it may lead to awareness cues and further on to useful information. For example, if a MOOsburg user knows that he/she is interacting with a mobile user, the collaboration goal may be reached efficiently, as the MOOsburg user realizes that interaction needs to be kept minimal due to the intricacies involved in using a mobile system. Second, awareness of each other?s device properties may also transpire a discussion between the MOOsburg and MOOsburg++ users (or MOOsburg++ and MOOsburg++ users) of the actual physical location of each of the users. This leads to critical repercussions, perhaps advantageous or not, such as issues concerning privacy.
- This device capability awareness can also be enhanced to awareness of user capabilities. For example, if Jon is collaborating with Betty who is using a modem connection, the interaction may be different if both users know this. We wish to explore how interaction modalities and capabilities affect user collaboration.
- In chatting, people have expectations about how conversations flow. In fact, if I know the typing speed of my collaborator, I know when to expect a message from him when he starts typing. This can be based on the model of MSN IM, where each user is kept aware when the other user is typing a message.
- To design appropriate experiements, simulation environments should be developed to model varying internet connection speeds to the bridge server from the client. This is possible in edu/.../chci/proxy/tcp/adjustablePiper.java
- Typing speed can be acquired as a user types a message. The speed could be updated with a continuous stream of typing, and an average can be calculated.
- Experiments with different form factors is also a possibility.
- The essence of any of these experiments is to investigate the behavioral changes in people with the different information provided to them. A hypothesis needs to be developed by:
- Characterizing the awareness information provided to the users
- Defining the interaction possibilities based on all permutations of awareness information
- Specifying metrics for "efficiency" of interaction possibilities
- Modeling and executing the experiment
- Analyzing the results w.r.t. the defined metrics
[Farooq, 2003/02/05]
Xiao's Spring 2003 semester work
- 030206-Problems in Spot Navigation There are some problems when we use spot to navigate to different files or folders in GIS map navigation. What if the file is renamed/deleted or removed to another directory? The note uploaded at http://java.cs.vt.edu:8888/MOOsburgDesign/147 discusses the problem and possible solutions.
- 030213-Summary of GIS Map Functions is uploaded at http://java.cs.vt.edu:8888/MOOsburgDesign/149 Features such as navigation through spots, history lists are discussed.
- 030308-Progress in Combining Two Navigation Maps.
- From SimpleMOOComponentView, user can select which map to be loaded for navigation, either Concept Map (SharedDrawing object) or GIS map.
- When user navigate based on GIS map, a concept map will get navigation control when the corresponding spot clicked.
- 030310-local version of codes has following conflict with current linc version, current work includes combine two versions.
- DrawingComponentView has been changed.
- New class introduced: NavigableObjectComponentView which support a concept map
- 030312-notes on map navigation design uploaded at http://java.cs.vt.edu:8888/MOOsburgDesign/153 This notes discuss possible solutions of having navigation features for different kinds of maps such as concept map and GIS based map. Software details on GIS functions are discussed.
- 030320-architecture of navigation feature in code design is uploaded at http://java.cs.vt.edu:8888/MOOsburgDesign/156 This note discuss how we add navigation feature to preexist maps. Related classes and their interfaces (methods and variables) are introduced.
- 030401-the note uploaded on 03/20 has been modified at the same URL
- 030402-uploaded note on map initialization for both maps in UI navigation case at http://java.cs.vt.edu:8888/MOOsburgDesign/157 This note discuss important things on initializing and loading different map in UI interface for navigation. Current solution and possible future solution (as we want to have generic interface for different maps) are discussed.
- 030415-updated note that is uploaded on 04/02/03. Following classes are added to the linc: GISMapHelper, DrawingMapHelper. MapComponentView and NavigationControl are modified
- 030417-Map Helper classes are implemented in SimpleMOOComponentView UI for both drawing and GIS maps.
- 030424-Add a feature of setting the navigation map at the beginnning in SimpleMOOComponentView. Now both Concept map and SimpleMoo map has the similar feature.
- 030425-Checked in code for navigation of GIS map. Both UIs support GIS map navigation now.
Xiao's Summer I 2003 semester work
- 030625--Checked in HorizontalViewPanel.java under edu.vt.cs.collab.bridge.swing package, and modified WebSiteExplorer.java class in edu.vt.cs.collab.bridge.apps.web directory. Multicolumn View Feature has been implemented in BRIDGE. BRIDGE users can view file systems with this option which is similar to the multicolumn view in Mac machine. For more information about this implmentation, please check at http://java.cs.vt.edu:8888/MOOsburgDesign/164
Links to old logs:
|