2001-2006 TSI: Weekly Partners’ Meetings

Agendas for meetings. Continue reading

Between January of 2001 and November of 2006 I met pretty often with Denise Bessette (introduced here), who was by then my partner and VP of Application Development. I found a folder of Microsoft Word files for the agendas that I wrote up for these strategy meetings. Starting in 2003 the meetings became more regular. They occurred on many if not most Wednesdays, the day that I was most likely not to be at a client’s.

We generally ate lunch together at an order-at-the-bar restaurant on the west side of the river. It had picnic tables near a small stream. I can’t remember the name of the place. I took a drive in the area that my memory associated with its location, but I could find no trace of it. I suspect that it closed, and the land was bought by a developer who put it to another use, perhaps condominiums.

The following summaries are mostly in chronological order. Almost every AdDept client is mentioned at some point. Separate blog entries with much more details have been posted for each of them. They can easily be found using the 1948 Project’s master index program, which is available here.

Many items on the agendas are repeated on subsequent agendas. A few of them persist over years. These were issues for which we never found solutions. The most obvious examples were the efforts to find additional uses for AxN that would benefit newspapers and/or advertisers.


By 2001 the nature of and name for AxN1 had been decided. Our focus was on how to roll it out to the AdDept clients and what we could do to make it more attractive both to the advertisers and the newspapers. We also discussed potential support issues and how the new model 170 that TSI had recently purchased could handle the load of handling the traffic from AdDept clients and newspapers. Occasionally we talked about personnel and other business-related matters.


By 2002 the business environment for large department stores had changed dramatically. Before listing the agenda for one of the meetings I wrote, “We need to change our attitude 180 degrees. Previously we had excess demand and were struggling to increase our capacity to meet it. Now we have excess capacity, and our customers are frugal.”

I had used Net.Data2 extensively for AxN. At the time it was the only thing available on the AS/400 that could interact with the database. By 2002, however, IBM was telling people not to use it. However, it was several years before IBM provided an equivalent tool. Java3, which I had studied extensively and had concluded was not suitable for what we wanted to do, was IBM’s solution to everything.

I was surprised to read how uncertain we were about the willingness o AdDept clients to use AxN. The meeting in March mentioned the need for a second installation. Before reading this I was pretty sure that Belk4 was the first, but maybe someone else had used it on a limited basis.


In 2003 Denise and talked a lot about what kind of programming was marketable to our clients. We investigated quite a few products that claimed to make it easier to make native AS/400 programs web-based . We also talked about what features could be added to AxN so that it would be more valuable to advertisers or newspapers. Usually one of the last items on the list was whether we should spend time converting our code from BASIC to RPG or something else.

In May Sue and I took our first vacation in Italy. I wrote a journal about that adventure and posted it here.

The meeting of November 5 was the first mention of Bob Wroblewski, who has been introduced here. The next few agendas mostly consisted of the same items.


In January of 2004 Bob and I flew to California to visit Robinsons-May and Gottschalks. Bob then started enrolling Rob-May’s papers. After that the process of getting newspapers to subscribe to AxN snowballed for several years. At about the same time our long courtship of Dick’s Sporting Goods finally paid off with a contract for AdDept. So, in only two years the outlook for TSI had improved greatly.

In February it occurred to me that there might be one dominant software company for the newspaper business. If we could create an interface with their system, it could advance the AxN project tremendously. However, I later discovered that each paper, if it had anything at all, had developed its own software or paid someone to do it. There was no uniformity. Fortunately I discovered that this was a blind alley before I wasted a lot of time, money, and energy on it.

The agenda for the February 18 meeting made it clear that the AxN project was about to take off. Most of the long-time AdDept users had at least been contacted. Stage Stores was enthusiastic, and they had just acquired another chain named Peebles. Finally, Dick’s Sporting Goods had finally signed the contract to purchase AdDept. To deal with the expected increase in use of the Internet by the newly subscribing newspapers Denise was arranging for installation of a T-1 line from AT&T with the Cox Cable connection as backup.

The March 3 agenda closed with a mention of the NAA, which was the abbreviation for the Newspaper Association of America (changed to News/Media Alliance in 2016). I eventually talked with someone at its headquarters, but I foresaw that it would take a lot of time and effort to build a productive relationship with the organization. It might have been a good project for Doug Pease (introduced here) or Jim Lowe (introduced here), but at that point they were in the rear-view mirror. I never thought that this would have been a good fit for Bob. Besides, he was busy talking to newspapers, or at least soon would be.

It took me a few minutes to decode this entry on the entry for March 24: “Robinsons: Lower price for LANG?” LANG was the Los Angeles Newspaper Group,.5 a company that printed and distributed tabloids in Los Angeles and its suburbs. Advertising for all those papers was managed from one central location. TSI agreed to send them one bill. We treated them like one large paper with several editions.

In April we were waiting for Dick’s to begin the solicitation for AxN before we approached Macy’s West and RadioShack. The April 21 entry contained positive news about Filene’s use of AdDept for accounting, including the monthly closing process. The next week Denise and I discussed the proposed trip to talk with Hecht’s main paper, the Washington Post. I ended up visiting them on May 14. It gave me quite a thrill, but I don’t think that they ever agreed to use AxN. Apparently we also considered a press release about being in business for twenty-five years, but I am pretty sure that we never did it.

The agenda for May 26 poses this question about Filene’s: “Have they made a big mess?” Bon Ton agreed to send letters to its newspapers about AxN.

In June we discussed various methods of emailing claims. I don’t recall that we ever took any action on this. There was ominous news from Federated that they put all quotes on hold. The total number of orders in AxN exceeded 100,000. The June 30 agenda announced that Dick’s was moving into its new building over the subsequent weekend.

The first item on the July 21 agenda was “Denise’s three issues”. I wonder what they were. Item #10C talks about a follow-up meeting with the Washington Post that never happened. The next week’s agenda explained that they did not respond to my email. A second e-mail was sent on August 4. On August 25 (my dad’s eightieth birthday) I called the Director of Advertising Services.

Something distressing was evidently going on at Parisian, but I don’t remember what it was. That disclosure was somewhat offset by the following good news: “RadioShack: 34 active; 39 testing; 22 Macy’s West; 15 L&T; 4 Parisian; 56 other.” RadioShack did one of its four geographic divisions at a time. The last two entries brought up new subjects: “How can we make better use of my time and Lucia’s6?” and “5-year plan”.

The August 4 agenda was the first to mention SQL7. I used SQL for all of the AxN programs, but the AdDept programs mostly created temporary indexed output files that were populated by one program and read by another using IBM’s recommended approach, ISAM (Indexed Sequential Access Method).

Marshall Field’s (introduced here), the last big installation of the May Co. version of the AdDept system, was first mentioned in the agenda for September 8. We were very excited about the meeting scheduled for September 16 at Hecht’s advertising department in Arlington VA. By this time the work for the Peebles installation at Stage Stores was operational enough that we were ready to solicit their newspapers for AxN.

I was serious enough about contacting companies that sold software for ad agencies that I spent $35 to buy the booklet from the AAAA. I questioned whether we should write to each of them to propose an interface with their system and AxN. I don’t remember ever doing so.

The agenda for November 1 mentioned that Field’s used an ad agency for both broadcast and newspaper. My recollection was that they started using AxN almost immediately and dropped Haworth, the agency that bought newspaper space. However, later entries seem to contradict this. The same agenda mentions that TSI was carrying $55,000 in questionable receivables in the last month of its fiscal year.

I never had to make an onsite visit to our AxN client in Guam.

The November 10 agenda mentioned that—after months of foot-dragging—Federated Systems Group was finally going to “cut over” to their new AS/400 system. During this period we were worried about providing support for AxN for Macy’s West’s newspapers in Hawaii and Guam. This was needless. The papers subscribed for years without any problems. This was also the last agenda that included a mention of a press release about TSI’s twenty-fifth anniversary.


A major issue early in the year was how to handle the process for installing changes that Dick’s had forced upon us. There were other issues, too. The first agenda of the year ends with the question: “How can we get this installation on the right track?”

Two minor enhancements to AxN for the advertisers had been completed: custom emails and downloading of email addresses. However, I had apparently given up on the possibility of interfacing with computer systems used by the newspapers. There was also a process for reconciling the orders on AxN with the schedule on AdDept.

By March 10 we had a big programming backlog because of the large number of difficult jobs for Marshall Field’s. Denise controlled this process. I simply asked, “How can I help?” In the same meeting we discussed for the first time what, if any thing, we should do to forestall Macy’s from replacing AdDept with the system known then known as FedAd that had been developed by Burdines. Our contact at Macy’s West stated that “it did not exist”.

At the March 25 meeting we talked about Macy’s East for the first time in many months. For the April 28 and May 4 meetings there is separate agenda for AxN. For some reason I seemed worried about using it at Foley’s and Stage Stores.

The first item on the regular May 4 agenda was one word: “Lucia”. Lucia was able to handle much more challenging projects than our other administrative employees. The problem was trying to come up with things for her to do. Another issue on the same agenda posed some interesting questions:

We never mastered the trick of Cloud Computing.
  1. How could we set ourselves up to manage systems for our small clients? Bon Ton, Gottschalks, Neiman Marcus
    1. IBM (like Federated)?
    2. TSI
      1. Dedicated high-speed line for each user?
      2. On the net?
        1. Telnet? How would they print? Pdf?
        2. VPN: AS/400 to AS/400?
        3. VPN: PC to AS/400?
      3. High availability?
      4. Disaster recovery?
    3. A third party?

