Moseycode Release Notes 0.2.1

Moseycode is an experimental new barcode system for handheld devices. It provides an interactive bridge between the physical and digital worlds.

This release is primarily targeted at Android developers who are interested in adopting Moseycode for use in their own application.

This software is being released for evaluation purposes only. There is no warranty for the program, to the extent permitted by applicable law.

Release Date
May 20th 2008
Please see the changelog
Android SDK m5-rc15 and a webcam for interactive use
Please read the installation instructions
Known Issues
  • Tilt control for the purpose of selecting contact details exhibits poor accuracy.
  • In landscape mode, it is not possible to move focus to the "Apply Settings" button without physically clicking on the button.
  • Publishing related activities have not been adapted to landscape mode.
  • The application may briefly exhibit some confusion between a barcode that has just been scanned and a new barcode. This is because the data for some of the demonstration barcodes differ by only one or two bits. In normal operation, the probability of this occuring is extremely low.
  • Though downloads are properly managed, no firm limits are yet placed on disk usage or, more importantly, on download sizes and memory usage. As a result, OutOfMemory errors are possible that will kill the application.
  • Barcodes that link to documents on the web do not display the URL that they will open, unless they have a title; in general, there is no indication (at present) of the flavour of barcode being viewed.
  • At present, the Moseycode server does not modify chamber documents to insert the known creation and last-modified dates. This means that the dates reported by the barcode may differ from those given in the publishing activities.
  • Links in the About activity cannot be activated because TextViews do not seem to honour click events and there is no way to style 'Linkified' text.
  • Menu items in the History activity do not become disabled when irrelevant.
  • There is no confirmation when selecting "Clear History" from the History activity menu.
  • No attempt is made to constrain the amount of storage used for preview images.
  • Barcode previews may be generated prematurely when the Scan activity invoked externally.
  • Barcode previews are not deleted along with the associated history record.
  • No time synchronization is performed between client & server, this can result in slightly inaccurate date classifications in listings.
  • The Settings activity spans URL settings over multiple lines instead of constraining input to a single line. This causes scrolling to become necessary in some instances. This a partial workaround to a serious bug in Android. Generally attempting to enter more text than there is space for in any text entry box in the Settings activity will cause the interface to become unusable.
    (issue tracker link)
  • The application may exhibit slow network access because it is not possible to resuse reuse HTTP client objects.
    (developer group link)
    The new version of the library cannot be used to address the problem because of this bug:
    (issue tracker link)
  • External links appear dark blue, whereas they should be styled green for legibility and consistency. This is because links cannot currently be styled. External links in the About activity do not currently launch in a separate browser because the available default styling makes them unreadable.
    (issue tracker link)
  • Orientation of the augmented feed may not match that of the device's camera.
    (developer group link)
  • The Help activity allows its pages to be scrolled 'too far'.
    (developer group link)
Feedback & Bug Reports
Please contact me at tomgibara dot com
Other Notes

Please consult the application help, it will explain how to configure and use the Moseycode application.

At present performance of the application, in terms of refresh rates, is poor (by almost any metric). This is due to a number of factors:

  • Obtaining frames over an HTTP or TCP/IP connection is naturally very slow. This accounts for the greatest 'slow down'.
  • The main image processing method avoids any function calls, floating point arithmetic or even integer divides – yet is still slow. The overwhelming overhead in this section of the code is the Dalvik interpreter. Further improvements must practically wait until a JIT or AOT compiler is made available.
  • Thresholding needs to be performed on images by application code; there are no facilities for thresholding images using the graphics APIs that are currently available.
  • There are some small but important algorithmic improvements that can be made for accurate processing modes and in the case where multiple barcodes are being scanned.
  • Rendering is largely unoptimized and is likely to remain so until the system is more complete.