Click Here for other interesting Articles
Of Bits and Bytes (4/8/2014)There have been many changes in the computer industry; particularly in the last thirty years. Least of which has been the name. Had I written this article three decades ago I would have referred to this field as Data Processing (DP), twenty years ago I might have classified it as Management Information Systems (MIS), and today it is known as Information Technology (IT). Needless to say much has changed besides the terminology. Low GPAI’ll never forget my first programming assignment as a sophmore at Temple University. It was a very simple loop iteration program to print each number from 1 to 10. I basically coded the program by modifying a sample that was in the text book. The difficulty arose when it came time to execute the program. This was prior to the era of PC’s. Dumb terminals were in short supply and Al Gore had not yet invented the internet. The only way my program was going to make it inside of the IBM 4310 mainframe computer at Temple Universities’ computer room, was for it to be keyed on a deck of punch cards (more on this later). She pulled out an old medal of Saint Jude, the patron saint of lost causes, placed the medal in my hand, and then said a prayer. There was one major obstacle. I had no idea what a punch reader was. We never had a tour of the computer center so I could not distinguish between the punch reader and the actual computer. When I walked into the lab I saw a few of my classmates busy typing away (at least I was in the right place). Fortunately, I befriended an astute classmate who explained how the system worked. I can’t begin to describe the feeling of excitement I had when I was able to read the output from my program and realize that it was correct. I won’t mention how many times it took me run the program before I got it right. Somehow I was able to complete that course with a grade of “A” minus. I figured I was off to a good start so I wasted little time in declaring Computer Information Science (CIS) as my major. Despite my grade, I cannot say that I completed the course with significant comprehension of the FORTAN language or computers in general. My next computer course was in COBOL. The Common Business –Oriented Language is used primarily in business. Unlike FORTRAN, COBOL is English like language that is much easier to comprehend than most other computer languages. Our professor allowed us to work on programming assignments in pairs. This was a break for me because my partner was the brightest student in the class. We were able to successfully complete all of our assignments easily and on time. Unfortunately the exam offered no such luxury. I will never forget the feeling of despair when I received that blue exam booklet containing my midterm results. The grade of “C” minus was written in heavy red ink (no friendly purple markers back then). But what concerned me the most was the inscription at the back of the booklet that read, “I would prefer that you work on future assignments independently”. In spite of this set back I was still able to complete the remaining programming assignments. I studied hard and aced my final exam. So far I was off to a pretty good a start in my new major. Out to LunchOne of the nice things about computer programming courses was that there were never any term papers required. I disliked research papers because I did not have access to a word processor. All of my papers were keyed on an IBM electric typewriter. Worn ribbons and over sensitive keys were a common problem. However, I did become a fairly good typist and it helped me with the card punch machine. I was able to quickly punch my cards while many of my classmates struggled typing with one finger. This served me well since our programming assignments were rapidly growing in size. It was not uncommon for some of my programs to require several hundred cards. The technical name for the punched cards I am referring to is the Hollerith card. The card was 80 columns and measured 7 3/8 in x 3 ¼ in. It was the recording medium used through the 20th century in the data processing industry. Completed punched card decks were submitted to the computer operator, who ran the deck through the card reader. When the job was complete, the printed output was placed in a bin. Each student had their own bin. I’ll always remember the day that I submitted a large deck of cards and headed out to Montgomery Avenue for a "bite" (sorry) to eat. It seemed to be an efficient use of time. I did not figure that while I was enjoying my sandwich the card reader would be eating my deck. When I returned to the computer room there was a sign on the desk stating that the card reader was down. Next to the sign was my shriveled deck. Most of the deck required re-keying. These problems were alleviated the next semester when I was issued a user account to access the mainframe from a dumb terminal. A dumb terminal is simply a display monitor with no processing capabilities. This device was used to key computer code into a text editor. The text editor that was used at Temple was called “Senator”. With this device, mistakes could be corrected in a flash and lost or damaged card decks became a thing of the past. The GraduateI graduated from Temple University in 1983 with a Bachelor of Business Administration in Computer Science. It was time to test the job market. Unfortunately the economy had not quite recovered from the Carter years and the job market was weak. I worked part-time as a retail sales associate at Strawbridge and Clothier (S & C) department store while I searched for employment in the computer industry. I spent most Sunday afternoons mass producing resumes and cover letters to answer the local help wanted ads. The fruits of my labor bore mostly rejection letters. I thought I caught a break when I placed third on a civil service list for a computer programming position with the city of Philadelphia. I believed that with such a high placement that it was a virtual certainty that I would receive a job offer. To my dismay the city never called. After the dissapointment of not getting called by the city, I had learned from a former co-worker in my old department (men's accessories) that a young lady who also worked in my old department and attended Temple University the same time as me was hired. So, I went to the personnel department at 22nd and Arch and submitted an application. After almost a year of job hunting I accepted a position working as a commissioned sales associate in a personal computer store. The name of the store was Today’s Computers and its parent company was Intelligent Electronics (IE). IE was opening Today’s Computer’s stores in many of the S & C department stores. When they opened one directly across from the small electronics department I was working in, I wasted no time in applying for a job selling microcomputers. Because of my computer education and experience with the S & C point of sale system, I was hired as a salesperson. My new job would be selling IBM and Apple microcomputers. Although sales were not my ambition, I felt I was moving closer to my chosen profession. I utilized this time to learn the latest technology – graphic user interface (GUI). You are the Apple of My EyeSteve Jobs of Apple computer had just released the Macintosh computer. This was the first personal computer (PC) to be marketed to the public that used a GUI operating system with a mouse. I found this machine to be fascinating. I could easily sell it by exhibiting its multitasking capabilities to potential customers. I would demonstrate by copying data from a spreadsheet and an image from a graphics program then pasting those files into a word processing document. This task was accomplished quickly with only a few clicks of the mouse button. Conversely, it took much longer on the IBM computers, plus, cumbersome DOS commands needed to be executed to achieve the same results. Although I was working with computers in my new position, computer programming was not one of my functions. Since obtaining a programming job was still my main objective, I felt the need to keep my programming skills sharp. Practice Makes PerfectOne of the perks of my new job was that I was allowed to use items from the store for educational purposes. One morning, while taking inventory in the store, I came across an IBM DOS COBOL compiler. I borrowed the copy and used it to practice my programming skills by using the COBOL compiler to write programs at home. This was an unwieldy process. The computer that I borrowed only had one 5 ¼ inch floppy drive and 256K of random access memory (RAM). In comparison, the computer I am using today has 2.24 GB of RAM and a 931 GB hard drive. That meant that I needed to constantly swap disks in and out of the drive to complete the task. This took a long time. By today’s standards I was basically playing with a toy. Regardless, the tool served its purpose and I was able to continue COBOL programming. In addition, I was also able to keep my COBOL programming skills up-to-date by assisting my girlfriend with her college programming assignments. She was so impressed with my programming prowess that she would later agree to marry me (and I thought it was my good looks). Do You Believe In MiraclesWithin a year I was promoted to store manager. This turned out to be nothing but a headache job. Time that I had previously spent learning about PC’s was now spent taking inventory, handling customer complaints, and meeting with upper management. I became frustrated and was considering abandoning my quest for a job as a computer programmer In favor of large appliance salesman or military service. One day I ran into one of the lady’s I used to work with on the Strawbridge's selling floor. I spoke of my frustrations on my job hunt. She pulled out an old medal of Saint Jude, the patron saint of lost causes, placed the medal in my hand, and then said a prayer. Afterwards she gave me the medal. (It was like I was back in Catholic grade school listening to one of the Sisters of Mercy). In return I had to give her 50 cents. (Did I just get duped out of my lunch money?) Little did I know, my time in computer retail would be shortly coming to an end. In March of 1985 I received a surprise phone call. It was from the manager of the School District of Philadelphia’s (SDP) Data Processing department calling to schedule me for a job interview. I had forgotten that I had taken a test for this job earlier in the previous year and that I had placed eighth on the list. Since I didn’t get called by the city when I was third on their list I was certain that gaining employment with the School District was a “lost cause”. You're HiredOn April 8th, 1985, I began my career at the Philadelphia School District as a programmer I. My yearly starting salary was $22,000. I thought I was rich. Ironically, the young lady who worked in my old department at Strawbridges would become my closest friend. I spent the majority of my first year maintaining and developing batch COBOL programs.Ironically, I was required to submit my first few programming assignments on coding paper so it could be keyed on punched cards. Shortly thereafter, I was permitted to use a dumb terminal to complete future programming tasks. In my early years of programming my assignments consisted primarily of batch COBOL programs that were run on a DOS/VSE operating system. Batch programs are submitted via job control language (JCL) to the mainframe computer. The JCL was keyed on a series of punched cards (here we go again with the cards). A yellow card was filled out containing the name of the job as well as required inputs and outputs (I/O’s). I/O’s were usually magnetic tapes. A tape librarian would pull the tape from the tape library and place it in a bin under the programmer’s name. Most batch jobs were run at night. The Payroll TeamAfter my first year I was promoted to the position of Programmer II. For this, I received a pay raise and a new work assignment. I was assigned to the Payroll team. This meant that I would be working with a small group of programmers and systems analyst that worked exclusively on human resources and payroll applications. During my tenure on payroll I would be modifing programs that produced W-2s, changed tax rates and pay check enhancements. Working on payroll was a high pressured job. There was very little room for error. A large premium was placed on program debugging and testing. The program applications on the payroll side were amongst the largest in the department. Thus, compiles could be rather lengthy. Sometimes it would take up to 45 minutes to compile a program. Mistakes were made;it often took several compiles before a program would compile correctly. It's all Right to be Itty BittyA compiler takes computer source code, that is the code that the programmer writes in a language such as COBOL, and produces object code. Object code is the code that the computers processor understands. It is basically a series bits and bytes. A bit is a basic unit of information and can have only one of two values, 0 or 1. A group of 8 bits is commonly called one byte. Not only did some of the large payroll programs take long to compile they could also take equally as long to run. Therefore, efficient programming and testing were of great importance. Missing PeriodsThe only person to fear missing periods more than an unmarried woman is a computer programmer. Omitting a period may not affect the ability for a program to compile successfully but it could certainly affect the logic of the program. This could cause unpredictable results that are extremely difficult to debug. There are two types of errors that can affect a computer program: syntax and logic errors. Syntax errors are misspellings or opening brackets without closing them. These types of errors occur at compile time. Logic errors are errors that occur during run time. One common type of runtime error is a data exception (SOC7 in MVS). This happens when the program tries to move nonnumeric data to a packed-decimal field. Today, this type of error would be easy to debug because of abend-aid tools. Back in the 80’s, solving this problem was a daunting task. To The DumpBecause compiles took so long, payroll programmers did not have the luxury of re-submitting the job and placing displays throughout the code to see where the program went awry. To assuage compile time, programmers needed to read the core dump provided by the abending program to determine what line the program aborted on. By examining the hexadecimal value of the variable that caused the abend the problem could be resolved. A core dump is a display of the computer’s memory at a point in time, generally when the program has crashed. The core dump is displayed on a console or printout and is arranged in hexadecimal columns. Although quite long, I always printed my dumps so that I could have a hard copy to write notes and perform calculations while debugging. Hexadecimal is a numerical system of base 16. The first 10 numbers are represented by 0 – 9. Numbers 10 through 15 correspond to characters A, B, C, D, E, and F. Paris in the SpringIn the spring of 1989 I was promoted to the position of programmer analyst (PA). During this time I was given the assignment of developing the Philadelphia School District’s first online time and attendance system (PARIS). This application was written in COBOL/XE. This is a form of COBOL that allows you to write online applications without using command-level CICS (a highly complicated interface). Programming in COBOL/XE offered developers the ability to produce online mainframe applications in a timely manner. The main advantage of coding in the online environment was that you could run tests instantaneously. No more over night test runs. Also, developing the panels was kind of fun. To a small degree you had some flexibility on creativity. Panels could be developed with color as well as blinking text. Programming this application was extremely complicated because there were many exceptions. Because of this complexity I felt that many of the programs that I had written were difficult to understand. This could make future enhancements more challenging. However, despite my concerns this application served the District well and ran without failure for over 10 years. It was finally retired prior to the year 2000. Y2KThe Y2K conversion presented a major problem for the entire computer industry. Although many have deemed it to be “the hoax of the century”, it was a massive undertaking for those of us faced with preventing a potential catastrophe. The problem was that most computer applications abbreviated the 4 character year to 2 characters. This was done to save space at a time when computer storage was a premium. Without modifications many computer programs would produce invalid results. For, example the algorithm for determining a leap year would fail without adjustments. Further, if a program function is calculating difference between two dates, it would calculate a negative number. For instance the difference between 1 Jan 2000 and 31 Dec 1999 could be calculated as -100 years rather than 1 day. The solution was to expand the length of the year field from 2 to 4 characters to include the century in programs, files, and databases. This effort required countless hours of testing and conversions. When the date finally changed to January 1, 2000 very little actually happened. Was this the result of too much hype or was it the product of diligent programming efforts? You be the judge. Client/ServerAs far as I was concerned I would be happy writing mainframe COBOL programs for the next 20 years. However, when I accepted a job interview with Temple University, I realized that technology was evolving and that my skills were stagnating. At the conclusion of my interview I recognized that the market for mainframe computers was shrinking. A new era of client/server technology was emerging. In this type of system the client consists of PC’s, Macintoshes, or workstations of the system. The server is a computer that stores the files and databases of the system and provides services to the clients. Each server requires a database management system (DBMS) to store and manage the data. The application software does the work that the users want to do and communicates with the DBMS via structured query language (SQL). The network consists of the cabling, communication lines that connect the clients and servers of the system. In an effort to expand my horizons I pursued a new position - Network Administrator. In 2001 I became the administrator of the Avantis Work Order system. This was a third party application that was used by the Facilities department of the SDP to manage buildings, vehicles, equipment, and personnel. This position offered me an opportunity to increase my skills. I would gain experience in the Oracle DBMS, Unix/OS, Crystal Reports, and PL/SQL. Up, Up and AwayThe purpose of the new position was to replace the vendor that the SDP had hired to implement the Avantis software. The vendor’s fees were extremely high and the District was looking to save money. Many were unhappy with the condescending attitude of the vendor as well. I got a taste of this first hand when I attended some of the training sessions that was provided by the vendor. To my disappointment, the training sessions were glorified demos. This was going to be a hostile takeover. To demonstrate our resolve and to emphasize to the vendor that his was our system and we would be running it, our Data Base Administrator (DBA) decided to prove a point. He called me, a co-worker, and a member of the vending company to the server room (click here to see the server room) and instructed me to shut down the database. This was done during the busiest time of the work day. I’ll never forget the jaw dropping expression on the vendor’s face as we performed this task. I don’t know if he was more surprised at what we did or that we were able to do it. There was a chance that this could back fire since we had never practiced running the scripts that we needed to execute to do this job. I was extremely nervous as I tentatively executed these commands with what seemed to be the whole world looking over my shoulder. Little did any of us know was that our DBA had already received approval from upper management to shut the system down. I received a strange feeling one morning when I walked down the hall to the consultants’ office to attend a scheduled meeting. I thought it peculiar that all of the lights in the office were out. When I opened the door I faced a completely empty office. Over night the vendor had packed up and left. Can anyone say - Bob Irsay? Help, I Need Somebody!My new job was challenging. Since the vendor was no longer available to help provide a smooth transition, our department contracted for a network consultant to assist with the changeover. Since I had no prior experience administering a network, I spent my entire day shadowing the consultant to learn about the network. My new duties included: managing user accounts, database backups, software upgrades, and troubleshooting. Often times when a problem arose that was beyond my capabilities I would call the software company for technical support. The support line was extremely helpful. Many times they would take control of my PC remotely to solve a problem. I would take written notes and store them in a binder to use as a reference for future problems. When I called for support I would be transferred to either a Russian, Indian, or British technician. Ironically, of the three I found the British gentlemen the most difficult to understand. All were extremely knowledgeable and very professional. Heat WaveOne hot summer day I went to the server room to complete some routine maintenance. When I opened the secured door, I encountered intense heat rising from the room. I thought the room was on fire. It turned out that the cooling system had failed and there was a danger of the servers overheating. This would be a costly disaster. To cool the room we had to run several fans and leave the outside door open. Having access to a private room had its advantages. If you were able to block the noise generated from the hum of the server fans, the room could be a nice quiet place to work. It also came in handy one morning when I inadvertently took Tylenol P.M. to combat a cold and found myself falling asleep at my desk. I was able to dose off in the privacy of the server room until the medication wore off. Tangled in a WebWith networking improvements and newer equipment, the time I spent performing maintenance had significantly decreased. This allowed more time for programming. Since the Y2K conversion, the department was phasing out mainframe applications. New applications would now be deployed on the Web. In the winter of 2005, despite little formal training in web programming, I was thrown to the "wolves" and assigned to a team of developers to build a new web application for the Early Childhood Department (EC). JavaWeb applications are a type of client/server system. In our department, web applications are developed in the Java programming language. Java is a high-level, object-orientd internet programming language. This language was produced by Sun Microsystems in 1996. The advantage of using Java is that it can be used to create programs that run on a myriad of operating systems (Windows, Solaris, Linux, and Macintosh). Java can also be run on any computer platform. Java can be difficult to learn, especially without formal training. Keeping up with industry changes meant that I would have to learn Java on my own. To accomplish this I purchased many books to study from. I also analyzed code that was written by my colleagues who had learned Java in college and had working experience with the new language. It was a very painful process but with hard work I became a competent Java programmer. Whenever I'm near you, I hear a symphanyThe difficulty of web programming is the hodgepodge of languages used to develop an application. Web pages are mainly composed of three different languages: Hypertext markup Language (HTML), Cascade Style Sheets (CSS) and JavaScript. HTML makes up the content of the page, providing the structure of the page. Style Sheets enrich the presentation of the page, governing the color, borders and background as well as other properties. JavaScript controls the behavior of the page. This layer enables a page to be interactive by accepting user input and manipulating keyed data. It is very useful in data validation. To display data from a database server on an internet browser screen requires a program coded in Java to read a database table with SQL scripts. The data is then displayed on the screen through a Java Server Pages(JSP). These pages are difficult to code as well as read. Java Server Pages consists of Java code embedded within HTML code. The Java code can be in the form of JSP or JSTL tags. Unlike COBOL, there is little structure to a JSP page. Javascript can appear anywhere in the code and JSP or JSTL tags are embedded in the HTML. Hyper Text Markup Language (HTML) was developed in the 1970’s to present document content on the Internet. However, HTML has no way to interact with a user when it is displaying itself in a browser; enter Javascript (JS). This is a dynamic computer programming language allowing client-side scripts to interact with the user. It is run on a client machine, facilitating client-side processing which allows the server to be freed up to attend other client requests. Thus, data can be validated on the client machine before it is sent to the server. All of the various computer languages and scripts work together like a symphony, to display a page on the web browser. Just right click on your mouse button on any internet page and select “view source” for an example. Consider that this does not show the code that is generated behind the scene to access the servers. No wonder I come home with a headache on many nights. Early ChildhoodWe were assigned to develop several applications for the Early Childhood department (EC). The purpose of one application was to create a system to collect grades for EC students and produce progress reports on a trimester basis. Another was to create an online interview form that teachers could use to record information obtained from interviewing parents on their child’s early childhood background. Assignments were emailed to me by a lead programmer. I was quickly reminded of my earlier days at Temple when I was thoroughly confused. By requesting examples and using trial and error I was able to complete my assignments, I continued to build on my prior knowledge and by the beginning of the fall we had an application that was complete. I was able to improve my skills by enhancing and maintaining the new web applications. To augment my web programming skills, I enrolled in an online programming course in JSP. This proved to be money well spent. By 2008, several of the members of our programming team left the SDP leaving me solely responsible for all of the EC web applications. As I gained more experience my web programming responsibilities, increased. It's a Difficult ResponsibilityIn the fall of 2012 I was given the most difficult assignment in my career as an IT professional – the Principal Information Board. This was an online bulletin board that was used by administrators to post messages to principals and vice-principals. In addition, file attachments could also be downloaded. Although this was an existing application, the levels of changes requested were extremely complex. There were also many pre-existing bugs that needed to be corrected. Combine this with the fact that the system was originally programmed by an outside consultant who was no longer available. There are many ways to code an online application. The techniques used by the consultant were incomprehensible to me. When I presented this predicament in a programming meeting, my colleagues were all in agreement; the application should be completely re-written. I spent months working on this assignment. Many days I started work early and continued through my lunch hour. At home I prepared notes so that I was able to begin coding as soon as I arrived at my desk the next day (I thought union workers weren’t supposed do this). For the first time in my career I considered requesting to be removed from a project. I actually typed an email stating that I did not feel that my current skills were suited for the task at hand. Instead of submitting the email I held it. After a few days, I made some small progress. As time passed, my progress increased. Finally I could see a light at the end of the tunnel. Little did I know that the light I saw was from an oncoming train. Back to the Drawing BoardAs I neared completion of the project, management decided that they wanted to make the application flexible enough so that additional departments could access it independently of others. This meant that a whole new database would need to be created as well as new security and validation. This change compounded to what was already an extremely complicated project. The new changes added significantly to the time line. In March of 2013,the Principal Information Board became - The Information Board. Welcome all! With the successful completion of this project I gained the respect of my programming peers and management. This would yield future assignments. I was now unofficially a web programmer. What Next?Through the years I have witnessed and participated in the evolution of the computer industry. From the early days of typing code into a punched card to the innovation of the internet, I can’t help but think what lies next. For me, perhaps - retirement! Epilogue (7/1/2019)I had been looking forward to my retirement day for quite some time. Now that it has I arrived I have been overcome with a feeling of melancholy. The week before I retired, I realized how much I would miss my friends and co-workers. I had known some of them for thirty-four years. I had a feeling that there would be a going away party for me. I was certain that it would be on Friday. I was truly taken for surprise when I was summoned for ten O'clock meeting on Thursday morning. I knew this was a ruse. I barely heard the kind words that were spoken on my behalf by our department's managers because thoughts raced through my mind on what I should say. Then it hit me. I would solute my co-workers by thanking them and addressing those I knew the longest in front of the entire group. Below is my final address to my co-workers and friends: Well it looks like I made it. Thirty-four years ago, I came here as a young programmer with a full head of hair - It was brown. Today isn't about me. It's really about all of you. If it wasn't for your help and friendship over the years I would not have made it. Therefore, I would like to thank each of you and personally thank the people I have known the longest. LAVERNE : Thirty-four years ago we walked in together and met the programming manager Mark Roder. Do you remember what he said to us? I don't so I guess you have a better memory than me. Please know that I will be thinking of you on April 8th in the years that follow. MICHAEL : You were always there for me. You attended both my mom and dad's funeral and you were present on my wedding day. VINCE : You were a big help to me during the difficult time I went through with my father. Some mornings you would just ask how's dad? It really helped me. MELANIE : I was there on your first day. I remember when you brought your daughter Macy in for the first time. I have never seen a prouder mom. Thank you for being so nice to my daughter. DANNY : You were the first friend I made when I started here. I'll think of you every time I see a can of mountain dew or enjoy a cold Miller beer. RICH : I appreciated our many discussions over the years. You know more about football than any person I know except for one - me! But you cream me in everything else. SAM : I've appreciated your help over the years. Like the time you helped fix my electrical outlet or upgrading our Phillies seats. Most important, your financial advice helped me to realize that I could retire today. HOLLY : I enjoyed our friendship and many conversations over the years. My crystal ball tells me that you will be standing here shortly. ANNE : If patience is a virtue you are the most virtuous person there is. I don't know how many times I have messed up the sign-in sheet confusing Bill Pascal and Rich Paschall for myself. Not to mention the wrong dates on the vacation cards. You always fixed my mistakes with a smile. ANGELA : One of the smartest things I did was follow you here 34 years ago. You are the kindest and most thoughtful person I ever met. The world needs more people like you. I leave you now as an old programmer. However, do you know what the best thing about being an old programmer is? Old programmers never die, they just fade away. Now I'm going to fade away! |
by Ray Pascali