Future Work
From XOCPWiki
Note: This page should be superseded by the Trac system. I've created tickets for the items listed here for the final 1.0 release and linked to the corresponding Trac tickets. This still needs to be done for the future work section.
All new issues, enhancements, tasks, and ideas should be added directly to Trac instead of this page.
aka: wish list, to dos, nice to haves, where are we going
Brian Mayton, Mathias Klous, and I (Kristofer Plunkett) met on June 24th to discuss the current state of Classroom Presenter on the XO. We came up with a list of things that need to be completed to be able to publish a final release of the software. We also brainstormed other areas of potential future work. Here are the results of our discussion:
- Final Release TODOs
- Erase Feature
- Currently the erase button, when clicked, destroys all local ink (not teacher ink if in student mode, not student ink if in teacher mode).
- Currently the 'undo' feature does not bring back erased ink. #4
- Would like to have the erase button be a tool that can be used to destroy ink segments by clicking on them. #5
- Stream Tube Issues
- Stream tubes intermittently don't work, causing the student machines to fail when attempting to download the slide deck. #1
- The OLPC developer community recognizes this issue as of build 703 (the latest stable release). They say that the Read activity, which is the standard example for using stream tubes, doesn't always work when it tries to transmit data over a stream tube.
- This is a critical problem, but is mostly out of our control. We will keep close tabs on the OLPC developer community in hopes that a fix will be found and published.
- Documentation
- Need to make sure the code is well commented. #6
- Debugging code needs to be cleaned up. It was haphazardly included at the developer's whim, and now needs to be intelligently placed so as to provide just the right amount of information when something goes wrong. #6
- Must provide a User Guide. Should be understandable just by looking at the pictures. Don't assume readers know English. #7
- User Interface
- Need to use more intuitive images for the buttons (Submit/Broadcast button should have different images). #8
- User should get some sort of confirmation when a submission is successfully sent. #9
- The "Enter" keyboard button should default to Submit/Broadcast. #3
- The Submit button is supposed to be disabled for a few seconds after being clicked. This is implemented but doesn't always work. #10
- The gamepad buttons should control navigation. This is not critical for final release. #3
- The teacher clicking the Broadcast button while viewing their 'my ink' slide should move the student view from seeing a submission back to 'my ink'. Currently the only way the teacher can do this is to click on that slide in the sidebar. #11
- Bug Tracker
- Need to get a bug tracker (like Bugzilla or Trak) set up so that users and developers can log and keep track of bugs and enhancement requests. (Done.)
- Scalability
- Currently CPXO has only been tested with a max of eight XOs using slide decks of only a few MBs in size.
- To achieve our vision, CPXO should start up and download the slide deck within just a minute or two and then operate smoothly in a shared activity containing dozens of XOs and with fairly large slide decks. This should be achieved over the mesh network, as our goal is to make CPXO usable without any secondary networking infrastructure.
- Since we only have four XOs for development, we will need to find additional XOs to use and/or use virtual machines to simulate larger numbers of machines.
- One idea to improve robustness and performance is to limit the number of simultaneous downloads occurring over a single stream tube while also having each XO that receives a copy of the slide deck in turn share it by adding its own stream tube to the channel. This could prevent the stream tubes issue discussed above and increase performance by using a P2P-like approach to slide deck distribution.
- Stream tubes have no inherent control mechanism for limiting the number of connections they are simultaneously forwarding. Thus we could use a system whereby an XO that wishes to download the slide deck first gets a list of available stream tubes (which it already does) and then asks the owner of a stream tube if it is ok to download the slide deck from that tube. The owner keeps track of how many downloads are occurring and sends yes/no depending on whether a threshold has been reached. If a no is sent, the downloader queries the owners of the other tubes until it finds an available slot. If none are available, it waits a random amount of time (within a range of a few seconds, perhaps) and tries again. This would be repeated until the machine successfully downloads the slide deck. #13
- Multilingual Support
- All strings in the Python-written activities on the XO are in unicode and thus support most character sets. Thus an XO user with a non-English keyboard should be able to type in the CPXO text-box in their native character set. This has NOT been tested. #12
- Wherever possible, English text in the program should be replaced with appropriate images or, where this is not possible, should use words and concepts understandable by the majority of the international community. #2
- GNU gettext would enable the translation of any English words in CPXO. This would rely on the community to provide additional translations but would be easy because CPXO will only contain a small number of English words (and no complicated phrases at all). #2
- Erase Feature
- Future Work
- Obtaining/Creating Content (Slide Decks)
- This is the most critical area of future work. Without a convenient means for creating and/or obtaining content for use with CPXO, the program's usefulness would be severely hindered.
- There are several ideas for providing a means of content creation:
- Plug-ins for OpenOffice and Microsoft Office that allows users to save their work directly as .cpxo files.
- A stand-alone Sugar activity that allows XO users to create .cpxo slide decks. Such a program would allow users to draw content from a variety of sources, including the built-in camera, the web, images on the XO, other activities, etc...
- A feature could be added to CPXO that allows teachers who are running CPXO without sharing it to load a slide deck, place ink on the slides, and click a button that makes the ink become part of the slide deck itself. This would allow teachers to modify pre-existing content or, provided a blank slide deck, to create their own content right in CPXO itself. The feasibility of this idea hinges on the improvement of the ink-drawing interface (see below).
- Implement a stand-alone Win/Mac app that converts a set of filetypes to .cpxo files.
- Provide a web-based conversion tool that allows users to upload files and download .cpxo conversions. This would be limited to XO users with Internet connections.
- Provide a web repository of pre-existing slide decks ready for use.
- None of these ideas provide a silver bullet solution, but in combination they might provide enough content creation functionality to enable the majority of CPXO users to create and/or obtain slide decks.
- Ink Interface
- Our demo at Arbor Heights Elementary School in West Seattle proved what had suspected all along: Drawing ink with the XOs touchpad is difficult at best. This is the biggest usability issue with CPXO. We need to find an easier way for users to draw ink.
- The XO-2 is slated to release to market in 2010 and is supposed to have dual touch screens. This would elevate the ink drawing interface to that of UWCP, whereby users draw ink directly on the screen with a stylus.
- Drivers for the track-pad are maturing. Brian and I discovered that as of the most recent stable build (703) they are included and functioning quite well. Currently the track-pad is calibrated to cover the entire screen, meaning that moving your stylus vertically is very sensitive while moving horizontally is much less so. Still, this interface is a bit awkward because the user still has to guess what part of the track-pad corresponds with the desired point on the actual screen. This may nonetheless prove to be an improved interface over using just the touch-pad.
- Using a mouse is much easier, but requires the extra hardware.
- A text-tool should be added to the ink toolbar, which would allow users to click on a location on the slide and type text-ink onto the slide. This is perhaps the best thing we can do right now to improve the ink interface.
- Multiple Cursors
- The paper Multiple Mice for Computers in Education in Developing Countries talks about a project involving creating Windows programs that allow multiple students to each control their own cursors with their own mouse on the screen. A study conducted suggested that this may improve the educational quality of students in developing regions with high student to computer ratios.
- We pondered the idea of doing the same to the XO so that multiple students can share a single XO while using Classroom Presenter. The XO-1 has three USB ports and any drivers we would need to modify are all open-source.
- Obtaining/Creating Content (Slide Decks)
