This page is under reconstruction every day. It will be updated as I advance.
I figure I will get it done faster if I put it up unfinished. 2/20/25
Note: I enjoy working with numbers (this page) and playing with words (this link).
Table /Maker Fiveis AliveEmail:
roizen@ix.netcom.com Math recipes with fresh ideas and home delivery!
Sketch from Programmers At Work, Microsoft Press, (c) 1983
History: This
product has roots in one I created in 1979 (the good ole days)
and a modernization thereof in
1991. In 2020 my Windows machine updated itself and destroyed the
partition where I could still enjoy these items. Given my history, I
was not about to jump ship to a normal spreadsheet. That would be a betrayal of decades of ideas, fond memories, and an unanticipated level of success. So, I
decided to resurrect and revamp the calculating abilities that ignited my fire. I also hope to answer for visitors and myself a nagging question that has haunted me since Day One. WTF is this thing?!
The Normal: The
basic unit of work in spreadsheets is the formula.
It calculates one
result from other numbers. Particular values are referenced by a name
which is their location in a grid (e.g., B7, X5, Z23). The
formula can use parentheses to establish an order of calculation or
to encase parameters for special functions. What they got there is not
a secret. It's called (sometimes cursed) Algebra !
T/Maker: It works with a built-in calculator. This calculator dwarfs
the power of the best of the best calculators ever held in anyone's
hand. It accepts instructions written in arithmetic across two
dimensions. It can save for you and recall any instruction you ever
gave it. Depending upon your generation, the screen and syntax might remind you of
the blackboard, green board, whiteboard, or screen where your 4th grade
teacher wrote out multiplication tables. It's where you learned that six times
seven was and remains 42. The Calculation Trail: The unit of work in T/Maker is the calculation trail.
It lays out a journey that can travel anywhere around a screen while
pushing buttons on the calculator and extracting data. A T/Maker table
can have many such trails, but each is put on a
separate
screen. A particular trail can be
restarted numerous times from different locations. The trails screen
also displays those designated starting points. The trail,
itself, is composed
of steps.
Steps are numbered to establish the order they are called into play and
hold the details of the math to be done. Each step is located over a
cell of the spreadsheet. The step may be located there to facilitate
interactions with that cell or just because it was a nice visual
location to display some math. A calculation trail, unlike a formula,
can calculate and place multiple values anywhere in the grid. Probably
most spur-of-the-moment calculations are done with just one trail.
My
task for a number of the following screens is to explain some basics of
the calculating syntax. There are choices to be made that will have an
effect in
terms of clarity and degree of generality. There is no one style that
always works best. Designing trails and steps can become an art form.
Some of you may stick to
straightforward problems with straightforward solutions while others
can attack most any numerical process with some robust head scratching and determination. Positional Data References: Below is a sample trails screen with a simple trail on it. In this
screen shot
the T/Maker "Lite" math toolbar is shown. There are many toolbars for
many purposes. A trails screen has two cells for each column. The green
(left) cell
is used to enter calculations and the white (right) cell holds the
data and text that would be printed or presented on other screens.
Everything can be changed. You can click on green
or white cells to edit them. There are also ways to create special
cursors that can be clicked into place.
This trail has three steps shown across row 2. The first step shows an exclamation point ! operator.
This operator enters a value into the calculator. It typically
starts a new calculation. The operator can be followed by one of a
variety of
operands which indicate the value to be entered. In this case,
no specification is made. That, however, is also a specification of
sorts! When an
operator like this one has no corresponding operand, the value to be used is the
value in the white cell. In this case that's 1. The second step uses the multiplication symbol *
which again has no corresponding operand. So the value in the
calculator is multipled by the adjacent value, that's 2.
The final step uses the equal sign =
operator. This operator fetches
the value currently in the calculator, places it somewhere, and sets
the calculator to zero. Without an operand, the calculator value is put
in the adjacent white column.
The Apply Button: Using the Apply Button (darkened green option to the right on the menu
bar) I obtained a similar looking cursor and clicked it over some green
cells so that this trail would be used additional times, starting from
different locations, on different data. In all instances I wanted to do
a simple multiplication across two columns and put the result in the
third. This approach of
putting the symbols next to the associated values can be appliedrestarting
at any cell without confusion. It's all driven by the relative position of steps to the
starting point.No
mention of specific rows, columns, or cells is made in the trail
itself. Also, a momentary glance three months later is all that's
needed to remember what's going on.
Constants: Constants
can be placed into trails without affecting their gereralizability (long word!)
to use at other locations. These values are housed with the trail and
not in cells. There are certainly trails which are never intended to be
used more than once making these concerns no importance. But T/Maker is
also used to make tables where some rows and perhaps some columns share
a commonality of purpose and calculations required. I have on occasion
made a one off set of calculations and then decided I would like to do
a second and perhaps third case underneath the first one.
Syntactical Glitch: There
is one related glitch in T/Maker's trail syntax. You cannot enter a
negative number as an operand. It will be parsed as the subtraction
operator followed by a positive operand and usually generates an error message. Example: ^-3(a
value to the negative power 3). You must enter the negative number
using the underscore character rather than the minus sign (dash) to get the desired result.
Example: ^_3
Memories: There is another specification that is often used as the operand following an operator. It is a memory name.
T/Maker can create memories with names you choose on the fly. With
these you can store and fetch values anywhere in a step or across steps or even trails. This feature
is often used to store intermediate results along the way to a
final value. Memory names start with at least two characters and the
first three characters (when longer) should not match a T/Maker function
name. You can also use digits after the
first two letters. Upper and lower case are not distinguished from each other.
Below is a trail that calculates the hypotenuse of a right triangle.
Remember, a-squared + b-squared = c-squared? The first step multiplies
the height by itself (a-squared) and stores that value in a memory
named aa (a suggestive name for the value). The second step
mutiplies the width by itself and then adds the stored value aa. Thus
the calculator now holds a-squared + b-squared. The third step uses a
function which replaces the value in the calculator with its
squareroot. According to none other than Pythagorus, that would
yield the length of the hypotenuse. And while we are refreshing our
geometry, the sum of the triangle's angles would be 180 degrees!
Memories
are stored and fetched from places that have nothing to do with cell
locations. They can, like constants, be freely used in trails without
any degradation in the ability to apply the trail starting from other
locations. The most used functions change the value in the calculator
which also does not cause a problem. You
can see above that the values calculated are correct for all four
usages. Some special functions such as calculating a mortgage payment
require that you prefill some memories of a given name with required
parameters. The manner in which you fetch a value to load in a memory
could raise a reuse issue for the trail if it explicitly drops the name
of a column or cell.
Column Names:Sometimes
placing steps on top of the cells for which data is needed can become
tedious and confusing. This is especially true if one calculation
requires data from a variety of locations or multiple steps need the
same data. More often than not, this happens on a row where a
value to be calcuated
requires other values in that row. To load or place such a value you
can give the letter corresponding to the appropriate column as
the operand and put that instruction in any column on the row. That is
exactly what is done below. The instructions needed to compute the
value for a column are put in the column. The solution clearly explains itself.
I also clicked on a button that brings up a list of all steps in a
trail. This box can be lengthened vertically or horizontally. With it
you can review the complete details of each step and initiate an edit
on any of them. For trails with lengthy steps or a large number of
steps, it is a very handy feature. While this trail can be applied to
other rows (a click with the Apply cursor on C5 for the next one) it
must be restarted in the same column (C). If started from another
column, the column name operands will not be adjusted in any way and
continue to refer to the same columns, whereas the = signs with
no operands will place their values in shifted columns. The result
would be a completely expected mess. Trails covering such a width are
rarely used in side by side applications.
If you should happen to insert or delete a column from the grid, steps that reference
columns by name would be modified accordingly. A reference to column D
would become a reference to E if a column were inserted to the left of
column D. It
would would become a reference to column C, if a column were deleted to
the left of it. Columns added or deleted to the right of column D would
leave refereneces to column D unchanged.
CELL NAMES: It is amusing that
cell names got left for last when they are the most common way to
reference a value in that normal spreadsheet. I did it, of course, on
purpose. T/Maker does discourage the use of cell names. Even so,
these names can be used as operands for operators that require one. The name of a
cell is the letter of the column followed by the number of the row. As
usual, upper and lower case are not distinguished from each other.