Company Background
Working as Creative Software Design, Davin Church has
been programming in APL steadily since 1974. He writes custom applications for
companies both large and small and promotes the APL language at every
opportunity. Davin particularly enjoys writing utility software, a great deal of
which has been freely contributed to the APL community.
You may contact Davin by writing to him at <Davin@Dallas.net> or calling
(972)285-0976.
Business Software
Applications, utilities, and more! Contact Creative
Software Design for many kinds of software development and consulting.
Contributed Software
Davin has released a number of APL utility
workspaces to the APL programming community to (hopefully) make their lives
easier. These include:
ADO
ADO is Microsoft's standard way of accessing databases of all types.
This workspace contains utility functions which ease the task of writing
ADO-based applications in APL. It comes with extensive documentation in MS Word
format. The latest changes include some ease-of-use enhancements and
documentation to help you set up database access on your system.
CRW
CRW contains a handful of interface functions to talk to Seagate's Crystal Reports. Crystal
Reports is a very powerful package and many people are somewhat familiar with it
since an early version of it is used for reporting by Visual Basic. Applications
can use it to provide easy (and even user-definable) reports from APL+Win.
It does require that you own Crystal Reports and have its "programmer"
documentation to follow.
Dates
DATES contains all the tools you'll ever need to manipulate and
keep track of dates. It is not only Y2K compliant, it is Y0K and Y9K compliant!
These functions deal with holidays, workdays, customized time and date
formatting (including internationalized versions), and many other calendar/time
functions. They provide date arithmetic and other assorted algorithms,
extensively researched and tested. They accept any size array and return a
result of the same size and shape, performing all calculations in parallel,
making them fast and easy to use.
DCTools
DCTOOLS contains a collection of utilities and developer
functions. Some of the items included are
- A "Function Finder" tool for searching for (and optionally replacing)
strings within functions in the workspace.
- A tool for making printouts of all sorts. It is more flexible than the
distributed print tool and handles duplex printing and other unusual
circumstances much better.
- Convert numerals in text form into a true number (very forgivingly).
- Several sorting-related functions that work on almost any kind of data.
- A fancy argument/parameter parsing facility.
DCUcmds
This is a user command file containing an assortment of useful
utilities:
- ]FF - Searches for (and may replace) strings within functions in the
workspace
- ]PRINT <data> - Print a copy of the data (evaluated expression) on
the printer.
- ]WDEF formname(s) - Convert between static *_Make functions and *_def
variables.
Files
The FILES workspace contains an assortment of utility functions
designed to work with disk files and directories in a number of different ways.
FTP
FTP client software that runs in the background while an APL
application is in use. Includes a demonstration user feedback/status reporting
function.
The FTP workspace has been updated to use "passive mode FTP" so that it can
run from behind a firewall. Other minor enhancements were also made, such as a
simpler userid syntax, improved upload buffering, and a "debug" switch to assist
in debugging protocol problems.
The latest update now:
- Allows selection between active or passive FTP
- Can delete remote files
- Can transfer to a temporary file name for failure-tolerance and restarting
- Has a directory parsing function for easier processing
- Directory function can also recurse through subdirectory trees
- Has a "refresh" function to update only out-of-date files
- Refresh function can synchronize directories or multiple files at once
GUIFns
Included in the WS are a handful of small utility functions
oriented around []WI processing. One particularly useful function is "PopUp",
which dynamically generates a modal popup form containing text (and simple
input) fields and arbitrary buttons as you specify. Other functions obtain or
process child trees, simplify data handling, focus control, error reporting,
tracing, and control identification.
Copyright & Disclaimer
These are collections of tools (or utilities,
if you prefer) written (over the years) by Davin Church. Any function not otherwise
noted is copyright © 1999-2004 by Davin
Church and he reserves all rights to this code. However, he hereby releases
all his code in these libraries to be freely distributed and used as desired
(except for direct profit) provided that some (internal) acknowledgment is made
as to the source of the code or algorithms used. Please do not modify these
functions and redistribute them without some mention that they have been changed
from the original code. Thank you.
These tools/utilities encompass a wide variety of purposes and solve many
different kinds of needs. You may find that many of them duplicate functionality
you may already have in other places and they may well have other names.
However, you will be hard-pressed to find other sources of such code that are
more flexible or efficient. A great deal of work has gone in to many of these
tools to make them as fast, flexible, and easy to use as possible.
If you have any difficulties with any of these tools, please contact Davin Church directly. Please do not contact
APL2000 on any of these as they do not support or endorse them. Davin welcomes
bug reports and requests on any of his tools, but will only be able to provide
fixes as time permits. Thus you should not (legally) rely on them for any
particular purpose and Davin does not (legally) warrant their suitability or
fitness.