|
This is simply a port of Dasher to a Java applet such that it can be easily accessed from the web, and can be used on systems for which there is a JVM but for which a compiled binary is not available.
It implements a subset of the features available in Dasher proper (see the link below for more information about those); notable limitations include the inability to remember settings between sessions (due to security restrictions on Java programs downloaded from the internet), a smaller number of control modes, and the absence of advanced support for Japanese and Chinese alphabets including conversion between alphabets.
The source code is released under the GPL; see the license.txt file inside the source ZIP file for details of the license, of read it online. The ZIP containing the source also includes full documentation in Javadoc format.
The source is written for Java 1.5/5.0 and makes extensive use of 5.0 features; if a Java 1.4.2 compatible copy is required, have a look at the source for the Google Web Toolkit version below.
Try Dasher online now
Find out about the original Dasher at dasher.org.uk
Download JDasher's source code (zip file)
View source documentation online
|
|
This is a simple Java application which runs Dasher's Prediction by Partial Match language model in a standalone way, and keeps track of learning contexts; the intent is that a remote Dasher client should send it information regarding language model events, whilst the actual state and model is kept track of on a server. Whilst this doesn't save Dasher much CPU time (far more goes into drawing and the associated calculations), it does save a lot of memory.
The server supplied is somewhat experimental, and probably would not cope with being sent malformed or malicious information; however it does appear stable when working with JDasher. It can cope successfully with any language Dasher can handle, and is limited in terms of connection handling capacity only by the host system's available memory (though the JVM may need to be told to use a larger heap if more than 8-9 concurrent connections are required).
The client is built into JDasher as detailed above; it can be switched to use a remote language model by selecting the "Prediction -> Language Model -> Networked PPM" option. Normal operation can be resumed by choosing Prediction by Partial Match (PPM).
The server is started by typing "java -jar ppmserve.jar" on any machine with an installed JVM. It is currently hardcoded to use TCP port 2111 to listen for inbound connections.
Download server (JAR file)
View protocol specification
Download source code (ZIP)
|
The logical extension of remote PPM, this version of Dasher exports all work except for drawing to a server; the drawing can then be done using JavaScript and the jsGraphics library by Walter Zorn (walterzorn.com).
The server is essentially an adapted JDasher with a modified I/O structure; it listens on TCP port 2112 and both accepts commands and responds with drawing instructions in XML format. See below for a specification of the data format.
I have implemented a reference client as mentioned above in JavaScript, but it should prove a small task to implement a client in any other language which can use the same server. The reference client uses a small PHP script to do connection forwarding, but this will be trivial to rewrite in any other server-side language.
The server component is mostly based on Dasher's source code; the source and documentation can be obtained by downloading that of JDasher, above. It can be started by entering java -jar netdasher.jar.
The server, as with PPMServe (left), is not rigorously tested but appears reasonable stable against the reference client; it can support 6-7 concurrent connections before running out of memory, and more if the JVM is passed flags to enlarge the allocated heap, which is only 16MB by default.
For information on the protocol employed by NetDasher, please see the dasher.net package area in the Javadocs for JDasher.
Download server (JAR file)
Download reference client (ZIP)
|
Finally, and perhaps most ill-advisedly, this version of Dasher runs entirely in JavaScript using the Google Web Toolkit Java-to-JavaScript compiler.
Since GWT only supports Java 1.4.2, this mini-project involved converting the JDasher code, removing Generics and other Java 1.5 language constructs. Whilst this version of Dasher is not hugely successful in itself, this Java 1.4.2 code ought to work under Java Micro Edition also, and so could provide a way forwards onto mobile devices; see "Dasher pipe dreams" below for more on this.
GWTDasher implements most of Dasher's features, but does lack the ability to run full scale language modelling. Since the overhead of instantiating a class is so high using Google Web Toolkit, the existing implementation of PPM which uses a class for each tree node isn't terribly suitable, and can only be run with a training text of a couple of pages at most.
For reasons I can't quite determine, GWTDasher as it stands works reasonably well on Firefox but is very slow in Internet EXplorer. If you wish to test it but have only IE at your disposal, Firefox can be obtained for free at www.getfirefox.com.
Try GWTDasher online (recommend Firefox and Opera only)
Download GWTDasher (binary)
Download GWTDasher (source)
Find out more about Google Web Toolkit
|