Mr. R. J. Brown is a computer scientist and consultant. He has
published several technical papers and articles in recognized refereed
journals, and additional work that has only been published on the web.
Dreams, JFAR 1994.
Dreams is an object oriented extension to the Forth language.
TENS -- The Timed Event Network Scheduler, DDJ February 1989.
The Timed Event Network Scheduler (TENS) is a scheduler
with its own high level language well suited to real-time process
control and industrial automation applications.
Committee Networks: What They Can and Cannot Do, Proceedings of the 1987 Rochester Forth Conference, JFAR Vol. 5 No. 1, 1988.
The committee network is a 2-layer organization of neurons that has
special appeal in certain areas of pattern recognition. It has a
binary output, is easy to implement, trains quickly, and has fast
response due to only 2 layers of cells. The input pattern may be
composed of either discrete binary or continuous analog signals.
Although generally quite useful, these networks are incapable of
learning all arbitrary associations. A proof is given demonstrating
that a binary input network is functionally incomplete over the space
of Boolean switching functions.
An Efficient Algorithm for Very Large Priority Queues, DDJ June 1987.
Most simple implementations for priority queues result in the time to
perform at least one of the above operations being directly
proportional to the size of the queue. For extremely large queues,
this becomes unworkable. The problem is similar to sorting, and
sorting can be done in time proportional to the logarithm of the
number of elements, so we should be able to do as well for a priority
An Artificial Neural Network Experiment, DDJ April 1987.
This paper describes an experimental computer program that could serve
as one component of a computer vision system. The program is an
artificial neural network learning machine implemented as a committee
network of threshold logic units to function as a trainable pattern
recognizer for visual images composed of a rectangular array of
pixels. Each pixel contains a single number representing the gray
scale value of that region of the field of view.
The Boca Raton Inference Engine, DDJ April 1986.
This paper gives an introduction to PROLOG programming, LISP
programming, and the underlying mechanisms involved in a PROLOG
interpreter. A working micro-PROLOG program
demonstrates how logic programming can be used for database
applications. A working muLISP program is used to explain the factoring,
resolution, and paramodulation rules of inference. A refinement of
the resolution algorithm is given that could form the basis for a
viable PROLOG interpreter. A discussion explains the PROLOG deduction
cycle and backtracking. Lastly, the concept of a programming
environment is introduced and explained.
shcov -- A Shell Script Coverage Tool
The shcov package is a set of bash scripts
that provides a means to generate a line by line
execution trace of a bash shell script by sourcing the
file "traps.sh" into the top of the script to be
traced. The trace, which is captured in the file
"trace.log", contains a line-by-line trace of the
script's execution. This data, in turn, is used by
the shell script "shcov.sh" to determine and display
execution coverage of the traced script(s). This
trace may also be useful for general debugging.
Code Graphs to Vizualize Your C Code
The code_graphs package is a set of bash and
perl scripts that generates interactive graphical
representations of C source and object code. These
graphs are in the form of a set of pdf files. They
are intended to be viewed interactively in a web
browser equiped with a plug-in for a pdf viewer.
Szymanski's Mutual Exclusion Algorithm
Szymanski's algorithm is a mutual exclusion algorithm that works using
shared memory and multiple assynchronous processors. It only requires
that all participating processors have access to a common region of
shared memory, and that only a single read and a single write
operation be supported to access that shared memory.
Squasher -- Filesystem Backups to Multiple DVDs
This script attempts to make a set of DVD images (to backup a
directory and its children) as squashed filesystems, such that each
such image is as nearly as full as possible, without exceeding either
the capacity of a single dvd-/+r, or the maximum capacity of a
Gentoo Linux RAID Benchmark Timimg Study
A benchmark timing study on the performance of certain RAID
configurations under different versions of the Gentoo Linux operating
The Faceted Annulus Logo of Elijah Laboratories Inc.
I trace the history behind the logo of Elijah Laboratories Inc. This
has its original inspiration in neural network research and
hyperdimensional geometry, but also has fascinating associations with
cognition in general, physics, metaphysics, and theology. This ties
into current events on the world political scene.
The Glucographer glucose charting pages
The Glucographer is a web-based blood glucose charting
service designed for diabetics on the go. With the glucographer, you
can enter glucose levels, and produce charts of that data, whenever
you have access to the internet. The glucographer keeps track of your
previously entered glucose values, so all you need to enter is those
recent test results which you have not already entered. You may also
edit previously entered values.
Gemsvnc -- A Framebuffer Relay Server
Unlike most Unix hosted VNC servers, which are also X-servers, and
serve an X environment that they maintain internally, gemsvnc, like
its predecessors x0rfbserver and x11vnc, which is distributed with
libvncserver, is only a VNC server, but not an X-server. It attaches
to an already running X-server and permits remote control of that
X-server from the vncviewer. This is desirable when one is using vnc
for a customer service or training tool, or where special graphics
hardware (such as openGL) is being used so that a normal vncserver
would not work.
The Infamous Spam-O-Matic Resume Mailer
This is the perl source code for an automated web client that does data mining by crawling
around the dice jobs board. The email address and job title are
extracted from each job ad meeting selection criteria. This is then
used to email the jobshop or headhunter a resume.
Stegafax -- A Covert Messaging System
The Stagafax covert messaging system was originally designed
for Christian missionaries located in countries where the
Christian church must operate underground for fear of
reprisals from either the government or activists. It was
designed to permit these people to be able to communicate
with each other and with their headquarters in the United
States without fear of being detected.
A Novel C++ Implementation of State Machines
Finite state machines, or just "state machines" for brevity,
are an important concept in the design of systems. Together
with dataflow diagrams and entity relationship diagrams,
state machines, represented by a state transition graph,
sometimes called a state transition diagram, or just a state
graph, describe how a given node in a dataflow diagram is to
behave. The arrival of events on incoming dataflows causes a
deterministic behaviour of that node. This behaviour can be
described by a state machine.
A C++ class to specify bit-field accesses to registers in an ASIC.
The bitfields defined by this class may be used just like ordinary
variables. When used in an expression, the name of the field fetches
the normalized value of the field. When used as the target of an
assignment, the RHS is denormalized and stored in the field.
A embeddable round robin cooperative multitasker for Forth
This is about a simple as a tasker can get, yet it is easily extensible
to handle fancier needs.
Spytrace -- A function call tracing package for Forth
This file provides a spy trace facility for PFE Ver 0.9.14 under Linux
Ver 1.2.8 running on an Intel Pentium processors (or its equivalent).
Debugging is aided by providing a display whenever a traced function
is entered or exited. Both the calling word and the called word are
displayed along with the effected portion of the stack to show passed
arguments for entered words and returned values for exited words.
This software is provided subject to the terms of the GNU GENERAL
Timerq -- a C++ generic leftist heap for priority/timer queues, etc.
This header file implements a generic template for leftist heaps of objects. A
leftist heap is a particularly efficient way to implement a priority queue or timer
queue. It is also useful for determining which element is an extremum (maximum or
minimum) of a set, or even the n least or n greatest elements of a set.
I. Q. Test
This program implements an A* heuristic state space search of
the solution tree for an "IQ test" puzzle that is sold at roadside
The Parable of the Cheese
This is a humorous story that pokes fun at software development projects.
Viva la Spaghetti!
A Critique of Programming Methodoligies
FISH -- Forth In Silicon Hardware
This is a block diagram of a fast Harvard architecture digital signal
processor based on the Forth language.
Indego -- An embedded object oriented dialect Forth
This describes a dialect of the Forth language that targets
the MOOSE virtual machine. It features hardware assist for
dynamically bound object oriented programming, including very
fast context switching. The multithreading model is a unique
2-layered approach with fast hardware assisted provisions for
forking, and for exception handling with proper switching of
the dynamicly bound environment.
© 2003 Elijah Laboratories Inc.
ALL RIGHTS RESERVED WORLDWIDE.
Web page design by Robert J.
Last modified: Wed Oct 21 11:37:26 EDT 2020