comp.databases.pick Frequently Asked Questions (and Answers)

last update: 4-Apr-95

Copyright 1995 John Lombardo

  1. Legal Notes
  2. Dedication
  3. Introduction
    1. comp.databases.pick charter
    2. General Overview of Classic Pick
      1. A Short History
      2. The Pick Marketplace
      3. Pick Application Environment
      4. Data Organization
  4. General Questions
    1. Why isn't the Pick System in the public domain?
    2. What other resources are available?
      1. On-Line Resources
      2. Printed Resources
  5. Database and System Vendors
    1. Current Vendors
      1. Adds
      2. General Automation
      3. jAC (jBASE)
      4. MDIS (aka McDonnell Douglas)
      5. Pick Systems
      6. Siemens/Nixdorf
      7. Sequoia
      8. Stratus Computer, Inc
      9. UniData
      10. UniVision
      11. Vmark
  6. Horizontal Products (Spreadsheets, Word Processors, etc.)
    1. Spreadsheets
    2. Word Processors
    3. Terminal Emulators
      1. Carnation Software's MacToPic for the Macintosh
    4. Programming Tools
      1. WinLink
  7. Vertical Software Products (Business systems)
  8. Technical Questions (and Answers)
    1. Date and Time
      1. Introduction
    2. Peripherals
      1. Modems
        1. How can I get Pick to dial my modem?
  9. Freeware and Shareware
  10. Glossary
    1. Post-Relational
  11. Odds and Ends
    1. A Pick Test
  12. Acknowledgments
  13. About the Author

Legal Notes

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.

Dedication

This document is dedicated to Richard Pick who, as the Orange County Register said, "knew how to have a good time."

comp.databases.pick charter

"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]

General Overview of Classic Pick

A short History

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 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 Application Environment

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.

Data Organization

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.

Why isn't the Pick System in the public domain?

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]

On-Line Resources

Printed Resources

  • O'Reily & Associates
  • TAB Books, Inc.

    [bc]

    What Makes Pick Unique Among Other Databases?

    Adds

    General Automation

    jAC (jBASE)

    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.

    MDIS (aka McDonnell Douglas)

    Pick Systems

    Click here to visit Pick Systems' home page.

    Siemens/Nixdorf

    Sequoia Systems

    Stratus Computer, Inc

    UniData

    Click here to visit the UniData home page.

    UniVision

    Vmark

    Carnation Software

    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.

    Date and Time

    Introduction

    AccuTrac (accutrac@aol.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.

    [hve]

    How can I get Pick to dial my modem?

    RJHarlan (rjharlan@aol.com) 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:

    
    %man cu
    
    

    or

    
    %man uucp
    
    

    for more information.

    A Pick Test

    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? :-) )

    Questions:

    1. What would you expect to find in the SYSTEM file on a Pick system.
    2. Describe the attributes in an Account definition and their function.
    3. What does the Master Dictionary (MD) of an Account contain.
    4. What is a 'Q' pointer. How is it defined.
    5. What system utilities would you use to measure the disk capacity and file space utilisation.
    6. Describe the attributes in a file dictionary definition.
    7. What is the difference between a correlative and a conversion in a dictionary definition.
    8. What is the significance of the following ASCII characters in a Pick system:
      1. Character 255
      2. Character 254
      3. Character 253
      4. Character 252
    9. In the standard Pick line editor (ED), what commands would be used to perform the following functions: (You may assume that you are already in the editor, at the top of an item 999 lines long)
      1. Delete lines 21-39 in the item
      2. Delete all lines in the item containing the string 'Pick'
      3. Replace all occurences of the string 'Unix' with the string 'Pick'
      4. Merge lines 10 to 20 from item 'FRED' in the same file into the item at the current line.
    10. What is the function of the REFORMAT verb.
    11. What is the effect of the following options with the TCL COPY command: D, I, O
    12. Attribute 5 in an ORDERS file is multi-valued and contains the value of each line on the order in pence. Write a dictionary definition item to display the total order value in pounds and pence, 12 characters wide.
    13. Attribute 3 of the ORDERS file is also multi-valued and contains the product codes in the order. In the PRODUCT file, which is keyed on the product code, the full product description is held in attribute 1. Write a dictionary definition for the ORDERS file to display just the first 20 characters of the product description.
    14. What would be the spooler output assignment after the following command: SP-ASSIGN HS F1 3
    15. Write a short Basic program to build a file of order numbers cross-referenced by product code. Assume the file ORDXREFS already exists and is empty and build the cross references from the ORDERS file.

    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>

    [jw]

    Acknowledgments

    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 <costanzo@gate.com>

    [tc] Todd Cooper <todd@vmark.com>

    [hve] Henry Eggers <heggers@netcom.com>

    [mg] Martin Golding <martin@plaza.ds.adp.com> c

    [km] "Kip McAtee, Honolulu Software" <KIP_M1@verifone.com>

    [kn] Kevin Nelson <knelson@delta.net>

    [dr] David Ruggiero <osiris@halcyon.com>

    [jws] jim w stephens <jws@world.std.com>

    [jw] John Watson <jwatsona@cix.compulink.co.uk>

    About the Author

    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.

    John Lombardo

    john@deltanet.com
    Return to CDP FAQ Main Index