This Document is Copyright ® 1994 by John Lombardo. All rights except those explicitly defined in the following paragraphs are reserved.
You have the right to read this document. You also have the right to distribute this document in electronic form as long as it is not modified in any way. You DO NOT have the right to distribute a printed copy of this document, in whole or in part, unless you have the express written permission of the author.
This document is dedicated to Richard Pick who, as the Orange County Register said, "knew how to have a good time."
"comp.databases.pick" will be a newsgroup for the discussion of the creation, administration, and use of the multitude of databases, operating systems, and applications environments which are generally known as "Pick-compatible", "Pick-like", "Pick-inspired", or "post-relational". These include, at the least:
This discussion will include, but not be limited to, programming theory and practice, database design techniques, efficient construction of application systems, practical system and database administration, experiences with and differences between various Pick-type products and implementations, technical questions and advice, and announcements of upcoming conferences, trade shows, and new products elevant to the Pick marketplace. [dr]
The Pick Operating System traces its roots back to the mid 60's when TRW had a government contract to work on the Cheyenne helicopter project. As part of this project, a database management system was to be developed to keep track of all the records and parts associated with the project. Don Nelson designed a storage method and retrieval language he called GIRLS, Generalized Information Retrieval Language System. Dick Pick was one of the engineers who worked on that project. In the late 60's, when the project ended, all the work done by Don Nelson and Dick Pick entered the public domain. They left TRW to form a company to introduce to the commercial marketplace "DM512," which would later become known as the Pick Operating System.
Development work proceeded on IBM mainframes and then on a Xerox Sigma 7 at UCI in the early 70's. The first commercial implementation was for a small company called Microdata. They had developed one of the first small, microprogrammable computer systems. The ability to microprogram an instruction set was particularly well suited to implementing the Pick Operating System. In 1974, Microdata introduced their machine running, what they dubbed, the "Reality" operating system.
When Dick Pick wanted to port his operating system onto other hardware platforms, he was sued by Microdata. Microdata claimed that the work belonged to them, and Dick had no right to supply it to anyone else. Legal maneuvering continued for several years, until a settlement was reached in 1981, with both companies retaining ownership of the operating system. Microdata was purchased by McDonnell Douglas in 1981 and is now known as McDonnell Douglas Computer Systems Company.
Between 1974 and 1981 Microdata sold in excess of 5,000 systems running Reality. In that time Pick & Associates ported the OS to hardware from several other vendors. In 1981, the Pick OS was ported, for the first time, to a machine that was not microprogrammable. That machine was based on the Z8000. Porting to the Z8000-based ADDS "Mentor", required Pick to develop new implementation methods, with the result that the OS code became much more portable. Pick could now be ported to any computer system.
The first 68000 implementation followed shortly after for another terminal maker, DataMedia. Today, they sell very few systems, but 680x0 based machines comprise a major portion of the Pick marketplace.
In 1987 Sequoia entered the marketplace with the first multiprocessing, fault tolerant computer system running the Pick Operating System. Most of Sequoia's installations since introducing Pick run the Pick Operating System. While their total system sales are still small, they are gaining momentum.
In May of 1988, Status Computer Inc. set up the new Pick Division to address the growing market for fault tolerant computers in the Pick marketplace.
The Pick OS is primarily sold as a total solution sell into vertical markets. Over 3,000 application packages are available running on Pick. Typical vertical markets include:
Pick applications are built using several standard facilities. Commands, called verbs, are entered at the TCL (Terminal Control Language) prompt. Verbs definitions are stored in the user's Master Dictionary or VOCabulary and are completely customizable. Most data on the system can be accessed through the standard Pick editor.
Command sequences can be built up using Proc. Proc is a command macro language with full support for most programming language facilities such as conditional branching, terminal input and output, etc. Proc is typically used to automate a task made up of multiple TCL statements, or to provide a "shell" for an application front end.
Integral to the database is a non-procedural query language called Access. Access allows programmers and non-programmers to produce reports from their data using structured sentences made up of a vocabulary of their choosing. For example:
> SORT CUSTOMERS WITH BALANCE-DUE > "10000" AND WITH LAST-PAYMENT BEFORE 12/31/93" BY BALANCE-DUE DISPLAY NAME ADDRESS BALANCE-DUE LAST-PAYMENT
is a valid Access statment which will produce a report of customers who are behind in their payments. All the words in the sentence are user definable and are easily changed or translated to other languages. The field names can refer to actual data fields, values computed from one or more fields, or values "translated" from related fields in completely different files anywhere in the database.
Data/Basic is the application programming language. Data/Basic is derived from standard BASIC syntax, with extensions to support structured programming. Data/Basic also has a rich collection of database functions for manipulating Pick data items. Data/Basic programs are compiled into a P-code which are then interpretted at run time.
Other facilites supported by Pick include a spooler, backup and restore to an off-line storage media, word and text processors, business graphics packages, spreadsheets, and asynchronous communications packages.
Pick imposes virtually no restrictions on the size or structure of user data. A Pick database can have any number of files. Each file can contain any number of items, and each item can have unlimited size (limited only by disk space). All items are stored as variable length ASCII strings, and can be made up of any number of fields, called attributes. Within an attribute can be any number of values, and within a value can be any number of sub-values.
Item size can grow or shrink dynamically, at any time, from a length of 0 up to the size of available disk space. Any number of items can be added to a file up to the size of available disk space.
Q: Since Pick was originally developed/payed-for with/by taxpayer money, is it public domain (a la dBase - which was originally developed at JPL, using taxpayer money) ?
A: Pick was originally developed/paid-for with/by Microdata.
Some interesting but incomplete and improper subset of Pick is related to GIRLS (Generalized Information Retrieval Language System?), which is probably in the public domain, all you have to do is find a copy. It certainly hasn't got Basic, and probably has no device management. It'd be an interesting intellectual exercise to see what it _did_ have, and whether it could be expanded in a clean room environment to the SMA standard [mg]
jBASE is an application development and database management components that enhances and extends UNIX platforms (and NT too very soon) and also allows easy migration from other platforms and environments.
jBASE is datbase Independent by design and consists of run-time, development and administrative components.
Click here to visit Pick Systems' home page.
Click here to visit the UniData home page.
Carnation Software has been providing Macintosh to host connectivity since 1989. We specialize in Macintosh terminal emulation and data transfer, connecting Macs to host computers running systems such as PICK, UNIX, uniVerse, UniData, Prime, Ultimate and McDonnell Douglas. Four popular terminal emulators are included: Wyse 50, ADDS Viewpoint, DEC VT101 and Prism. Compatible with TCP/IP, Ethernet, Appletalk, etc. MacToPic Plus now supports multiple sessions. Press here to visit their home page.
AccuTrac (email@example.com) wrote:
: Does anyone know what the algorithum is for converting a Internal pick date to an external date format is?
: I need to converse Internally formated number to external dates on a PC running dos. Therefore I need a date converseion algorithum.
_Roughly_ stated, 'day 0' (and there is one, which is an issue) is 31 December, 1967, because that allowed 'internal dates' to be relatively small during 'early implementation time', when memory was expensive. Quoth Dick.
It is also the case that 'day 1' is the first day of a four-year cycle. Each four year cycle has 1461 days, so the first thing which is done is to divide the internal data by 1461. That will leave a quotient which is the number of four-year periods, so add 4 times the quotient to 1968, to get the first approximation of the date. Then, if the date is greater than 366, subtract 1 and divide by 365 or so. Add that quotient to the year. Now, 'what's left' is the day of the year. Look in a look-up table for the month, being aware that 'things are different if this is a leap year'.
Also being aware that, if the internal date is negative, things are 'almost symmetrical', but not quite, and that there are lots of obscure boundary conditions which can be incorrect.
The next thing to note is that there isn't a leap year in 1900, or for that matter, 1800 or 1700, but that there is in 1600 and 2000 -- except in some Pick machines. But not all.
I note that the 400 year cycle is divisible by 7, and that 'day 0' as a Sunday, which is probably a purely fortuitious convenience of the choice of 1967.
Also note, in passing, that the days 04 October, 1582 - 14 October, 1582, did not exist -- in Italy and related countries, and that this happened in England and related in 1757 or 1759, and that the same thing happened in Russia in late October (old calendar) 1917.
It is also worth noting that, in general, input conversions don't work before the year 1000; that, if they are extended to work, the period before 100 becomes problematical; and that output conversions for the Pre-Christian period involve another not-quite symmetry which, to the best of my knowledge, has not been solved by anyone. Of course, I've not seen a bug report on it, either.
So the primary problem is assuring that all of the actual dates are retrieved by the conversion algorithym in the correct order.
RJHarlan (firstname.lastname@example.org) asks:
The company that I work for has a client who does not pay for their modem support. My boss has seen a setup wherein a programmer could dial into a client's system and run a program that would dial-back to the programmer's modem. From there on the call is on the client. I would like to implement a similar setup on a UniVerse machine. The client has a DEC Alpha with OSF1.
The most universal way to get a Pick system to dial you back is to purchase a dial-back modem such as those sold by MultiTech. Alternatively, if the Pick database is running on top of Unix, uucp can be configured to automatically dial you back with any modem. At the shell prompt type:
for more information.
John Watson writes:
Last time we were recruiting a Pick programmer, I set the candidates a written test to check their Pick proficiency. We are about to advertise again so I would be grateful if the group could comment on the suitability or otherwise of the following questions (and perhaps have a go at answering them? :-) )
ORDERS < 0> Order number, 6 digits
< 3> Multi-valued product codes
ORDXREFS < 0> Product code
< 1> Multi-valued list of order numbers (in descending order)
< 2> Multi-valued list of order line numbers associated with < 1>
I want to be sure I give credit where credit is due. Below is a list of names and email addresses who have graciously contributed to this FAQ. Without their help, there would be no answers to these Frequently Asked Questions. If you contributed but are not mentioned, please contact me -- I want to give you credit.
[bc] Bruce Costanzo <email@example.com>
[tc] Todd Cooper <firstname.lastname@example.org>
[hve] Henry Eggers <email@example.com>
[mg] Martin Golding <firstname.lastname@example.org> c
[km] "Kip McAtee, Honolulu Software" <KIP_M1@verifone.com>
[kn] Kevin Nelson <email@example.com>
[dr] David Ruggiero <firstname.lastname@example.org>
[jws] jim w stephens <email@example.com>
[jw] John Watson <firstname.lastname@example.org>
My name is John Lombardo, and I've been working in the Pick community since 1985. My experience ranges from applications work for end users and VARs to OS work for Sequoia, General Automation and Pick Systems. I've had limited experience in Universe and Unidata, both at the source code level. I have a BS degree in Computer Science.