We did not spend a great deal of effort on trying to provide “cloud” computing for our customers. It would have involved a great deal of expense and risk. Just seeing that term “disaster recovery?” item gives me the chills.

Later in May Sue and I took our second Italian vacation with our friends Tom and Patti Corcoran. I wrote a journal again, but this time I had a camera. The results are posted here.

The agenda for June 2 began with the surprising news that Chuck Hansen at Marshall Field’s had asked me to back off on AxN. It also mentioned the agenda for a meeting with Macy’s Marketing on 5/17. It probably intended to say “6/17”. The next agenda, dated July 8, only stated, “Follow up with …” I must have forgotten the name (Robin Creen) of the lady with whom I met at Macy’s Corporate Marketing. There is also a reference to Bloomingdale’s. I suspect that this was in response to information from Tom Caputo, who worked with AdDept at both Lord & Taylor and Saks Fifth Avenue, that Bloomies had never taken the FedAd software out of the box.

The July 11 agenda has some detailed information about a proposed newsletter publicizing how AdDept handled inserts. Some of these enhancements were done for Dick’s.

The August 26 agenda has a new and somewhat mysterious major topic called “AdDept ideas”. The two subtopics are “SpooliT8 ($9K) or other Excel” and “Service Bureau”. I think that SpooliT made .csv files out of spooled output files. It may have had a few other features.

Throughout this period there were references to The Oregonian, the major paper in the Portland area that stopped paying invoices for AxN without canceling and never responded to attempts to find out why.

The agenda for September 14 mentions the long letter that I sent to Robin Creen. Its contents are posted here.

The agenda for October 12 had several tantalizing references. It began by stating that IBM’s VPN9 product, which TSI used for communicating through the Internet, with clients’ AS/400s would be activated on the following Saturday. It also reported that a newsletter had been sent out.

Robin Creen topped the October 24 agenda, but there were no details. The second item referred to renewal of iSeries News, a magazine.that catered to the AS/400 community. It had undergone many name changes, and the content had also evolved. We kept all of the back copies in the shelves that in 2023 are in my office. When we closed down the company (details here), I threw all of them away.

The third item was “SBC Contract”. I don’t remember SBC, but I suspect that it was an IBM Business Partner that had sold more systems than we had or had somehow managed to deal directly with IBM. During this period TSI was not allowed to quote or sell any IBM products. We had to go through a Super-VAR.

The fourth item was “Lucia” with no details. The fifth was “AT&T Global: do we need it?”. I am pretty sure that this product allowed me to get my email when I was on the road. In the days before Wi-Fi I had an AT&T product installed on my laptop that allowed me to use a phone line in my hotel room to sign on to AT&T and look at my email.

We must have received an inquiry from Sport Chalet10 a chain of stores in California that was similar to Dick’s. Until I saw this entry again I had completely forgotten about them. Evidently I wrote them a letter and sent them a newsletter, but nothing came of it.

The last agenda for 2005 was dated December 6. The #1 item was the blitz to get an AdDept system for Macy’s South up and running in time for the season that started at the beginning of February. The second item was an inquiry from Circuit City11. This was another dead end.

The “My disk recovery” entry brought back some really bad memories. I think that I recovered everything on my computer’s hard drive, but it was costly and painful. The best part was that I got an external hard drive12 that made it very easy to back everything up.


There are no entries for 2006 until June. I remember being under extreme pressure to bring the two huge AdDept installations at Macy’s South and Marshal Field’s up to speed. Meanwhile we received the crushing news that Macy’s and the May Co. had merged, and Macy’s would be the dominant player.

The agenda for June 13 began with the word Corum. I am pretty sure that it referred to broadcast buying software. Based on the date it was probably associated with Macy’s South.

That agenda also contained a major item that simply stated “Modernizing and marketing AdDept”. We never did find a feasible way to transform the AdDept screens into something that looked modern. We made more marketing attempts after this, but they did not amount to much. This was the peak period for AxN. More than four hundred papers had subscribed. TSI’s administrative person spent a good deal of time printing and mailing invoices and depositing checks from newspapers.

The agenda for October 11 was startlingly different. It mentioned two AS/400 models, a 170 and a 270. My recollection is that we did development and ran the business on the 170, and the 270 was devoted to AxN. It also mentions recruitment. I am not sure whether that referred to the administrative position or programming. The agendas have gotten shorter and shorter.

This agenda also mentioned the C compiler for the 270. Denise was upset at me for even investigating the possibility of converting TSI’s code to C, which was widely used in the Unix world.

In the agenda for October 18 the scary term “Macy’s North” appeared several times. It referred to the company that was formerly called Marshall Field’s. Evidently the marketing (never called “advertising”) department there had never bought into using AxN for insertion orders. They may have still been using Haworth.

“Maintenance” was often mentioned in the agenda for November 1. We probably never charged as much as we could have for the kind of service that we provided our clients. I was evidently still spending quite a bit of time at Belk.

I was surprised to see Circuit City mentioned again on the agenda for November 8. We must have received another phone call. The term “Foley’s project” also appeared. I am pretty sure that that was the code name for the long and frustrating effort that Denise and I undertook to sell the company.

The last agenda that I have was dated July 10, 2007. It contained only four items:

  1. Trip to Macy’s West
  2. 515
  3. Dick’s quotes
  4. Foley’s

Never even a nibble.

Denise and I continued to meet, but not on a formal basis. By then I had almost given up on selling more AdDept systems. There had been so much consolidation in retail that the number of good prospects for the system had shrunk to almost nothing. Nordstrom and Dillard’s would have looked nice on our client list, but it was hard to think of anyone else that was worth pursuing.

We still did quite a bit of custom programming during the next five or six years, but managing the list of open jobs did not require the juggling act that had characterized the previous decade.

The AxN business decreased for a few reasons. The big stores no longer trusted newspaper ads to bring in customers as they once did. Newspaper readership was way down. Some of the AdDept clients outsourced their buying to agencies or media services. That always meant a drop in the number of papers.

I enjoyed those meetings immensely, and I miss them.


1. The history of the development of AxN is posted here. The system design is outlined here. The description of the process by which it was brought to market begins here.

2. Net.Data was a scripting language written by IBM for the AS/400. It was quite popular, but IBM for some reason decided to drop it in favor of the open source scripting language php, which required implementation of the Zend php engine.

3. Java is an object-oriented language that was developed by people at Sun Microsystems. The company released an open-source version. Java was almost the only thing that IBM talked about at the PartnerWorld convention that Denise and I attended in 2000. It is described here. On the AS/400 applications written in Java required a lot more resources than programs written in the native languages. If run on the same box the Java programs were slower, a lot slower.

4. The history of the AdDept installation at Belk is posted here.

5. In 2016 LANG merged with the Orange County Register and a few other papers. The new organization was called the Southern California Newspaper Group. The third item under the Federated topic was “AxN letter to four divisions”. Since “Bloomingdale’s” was the second item it mus refer to Macy’s East, West, South, and Florida (Burdines).

6. Lucia Hagan was TSI’s administrative person during this period. She was introduced here.

7. SQL stands for Structured Query Language. It was invented by IBM, but the company did not endorse its use on the AS/400 until 2004.

8. SpooliT is still on the market in 2023! Its website is here.

9. VPN stands for Virtual Private Network. The Wikipedia entry is here.

10. Sport Chalet was sold to Vestis Retail Group in 2014 and was liquidated in 2016.

11. The sad story of Circuit City ended with its liquidation in 2009.

12. I still have that hard drive in 2023. However, I recently discovered that I no longer can find the cable that was used to attach it to a computer, and the company that made it was no longer in business.

1999-2002 TSI: The Million Dollar Idea

The genesis of AxN. Continue reading

In large measure this entry is based on and inspired by a set of recently discovered messages that I sent to my partner, Denise Bessette, about new projects that we were researching or working on. The first email was dated in late 1999. The last was in early 2001. The messages portrayed an exciting but scary time for both of us.

By the middle of the nineties it was evident to us that the way that TSI had been programming in the past fifteen years was becoming obsolete or was at least losing popularity. In 1992 Microsoft left IBM at the starting gate when it released Windows 3.1, the first version of its operating system that featured a graphical user interface (GUI) and was also stable enough that large corporations took it seriously. One could still make the argument that text-based software systems like the ones that we had developed were appropriate for many business tasks—in fact, most of the most important ones. However, if you did, you were probably dooming yourself to the fate of typewriter salesmen.

Great if you have just 2 fingers.

In fact, systems like AdDept and TSI’s other systems were branded by many of the magazines of the day as “legacy systems”. The emphasis of the new approach centered around the appearance of the screens, which now featured colors, images, text boxes, radio buttons, and varied fonts. They were certainly more interesting to look at than anything that we had produced. The mouse was the thing! The keyboard was only used when absolutely necessary. Whether they were as efficient or as easy to use was debatable, but, as I already noted, we were well aware of what had happened to the typewriter salesmen.

Another thing that happened during the middle of the nineties was the explosive growth of the Internet. All software developers wanted to be a part of it, but few were exactly sure how to approach it. I knew that we needed to figure out what aspect we should concentrate on, but it was not an easy decision to make. A few early participants made a lot of money, but an awful lot of ideas were catastrophic failures.

The Search for a GUI: I spent countless hours researching ways that we could provide a GUI for the AdDept system that did not involve a complete rewriting of the hundreds (and growing daily) of screens that we had already implemented. Every developer who worked on IBM midrange or mainframe systems must have been faced with the same problem. We all wanted a way to provide a system that looked modern but also took advantage of the thousands of lines of functioning code that had already been written.

I don’t know why, but IBM was not much help in this endeavor. Instead, in the late nineties IBM became a strong proponent of an object-oriented programming language developed by Sun Microsystems called Java. This was a startlingly new language. The first version was released in 1996.

I bought and read ten separate books that purported to teach Java programming. The structure of the language was consistent with the first principle of its design: “It must be simple, object-oriented, and familiar.” Well at least it was simple and object-oriented. The structure of the code was nothing like what I was accustomed to. Its main orientation was to a computer display, which it considered a set of objects, each with a set of properties and methods. That approached worked well enough for a screen, but how would it work for other things? After downloading the software development kit to my laptop and spending hundreds of hours mulling the contents of those books, I could do all of the exercises in every book, but I had not the slightest clue how to begin to code a system to manage any aspect of retail advertising. In fact I could not replicate even one screen of the AdDept system.

I did not completely discard the notion of using Java somehow, but if we did, we would definitely need some help. As I look back on this, maybe this is the reason why IBM was so crazy for Java.

The Spreadout Project: Users of TSI’s systems seldom complained about the look or feel of our data entry screens. Those screens would never have won any design awards, but the formats were completely consistent throughout the application, and everyone knew that they got the job done efficiently. Furthermore, they knew that TSI could implement requested changes rapidly and at moderate costs.

What they did not like much was the look of the reports, which was limited to one non-proportional font—Courier—with no images or even styles like italics or bolding. Many, if not most, of the people who used AdDept were quite good at making and manipulating spreadsheets. They were used to controlling the format of the output, and they liked the flexibility. For example, if they wanted someone to concentrate on one column or row, they could easily change the font, color, or style for just those cells.

Several clients asked us if it would be possible for us to produce an Excel spreadsheet as the output from designated programs in AdDept instead of or in addition to printed reports. I did not know if it would be possible, but I said that I would look into it. I dubbed this project “Spreadout”.

It was rather easy to produce an output file that contained the same rows and columns as the report, and we implemented that option in a large number of AdDept reports. The user could then download that file to their PC. That file could then be loaded into Excel with the rows and columns intact. However, the fields (or cells) in the file contained only text or numbers. It was not possible to download formulas for totaling or designate any kind of formatting. Furthermore, the process of downloading the file was not exactly speedy.

I tried to figure out what it would take to produce code that could provide files that could be opened in Excel with predetermined formulas and formatting. I found some documentation from Microsoft of the Excel files, but I never could concoct a way to provide what our customers asked for. Furthermore I never heard of anyone else who had accomplished this, and —believe me—I searched..

I did, however, managed to provide an alternative that proved popular to some clients. Almost all the AdDept customers used Hewlett-Packard printers that were accessible by the AS/400. HP sold books that documented the format for files in HP’s printer command languages, PCL 4, PCL 5, and PCL 6. I could then write code to produce spooled files that contained the output in exactly the format that the client specified. The downside was the considerable amount of coding required for each report, many times as much as it took to produce it in the Courier-only. It also required an extra step to send the output directly to the printer without being reformatted.

However, a few clients were so insistent about the need for a precise format that they were willing to pay the price. These reports were almost always the ones that they distributed to other departments or to higher-ups.

If anyone else ever did a project like this for the AS/400, I never heard of it. Unfortunately, I never figured out how it could be marketed as a stand-alone product usable with other AS/400 software.


As the new millennium approached, we—that is, Denise Bessette and I—felt that we needed to expand TSI’s horizons. In January of 2000 we flew to San Diego for IBM’s PartnerWorld conference in the hope of making contact with people who could advise us how to adapt to the need for modernization and the Internet. That enjoyable but frustrating experience has been described here.


On February 25, 2000, I took the time to write up in a fairly detailed manner how, given the inherent limitations of a small business like ours, TSI should to proceed in trying to develop a second line of business. Here is a portion of that memo:

General principles:

1. We should get the best people available to help us.

2. We should maintain AdDept as a dependable source of income. Whether we should invest a lot of time and/or money in enhancing and marketing AdDept is still to be determined.

3. We should try to leverage our assets better. Our income is too heavily dependent upon the number of hours put in by Mike and Denise.

4. We should assume that the economy will remain strong for another two years. On the other hand, we should avoid debt or at least large amounts of debt in case this assumption turns out to be false.

5. We should add new skills that are more marketable. That means learning some subset of Windows, object-oriented programming, and the internet. We should be thinking past the next project to the one after that if we can.

6. We should look for partners with skills and assets that complement ours.

7. We should not be deterred by the fact that some of these principles seem incompatible.

8. We need to act fast. Pursuing René2 cost us seven months. On the other hand we might have gone down some less profitable paths if she had been on board.

I think we should take the following steps as soon as possible.

1. Find out what it takes to get our existing clients to use AdDept for insertion orders. The following clients are not using AdDept for IO’s: Macy’s East, Neiman Marcus, Filene’s, Saks Fifth Avenue, and Hecht’s. I checked Herberger’s. They have ads through March 29, 2000, at least. Macy’s West is apparently starting. Gottschalks ran insertion orders yesterday. I don’t know about Meier & Frank, but I can take care of that on my trip.

2. Find out which advertising departments have access to the internet and would be willing to use it to check on insertion orders. I don’t think that this would be a problem with most of them. Unfortunately, we don’t really have anyone in the office who can do this for us.

3. Make an appointment with Ken Owen3 to run the idea of a clearinghouse for insertion orders by him. He may be very interested in working with us on it. I have quite a bit of respect for him. At the very least, he is smart and completely honest.

4. Run the clearinghouse idea by at least one of our clients. Why not schedule our trip to New York and run it by Tom, Chris, and whoever their ROP person is?4

5. Run the clearinghouse idea by at least one newspaper or someone who knows how newspapers think about these things today.

6. Start trying to package and market AdDept and/or AS/400 products and services. We need to maintain or enhance our cash position over the next six months.

7. We should find out what, if anything, the National Newspaper Association (NNA)5, the AAAA6, and AP AdSEND have done in this regard. The AP is a potential partner in this venture. I once had a copy of the NNA’s EDI spec7, but I seem to have thrown it out when we moved. I will see what I can find on the Internet.

Requirements for hiring a marketing/client services person:

1. He/she must be able to get along with Mike and Denise. This includes having a good work ethic. I think Doug barely met these qualifications.

2. Must be able to get along with the clients.

3. Must be willing to spend a lot of time on the phone.

4. Must be able to talk to decision-makers and occasionally presidents of corporations without looking foolish. Doug could do this, but his ability to identify the real decision-maker was just so-so. He was also almost always overly optimistic, but this might be necessary to offset my tendency to see the negative side of everything.

5. Must be able to refrain from overselling.

Pluses:

1. Intelligence. Determination can go a long way to overcome deficiencies in this categories, but I don’t think I want to try to explain things to someone any duller than Doug.

2. Retail experience.

3. Newspaper experience.

4. Other advertising experience.

5. Good business sense.

6. Sales experience.

7. Computer experience.

How to proceed.

1. We can run an ad in the Courant. There are almost as many classified ads for sales and marketing people there as for programmers. The only major retailer in the immediate area now is Ames, and they run no ROP. Therefore the chances of finding someone in Hartford who understands retail advertising are slim.

2. We can contact a headhunter. We don’t have to pay unless we find someone, but we will have to pay plenty if we do. It might be worth it if it speeds up the process.

3. We can advertise on the Internet. Does that cost money? If so, how much?

4. In interviews I think that we should consider dangling a carrot of a spinoff of a .com company for the insertion order clearinghouse. I am not exactly sure how to present this idea to someone. Maybe we could offer them a percentage of the new company with the understanding that we would try to sell it once it has become established.

In retrospective I find it impressive that I was able to earmark in advance so many important issues that TSI would face over the next few years. We made some mistakes, but we made a lot of good decisions.


A month later, on March 25, 2000, I mailed a letter to our contacts at all of the companies that used AdDept. I solicited their opinions on what TSI’s priorities should be in the new millennium. Here is a copy:

TSI is in the process of evaluating how best to allocate its resources over the course of the next year or so. Our highest priorities will remain providing excellent support for existing installations and responding to requests for custom programming from existing clients. However, there are a few additional projects that we are considering. We are very interested in learning what our existing clients think about them.

1. Menu maker: This is a fairly simple idea both in concept and in implementation. You would be provided with either a PC/Mac program or an AS/400 program that would allow you to create your own menus. The menus would reside in a separate library so that they would never get mixed up with the standard AdDept menus. You would provide the name for the menu and the heading text. For each option you that want to add, you would be allowed to select from a list of AdDept programs and menus. You could also enter your own command or an IBM command (e.g., WRKQRY). If you selected an AdDept menu or program, the description and the online help would be filled in for you, but you could override the text to make it say what you wanted.

2. GUI front end: Most software companies that market systems of a size comparable to AdDept have budgeted more than $1 million to “modernizing” their data entry screens to use a “graphical user interface” that is consistent with the methods used by Windows and Mac programs. It is now technically feasible to create a fairly nice GUI front end for AdDept for much less than that using products available from third party vendors. However, there is still a considerable capital outlay involved. We also estimate that it would take at least half of a man-year of labor. Furthermore, the PC or Mac would have to meet certain minimum requirements. Terminals would still use the green screens. TSI’s support regimen would be more difficult. The interactive programs would probably run slower on older AS/400’s. They may actually run faster on newer boxes.

3. Output to Excel: We believe that it is technically feasible (albeit difficult) to create a file from the AS/400 that is usable by Microsoft Excel with no intervening steps. It is a relatively straightforward task to download data files (or even spooled files) to spreadsheets today, but many intervening steps are required to get something presentable. TSI’s proposed method would allow you for each report that is eligible for this kind of treatment to designate (and permanently store) the formatting of the worksheet—report titles, column headings, “fit to page”, and most of the other values in “File, Page Setup.” You would also be allowed to designate fonts and sizes for the report title, the column headings, the body text, and each level of subtotals. The subtotal values would be formulas, not simple values. The same program could be used for data files that are produced by queries. The resulting worksheet could then be edited as needed. You can even edit, add, or delete lines in the worksheet. The subtotals will automatically be updated. Most simple reports could be reformatted to use the proposed program. It might be difficult or even impossible to generate some complex AdDept output using this approach.

4. Insertion order clearinghouse: We have long thought that the methods used for reserving newspaper space leave too much room for error and are overly labor-intensive, both for the advertiser and for the newspaper. The purpose of this project is to make the ordering process easier and to minimize the potential for miscommunication.

Instead of faxing the orders, the AS/400 would send them electronically to TSI. We would post them on a website. When the newspaper reps sign on, they would see all orders for them from all advertisers who are using this service. They would be able to add comments or questions and confirm them electronically with or without reservation numbers. They could also print the orders and, eventually, download them directly into their reservation systems. When you sign on, you would see all of your orders. It will be immediately obvious which ones have been confirmed, which have been read but not confirmed, and which have not been read yet.

What do you think of these ideas? Do you have any ideas of your own? We would greatly appreciate it if you would communicate your feedback to us at your earliest convenience. The last thing that we want to do is invest a lot of time and money in something that is of little or no perceived value to our clients.

I don’t recall receiving any substantive responses to this, but around this time Steve VeZain sent me a rather lengthy email that explained some of the priorities for Saks Inc. Our dealings with him and his company are detailed here.


Net.Data: At some point I became acquainted with an online forum called IGNITe/4007. This was a website where AS/400 developers could pose questions about using the AS/400 for applications for the web. Although some IBM experts participated, the forum was not run by IBM, but by a former IBMer named Bob Cancilla8, who worked for a company in Rochester, MN, the home of the AS/400.

Bob also wrote the book shown at left that explained how to use the AS/400 as an Internet server. IBM disdained the approach of its customers using a book written by someone who had actually gotten the AS/400 to function as an Internet server. Big Blue preferred that its customers spend hundreds of dollars on classes or thousands of dollars on consultants rather than $15 or $20 for a book. They also championed something called WebSphere to manage applications written in Java. During February and March of 2000 I had puzzled over the Redbook that documented this product. I was nearly ready to give up on the idea of using the AS/400 for anything related to the Internet until I found Bob’s book and website in April of 2000.

I purchased this excellent tome and followed most of Bob’s advice. I successfully configured TSI’s model 150 as an HTTP server to serve web pages to browsers and as an FTP server for exchanging data files. It was possible to use the AS/400 as an email server, but Bob advised against it. We elected to use AT&T for sending and receiving emails for our employees. We later configured our AS/400 to send outgoing emails through the SMTP (simple mail transfer protocol) server. Eventually IBM decided that it was a bad idea to have its own proprietary HTTP server and supported a version of the Apache server used by almost everyone else.

At that time the most popular scripting language for web-based applications was PERL. IBM never supported it on the AS/4009. Instead it provided its own language, which was called Net.Data (pronounced “Net Dot Data”). This was the only web language that could be used on the AS/400, and no other system in the history of the world ever used it. We obtained a copy of IBM’s handbook on Net.Data (posted online here), and I determined that we could probably use the language for what we wanted to do. Here is what I wrote about it at the time.

I signed on to the IGNITe400 website and registered as a member. It’s free. You can ask questions there. I looked at a few of them. Bob Cancilla himself answered some of the questions! I also looked at IBM’s Net.Data website. It is full of information.

I printed out a lot of documentation. I am now convinced that we can do what we want to do with HTTP server and Net.Data. This is exciting. Buying that book was a great idea. The links alone are worth the price. The biggest difficulty that I see will be working out the process of getting the orders from our customers and then from others.

… I have more than doubled my knowledge about the AS/400 and the internet in the last two days. Moreover, I think I could do it! I think that we should try it some time this coming week.

Net.Data was an interpreted language, just as BASIC was on the Datamaster and the System/36. The programs (which in web parlance were called scripts or macros) were not compiled into executable machine code. Changes to the scrips took effect as soon as the programmer made them. So, a developmental environment was a necessity. The time it took the processor to interpret the code and generate the HTML code that the browser could understand made all of the programs considerably slower than the compiled BASIC programs on the same machine. However, they were lightning fast compared to Java, the approach blessed by IBM.

So, I taught myself how to use Net.Data to deliver interactive scripts for a browser (at the time the main choices were Netscape Navigator, Internet Explorer, and whatever Apple called its browser before Safari). The language itself was relatively easy to understand, but programming for numerous constantly changing browsers was much different from programming for a very stable AS/400 and its 5250 user interface.

I also had to learn the Common Gateway Interface (CGI), which was the method of reading from and writing to files on the AS/400. This was totally different from what we were accustomed to. Our programs had always read the files a record at a time even after we switched to the AS/400’s relational database. With Net.Data it was necessary to execute an SQL statement that returned a set of data—rows (records) and columns (fields)—that was stored in an array (called a table in Net.Data). It was then necessary to loop through the rows of the array. I was already somewhat familiar with SQL, but I needed to learn how to use “joins” to do complicated selections.

These two volumes got a workout. The binding on the HTML book split in two years ago.

I also needed to buy books on HTML and JavaScript. If I had realized before I started that I needed to learn all of this, I might have deemed that the project would require more time and effort than I could afford. However, by the time that I realized what I was up against, I had invested so much time that I was not about to abandon the project.

There was no syntax-checking of Net.Data macros, and, at first, there was no editor to help by color-coding the statements. So, when I ran into a problem, which happened quite frequently, I had to search elsewhere for help.

Life got a lot easier when IBM put its Redbooks on CDs.

In researching for this blog, I found a pdf online for a Redbook (technical manual) that IBM published for people like me in 1997. It is posted here. Even a quick glance will make it clear that writing applications for the AS/400’s HTTP server would be a daunting task. For example, it contained this statement: “Net.Data Web macros combine things you already know such as HTML, SQL, and REXX with a simple macro language.” I did not know HTML at all, I knew only a little SQL, and to this day I have no idea what REXX was. Also, the Redbook neglected to mention that it was not really possible to write interactive programs without JavaScript.

I hung in there. Here is one of my last messages: “I feel a lot of pressure to work harder. I want this new project operational yesterday. It is going to be difficult at first. I want to get over the hump.”

I spent a lot of time in the IGNITe/400 forum. My best source of information was a guy from (I think) New Zealand, of all places. I never met him in person or even spoke with him on the phone. His name was Peter Connell, and he helped me through every difficult coding problem that I encountered. Not once was he stumped. By the time that I was well into the project, I was able to provide solutions to coding problems that others described.


TSI’s Internet Project: Even before Denise and I attended PartnerWorld, we had pretty much decided that our best shot at developing a successful Internet product would involve insertion orders, which is what newspapers and magazine call reservations that they receive from advertisers for ROP (display ads), inserts, polybags, or any other kind of advertising. TSI’s AdDept customers sent their reps at newspapers a schedule that listed all of the ads that they wanted to place for a specified period—usually a week. Most of them faxed this information to the papers. The rep at the paper examined the schedule. Sometimes questions required phone calls. Sometimes requests (such as designated positioning in the paper) could not be accommodated. Even after final approval the schedule was often changed by the advertiser before the ads ran, sometimes with very little advance notification.

Newspaper ads were expensive … and valuable.

Errors on both sides were not rare, and they could be quite costly. The newspaper often gave the retailer free ads to make up for the mistake. The advertiser’s loss might be much greater. In the nineties and early twenty-first century ads in newspapers were the primary vehicle for communicating with customers. Mistakes in the ads could cost the retailer thousands in sales, and they were embarrassing to the advertising department. Occasionally heads rolled.

In 2000 most retail advertisers faxed their schedules to the newspapers. If the line was not busy, the phones were rather reliable. However, what happened to the schedule after the fax machine received it? Was the printout legible? Did the rep ever get it, and, if so, what did he/she do with it. What assurance was there that the fax that the newspaper used to compose the paper was the final version?

We thought that the Internet might provide an opportunity to speed up this process and to improve its reliability. My first idea was to replace faxing with email. If the AS/400’s (free) SMTP server were installed, AdDept could compose and send to the newspaper an email that contained the schedule. Wouldn’t the newspaper rep immediately print the schedule? If so, how was this better than faxing? Doesn’t it just add another step? Besides, email is demonstrably less reliable than faxing. The worst that usually happens with faxing is that the output is blurry or even unreadable. Emails, in contrast, can be held up by any Internet Service Provider (ISP) that handles the message, and there could be dozens. So, the schedule might never make it to the rep’s inbox.

