Tuesday, November 19, 2019

Being a Disciple


In church this past Sunday, as part of our continuing sermon series on the book of Acts, the message was on Acts 18:24-28 about Apollos, a Jew who was speaking about Jesus and how Priscilla and Aquilla took him aside to disciple him so that he could explain “the way of God more adequately.” This is recorded in Acts as follows:

Acts 18:24-28 (NIV) Meanwhile a Jew named Apollos, a native of Alexandria, came to Ephesus. He was a learned man, with a thorough knowledge of the Scriptures. He has been instructed in the way of the Lord, and he spoke with great fervor and taught about Jesus accurately, though he knew only the baptism of John. He began to speak boldly in the synagogue. When Priscilla and Aquilla heard him, they invited him to their home and explained to him the way of God more adequately. When Apollos wanted to go to Achaia, the brothers and sisters encouraged him and wrote to the disciples there to welcome him. When he arrived, he was a great help to those who by grace had believed. For he vigorously refuted his Jewish opponents in public debate, proving from the Scriptures that Jesus was the Messiah.

A later reference to Apollos in the book of 1 Corinthians shows how the apostle Paul refers to Apollos in their shared work of spreading the good news:

1 Cor. 3:6-9 (NIV) I planted the seed, Apollos watered it, but God has been making it grow. So neither the one who plants nor the one who waters is anything, but only God, who makes things grow. The one who plants and the one who waters have one purpose, and they will each be rewarded according to their own labor. For we are co-workers in God’s service; you are God’s field, God’s building.

At the close of the sermon, we were challenged by noting that each Christian should be involved in discipleship – either by discipling others or being discipled ourselves. We had earlier been asked if we knew the Bible well enough that we could defend our position if we were challenged by someone.

These brought to mind a situation that I found myself in nearly 20 years ago that I thought worthwhile to relate.


When I was working for Air Products, the IT department, of which I was a part, was a pretty large department. There were quite often new people coming on board – either as permanent hires or as contractors. One fellow who worked down the hall from me, Dan, I had actually provided a reference for as he was the son of a man whom I sang with in a quartet at church. I didn’t interact with him a lot as he was in a different part of the department, but I would see him in passing on a regular basis.

That year we had brought in a few new contractors and one of them was a young man from India. I had been introduced to him and knew what he would be working on, but otherwise I didn’t have a lot of interactions with him. But then one Sunday I saw him in church – he had been invited by my co-worker, Dan. In going to talk to him after the service, I found that he had come from a Christian family in India. Dan had discovered this and invited him to our church. He began coming on a regular basis and I began to get to know him better at work as well because of our shared experiences.

A few weeks later he approached me at work and asked if we could have lunch together some day as he had some questions for me. Since I had a lot of experience with the company, I was often called upon to give some perspective to IT-related issues that came up, so it did not surprise me that he wanted to talk to me. We set a date for later in the week.

When the date arrived, we met down at the entrance to the cafeteria, got our food, and went to a table toward the back of the cafeteria where we could discuss uninterrupted. We each got started eating, then I asked him what his questions were about. Since we only had a half-hour for lunch, there was about 20 minutes left for discussion. He got right to the point – but it was not an IT-related question!

His question was, “Can you explain the trinity to me?”

I’m not sure if the shock showed on my face, but my mind was racing for the next several seconds. Evidently, although he had been raised in a Christian family in India, he did not have a good understanding of some of the concepts of Christianity. But this topic had evidently been mentioned during the sermons over the past few weeks. And since he knew by this time that I was an elder at our church, he saw me as a good person to help educate him.

Since he had asked to meet with me during an encounter at work and we were meeting in the cafeteria there, I had presumed that it was a work-related question. So, I was totally unprepared for this sort of topic.

When Paul is giving advice to Timothy, he says (2 Tim. 4:2, NIV), “Preach the word; be prepared in season and out of season; correct, rebuke and encourage – with great patience and careful instruction.” Well, this was definitely one of those “out of season” moments! But as a church elder, I knew this verse and so I quickly shifted my expectations of our meeting and began to respond and to instruct.

In the intervening years I have watched this young man grow and mature. The following year he made a trip back to India where he got married (an arranged marriage as is their custom). He and his wife are now the parents to three lovely children. He has moved and now attends another church, he has changed jobs a couple of times, and we now only see each other via social media. But I still have a fondness for he and his family and am happy that as Paul noted, I was one of the people who helped to “water” him in his Christian experience.

The below picture is from a few years ago, but you can see the joy on the faces of this wonderful family!






I’ve been a Christian for several decades, and I was an elder in our church for 32 years before I retired from active eldership. I am still being discipled by others and continuing to learn. And when I’m not being discipled, then I need to remain vigilant for opportunities to disciple others – even when it’s a question “out of the blue” that I was not expecting.

Many years ago, a dear friend, who is no longer with us, gave a challenge that we each need to adopt a personal mission statement. Mine is, “to use the gifts and talents that God has given me in ways that are pleasing to Him.” I take this mission statement very seriously and it guides my life.

Sunday, November 10, 2019

Making Shoes


