[whatwg] Bluetooth devices

At 6:12 PM +0000 12/26/10, Bjartur Thorlacius wrote:
>On 12/20/10, Stephen Bannasch <stephen.bannasch at deanbrook.org> wrote:
>> I've been creating educational science applications which let users collect,
>> analyze and share data from probes and sensors. It is a huge plus to be able
>> to deliver this type of application and educational learning experience in a
>> browser.
>>
>How so?

Many reasons ...

One category is how IT is managed (or not managed) in schools:

Our Java Web Start applications range in deployed (across-the network) size from 4 to 30 MB.

Schools in the US often don't have the resources to implement fast enough networks. Their connection to the Internet and local-area networks can be slow.

The usage patterns in schools often have a load pattern that spikes at the start of a period.

The result is that if the local web start caches for the student users are not already filled and a teacher starts the class with one of our activities the delay before the activity starts on all the computers can be five minutes or more.

Schools that manage their networks well usually have shared network accounts for the students.  This is good ... however unless the local area network is quite fast there is an unfortunate interaction with Java Web Start caching. An application which is 15 MB over the wire (pack200 and gzip compression) might expand to 30 MB in the Web Start cache in the users homefolder.If the users home folder is on a shared network drive then the Java resource data first traverse the network to the computer where they are expanded and sent back across the local area network to be saved in the users home folder.

When a student runs one of our Java Web Start activities in period 1 on a computer the resources are cached in their home folder. When another student runs the same activity in period two on the same computer the resources need to be cached in their home folder also.

We've created installers that instead cache these resources in a shared location on school computers -- this is a big improvement however the installer must be run by an IT administrator ... it is very difficult for a teacher to get access to an IT administrator.


>
>> For quite a while we've been deploying these activities/applications using
>> Java Web Start.
>>
>> The code is open source and works with probeware interfaces from five
>> different commercial vendors.
>>
>> However there are many problems deploying Java Web Start applications in
>> schools and I'd rather deploy to an application running directly in the
>> browser.
>>
>What problems do you face when deploying Java Web Start applications?
>A former school of mine forbade teachers from deploying software for lack
>of robust package management. The solution to that problem would be
>improved package management, not masquerading applications as web
>pages.

Continuing with the reasons listed above ...

Some schools use a system in which every computer a student uses in the school is wiped and re-imaged every night. To deploy toa school like this we need to work with administrators 3 or 4 months before the semester starts in order to get our application installed onto the "golden" image.

A great deal of our work is educational research and development looking at new ways of using technology for learning, mostof our materials have much faster cycles than that.

In general deploying an "application" on school computers and keeping it running is either difficult or close to impossible unless the app is considered essential and core.

A different category has to do with what our current research interests are which tend more towards students collaborating and sharing work that they have done.

It is *much* faster to develop interesting collaborative educational science applications and activities using web technologies.

In addition if we want students to be able to easily access their work at school and at home then  it is bets to persist these data with web-enabled services. Our Java Web Start activities do this but it is much easier to do this with an apprunningin a browser.

In general almost all of the issues I describe above are opaque to normal school users (teachers and students) which means thatwhen problems happen they don't understand the cause or how work-around the problem. In order to make non-educational cost of this experience low for teachers and students we need to spend considerable resources working beforehand with school administrators. This doesn't scale.

> > In addition much of our current research is in exploring the learning
>> benefits associated with collaboration -- this is much easier to prototype
>> and scale-up using web technologies.
>>
>> Recently I've been able to create a demonstration in a browser that graphs
>> data from a Vernier GoMotion USB probe (measuresdistance using and
>> ultrasonic ranging device).
>>
>> If you have a Vernier GoMotion probe plugged in you can just open this page:
>>
>>  http://jnlp.dev.concord.org/goio-motion-graph.html
>>
>> and be graphing data from it within 30s.
>>
>> If you don't have this probe here's a screencast showing it working:
>>
>>   http://screencast.com/t/7mmYpknbgoSz
>>
>> The current implementation uses a Java applet which also includes os and
>> arch-specific native libraries (totalling about 500k).
>>
>If I understand you correctly, your applet is OS and arch-dependant, and
>depends on a JRE and a web browser. Why not just use the JRE?

The applet has two parts. One is Java, the other is a native library which communicates to the Vernier GoIO sensors via theOS USB HID interface. a JNI interface connects the two.

Rougyhly there is about 250 kB of Java and 250 kB of native library however right now there are four different versions of the native library: 32 bit Mac OS X PPC, 32 bit Mac OS X Intel, 64 bit Mac OS X Intel, 32 bit Windows.

In order to make the download as small as possible (which makes startup as fast as possible) resources for the native library are not packaged together and are not specified in the applet element in the browser. Instead after the applet starts itjust loads the native library appropriate for the OS, CPU, and architecture.

OS and arch-specific resources can be specified more imply by using the jnlp form for describing an applet however this only works in browsers which use the plugin2 architecture introduced in Java 1.6. The way I have implemented this feature it also works in older browsers and in Java 1.5.


> > Almost all probeware requires a user to install a driver ... however the
>> Vernier GoIO series of probeware interfaces do *not* require installation of
>> a kernel driver because the devices register themselves as USB HID devices.
>>
>> the result is that opening and using the Motion Grapher page does *not*
>> require a user to install a driver into the OS -- whichmeans that this can
>> normally be run in a school without requiring a user to authenticate as an
>> administrator. This is ahuge plus.
>>
>> Recently I've had interest in extending this system to support Aurduino
>> devices.
>>
>> I'm also interested in having access to BlueTooth sensors so I could create
>> a similar experience for systems like IOS and Android which often don't have
>> a USB interface.
>>
>The OS will abstract protocols like Bluetooth and USB from your app and provide
>you with the desired data.

The OS doesn't do this for probeware devices -- an additional driver or native library is necessary.

What is unique about the Vernier GoLink probes is that while right now they do need a native library they do NOT need any driver installed because they already use the built-in USB HID driver. I am working on several projects to get more sense and control IO devices to use the USB HID interface so they can also be easily used with an application deployed to a browser

All the other probeware interfaces which use USB require a user with admin access to install a custom driver.

I thinking about whether it would be plausible to develop a Probe Data API similar to the work David Humpreys did developing anAudio Data API.

Received on Sunday, 26 December 2010 14:37:17 UTC