Eventually Denise and I settled on using FTP to send the schedule from the client’s AdDept system to TSI. Thereafter TSI’s AS/400 managed the whole process using a combination of BASIC programs and Net.Data macros. Details of the actual design are posted here.

After Denise and I agreed on the design, several details still needed to be settled:

  1. Who will do the coding at TSI?
  2. Who will pay for the service, the advertiser or the newspaper?
  3. How much will we charge?
  4. How will we market the product to our clients and their newspapers?
  5. How can we entice advertisers that did not use AdDept to use this method for insertion orders?
  6. Can we take advantage of the link established between TSI, the papers, and AdDept for other modules?
  7. What will the product be named?
  8. Will the project be part of TSI or a new financial entity?

The answer to #1 turned out to be Mike Wavada. I expected that I would eventually train Denise or one of the programmers so that they could at least support the existing code, but it never happened. It astounds me to report that this was a one-man coding job from day one, and no one else at TSI ever learned Net.Data. Hundreds of papers and most of the AdDept clients relied on it starting in 2002 and continuing through early 2014. Think about this: Between 2003 and 2012 I took six vacations in Europe and one cruise in the Caribbean. There were no serious incidents!

Questions 2-5 are addressed in the entry about marketing of AxN, which is posted here.

From the outset I was hoping that the nexus connecting newspapers and the retailers through TSI’s website could be used for other communications as well. The most obvious one was for the delivery of the files that contained the layouts of the ads. Nevertheless, I was reluctant to pursue this for several very good reasons. The first was that the Associated Press already had a huge head start with its very popular product called AdSEND10. There were also several other companies that offered similar services.

The other thing that gave me pause was the potential legal liability. It seemed to me that if we failed to deliver an ad correctly and/or promptly, we could easily be sued. A fundamental tenet of TSI’s operation had been to avoid any activity that might occasion a lawsuit. Throughout the first two decades of its operation, TSI had successfully avoided litigation. Also, we knew nothing about the process of sending ads electronically, and the AP already owned satellites that it used for this purpose. I also learned later that AdSEND had twelve dedicated T-1 lines, and one of TSI’s clients told me that that was not nearly enough. TSI eventually installed one T-1 line that easily handled the insertion order traffic generated by AxN.

An idea that I liked better was for the newspapers to transmit their invoices electronically through TSI’s servers to AdDept users. I even came up with a cool name for this: e-I-e-IO, which stood for electronic invoices and electronic insertion orders. My idea was to provide a program to feed the newspaper’s billing system with the information from the insertion order, and to feed the retailer’s AdDept system with the same information. I did a little research to see if one software system for billing or accounting was dominant in the newspaper industry and discovered that this was decidedly not the case. So, we would face the prospect of persuading one paper at a time, or, at best, one chain of papers at a time. Furthermore, someone else had already claimed the URL that I really wanted: eieio.com.

The name that I picked for the new product would still work if we came up with other ways for TSI to serve as a nexus between advertisers (A) and newspapers (N). It was AxN, which was pronounced “A cross N”. The A and the N were always portrayed in dark blue Times New Roman. The x was always in red Arial.

That leaves question #8. Denise was always in favor of making AxN a separate financial entity. However, we never found a way to extricate it from the rest of the business. We looked at the revenues separately, but we never even did a separate P&L for it.


1. René Conrad was TSI’s liaison with Kaufmann’s, the May Company’s division based in Pittsburgh. Both Denise and I had a very high opinion of her. When Doug Pease left TSI in 1999, we tried to hire René. Details of the AdDept installation at Kaufman’s are posted here. The unsuccessful pursuit of René is documented here.

2. Ken Owen is a friend and was a client. The latter role is explained here. By 1999 Ken’s business had drifted away from creating and placing ads for clients to software for the Internet. He gave us a little free advice, but the role for him that I envisioned did not materialize. I communicate via email with Ken every year on March 4, the holiday that we celebrate together—Exelauno Day.

3. Tom Caputo and Chris Pease were our key contacts at Lord & Taylor in Manhattan in those days. The history of the installation at L&T is recorded here.

4. I did contact the NNA, but nothing came of it. The person with whom I spoke was nice enough, but it became evident that trying to work with this organization would be extremely time-consuming and not the kind of thing that I was good at or enjoyed. Eventually I discovered that there were almost as many administrative systems for newspapers as there were newspapers. It appeared that there were no accepted standards.

5. The American Association of Advertising Agencies (AAAA—universally pronounced “four A’s”) published an annual list of software for ad agencies. For years TSI’s GrandAd system was on the list. I am not sure what I had in mind as an additional relationship. Perhaps I envisioned ad agencies that specialized in retailers might want to use AxN for insertion orders and would work with us to create an interface. Perhaps I thought that other software companies might add the interface to their products for ad agencies. Nothing like any of these things ever happened.

6. EDI is short for Electronic Data Interchange. It refers to an orderly setup that enables participant to exchange information electronically. When there are only two participants, it is usually just called an interface. “Specs”, which is short for specifications, refers to the documentation published and delivered to the participants and prospective participants.

7. I have no idea what the name of this group meant. At the time IBM was busy promoting the idea of e-business. IBM’s marketing director proclaimed at PartnerWorld that IBM “owned” the concept. So, that may explain why the e is not capitalized. I was surprised to find an article in Enterprise Systems Journal about IGNITe/400. It is posted here.

8. Bob Cancilla went back to IBM for a while and then became a consultant. His LinkedIn page is here. In 2018 he wrote about the thirtieth anniversary of the AS/400. It is posted here. The article explains some of the reasons why IBM treated the AS/400 division and its customers so shabbily almost from day one.

9. For some reason IBM repeatedly changed the name of the AS/400 to a bunch of things with the letter i appended. The operating system remained the same. Everyone at TSI, like most users, still called it the AS/400 even after the name changes.

10. In 2007 Vio Worldwide acquired “the assets” of AdSEND. The deal is described here. In 2010 Dubsat acquired Vio Worldwide. This transaction was reported here.

1996-2006 TSI: AdDept Client: Filene’s

May Co. department store chain based in Boston. Continue reading

Filene’s was the May Co. division that had its headquarters in Boston. TSI finally sold them an AdDept system and installed it for them, but I was never satisfied with the progress that they made in using it.

Open to the public, but not TSI.

Even before TSI hired Doug Pease as its Marketing Director in 1993, I had made a substantial effort to convince Filene’s to use AdDept. After all, it was the closest large chain of department stores, an easy drive up the Mass Pike from Enfield. Unlike the other divisions, they would not need to pay my air fare. Nevertheless, we had a very difficult time getting through the door.

In 1998 the May Co. agreed that all of its divisions should be using AdDept to administer their advertising departments. That story is told here. Chris Giles1, who managed the PC’s, Macs, and the network in Filene’s Advertising Department, came to TSI’s office for training, but the installation of the system was delayed for several years. There were numerous problems. Filene’s Newspaper Manager had instituted routines using spreadsheets to provide much of what was needed in his area. He admitted that it could not produce insertion orders, but the fact that AdDept could not only produce but also fax insertion orders—with little or no data entry—was not enough to sway him. I did not blame him, but I was disappointed that someone else did not tell him the score.

In 1998 a new liaison, David Doane, was assigned. His main job was as Production Manager. I don’t know why they assigned him responsibility for AdDept. His background was in printing.

I drove into Boston to spend a day with him and to give him a little insight into how the system could work, but we never heard from him again. I wrote prophetically in 2000: “I am not sure that the installation can ever succeed until the liaison comes from scheduling, accounting, or planning.” Spoiler alert: it never did.

That building on the right is Macy’s.

The other major issue was that the Advertising Director, Shelley Rubin,2 did not seem to like the idea of an integrated system. Maybe she did not appreciate the May Co.’s interference in her operation.

Things finally began to move a little in 2000. I received a surprising telephone call on April 6.

Chris Giles called at 5:45 PM! Joe Hrabar sent him our proposal. Shelley Rubin, the advertising director at Filene’s, had taken a tour of Foley’s. She wanted to make sure that the system we proposed was at least as fast as Foley’s. Evidently she was very impressed with what she saw there.

On January 13, 2001, Filene’s asked TSI to send them three sets of “training booklets”. I printed copies of the generic book that described how the AS/400 and AdDept programs basically worked. He also printed copies of the booklets that described the tables for media and accounting. The package was sent within a week.

The plan was to install Filene’s version of AdDept on a model 270 in the Midwest Data Center in St. Louis. I flew there and began the installation on March 13. It seemed to go fairly smoothly. I installed the AdDept programs as well as IBM’s BASIC licensed program3. I then set up the communications so that Denise Bessette could sign on from TSI’s office. I populated the department hierarchy tables and the broadcast stations from files on a PC diskette supplied by Filene’s. The settings from Kaufmann’s AdDept system were used for several other tables.

This was the first time that one of the divisions would be running AdDept on a computer located in the data center. I reported:

On Tuesday I met with ten (!) people from the May Company’s Midwest Data Center to discuss how the installation will be handled. There is not that much to it. We will have to call someone to vary on the line before we call in. They will then program the AS/400 to vary off the TSI line when we are finished. Someone will be available to do this 24 hours a day.

Adding new users will be a little kludgy. The liaison will have to submit a form to the Mid-West Data Center. Someone in St. Louis will create a user ID and a directory entry for them. The liaison will have to create the record in DAUSERS.

While I was in St. Louis I demonstrated the AxN programs to people from the May Co. and from Famous Barr, which had been using AdDept for a few years (as described here). This installation was definitely being driven by the people at corporate headquarters.

On Tuesday afternoon we had a conference call with Filene’s. All together about 15 people were in on the call. It was uneventful. They just wanted to go over the support regimen.

My notes concluded with a warning to the people at the Data Center about the difficulties of using Mac printers as system printers and a request from Jerry Catalano that I determine how much disk space Hecht’s4 was using per year.

Figure two hours in the morning or evening in good weather.

I made several trips by car to Filene’s office in the downtown Boston store after that. For the most part I worked with a lady in the Business Office to make sure that they could record all of their invoices into CAPS. I am not sure that they ever used the system for much more than that.

I don’t remember too many details of those trips. I remember that I would stop and get a Big Gulp-sized Diet Coke at 7-Eleven on the way from the parking garage to the building. I also remember that the only men’s room on the floor that housed the Advertising Department was near the cafeteria, which was a very long walk. On the other hand the elevators were very close, and there was one handicapped restroom that could be used in emergencies.


Epilogue: In 2002 Filene’s took over administration of Kaufmann’s5 stores, but the Kaufmann’s logo was retained.

In 2005 Federated Department Stores acquired most of the May Co. properties, and in 2006 the administration of the Filene’s and Kaufmann’s stores was moved to Macy’s in New York City. The stores were eventually either closed or relabeled as Macy’s.


1. Chris Giles worked at Filene’s until 2006, when the administration of the stores was assumed by Macy’s East. His LinkedIn page is here.

The Downtown Crossing store was closed in 2006 in favor of the nearby Macy’s that already existed. Although it was protected as a historic landmark, the interior was gutted, and the building remained unoccupied for years. In 2023 some of the floors are occupied by retail, some by offices, and others are empty.

2. Shelley Rubin also stayed at Filene’s until Macy’s took over in 2006. Her LinkedIn page can be viewed here.

3. IBM no longer supported the BASIC language programs on the AS/400/iSeries, but they allowed TSI to make copies of it and sell them to users.

4. The story of the AdDept installation at Hecht’s is posted here.

5. The details concerning the AdDept installation at Kaufman’s can be viewed here.

1994-2014 TSI: AdDept Client: Gottschalks

Independent chain of department stores in Fresno CA. Continue reading

In the Model T days the name still had the apostrophe.

Doug Pease, TSI’s Marketing Director who was introduced here, took the phone call from someone in the IT department at Gottschalks (never an apostrophe) in 1994. Gottschalks was an independent chain of department stores based in Fresno, CA. I am not sure how the people in the IT department had heard about TSI. We had previously had only incidental contact with the Advertising Director there. Since they seemed like an ideal candidate for the AdDept system, I quickly agreed to talk with them in person.

The only reasonable way to get to Fresno was by way of LAX. Sometimes I drove (3+ hours). Sometimes I took the short flight.

Doug and I flew out to Fresno on a Saturday to make a presentation and gather specs about their requirements. On Sunday we decided to drive up to Carmel by the Bay and then drive down Highway 1 along the coast. This was a very pleasant trip for me, but, as I described here, Doug enjoyed it a lot less than I did.

The presentation and demo in Fresno seemed to go well, but almost no one from advertising except Robert Guinn1, the manager of the Advertising Business Office, attended. At some point during that first visit Doug and I were also introduced to the president of Gottschalks. He made the startling claim that he would make sure that the other members of the Frederick Atkins2 group would also purchase AdDept3.

Shortly thereafter a contract was signed, and a small AS/400 was ordered.

In December of 1994 I flew back to Fresno and installed AdDept on an AS/400 that the company had purchased from IBM. The machine was kept in the data center. That room had tight security, and it was always very cold, at least from my perspective. Because it was December, I had my overcoat with me. The only place that I wore it was in the data center.

Gottschalks’ headquarters was several miles north of downtown Fresno.

Gottschalks recommended that I stay at the DoubleTree hotel in downtown Fresno. It was right next to the casino4. The entire downtown area, aside from the casino, was pretty much dead by the mid-nineties. I did not like staying at that hotel. Fortunately, it was easy to persuade Gottschalks to let me stay somewhere on the north side of town that was both cheaper and closer to the company’s headquarters at 7 River Park Place East.


The primary purpose of the installation was not to improve or make more efficient Gottschalks’ advertising. Its main use was to keep better track of the money spent by the department. Here is what I wrote in 2000:

The liaison is now and always has been an accountant. The advertising department has shown very little interest in using the system. Their opinion is that the system was forced down their throats. This opinion is accurate. The accounting department and the IS department purchased the system in order to hold the advertising people’s feet to the fire.

On the other hand, there may be an opportunity here. Most of the people involved at the time of the installation have moved on. If contact is made with the new people, we may be able to sell them on efficiencies to be derived from using AdDept for scheduling.

Shortly after I wrote this evaluation Ernie Escobedo5, who succeeded Robert as TSI’s primary contact, arranged for an upgrade to the painfully slow AS/400 that they had been using. The new Model 170 was sitting next to the old one in the frigid data center when I arrived on August 19, 2000, to migrate the AdDept programs, the data, and everything else.


The fiasco: Writing about this episode is one of the most painful things in the entire 1948 Project. It was certainly the low point of my career as a cowboy coder.

The new system used RISC processors; the previous system used CISC. The compiled versions of the hundreds or maybe thousands of programs in the AdDept system needed to be converted. I had already done this a few times, including on a system used in TSI’s office. In fact, we used precisely the same model of AS/400 that Gottschalks had just purchased, and I was very familiar with the CISC model that they had been using. I knew that it would take most of the weekend to effect the changes, but I was quite confident of my ability to pull it off. I was so certain that I had scheduled time at Robinsons-May in North Hollywood for Tuesday and Wednesday. I planned to drive to Santa Clarita on Sunday evening and commute from the Hampton Inn there to Rob-May

The trip started very well. Here is what I wrote:

Yes, I often wore a suit, too.

I managed to get upgraded to first class for both legs today. Nadine told me that when she called three weeks ago they told her that there were no first class seats available on the Cincinnati to LA leg. It was indeed full, but I got one of the seats.

In first class they give you a hot wet towel before dinner. I have never quite understood what this was for. I guess that maybe they are afraid that the common people might have touched something on their way through our section. We wouldn’t want their common germs to mix with ours. I had delicious food on both flights. The food in first class on Delta is really excellent.

A guy across the aisle from me who was at least my age had a short haircut which had been dyed blonde on top. The only thing I can think of to explain this is that he must be the manager of a supermarket who did it to identify with his employees.

Wow! We just passed over Albuquerque. I could easily pick out the base that I was stationed on, the airport, and the two golf courses I played. The last was easy. They were the only green spots to be seen. The southwest is really desolate.

The drive to Fresno wasn’t too bad. Well, the first 22 miles were horrible, but the last 200 were easy. The car has a CD player. I played the duet CD through twice. I changed cars at Avis. When I got to Fresno, I realized that I still had the key to my first car. Whoops.

I am pretty certain that I stayed at a Holiday Inn Express on that occasion. I must have arrived late. The only room that they had was handicapped-accessible. There was a tub, but no shower. I had to sit down and spray myself with one of those handheld devices that are so common in Europe.

Both a football (soccer) and volleyball team are known as the Fresno Heat.

Although it was August, and Fresno had a reputation for very hot summers, I brought a jacket because I knew that I would be cold in the data center. If I had not, I would have been even more miserable than I was. David Seeto, our technical contact in the IT department, was there during the following process:

The new system came with the operating system and licensed programs already loaded. We had to call IBM to find out what to do. Unfortunately Gottschalks’ software contract did not cover weekends. Nevertheless we finally got IBM to tell us how to remove the licensed programs. When we did so, we got a processor check on the new machine. We called IBM again. They told us first that we probably had a bad disk drive, but we should try to IPL from the tape again. We did. This time the system said that it could not find one of the disks, but it completed the task. A second IBMer told us how to reconfigure the disks to find the second disk drive. By now it was 4 PM.

A “processor check” is a fatal error. The system is not usable without extraordinary intervention.

I then began the process of bringing over the data (trivial but time-consuming) and programs (much more complicated). The most important programs were in the library named AdDept. I successfully brought that entire library over to the new system. Then I deleted all the objects in the AdDept library on the old system. I don’t know why I decided to do that. It was certainly unnecessary, but I could not see how it could cause a problem. That system with all of its contents was surely headed for the junk heap anyway.

The process of converting all of the programs was still running when I left on Saturday evening. I came in on Sunday morning and was delighted to discover that the conversion had completed without any problem. I then put the system through some simple tests to make sure that everything was OK. I soon discovered that, while some programs performed correctly, a few of the most important ones did not. The most commonly used program in the system, WRKADS (work with ads), produced erroneous results.

I tried recompiling the programs that were producing erroneous results. That did not help. This was intolerable. I had no choice. I had to make the CISC system usable again. Here is what I wrote to my partner, Denise Bessette (introduced here), about the process.

David Seeto.

Well, I think that clearing that AdDept library was the stupidest thing that I have ever done. My recovery technique did not work. The 3/5 tape was missing everything changed from their previous install through that date. I had no way of knowing what the previous install date was. Therefore, I selected everything on the RISC box with a change date from 1/1 through 4/30. I think that this is a fairly good approximation since there was definitely an install here on 4/20. However, I did not discover this until 7 PM. I left Gottschalks at 11:15. The files were finished, but the compiles were still running. Could someone sign on tomorrow morning to test the WRKADS programs? Send me a message with the results.

I canceled my hotel reservation in Santa Clarita. I am staying at the Holiday Inn near Gottschalks. I plan to go into Gottschalks to make sure that things are running reasonably well.

Could you tell Mary Ng that I will try to be in early in the afternoon?

If I had to work with David Seeto every day I would have to take a header off of a bridge.

I only punched one wall today. The wall is fine, but one of my knuckles is very sore.

Gottschalks’ IT department placed a service call with IBM. A customer engineer appeared and ran diagnostics on the new hardware. He testified that it was all in order. As far as IBM was concerned, since the hardware was functioning correctly, the problem must lie in either its BASIC program product, for which IBM had withdrawn support, or our AdDept code. In either case it was not IBM’s problem. End of story. The fact that exactly the same model in Connecticut produced results that were different from those of the one in California did not affect the judgment of the IBM people in Fresno.

I tried to explain this to the people in the IT department at Gottschalks. I promised that I would continue working on the problem remotely. They were not a bit happy with a resolution that left them with an unusable computer that they had already paid for and a very slow one. However, they agreed to keep the new system on, as well as the communications setup that allowed people in TSI’s office to sign on to it. So, at least I would be able to gather data from afar.

I returned to New England with my tail between my legs. Two important clients were angry at me, and I could not blame either of them.

I had plenty to keep me busy for the next few months. At some point I flew to California to make up for the visit to Rob-May that I had canceled. A week or two later I flew to Bradenton, FL, to do a demo for Beall’s. After that trip I needed a few days to cobble together a detailed Design Document and a proposal.

During the periods in which I was at TSI’s office I devoted as much time as possible to trying to isolate the problem with Gottschalks’ new system and to find someone at IBM who would listen to my argument. I remember more about the former than the latter. I do, however, remember the moment when I asked an IBMer to look at an example that contained almost no programming code at all. While working in the BASIC interpreter at Gottschalks I displayed on the screen the erroneous result from a simple sum of two constants. I then performed the same task on TSI’s system and got the right answer.

The IBMer was forced to admit, “This must be a hardware problem.” A day or two later he got the customer engineer to return to Gottschalks and replace the “floating-point processor,” which I did not even know existed. Evidently it was used by BASIC and almost nothing else. I signed on and put the new system through its paces. Everything seemed to work perfectly. I called Gottschalks and scheduled another trip in November to effect the migration.

The flight out to California was not as pleasant as the one before the disastrous August trip. Upon arrival in Fresno I wrote back to Denise,”I was nearly overcome with sadness in the airport in Chicago. If this trip goes well, I will probably feel better. The last one made me rethink my whole approach to life.”

Gottschalks went from a grey box to a black one.

The November migration also occurred over a weekend. It went much more smoothly than the first one, but there were still quite a few hiccoughs.

I cleared out the TSIDATA library on the new machine. I then restored the data from the CISC box. It took six hours.

I keyed in all of the user profiles. I checked the system variables, the backup and cleanup schedules, and the automatic reply list entries. I set it up so that QSNADS was started with QBATCH. I keyed in all of the scheduled jobs. I scheduled jobs to stop and start fax support.

Todd Burke5 from IBM came in the afternoon. He had installed the operating system in August. However, he had failed to install the extended help, the previous compiler support, Advanced Function Printing (needed for faxing), and the Communications Utilities (needed for RJE6). He set up a console in the operator’s area so that it receives break messages from the QSYSOPR message queue.

DATEINFO7 was not in TSIDATA. I discovered this last time, but I forgot. I had to restore it from the old system.

I installed all changes from our system from 8/17 through 11/3. I didn’t leave on Sunday until 8 PM. I was the first to go. I was so tired that I missed my exit going back to the hotel.

I changed TOSHA_B’s user ID to TOSHA_A8 and STEPH_K’s to STEPH_M. If they are going to use ID’s like those, they should prevent the women from getting married.

Todd set up the faxing incorrectly. I don’t know what he did wrong, but the software support person had me delete everything he did and key it in again. She also had me fudge one of their files using DFU9!

When I left everything was working. David Seeto said that he felt as if a huge weight had been lifted from his back.

I’ve spent considerable time in the L.A. airport three times this year. No movie producer has yet to approach me with a multi-picture deal.

That was not the end of the story. I submitted two invoices to Ernie Escobedo for my time at Gottschalks in August and November. I did not ask for reimbursement for the dozens of hours that I had spent researching the problem and trying to get IBM to take a second look When TSI had not received payment more than a month later, I asked Ernie about them. He said that he was “not inclined to pay them.”

I wrote him a long letter in which I described the efforts that I had undertaken to get that defective new system to work. I also said that I understood why Gottschalks was still upset about the situation, but the villain in this case was IBM. The company had installed equipment that did not work and refused to recognize that fact just because the diagnostics that someone at IBM had designed did not allow the customer engineer to detect the problem. Ernie promptly approved the payment of both invoices.


Stephanie Medlock.

AxN: In 2003 Bob Wroblewski and I made a trip to California to show TSI’s online insertion order system to Rob-May and Gottschalks. That trip and Bob’s involvement with the project has been described here.

The reception to the presentation seemed quite positive, bur Stephanie never agreed to try AxN. She stuck with faxing her orders until the end.


Life in Fresno: During most visits to Fresno I stayed at a Hampton Inn that was a short drive from Gottschalks’ headquarters. I always rented a car; public transportation was not a viable option in Fresno. I found no restaurant in which I felt comfortable dining alone. For most suppers I got takeout. There was no shortage of establishments that specialized in fast Mexican food.

My only recreation was running. I was able to map out a course through the suburban streets near the hotel. Traffic was a problem at only a few intersections.

The weather always seemed good. The most peculiar thing that I remember about Fresno was the tule fog. Occasionally a fog bank would abruptly drop the visibility to zero for a short period of time. This happened once while I was there. On Highway 41, the major north-south road in the San Joaquin Valley, it caused a collision that involved a large number of vehicles. The phenomenon has its own Wikipedia page.


Epilogue: In 2000 Gottschalks acquired the Lamonts department store chain. The acquisition gave Gottschalks a presence in the Pacific northwest and Alaska. In retrospect this must have been the impetus for the upgrade to the AS/400. However, the results did not meet expectations. In 2008 the company was delisted from the New York Stock Exchange. In the next year it declared Chapter 11 bankruptcy. By July of 2009 all the remaining stores had been closed.


Robert Guinn.

1. Robert Guinn’s career after Gottschalks led him back to his alma mater, Fresno State, as is described on this webpage.

2. Frederick Atkins Inc. was a non-profit company that bought merchandise for the companies in the Frederick Atkins Group. In the late nineties quite a few independent chains of department stores still belonged to the group. A description of the concept is posted here. The company went out of business in 2015. At that point the number of independent department store chains could be counted on one hand.

3. As far as I remember, he persuaded no other company to buy the system. Of course, I did not expect him to. However, he did arrange for me to make a presentation to members of the group at a convention in Naples, FL. That adventure has been described here.

4. The Club One Casino, which was really just a card room, moved away from downtown during the pandemic.

5. I do not remember Todd Burke, but I found his LinkedIn page here. For some reason his list of experiences skips over his time in Fresno, as well as everything else in 1999 through 2018.

6. RJE is one of the hundreds of TLAs (three-letter abbreviations) employed by IBM in those days. It stands for Remote Job Entry. I don’t remember precisely how it worked.

7. I don’t remember what DATEINFO was used for or why it was not in TSIDATA, the library that contained all information that pertained to the client.

8. According to LinkedIn Tosha’s user ID would be TOSHA_G if she was still working at Gottschalks. For some reason I was not allowed to see her LinkedIn page, but I did find a reference to her here.

9. DFU was shorthand for Data File Utility. We never told any of our clients that it existed, and we never used it. It allowed the user to go in and change any field on any record of any data file. There was no audit trail whatever. This violates sacred principles of database design.

2000 TSI: AxN: System Design

TSI as a nexus between advertisers and newspapers. Continue reading

The term insertion order was used in advertising to describe a list of detailed information about ads that advertisers provided to newspapers or magazines so that the publication could reserve the space. The design of AxN, TSI’s clearinghouse on the Internet for insertion orders, only really congealed when I had finished reading Bob Cancilla’s outstanding book about using the AS/400 for e-business, IBM’s word for commercial transactions that used the Internet. The process of determining what TSI wanted to do and how we learned how to do it has been described here.

The Internet servers on the AS/400 in TSI’s office were used in the project. The FTP (File Transfer Protocol) server was used to receive transmissions of data files containing insertion orders generated by the AS/400’s at our client. The SMTP (Simple Mail Transfer Protocol) server sent computer-generated emails to both advertisers and newspapers. The HTTP (Hypertext Transfer Protocol) server allowed the posting of web pages on TSI’s website, TSI-TSI.com.

TSI’s AS/400 was connected to the Internet through a T-1 line leased from AT&T. The backup line was a cable connection to Cox. It was seldom, if ever, needed. I can recall no problems with the connection.


AdDept changes: AdDept, TSI’s administrative system for the advertising departments of large retailers, included programs for producing the original insertion orders used to schedule advertising at newspapers and for producing change orders and cancellations. The users at each installation had slightly different methods of selecting the items from the media schedule to be ordered (usually once per week for ROP and once per month for inserts) and different formats for printing or faxing the orders. However, all installations used the same programs for updating the data files with the ordering information.

Newspapers were ordinarily designated on AdDept’s pub table with two “variations”—one for ROP (“run of press”—the pages printed by the newspaper) and one for inserts (the preprinted flyers and coupons inserted with the pages printed by the newspaper). Some needed additional variations for things like the Sunday supplement or the television guide. The pub table contained a field that designated how insertion orders would be delivered. The choices—as designated by a one-character field on the pub table—were faxing or just printing. A new option was added for delivery through TSI’s website on the Internet using AxN. When a paper agreed to a trial subscription for AxN, the field was changed for each of its versions. If the paper stopped using AxN, it was set back to its previous value.

The configuration on each client’s AS/400 was modified so that the FTP server was automatically started every time the system initiated the Initial Program Load (IPL). “IPL” was IBM-speak for booting or rebooting. Most of TSI’s AdDept clients IPLed once a week.

The sections of the insertion programs that updated the data files were augmented. If the pub was using the Internet for insertion orders, new code was executed for each order as a whole and for each item on the order. This code created a file for the order and wrote records on the file for the header (AxN‘s code for the pub, range of dates, type of order, whether it was a new order, revision, or cancellation, and a few additional items), detail (individual ads), and special instructions that could be for individual ads or the whole order. As records were written, they were logged on a file.

When the user closed the insertion order program, a routine was called to use FTP to send a copy of the file to a designated library1 on TSI’s server. The original files remained on the advertiser’s system for a while until the system administrator ran the cleanup program.


FTP clients can actually do a lot more than send and receive files, but the configuration of TSI’s server prohibited most of those features.

Processing the orders: The configuration for TSI’s AS/400 was also changed so that the FTP, SMTP, and HTTP servers started during each IPL. Another program that we wrote to monitor the library containing orders also was started at IPL. In the twelve years that this process was active we had zero failures.

The monitoring program examined the contents of the library designated to receive the files. If the library was empty, the program went to sleep for a minute or two. If it found anything in the library, It copied the files to a separate library. For each file that it found it started a batch job to process the file. It then deleted the files from the receiving library and went back to sleep.

The processing programs evaluated each file to make sure that it could read all the records and that none of the fields in any contained invalid information. Since all of this information had been generated by AdDept programs run on the advertising departments’ AS/400s2, problems almost never occurred. If any anomalies were discovered, an email was sent to me, Denise Bessette, and a programmer.

After validating the data the program created database files for new orders or updated the records of existing orders. Time-stamped log entries were written for all of these operations.

After the permanent database files were updated, an email was sent to the rep at the newspaper and the coordinator at the advertising department. It simply told them that the insertion order had been posted on TSI-TSI.com and provided a link to the website.

The processing programs were written in BASIC and IBM’s Control Language (CL). The former were used to validate the received file and to update the data files. The latter were used for system-oriented tasks such as sending emails and copying files.

I don’t remember the details of how it worked, but I think that there was also a program that monitored the number of FTP transactions in a period of time. Two of three times the system was the target of half-hearted attacks on the FTP server. We were easily able to repel them.


Setup for the interactive programs: The reps at the newspapers and the coordinators at the advertisers were expected to be able to access TSI’s AS/400 through the Internet using a browser. Therefore, it was necessary to change the system’s configuration on our AS/400 so that the HTTP3 server for the website was always started as part of the IPL. At the same time a second local HTTP server for development and testing by TSI programmers (primarily me) was also configured.

Not tsetse, TSI-TSI.com.

Security was provided by the AS/400’s HTTP server. The scripts for all AxN pages on TSI’s website (TSI-TSI.com) were placed in a library that was password-protected. The pages that described the company and its products and services were open to the public. Static pages were written in HTML, the language of the web. The scripts for interactive pages were written in Net.Data, the only scripting language that IBM supported on the AS/400 at the time.

The AS/400 had the ability to set up interactive sessions for users who logged in to the HTTP server. If we had implemented this feature, the system could have timed-out users who had entered their credentials and left the connection open. Implementing this would have complicated the development enormously. We decided not to do it until it became necessary. Like all other developers in that era, we were in a hurry to launch the product on the Internet. Since we never encountered any security issues, we never did.

I take it back. Actually there was one security issue. The reps and coordinators tended to store their credentials in their browsers so that they would be filled in automatically on the security screen. When there was turnover, or someone got a new computer or software update, the passwords and user ID’s were sometimes lost. The support people at TSI did not have the capability of retrieving passwords, but they could assign new ones. After each new one was assigned, it was given over the phone to the user. To insure that this solved the problem, the TSI employee stayed on the line while the user signed on. The user was then advised to change the password and, if necessary, talked through that process.

I am sure that both the newspapers and advertisers were happy that we did not automate this process. We only needed to deal with it a handful of times per month. If we had succeeded at convincing more advertisers to use AxN, we might have needed to automate it.

The interactive programs for newspapers: In the course of research for this entry I discovered the pdf file for the very comprehensive AxN: Handbook for Newspaper Users and posted it here. I had created this twenty-two-page document using PageMaker software in the early 2000’s before we had the first live implementation of the product/service.

The handbook included samples of all the screens and reports. This document was sent to every newspaper when it agreed to participate in the trial period. We provided no training, but no one had much trouble learning to use the system. I must say that I think that I did a superb job. TSI received amazingly few support calls.

The document is more or less self-explanatory. There are just a few things that are worth noting.

The AxN programs used “frames”4. Every interactive screen had three sections that consistently take up the same amount of space on the screen. The “Display” section was always the top area with the light blue background. The “Buttons” area was at the bottom and had a steel blue background. The third frame was “Empty”; that is, it had no space on the screen reserved for it. For each page there was a master script that loads the scripts for the three frames.

When a user clicked on a button, the empty frame was loaded with the appropriate script and executed. So, for example, if the “Confirm” button was clicked on after an order had been selected, the script in the empty frame would check to see if anything was in the “Confirmed by” box. If not it would highlight that field and display an error message without reloading the page. If the field contained characters, the script called a sequence of CL and BASIC programs to mark the order as confirmed and send an email to the coordinator at the advertiser.

The buttons available varied by page. However the Buttons section always contained a Home button (the one that looks like a house) and a Help button (question mark). The former returned the user to the site’s home page. The latter produced a page that explained all of the fields and buttons on the original page.


The interactive programs for advertisers: I also found the pdf file for the twenty-eight page AxN: Handbook for AdDept Users: It explained how to use both the AdDept programs to send new orders, changes, and cancellations and the AxN web pages to make sure that all newspaper reps have confirmed the orders. I posted the handbook here.

Advertisers who made changes to the schedule after an order was sent were expected to make the changes in AdDept and to send revision orders.


Daily tasks: Every morning a program searched for unconfirmed orders. Lists were prepared for both newspapers and advertisers. Each newspaper rep and advertising coordinator was emailed a list of the orders that pertained to them. A master list was also printed at TSI. An employee made a “courtesy” telephone call to warn reps each newspaper with unconfirmed orders that they were within a few days of publication.

Billing: In theory both the advertisers and the newspapers were billed for the use of the AxN service. In almost all cases the advertisers had been using the AS/400 to fax orders to the papers. They had been paying TSI a monthly fee to maintain this software. When they started using AxN we charged the same amount for support and dropped the faxing charge. So, there was a net-zero effect for the advertisers.

TSI’s computer programs required changes to accommodate the newspapers as clients. The main change was to convert the three-digit5 client number field from numeric to character. The existing clients maintained their numbers, but the newspaper clients were assigned alphabetical designations sorted by state.

A separate billing program was written to create invoices for the newspapers. Most were billed quarterly; a few preferred to be billed monthly.


AxN was extremely reliable and was very popular with both newspapers and advertisers. Support calls were rare. I vaguely recollect one instance in which a newspaper failed to run an ad or ran it incorrectly. I was able to document exactly what the system had done with timestamps, and neither side thought that AxN had contributed to the problem.


I definitely wrote all of the Net.Data scripts. Someone else at TSI may have written a few of the BASIC and CL programs used for AxN, but I did the bulk of that coding as well.


1. A “library” in the AS/400’s “native environment” was roughly equivalent to a “folder” or “directory” on a PC. However, libraries on the AS/400 could not be nested. That is, there was no such thing as a sub-library. More details about the AS/400’s design principles can be read here. The AS/400 also supported being used as a server for some other operating systems, but TSI did not use that feature.

2. The header record for the order contained a field that identified the format used for the files. Since no one except AdDept users was ever convinced to use AxN, no code for processing orders in a different format was ever written.

3. HTTP stands for Hypertext Transfer Protocol. HTTP servers were able to serve pages to a browser using the Hypertext Markup Language (HTML) and a few other formats.

4. I really liked the use of frames, but for some reason it was disparaged by supposedly sophisticated developers, and eventually frames were no longer supported by browsers. Instead a complicated use of Cascading Style Sheets (CSS) was necessary to produce a similar effect. AxN was still using frames when TSI closed in 2014. I have never been able to duplicate the effect of the empty frame with CSS.

5. The worst design mistake that I ever made was using a three-digit number for clients. None of our agency clients ever needed a larger field, and the client file on TSI’s system still had many unused client numbers when we began marketing AxN. I decided that it would require less effort to change the type of the client number field from numbers to characters than to expand the size of the field.