1991-1999 TSI: Addressing the Y2K Issue

The big fix. Continue reading

In 1999 people were predicting an end to civilization because of the imminent arrival of a new century. Art Bell interviewed a doomsayer almost every night. Key software programs were expected to crash a few seconds into the year 2000.

The calamity did not happen. A few systems probably had difficulties, but no major problems were reported at all. In the late nineties employees and contract workers at companies around the world ad devoted a great deal of time and money fixing or replacing software that would not work as designed in the year 2000. TSI was one of those companies.

The software programs that we had installed at clients and we used in TSI’s office often involved dates. For example, every business that does billing needs to know whether the clients are paying the bills within a reasonable time. This involves a comparison of the date of the invoice and the effective date of the report. The routine that makes the comparison must know the year for both dates. As long as both dates are in the same century, the familiar two-digit version of the year will suffice. However, if the invoice date is in 1999 and the report is run in 2000, the calculation must be adjusted.

This aspect of the problem was relatively simple to solve, but in large systems like the ones that we had installed there were thousands of references to dates. The challenge was to find all the situations that needed to be fixed and to implement the appropriate changes in a manner that minimized the inconvenience to the user.

From our perspective the problem was twofold: the way that dates were stored and the way that dates were collected—from data entry screens or from other files. As we entered the nineties we had three groups of clients: 1) System/23 (Datamaster) users, most of which had extensive custom code; 2) System/36 users, most of which were ad agencies that had a lot of common code, but a mixture of custom and standard programs were stored on separate media for each client; 3) a few AS/400 AdDept users; 4) TSI itself, which used a version of the ad agency system on the System/36.

I decided to inform all the Datamaster users well in advance that TSI did not intend to make their code Y2K-compliant. Most of them were not surprised; IBM no longer supported the hardware. However, the sole user at one customer, Regal Men’s Store, begged us to make their system work in 2000. I replied that it would probably be cheaper for them to buy a new system. As it turned out the company went out of business shortly after year end without purchasing a new system.

Fixing each ad agency system would have been a monstrous job of minimal benefit to anyone. By January 1, 2000, their hardware would have been obsolete for a dozen years. So, I sent a letter to each suggesting an upgrade to a small AS/400. Only a few of them took us up on the offer.

We did create a version of the ad agency software for the AS/400 that was Y2K-compliant. Our employees used it for administrative tasks for about twenty years. We had a great deal of trouble marketing it even to the ad agencies that love their GrandAd systems. Fortunately, by 1994 AdDept sales had really taken off, and we did not really care too much about the difficulties of marketing to ad agencies.

The AdDept system had to work perfectly, and the transition must be smooth. We had already promised a number of users that it would be Y2K-compliant. I intended to spend New Year’s Day 2000 watching bowl games, not dealing with Y2K catastrophes.


Why, you may ask, was there even an issue with data storage? That is, why were the dates stored in a format that caused the difficulties in calculations? The answer lies in Moore’s Law, the preposterous-sounding claim that the number of transistors in a dense integrated circuit (IC) doubles roughly every two years. In point of fact, the astounding 41 percent growth rate applied to many aspects of computing—processor speed random-access memory, and the ability to locate and retrieve large amounts of data very quickly.

For TSI’s first handful of years in business the clients stored all of their data and their programs on diskettes with a capacity of only one megabyte1. Those users crammed years worth of historical data on these thin slices of film. To put this into perspective, consider this photo of an eight-inch diskette:

Storing the simple photographic image shown above requires more than seven megabytes. So, storing a file of the size of this one image—something routinely done in 2021 by cameras, phones, watches, eyeglasses and countless other “smart” devices—would require (using the technology of the eighties) eight diskettes and perhaps an hour of computer time. Much of TSI’s systems were designed in this era in which both disk and memory were precious commodities. Good programmers were always conscious of the the physical limitations of storing and manipulating data. The prospect of a client’s system crashing because it ran out of space for its data was a nightmare to be avoided at all costs. Everything was therefore stored in the most efficient way possible. The idea of using two extra bytes to store the century occurred to almost no one in the early eighties.