Knowing a bit of math has always given me a leg up in my career. In the summer of 1968 I had just finished my second undergraduate year (I don't say sophomore, because I graduated in three years). I was able to get an internship in the MIS department of Uniroyal through a friend of my parents. The first day they gave me the IBM Programming Aptitude Test (the standard of the time) that was kind of like the math part of an SAT. I blew them away with the speed and accuracy with which I completed it. Then I had an interview with the department manager. He had originally hired me to help convert a bunch of old Autocoder programs to RPG, but realized that my skills were way beyond that. He had a problem to solve that he felt that he would have to do himself because he didn't have anyone on his staff who could handle it (he had a master's degree in math). So, he outlined it for me and that became my project for the next several weeks (*2).

Project Background

This was for the footwear division of Uniroyal - the former US Rubber - and they made US Keds and Redball Jets among a lot of other footwear. Footwear is constructed by starting with what's known as a "last" - a foot-shaped piece of material that the shoe is constructed around (see *1 for more details). Because these were sports shoes, the lasts were primarily aluminum. There are different types of lasts for different types of shoes.

Lasts also come in different sizes. But these sizes don’t match the shoe size. In the US there are ranges of sizes for men, for women, and for children. But a men’s size 6 is made on the same last as a woman’s size 8, etc. So, these different ranges must be converted to a common “last size”.

Finally, shoe production must be scheduled in full cases, not in pairs. For smaller shoes, there are generally twelve pairs to a case, but for larger shoes, there are only six pairs in a case.

The Production Problem

For each week in the shoe factory, we start with the “wish list” of the sales department, i.e. how many pairs of shoes in each style and size they believe they can sell for the coming week, e.g. 30 pair of style 123, women’s size 9. We also know that we have so many pair of lasts of type AB in each size. (Oh, and we have to take account of the fact that some shoes can be made fairly quickly so we would be able to use the same last more than once in that week.) The question then become, do we have enough of that type of last to make all the shoes that the sales department would like?

The “Shape” of the Program

To solve this problem, we need a couple of matrices. Envision the primary one as a large square matrix (N by M) where the rows are the different styles and the columns are the different sizes (of the lasts). Then there is a smaller (N by 1) matrix containing the various styles and another smaller (1 by M) matrix containing the available last inventory.

We are going to process one type of last at a time. We first load in (from mag tape at the time), the last inventory and populate the 1xM matrix. Then we read (from a second tape), all the sales department desires, put the particular style and attributes (Men/Woman/Child) in the Nx1 matrix and the desired production in the NxM matrix (after doing all the conversion from shoe size to last size).

Now for the hard part. Going one column at a time, we add up the sales desired for the column and compare it to the available last inventory for the column. If we have enough, then great, we’re done for that column. But let’s say that we only have enough lasts to cover X% of the sales desires. We spread the last inventory over the desires, giving X% to each desire. Then we take each result and “round down” to case amounts, so if the desire for a particular style/size was 180 (of a size that we can get 12 pairs in a case) and we only have allocated enough lasts to make 153, then we round down the 153 to 144 (a multiple of 12). After going through all the desires in a column, then the residual (9 in our example cell) from all the rows is unused lasts. We take all the unused lasts, and go through the process again, seeing if we can, in the fairest way possible, manage to make any of the cells up to the next case-lot. After possible multiple passes of spreading and rounding down to case lots, if we cannot fill any more cases, then we advance to the next last size and repeat for each column. (Don’t worry if you don’t understand all the nuances of the above, that’s why it took someone with an understanding of math to write this program).

Once we’re done with all the iterations of the above, we spit out the answers in the form of revised production for each style/size.

Consequences of 1960’s Technology

This program ran on an IBM360 model 40 with 128K of memory. There were limitations on input, memory, and CPU speed. While we had disk drives, they were only available for things like the customer master (in indexed file) and not for other uses. The memory partitions were limited to 82K for the main partition plus a couple of small foreground partitions as well as space for the operating system. We were only allowed 4 tapes drives per partition.

Thus, the coding had to be as concise as possible and there were limits on the size of the matrices as well. We also used 3 tape drives – one for last inventory, one for sales desires, and one for the production results. The latter would be printed in the form of production schedules by a later program.

But because there were so many calculations take place as the program worked through each column of the matrix in order, spreading inventory, rounding down to case lots, re-spreading leftover inventory, etc. the program would use a lot of CPU time and put out the “wait light” on the CPU. Most programs of the time were I/O bound as they were usually waiting for the tape drives. But this one would read a bunch of stuff from the two input tapes, by compute-bound while it did all the calculations, then would write a bunch of stuff on the one output tape. The operator instructions were generally, if the wait light on the CPU goes out that means that the program has gone into a loop and is not working, so they needed to cancel it. This was the only program in the entire installation of its kind and I had to write instruction on it, “this program puts out the wait light, do NOT cancel it!”

The Results

As these were the days of punched cards for programming, everything had to be written on coding sheets and submitted to the keypunch department – with a wait time depending on how big your program was. Getting changes made required the same process, so one was constantly waiting on others. Program compiles and tests were overnight submissions since daytime was reserved for production runs. So, things took a lot longer than they do now.

As a result, it took several weeks to write and test the above program. In between I did things like write the print routine for the production schedule, made some other minor changes to other programs, and even debugged a few of those pesky Autocoder programs that I had been hired for in the first place. My boss was happy with my work.

I was hired for a second summer the following year – writing a funding model for the corporation’s international division. And when I finished grad school, even though it was the middle of a recession in 1971, I was hired full-time. After a little over a year, the MIS director took early retirement and went to work as VP of Finance for Olin-Winchester. He then called me and asked me to join him there. But that’s another story (*3).

Notes: