Deriver20VFat10: Considering CheerpJ as a possible means for running the Deriver Application

6/5/2026

Under construction

Many thanks to Leaning Technologies for providing CheerpJ and allowing its use for this purpose.

CheerpJ Deriver20FatV10 Test 

[For various technical reasons it is quicker and easier at this point to provide the running app as a page on its own outside the SoftOption host environment.]

The Java .jar, the app, that CheerpJ is running here is Deriver20FatV10.jar

[WARNING ON A SEPARATE MATTER: downloading a .jar from an unknown source and running it on your machine is a security risk, and basically should not be done.] If you would like to download Deriver20Fat.jar and run it side-by-side next to the CheerpJ version, you can download it from here Deriver20Fat.jar and run it with the terminal command %java -jar Deriver20Fat.jar . [You probably do not want to be running Deriver20FatV10.jar from a terminal in as much as it contains a few lines of interface or glue code between it and CheerpJ and that does not really make sense outside of CheerpJ.]

A running evaluation copy of CheerpJ occasionally will display a new page with license information:

This is a 'nudge' from CheerpJ to encourage the User to obtain a license. We will be doing exactly that on successful evaluation of Deriver in this setting.

An important note about the File System

The non-CheerpJ Deriver20.jar, running in Java from a terminal saves to portable and visible files on a resource such as a disk. It also opens such files. The plain vanilla CheerpJ hosted version saves to a virtual file system which, roughly speaking, is the web browser such as Chrome, Brave, Safari, etc. This type of saving is not portable or visible. So, for example, with it an Instructor might have difficulty in conveying saved exercises to students (or students submitting exams to an examiner). This is not a criticism of what CheerpJ hosting does in the wider case. But it does mean that probably some extra glue code is needed to allow the hosted version with a web browser to talk to the world at large.

The solution being tried here, nothing to do with CheerpJ itself, is to have a 'File Bar' on the web page as an intermediate step.  Users can upload and download files from their computers to the File Bar. Then the File Bar can upload and download files to and from the virtual file system that Deriver is using when running in CheerpJ.


An important note about the Clipboard and System Clipboard

The non-CheerpJ Deriver20.jar, running in Java from a terminal  has transparent access to and from the System Clipboard both by menu item and by keyboard equivalent. What this means is that, for example, you can copy some text from completely outside Deriver, say from a WORD document then paste it into Deriver (when the context should allow such a paste). SImilarly, material can be copied from Deriver and pasted into WORD, say. And the operations can be done either by using Cut, Copy, Paste etc. of the Edit Menu or by using the keyboard equivalents (e.g. command-V on a Mac).

The CheerpJ hosted version as installed here has some extra code to do something similar to this, although not quite identical to it. The set-up is more intricate. CheerpJ Deriver is running within a Web Browser, say Brave. Now, Brave has its own Edit Menu with Cut, Copy, Paste, etc. with keyboard equivalents. But, also, Deriver has its own Edit Menu with Cut, Copy, Paste, etc. Then a third-party application such as WORD may well have an Edit Menu or Edit Menus. So, it is a bit of a question as to how all these should work together. 

Executive Summary of the Present Practice: Deriver has four panels: a web-page journal, a logic proof panel, a logic tree panel, and a logic interpretation panel. The latter three panels have their own Editing and have little or no use for any editing transfers to or from external sources. (Those three panels do have transfer to the 'outside'— they can be saved, printed, etc.) That leaves the web-page journal (or journals since it is possible for several of them to be open at once). These have Edit Menus with Cut, Copy, Paste, Undo etc. These Menus all work 'internally' that is Cutting, Pasting etc. among themselves using Menu Commands. Suitable material from 'outside', say from WORD, can be pasted in using the keyboard equivalent for Paste (e.g. command-V on a Mac). 

Work is ongoing here (Claude may have a role to play).

 


 

A sketch of what Deriver is capable of is available from:

Fast Start on the Deriver web or standalone Application (for Instructors)  

Considering the CheerpJ Hosted version...

File menu

As mentioned, Saving or Opening Files has an intermediate step. There is a 'File Bar' across the top of the window. It displays the files that Deriver can see from its menus, and which can be opened by Open File. When Deriver Saves a file, that file will appear in the File Bar. Importing should be followed by clicking the Send to Deriver Button. Files can also be added to the File Bar from the User's computer or elsewhere by means of an 'Import' button. Clicking on any of the files displayed in the File Bar will download the relevant file to the User's computer or elsewhere.

New File produces a new journal, proof, tree and interpretation within the existing browser. If there is an old document there, which has not been Saved, the User is prompted to Save it. Good.

Open Logic file opens an existing logic document, of four panels, within the present browser. If there is an old document already on display there, which has not been Saved, the User is prompted to Save it. Good.

Open Web Page can open many types of document into the Journal only. It can open from files or from urls. Typically the documents will be Web Pages. If there is existing content already on display there, which has not been Saved, the User is prompted to Save it. Good from files or urls.

Close Browser closes the foremost browser. If there is a document already on display there, which has not been Saved, the User is prompted to Save it. If the browser is the only or last browser on display, the application as a whole will exit. Good.

Save saves if there is new content. It saves all four of the journal, proof, tree, and interpretation. If the document has not been saved before (and thus does not have a file name), it offers a Save As dialog and uses the appropriate file name. Good.

Save As. Good.

Save Journal As HTML does exactly that (but the proof and interpretation are not saved). Saving this way allows the Journal to be opened elsewhere either as a Web page or, for example, in WORD. Good.

The Printing Commands print. Good.

Quit quits the entire program. The User is prompted to Save any unsaved documents.Good.

Edit menu

Undo, Redo, Cut, Copy, Paste, Select All, Find, Replace. All Good. Find and Replace operate only on the text after the insertion point. So, for example, Replace All, with the insertion point at the beginning of the document will replace all in the document, whereas Replace All with the insertion point at the end of the document will replace nothing. This behavior is identical between the CheerpJ and Fat jar versions of Deriver.

Using the System Clipboard. It should be possible to copy some text, for example, from entirely outside Deriver, then to paste it into the Journal pane. That is, copy to the system clipboard then paste in. Needs some work. The CheerpJ Version seems not able to do this but the Fat jar version of Deriver can.The CheerpJ Version seems to work better for this using only the keyboard equivalents.

HTML menu

Edit Text and Live Text 'toggle'. The Journal is a web page, which might have url links to other pages or materials. If the Journal is in Edit Text mode (as it usually is) text can be edited, but the links are not active. If the Journal is in Live Text mode the links will be active and clicking on a link will load whatever the link points to. Good.

The HTML editing submenu Blockquote ... Edit Source Seems good, not fully tested.This is not really important as far as the logic goes.

Semantics menu

The functions here are 'real' Logic. What they do is explained in detail elsewhere. A summary is

Fast Start on the Deriver web or standalone Application (for Instructors)

The evaluation will just check that the menu items are working correctly.

Current Interpretation. Good.

Current True Propositions. Good.

True? Good.

Satisfiable? Good.

Endorse? Good.

Deny? Good.

To Symbols? Good.

To English? Good.

Propositional Level Good.

Predicate Level Good.

Actions menu

Start Proof. Good.

Start Tree. Good.

Do Command Good.

Help menu

About. Good.

Preferences. Good.

Basically, everything seems to work fine, which certainly is a good result.