I could think of several possible approaches to the storing of data to circumvent the problem of the new century. The four that we considered were:

  1. Replace all of the YYMMDD numbers in every data file with eight-digit YYYYMMDD fields;
  2. Keep the dates the way they were but add a new field to each record with the date in the YYYYMMDD format and use the latter for comparisons, calculations, and sorting;
  3. Add a two-digit century field (filled in for existing data with 19);
  4. Add a one-digit century field (filled in with a 0 for existing data).

Rejecting the first option was an easy call. All of TSI’s systems had hundreds of programs that read fields by their position in the record, not by the field name in the database. If the total width of the fields that preceded the field in question, was, for this example, 50, the program read the six-digit date field beginning at position 51. This was not the recommended method, but it had always worked better for us for reasons that are too wonky to describe here. The drawback was that whenever it was necessary to expand the size of a field, it was also necessary to change or at least check every line of code that read from or wrote to the file. This could be an imposing task for even one field. Since a very large number of files contained at least one date, almost every statement that read, wrote, or rewrote data would need to be checked. If it needed to be fixed—or even if it did not seem to need fixing—it needed to be tested thoroughly with data that contained dates in both centuries. We had no tools for the testing, and every situation was at least somewhat unique.

Large and dangerous.

Attempting this for every date and season field was such a large and dangerous task that the only way that I would consider it was if, at the same time, we abandoned reading and writing by position and replaced it with reading by field name. I thought about it, but I decided that that approach would result in even more work and was only a little bit less dangerous.

I reckoned that the other three methods were roughly equal in difficulty and in the amount of time required for implementation. I eventually decided that the one-digit method would suffice.

There was one additional issue in the AdDept system. The first two digits of the three-digit identified the year. So, it was necessary to add a century field for every file that included the season number as well. The season was a key field2 for many files. Fortunately, it did not seem to be necessary to add the century to the construction of any of those keys.


The other issue concerned data entry. Users of TSI software were accustomed to entering dates as a number in the form MMDDYY, the way that dates are commonly written in the United States. The programs validated what had been entered by converting the number into YYMMDD format and checking that each piece was legal. The check for the year normally involved checking to make sure that it was within ten years of the system date. So, every validation routine needed to be changed because the date entered and the system date could be in different centuries.


All of the work was to be done on the AS/400. The first step was to locate all of the files in both the AdDept database and the agency database, which we called ADB, and to add century fields that defaulted to 0 at the end of the files. At the same time, every program that wrote records to these files was found. A peculiarity of BASIC helped us find these programs. BASIC associates numbers with files in each program, and TSI consistently used the same numbers for files. Thus every instance of updating of the job file contained the phrase “WRITE #22”.

A single callable program was written to calculate the century. Its only input was the two-digit year. It was incredibly simple. It set the century to 1 if the year was less than 80 (the year that TSI moved to Connecticut); otherwise it set it to 0. In BASIC it required only two lines of code:
CENTURY=0
IF YR<80 THEN CENTURY=1

This approach will work flawlessly until the program confronts dates that are in the 2080’s. If anyone is still using code produced by TSI when that happens, someone will need to come up with a rule for setting CENTURY to 2. I don’t lose any sleep over this possibility. Yes, you could say that we just kicked the can down the road, but who is to say that roads and cans will even exist in 2079?


A much more time-consuming problem was correcting all of the programs that produced reports or screens in which data was sorted by one of the date or season fields. I set up an environment for the Y2K project that contained both programs and data. Whereas it seemed important to insert the century field into all the affected files as soon as possible, the reports and screens would work fine for a few years and could be addressed one at a time.

I evaluated this part of the project to involve mostly busy work—repetitive tasks with almost no important decisions and no creativity whatever. We had hired a college student to work with us for the summer. I thought that Harry Burt and I could set up the projects for him. Harry, who had experience as a college-level professor, could supervise him and check his work. This method did not work out at all, as is described here, and it used up some precious time.

I may have overreacted to this setback. I decided to make this a very high priority and to assign it to myself. One of the programmers surely could have done it as well as I did, but I did not want to assign it to any of them because I did not want anyone I was counting on to consider their job as drudgery.

So, for several months I spent every minute of time that I could find fixing and testing programs to handle the century fields correctly. A few cases were trickier than I expected, but the coding was completed, tested, and installed before any of our clients started planning for the spring season of 2000, the first occasion that would requir the code.


I am not certain about when this occurred, but at some point I received a letter from, as I remember it, someone in the legal department of Tandy Corporation. It said that the company had received a letter from someone named Bruce Dickens demanding that Tandy pay him a proportion of its gross income every year to license the software that handled the Y2K problem because it must have used the technique of “windowing”, for which he had been issued a patent by the U.S. patent office.

The letter, of which I cannot find a copy, contained a technical description of the term3 as described in the patent and asked me two questions: 1) Did the software that we installed at Tandy use this technique? 2) Would TSI indemnify Tandy Corporation in a lawsuit over its use?

I answered both questions truthfully: 1) “This does not sound like what we used.” 2) No.

Dickens sent demands for payment to all of the Fortune 500 Corporations. He said that if they did not agree, the percentage of income required for the license would be increased.

I have searched high and low to find out how this situation was resolved. I know that the U.S. Patent Office scheduled a review of the patent, but I could not find a report of the outcome. I also could not locate any information about whether any of the companies that he had extorted ever paid anything to him or the company that he reportedly founded, Dickens2000. I doubt it. I found no evidence that he actually sued any of them either.

If I had been asked directly whether any of our code calculated the century using the year, I would have changed the code listed above to remove the IF statement and simply set CENTURY=1 in all cases and then answered “No”. A few months into 2000 employees of the companies that used the AdDept system no longer entered twentieth-century dates on new items, and the programs only used the code to assign a season when new items had been entered.


We did not charge any of our clients for the Y2K fix. A few people told me later that this was a mistake. Since our customers depended upon AdDept, and there was absolutely no alternative system available, we probably could have gotten away with charging them. The companies may have even set aside funds for this purpose. However, all of the AdDept users had software maintenance contracts, and I considered it our duty to keep their systems operational.


1. A bit is a binary storage unit; it has only two possible values: off or on. A byte contains eight bits, which is enough to store any kind of character—a letter, number or symbol. A megabyte is one million bytes, which is enough to store approximately eighteen Agatha Christie novels. However, it is not close to enough to store even one photograph. Videos require vastly more storage.

2. A key is a set of fields that uniquely identifies a record. A well-known key is the social security number. The VIN number on a car is also a key. A zip code is not a key because neighboring residences have the same zip code.

3. The most readable and yet comprehensive description of the windowing technique that I have seen is posted here. The application for the patent, which was granted to McDonell-Douglas in 1998 (long after everyone had decided on the approach to use), was (deliberately?) designed to appear much more elaborate than the two lines of code that we used.

1985-1999 TSI: Administrative Employees (Rockville & Enfield)

The record-keepers. Continue reading

This may be the most difficult entry for me. I worked with all of these people, but I only worked closely with the last few. I hired only the last few. Sue hired most of the rest.

TSI’s administrative area had much more turnover than any other area. Some of the people whom we hired did nothing but bookkeeping. Some were hired primarily to help with marketing. Some were hired to be Sue’s assistant, which meant they could be doing anything or nothing. I am not even sure what responsibilities some of these people had.

I do not remember interviewing any of these people or talking with Sue about their qualifications or salary. My impression is that they just sort of appeared in the office.

Our first administrative employee was Debbie Priola. Her story is told here. Kate Behart was hired either just before or just after Debbie left. Details of her employment at TSI are posted here. For several years Kate, Denise Bessette, Sue and I were the core group, first in Rockville and then in Enfield. However, we often had additional administrative people—one, two, or even three at a time. I am pretty sure that I have completely forgotten some of them


One of Sue’s primary sources of new employees was our client base. One of the earliest of those hires had been Caroline Harrington, who did the bookkeeping for Darby O’Brien Advertising (DOB) (described here). I never really understood this. I worked closely with Caroline during the installation of the GrandAd system at DOB, and I thought that she did a really good job. One day she must have either called Sue or been called by Sue, and somehow she ended up as our employee. I don’t know why she wanted to work for us. It always seemed to me like a step down from her responsibilities at DOB. Then again, I am not sure how Sue described what her responsibilities at TSI would be.

I did not work much with Caroline in TSI’s office. At the time I was spending at least half of the business hours out of the office at one client or another. When I was in the office I spent most of my time preparing work for Denise or going over work that she had already done. If I had any time left, I spent it writing programs, dealing with support issues, or writing proposals or contracts. Also, I took a nap every day after lunch.

