This app was originally written in APL+Win 3.6, but has been entirely rewritten in J from the ground up in order to take advantage of features not available in APL. Even so, there is plenty of scope for better J methods to be used, e.g. gerunds in place of some extremely pedestrian case. statements. -- IanClark 2010-04-09 01:07:56
The gui is a crude one. There are no menu items. Everything is done with a small number of fields. It mainly serves to help me develop the "cal" (calculation) and "uu" (units conversion) engines. I can't get the wd interface to trap arrow keystrokes. This would have enabled the selection bar to be moved up and down and to echo the item contents in the Confirmation field. -- IanClark 2010-04-09 01:04:54
However for cross-platform reasons (especially running on a palmtop) I don't want too complex a gui. The engine is driven in a very simple way: a single char string carries all parameters. The first char defines a "command" which governs how the rest of the string is interpreted. Typically it specifies one or more item-numbers, or (as with 't' for title) a string of raw text. Command strings typed into the (sole) input field can be sent direct to the cal engine by prefixing with '@'. -- IanClark 2010-04-09 01:04:54
The retrofit function is reminiscent of "break-back" in Cognos Planning (formerly "Kunzle Planning System") but it works on a wholly different principle, a quasi-Newton method. It doesn't always converge, which leads to an error message saying the item has "rejected" the proffered value. -- IanClark 2010-04-08 23:12:34
There are two separate algorithms for retrofitting (or formula inversion), called inversionA and inversionB, both in cal.ijs. The chosen method is activated by: inversionX=: inversionA or: inversionX=: inversionB . This is achieved by: inver 1 or inver 2 respectively. Method 'B' uses a simple Newton method of successive approximation employing (^:_). Method 'A' is rather more complicated, guiding its approximations by computing the first derivative of the inverse function, and achieves slightly better results. -- IanClark 2010-04-09 01:09:07
You can change the folder structure of the installation by changing TTPATH in script: cal.ijs. This tells cal where to find the user's ttables. -- IanClark 2010-04-08 23:28:03
R E Boss has pointed out to me two bugs in the distribution as was: a missing user.zip and a missing J verb. I have fixed these. If you've encountered problems then please try again. -- IanClark 2010-04-14 22:48:36
The wd-based topend is a dead-end and should now be considered legacy-only. I was meaning to write a new topend based on a single big isigraph. This would have offered extreme flexibility at the cost of building the thing from matchsticks. But I've just taken an overdue look at the new j701 beta and it shows the way to go. That is, to write a better topend not with gl2 calls but with dynamic html. J701 as I see it dissolves the boundary between a local app and a server-hosted one, enabling me to develop the former and migrate it to the latter, writing in nothing but J. This has further implications. It promises dissolve the boundary between a book of J pastimes like APWJ, a collection of wiki pages, and a downloadable freeware app to support the written material like TABULA. A very exciting prospect. -- IanClark 2010-04-14 22:48:36
Yuva has pointed out to me several issues with running TABULA under Windows. It is being developed on the Mac, but I've now had a chance to run it under Win2000. Several fixes were needed. A new set of scripts has been uploaded. -- IanClark 2010-04-16 05:28:32
There's a new script to go with the set: bn.ijs. This is meant to be user-friendly, user-alterable. It defines button-tops and code executed by the bottom bank of buttons. -- IanClark 2010-04-16 05:28:32
You can now change not only the value, but also the label and the units (provided they are compatible) by an entry in the field: param. If it's a number, it's treated as a value. otherwise it's treated as a replacement label, UNLESS it's a string representing valid units -- and the units are compatible with the existing ones. -- IanClark 2010-05-05 22:54:01
New user-programmed buttons for astrodynamic formulas in uuf.ijs. Also corrected definitions of [rad] and [cyc] in uuc.ijs -- vital for trig calculations. Note the bug which converted (eg) [/m] into [m]. Now fixed. -- IanClark 2010-05-05 22:54:01
