APL2000 User Conference Nov 2–5 1997, Sheraton World Resort, Orlando, Florida
Vector 14:3, page 61
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 61
This was the second year that the APL2000 User Conference was held in Orlando, and the first that I have attended. As a regular attendee at the annual International APL conference (which I sadly missed this year) I was very impressed by the organisation, contents and location, and would like to thank all the hard working individuals at APL2000 who made it all possible.
The conference was held over 4 days, 2 of which were given over to training sessions, and the other 2 to talks, reviews, "product announcements" and presentations.
At registration, everyone was given a folder complete with time-table, conference attendees list, notes for each session (often with complete photo-copies of the overhead projection foils) and also a very nice fleece jacket with an APL2000 emblem on it. In addition to beta copies of APL+WIN (version 3.0) and floppy disks with additional material from the sessions, we were all given a box of six "self help" audio tapes by Barry Green (who was one of the invited speakers).
The overall level was very high, and I hope to be able to attend again next year.
Training Sessions¶
Ray Polivka led the "Introduction to APL" course. This was a 6-hour course in two parts designed for persons with no previous APL knowledge.
Rick Butterworth led the "Introduction to Programming in APL+Win" course. This was another 6-hour course but for APL programmers "new" to Windows.
Gary Bergquist led the "Computer Based Training for APL" course. This was a 3-hour introduction to ZARK’s APL Tutor.
Gary also led the "Intermediate APL Programming" course. This was another 6-hour, two part course, and was designed for APL programmers who wanted an introduction or review of some of the more advanced features of APL. (Nested arrays, Control Structures, and performance tuning.)
Eric Lescasse led the "Intermediate APL+Win for Applications" course. This was another 6-hour two part course designed to show how to bring all the elements (control, forms, functions, etc.) of a successful Windows application together.
Finally, there was an "Intermediate Programming in APL+Win" course given by some of APL2000’s staff. This course demonstrated some of the Windows 95 controls included in APL+WIN.
As can be seen from the above, the width of training sessions available was very great, and the courses were given by programmers of (APL) world renown. I was however unable to make up my mind which I should attend, so played "hookey" from school, and sneaked off with my daughter to visit Disney’s "The Magic Kingdom" to see Mickey Mouse on the Sunday, and then to Universal Studios for the rides, and then on to the Hard Rock Cafe on the Wednesday.
Monday 3rd November¶
Following an early start at 8am of Registration and Refreshments, Eric Baelen (the President of APL2000) gave his welcome address. He described APL2000 and its parent company LEX2000, and its roots in GE (General Electric). APL2000 has offices in six states, and in Nottingham UK. It employs 34 people (11 at its startup in 1995) and is a "full service APL Vendor", a company "Built on APL".
We were warned that last year several laptop computers were stolen during the conference. One attendee suggested that we could "fit your laptop computer in the safes in your room" to which another attendee replied "I’ve already got my shoes in my safe". I was a bit puzzled about this, until I realised that in addition to the safes being fire-proof, they were also air-tight.
Eric then went on to give a preview of APL+WIN version 3.0
APL+WIN Version 3.0¶
Initially Eric described the new features in release 2.0 which came out since the last user conference. These included enhancements to Trees and Lists (Drag and Drop, In place editing), RTF controls, OCX controls, and APL2 support enhancements.
Due for final release in February 1998 (along with APL DOS 6.0) we, the attendees, had already been given beta copies of version 3.0.
This release’s new features include :
- TCP/iP interface (
⎕NI) - APL+Win as an Inter/Intranet server via ODBC (APL+ODBC)
- Media Player
- Numerous Other GUI Enhancements
To my mind, one of the most useful features was also one of the simplest, access to the time stamp stored within each function.
Quote of the session: "If )OFF YES suppresses the conformation prompt, what does )OFF NO do?"
Ryder Systems¶
After the morning coffee break, Scotty Elmslie of Anderson Consulting described the Financial Modeling Package (FMP) and "OPTIONS" built on APL that Ryder Systems use.
Ryder Systems are a large (120 locations) company whose primary business is the leasing and maintenance of vehicles with all the associated logistics. (The well known yellow "Ryder Truck Rental" part of the business was sold and now forms no part of their current business.)
FMP was developed for the mainframe back in 1978 and is a multi-dimensional database with model data and programs in "keyed" files. Scotty went on to describe briefly how the application/APL usage evolved from 3 applications and 1 APL programmer with 10 users in 1975 to many mainframe and PC applications with 6 developers and over 700 direct users (500 users of OPTIONS).
OPTIONS is a package that allows the user to price a leasing and maintenance contact right through to producing the legal documents and setting up new customers for billing. I was impressed by its clarity and ease of use. Quote of the session: "Used Cars Sales Persons using an APL system to price the product in front of the customer."
(Note. At one time OPTIONS used "Power Builder" to print the legal reports, but their users were not happy with this and now printing is done by MS Word. Moral, use the right tool for the job, not necessarily APL.)
Scotty went on to explain why APL was used and what challenges APL programmers would have to face in the future.
Breakout Sessions¶
The bulk of the conference was 6 sets of 3 concurrent sessions (a total of 15 different sessions, some of the more popular ones being repeated.) The sessions I was unable (unfortunately) to attend were:
- Brian Chizever (APL2000) on "Windows Design Guide";
- John Walker (APL2000) on "Frequently Asked Help Desk Questions and Answers";
- Gary Bergquist (ZARK Inc.) on "Tune-up your APL from an Actuarial Perspective";
- Jeff Pedneau (Softmed Systems) on "Code File Management";
- Rick Butterworth (Peak Software Inc.) on "Business Graphics and APL+WIN";
- James Wheeler (various) on "Object-Based Applications Architecture";
- Colyn Phillips (APL2000) on "Difference between Print and Online Documentation";
- APL2000 Staff in an Open session.
On Monday afternoon, after a well earned lunch, I attended Mark Osborne and Michael Steiner’s (of APL2000) "Introduction to the Network Interface". This was an excellent introduction to MS Windows sockets and APL+WIN and APL+UNIX new ⎕NI system function, and left me wanting to try it out. Quotes of the session:
"Save your workspace before you do anything"
"Just like any other standard, everybody has got their own"
"If you are talking to yourself, you want to use APL"
After a coffee break, I attended James Wheeler’s excellent talk "Internet Client Application in APL+WIN" which came with some free software (an OCX of custom internet tools) and the quote "Kids, it’s safe to try this at home". Amongst the gems of wisdom James gave out was this on ASCII vs Binary in FTP transfer: "ASCII will do you favours for which I was often NOT very grateful".
James’s session was immediately followed by Michael Steiner and John Walker: "Making your APL+WIN Application into an ODBC Server". This session also came with software, a beta copy of a 32-bit DLL and MS ODBC Driver. With this software we were shown how ODBC client (non-APL) software using standard SQL could access data in proprietary (APL) systems. I considered that this session had the most far-reaching consequences of all the ones I attended. (Quote: "ODBC is a standard, which means each implementation is different.")
The final talk on Monday was given by Barry Green of the Pinnacle Group entitled "Selling APL Applications". Barry’s talk was most interesting and enjoyable, as well as being the most interactive. (I am also enjoying his audio tapes.) Barry — with 25 years’ experience in selling, he started out selling shoes — proved to us that we are ALL Sales Persons, whether selling a product (an application written in APL), a language (APL), or ourselves (APL programmers).
Barry’s gems:
"The most important thing about selling is the close."
"20% of all prospects produce 80% of the sales, the trick is to know which to avoid."
"Good sales persons control the environment."
"Customers buy, Be prepared, KNOW."
"Know your customer’s needs, SOLVE your customer’s problem."
And how to close a sale? Say "We need to know right now."
Barry gave a host of interesting stats including "87% of all persons who ask for literature, expect to purchase (but not necessarily from you!)".
Tuesday 4th November¶
Following Monday’s Banquet and Entertainment, the early start on Tuesday morning was too much for me. I missed the "Continental Breakfast" and "Opening Remarks" (I did however manage to get a full American breakfast in the hotel’s restaurant) and arrived just in time for the invited speaker Rick Butterworth’s (Peak Software Inc.) talk on "Data Warehousing."
Now "Data Warehousing" was a new term for me, and I am still a bit unsure of what it is offering, so I will supply a few quotes from Rick’s accompanying paper/slides.
Why Build a Data Warehouse?
- Because we can
- Lets you see your Data
- Adds Value to a Product or Service
- Competitive Advantage
Data Warehouse Goals:
- Publish Quality Documented Data
- High Speed Personal Access
- Multi-Dimensional Viewpoint
- User Tools to Analyze, Organize and Present
"The first Data Warehouse goal is to publish usable data. This is more than extracting and dumping data to the Warehouse. It means the data is cleaned up, verified, and quality control tested before being released for use."
This all seemed a bit "old hat" to me and jargon for the sake of jargon, until I saw the flyer for
"Highlander" — A Data Mining System for On-Line Analytical Processing, a product from Peak Software Inc.
and then the penny dropped.
Quotes of the session:
"APL is the only language that lets you walk all over your data."
"Data Warehousing justifies its own platform."
"The real cost in cleaning up the data."
After the mid-morning break, I attended Bill Rutiser’s (APL2000) session on "OCX’s (and other things) Exposed".
Bill’s talk cut through the jargon (OLE, OLE2, COM, DCOM, OLE again, COM+, Compound Documents, Automation, Controls-OCX, Controls-ActiveX … "more names than concepts") and one of his slides was even entitled "Names changed to protect …"
Bill’s session was very good, but a bit like a Chinese take-away meal, very satisfying at the time, but half an hour later I felt I could consume it again.
Quote of the session (describing the behaviour of an Object Instance): "They do something when PREvoked."(invoked).
Tuesday Afternoon¶
Brian Chizever’s "Interfacing to External Procedures" would have been better preceding Bill’s earlier session rather than following it as it put OCX into context, but that did not detract from its content.
Brian provided an overview of the methods available from APL2000 of accessing the outside world. He covered ⎕CMD, ⎕CALL, DDE, ⎕NA, ⎕WCALL, Custom Messages, ⎕NI, VBX, and OCX/OLE.
⎕CMD — Run a DOS command
Avoid using it as it:
- flashes a DOS window on the screen;
- bypasses security limiting access to DOS subsystem;
- APL may not wait for completion;
- and there may well be an API call available.
⎕CALL — Call a machine language routine
Very good if you have the machine code but suffers from several problems:
- difficult (for APL’ers) to write;
- machine code differs between APL+ products;
- slow to run the first time it is called, but much faster on subsequent calls.
DDE — Dynamic Data Exchange
Limited to Windows 3.1 where it is the standard method of communication between applications. It can be quite difficult to use.
⎕NA — Name Association
Executes a command in a DLL (Dynamic Load Library). Works on all Windows platforms, but is hindered by the differences in 16- and 32-bit DLLs used by Windows 3.1 and NT. Also it does NOT support filters and callbacks.
⎕WCALL — Windows call
Similar to ⎕NA in that it executes a command in a DLL, but it does support filters and callbacks.
Custom Messages
This method uses ⎕WCALL to pass information between two of your applications running on the same machine.
⎕NI — Network Interface
This is a high-level Winsock interface (the standard Windows TCP/IP interface driver), and allows communication between machines and distributed processing (client/server).
VBX — Visual Basic Extension
OCX — OLE Control Extension (Active X)
These two methods are similar. Both work on Windows 95, but NT will not run VBX and Windows 3.x does not run OCX (unless it is also running Win32s). Add new classes to ⎕WI, each with properties, events and methods. (See Formula One below.)
I found this session very useful,as it helped put all these terms into context.
Final Breakout Session¶
Following the mid-afternoon break was the final breakout session, Eric Lescasse’s second run of his well attended session on "Formula One OCX and APL+Win".
Formula One is an Excel-like spreadsheet control. Note that unlike Dyalog APL/W, APL+Win does not have its own inbuilt grid object. Eric demonstrated that the addition of Formula One more than made up for the lack of an inbuilt grid control, giving in addition to a grid object, the ability to load and save data as Excel spreadsheets or HTML documents, and a WYSIWYG print preview. I was very impressed by Formula One, and thought it would make a very useful addition to an APL+Win programmer’s tool box.
PackageWorks¶
The final invited speaker, Richard Krafchin, gave a demonstration of his company’s fully integrated system. This system (entirely written in APL) encompassed all the work done by computer in his company from messages to order processing to payroll to diary to invoice production.
This was followed by Eric Baelen’s closing remarks.
My thanks once again to Eric and his team (with a special thank you to Sonia Beekman, the Conference Coordinator). I found the 1997 APL2000 User Conference in Orlando a most useful and enjoyable experience. Thanks.