Caroline’s employment did not last very long. I don’t know why she left or where she went; one day I learned that she was no longer working at TSI.


Another person whom Sue does not remember was a young woman who worked for us for one summer between her junior and senior years of college. I don’t remember what she did for us, but I do remember that I was impressed with her. However, the impression was not strong enough to prevent me from forgetting her name.

I had hoped to recruit her as a permanent employee until she told me that she planned to move to Japan after she graduated.


Crater.
Coyne.

I remember absolutely nothing about Linda White, whose name I found on TSI’s payroll for 1989. Sue remembered her. Apparently she worked for us for a week or two. Then one day she went out for lunch and never returned to the office or called. She might be holed up in parts unknown playing cutthroat pinochle with Judge Crater1 and Thomas Coyne2.


I remember Kim Ouellette. We hired her shortly after we moved to Enfield in 1988. I don’t remember what her precise role was at TSI, but I do recall that at Christmas that year she was my “Secret Santa”. She gave me three pairs of wool socks. I lost one of the socks, but I still wear the other pairs on cold winter days.


Chris Vegliante (she/her) worked at Group 4 Design, one of TSI’s clients (described here). I don’t recall what caused her to leave Group 4 and join our staff. Nor do I remember when or why she departed.

No badminton here today.

I remember two things about Chris. I am pretty sure that she came over to our house once, the summer that we decided to host the summer outing at our house in Enfield. I grilled some burgers and dogs, and we set up a badminton net in the yard between two of our maple trees. Those two trees in 2021 have grown to the point that they nearly touch in the middle. No one would consider playing badminton there today.

My other recollection of Chris is about the day in 1988 on which I received two telephone calls from the Hartford Courant. When the second call came, she announced “I think that you won that short story contest!” The whole event is described here.


For a short period in 1989 a woman named Judy Morrill3 worked for TSI, specifically for Sue. She even came over to our house for a visit once. She brought her young son, who was terrified by our cats, Rocky and Woodrow. He screamed for five full minutes.

Both cats were completely harmless.4


Galilee Pease5 (she/her) was a college student who worked for TSI over two summers. She was an excellent employee. Everyone liked working with her. We had much more success with college students than with permanent employees.

When we were looking for someone to help with the Y2K project, she mentioned that her brother Fred, who stayed up all night playing computer games, was available. She warned us that we might not like him.


Bernice Gannuscio6 worked at Keiler Advertising, but she lived in Enfield. She asked us if we might have an opening. I thought that she could be a valuable employee for TSI. The problem was that we wanted her to answer the telephone in the office, but she had hearing problems that prevented her from being able to do this very well. She investigated hearing aids, but none that she could tolerate seemed to work for her.


Titus?

Titus Britt7 had the distinction of being taller than I was and just as skinny. He was also the only Black person who ever applied for a job at TSI. He lived in the southern part of the state, and so the drive to Enfield was considerable. Because he loved his Camaro, he did not mind too much.

I was never quite sure what Titus’s role at TSI was, but when he heard that TSI’s sales rep, Tom Moran, and I were planning to fly to Seattle to demonstrate the AdDept system for The Bon Marché, a department store chain in the northwest, he asked if he could come. I don’t remember why we agreed to this—from a business perspective it made no sense—but we did. I think that he had family there.


Terri.

Terri Provost8 came to work for us in the late eighties. Her previous employer was Colonial Realty, the company that bamboozled thousands of people in Hartford in the late eighties. The scam and its results are described here. Terri was a secretary for William Candelori, one of the company’s principals. Even after the scheme unfolded, she still had great respect for him. He was charged only with tax evasion. The other partners went to prison or committed suicide.

Evidently, although CR treated its investors with disdain, it was very nice to some of its employees. Terri told us that the company took its employees to a casino in (I think) Atlantic City. Her boss even gave her some money with which to gamble. I never adopted such a policy.

Not Terri.

Terri and I went on a sales call in Manhattan once. I wrote about it here.

We had no dress code at TSI. As an army veteran who was forced to wear a uniform at work for eighteen months I felt that this was my right. It was never a problem. Most of us wore shorts in the summer and jeans or something similar in colder weather. On more than one occasion Terri came to work in a short dress and back-seamed stockings. I did not know what to think of this. It seemed totally inappropriate to me, but I have never in my life criticized anyone else’s sense of fashion. I said nothing.

Terri came back to visit the office with her young son.

Terri had a baby while she worked at TSI, but the child died after a few days. She kept a picture of him on her desk. I certainly would not wanted to be reminded of a sad event at work9. I said nothing.

My recollection is that Terri became pregnant again and decided to quit her job at TSI. By then she was working for Michael Symolon. I don’t think that they got along too well. I know that Michael was more than happy to replace her.


The woman that Michael hired to replace Terri was Linda Fieldhouse10. She was a joy to work with, and she seemed to like both Sue and me. I am not sure why she quit. I vaguely remember some health problems.


Two from this can, please.

I remember a woman who worked for us in a period in which both Sue and I seemed to be very tense. Both of us drank coffee, and one of the prime responsibilities of the administrative person was to make sure that the coffee pot was not empty. We always made the coffee with two scoops of regular coffee and two scoops of decaffeinated coffee. This employee did not get the message and made it with four scoops of regular coffee. So, for a week or two, Sue and I consumed twice as much caffeine as we thought.

I think that this may be the same lady whose favorite task was the printing of program listings, a task that required very little skill or knowledge. Mostly it was just making sure that the printer did not jam. Everyone else just let the printer do its thing, but she enjoyed monitoring it.

This lady left TSI soon after the coffee incident was discovered. I don’t remember her name, but I found evidence that someone name Bettijane Kaschuluk11 worked for TSI in 1987. Neither Sue nor I remember anyone with that name.


Ann Locke12, who was married to Sue’s cousin, Jimmy Locke, worked for TSI off and on for a while. I think that she mostly did cleaning. I once remarked that she “brought a little bit of Appalachia to TSI.” Denise later told me that she was shocked when I said this, but she later told me that she understood what I meant.


My sister Jamie was married to Joe Lisella Jr. for the decade or so that she lived in Simsbury, CT, and West Springfield, MA. She worked for TSI for part of that time. Her daughter, Cadie Mapes, also worked for TSI part time. That period is discussed in detail here.


1. Judge Crater disappeared without a trace in 1930. His story is here.

2. Thomas Coyne was scheduled to appear on the fourth episode of the podcast Nobody Listens to Paula Poundstone in 2018 . He never showed up or called to cancel. The cast organized an international search that lasted for months but he was never spotted by any “nobodies”. However, I don’t think that any listeners looked form him at the survival school in California that he runs.

3. I think that Judy Morrill still lives in Enfield.

4. This was not strictly true. Rocky never hurt anyone, but Woodrow, although extremely friendly, had an alter-ego whom I called Nutso Kitty. His eyes glazed over, and all bets were off. Once while I was napping Nutso Kitty pounced on my left hand and ravaged it with all twenty claws. I had to throw him out of the bedroom, and I mean that literally.

5. Bernice now goes by Bernice Zampano. Her LinkedIn page is here. It does not include her experience at TSI. I think that she lives in Portland, CT.

6. Galilee is now known as Galilee Simmons. I think that she lives in Utica, NY. Her website is here, but I don’t think that it has been updated in years.

7. I think that this may be Titus Britt’s LinkedIn page. He has had a lot of jobs, but he did not list anything as far back as the nineties. This person does not look as skinny as I still am.

8. Terri Provost, who now goes by Terasia Provost-Darr, in 2021 is a realtor in Vernon, CT. Her LinkedIn page is here. Neither TSI nor Colonial Realty is listed as part of her experience.

The view from my desk.

9. My current office includes pictures of Mark Twain, W.C. Fields, Lynda Carter as Wonder Woman, and my photograph of the statue of Constantine’s head in the Capitoline Museum in Rome. Nearby are a plush slipper of my guinea pig Chardonnay, action figures of Wonder Woman and Pope Innocent III, and a plush toy wolverine wearing a tee shirt with a block M whom I named Mitch Egan.

10. Linda Fieldhouse lives in Vernon in 2021. Her LinkedIn page is here. Don’t bother to look for TSI on her experience list.

11. A woman named Bettijane Kaschuluk who is a little older than I am lives in Stafford Springs in 2021.

12. Ann Locke still lives in Enfield in 2021. Her Facebook page is here.