April 21,1997

 

My first day consisted of waiting out in the entryway for 10 minutes until our supervisor, Ian Jones, showed up. He seemed pleased that we had arrived before he had. To start, Ian gave us a tour of the building. The basement consisted mainly of an assembly line that refurbished phones. We were also shown the electronics section where they create custom circuit boards. After that we were told what the two projects were and give a brief description of each one. The first involved using MAPI, which is an interface that is used to communicate between phone lines and modems. It would be used to get the caller id and name from an incoming call and automatically accept or reject the call be referring to a list of alotted numbers. The second project is the one that I was assigned to. It is based on Cellular Phone technology and involves using a Cellular Phone signal to transmit data from a remote location to a clients computer. An example of this would be if you wanted to record environmental information at a remote location, you could setup a transmitter at the site and then have a program setup that allows you to enter the access number for the transmitter and download the information that is stored on the transmitter. The transmitters are being produced by the electronics group here and my assignment is to produce the system adminstration side of this system. This would include adding of Customers to the systems, deletion of customers and changing Customer information. There are other functions also but they have not been discussed. Each of us were teamed up with another employee that is already working on the project. I am working with Norman Pancura. Currently he has a basic version of the system operational but it is far from production ready yet. After being given a brief overview of how the system works, I began familiarizing myself with the software packages I would be using. They are Visual C++ 4.1, Microsoft Access 97 and some web related programming in CGI and Forms design. That was my first day on the job and look forward to what is to come the next day.

 

April 22, 1997

 

Today I was briefed on the changes to the system. The first matter was that since the main portion of the program would be internet-based, why not setup the whole thing on the web. I brought up the security issue but Norm and Ian assured my that there would be very few people interested in the information that would be sent over the internet. There was also the question of how to interface Access with Visual C++. This would be my research for the day and I spent the majority of the day analyzing an application that did just what we wanted to do. The problem is that it is written using classes, which they no nothing about. I was also confused because a lot of the code was generated using a Classes Wizard, so what code was there made little "English" understanding. I left today wondering how I would ever get this to work, because after spending almost 8 hours picking apart a program, I had accomplished very little progress. I do have to admit I learned a lot about Visual C++ very quickly and could probably write a "SIMPLE" program with no major problems.

 

April 23, 1997

 

Yet another change was made to the system. They told me that there is an easier way to make an Access database work over the Internet. So I went to the Microsoft Site and downloaded the JobForum sample application and tested it out. It seems to be much easier to work with and the design of it was for specific use over the internet. So I spent the rest of my day setting the sample application up so that I could test it on the server here. That was about 1-2pm before I got it up and running. I had to get Norman to set up a few things on the server and they didn't work on the first try. After I had the sample running and saw that it really did work, I started looking at thte code that was used to setup the application. It consists of a standard html page with input fields for entering information, an .idc file which contains the SQL needed to access the database on the server and return the requested information and an html extension file (.htx) which outputs the results of the query to the user. My next few weeks will more that likely be setting up a working Administration page.

 

April 24, 1997

 

Today I have really dug into the code and have begun modifying it to work with the tables I have created for this application. This did not take long, but getting the SQL code correct took up some of my time. At around 1pm I had a rudementary page setup for entering some information onto an html form and had the data being added to the database. This was the first major hurdle accomplished because I now knew that my database would work using this approach. I spent the rest of the day fixing up the page and looking at the code required to do queries on the information in the database.

 

April 25, 1997

 

I have now started modifying the queries on the JobForum demo to interact with the file I am using now. This took some time because the SQL used for these queries is quite a bit more complicated than the SQL I took at the college. You have to include percent signs before and after variable names if you are referencing a field in a table. You also have to have a plus sign at the beginning of each new line of SQL so that the server knows that it is reading SQL code. Once I had all these quirks figured out, I could perform a search for all fields. Then I setup a search by Customer Id number and one that you can customize to whatever fields you want to search by. Next week will be quite a productive week if I don't run into any major roadblocks. I will enjoy my first weekend in awhile where I don't actually have to do anything.

 

April 28, 1997

 

This week I will begin to work on another table in the database and try to setup a form to enter information for that table. I began by setting up the form to enter the fields into and then wrote the SQL code to write the data to the database. Since this file has two key instead of one, it took me a bit longer to perfect the code to get it to write to the database correctly. The rest of my day was spent doing research on JavaScript and how to do edit checking on fields using it. I got thinking that the user can enter anything they want in an input box. I can specify that it is a Number but they can still enter whatever information they want. This will not corrupt the table as the server will return an error when there is a data type mismatch. My concern is making the form as user-friendly as possible.

 

April 29, 1997

 

Today I began my pursuit on dummy-proofing the form. I began by writing code that checked for a value higher than allowed in the field. This was easy and I though I was almost done, when I realized entering nothing also returned an error because the value was "null" not zero in numeric fields as I had assumed. So I wrote a function that checks for no entry and then wrote another to check for non-numeric characters. These were not as easy as they sound, because JavaScript is enough different from C++ that I spent all morning working on what I mentioned above. The rest of the afternoon a spent debugging the code making every loophole had been plugged up (I found several). At the end of the day I can now say I have one bulletproof entry page. It was actually easier than C++ on the alpha so I do wish we had been able to code our systems using JavaScript, Access and HTML. It makes them a GUI and free from the glitches of RMS!!!!

 

April 30, 1997

 

Today I have decided to setup the entry screen to have the option to make changes to the information after it is entered (Like the Searton's system). This is not as easy as it sounds. You have to read the record from the database and then display the current values in input boxes on a form. I ran into problems with a numeric key writing an SQL statement to get the data from the Access database so I decided to go back to the Customer file which has only one key and try to setup this page to allow update after add. I got this working after a bit of trying this and that and was pleased with the result. I didn't like the looks of the screen design though so I decided to use the standard HTML trick to line things up, TABLES!! Similar in concept to Quattro Pro, it allows you to line up all your field names on the screen so that they look "Professional". As we learned in Systems screen design can significantly affect whether a system is good or bad. So I put together a table for the data and took a look at the formatted against the regular layout. IT was like the difference between a black & white photo and a color one: They both showed the same thing, but the formatted one was just BETTER!

 

May 1, 1997

 

This day started off by trying to fix some problems I ran into earlier on in the week. This consisted of figuring out why my numeric searches did not want to work. I looked over the data files and discovered that the problem had to do with the definition of the decimal places for the element. I had forgot to define the element as decimal places zero instead of the AUTO that is assigned by default. The auto liked to save my numbers with a .0 at the end so when I searched by a numeric field it would return nothing because there was no match. And with all the time I spent trying to get that to work. Now I could begin concentrating on the more detailed and complicated aspects of the system. These include deleting records while checking to insure that all related records are deleted too!! So as of the end of the day I had the Updates working and had begun looking into what else would have to be done to produce a System Administration page.

 

May 2, 1997

 

Norman came in today and suggested that I begin looking at producing a sort of "Billing Statement" up since he has the front end of the system ready to test and all he has to do is convert the flat files he is using now to access the Database I am using. Once he has done that he will be able to test the billing of clients. This is a critical part of the system since that is how we make our money!! And it is also the first part of the system that we can both have fully operational. So I have shifted my focus to working with billing information and will return to the other parts later on. The rest of my day I spent setting up a basic billing screen that will allow you to enter a customer Id and will return what services they have been billed. Next week I will try to calculate amounts by joining the billing counters and the prices together so that I can make calculations.

 

May 5, 1997

 

This week began very slowly due to the fact that I had to figure out two things that I had not done yet. The first was discovering a way to be able to add to two tables at once. What I mean is that when I create a new client record, I want to create an initial record in another table. The other problem that is severely hampering my progress is finding a way to do calculations. At the same time I need to be able to read one table, store the values, read another then compare those two values against another. This sound very confusing but let me explain in English. A customer has a status of either standard, preferred or business. Each Status has different rates that we charge at. The "Rates" are in one table, the customer info in another. Then, you have that customers "Billing Counters". They are different charges for different services. Yes, that is another table. So to summarize, I need to search for a customer Id, link to the Status table to get the rates and then link to the Billing Counters to get the number of times they used a particular service. Now do you understand why I am having trouble. By the end of the day, I now have a screen up and running that displays the number of Billings for each service for a specific customer. I have not yet determined how to read the other tables to calculate the values.

 

May 6, 1997

 

Today I spent a few hours surfing the ‘net looking for answers to my problems mentioned above. There was little help to be found there and since this is still fairly new technology, no manual or books exist on the topic. Even Microsoft’s documentation is about as sparse as the Oracle quick reference we got last year for SQL. So I decided to just frig with it until it worked. So after a 2 hour session of add this here and try this there and add this to the table and then try this I got it to work (sort of). But well enough that I now had a building block to step on. About an hour later I had to whole thing working. It will now search for a Customer Id entered, and link to both files and then also do all the proper calculations and display it all nice & pretty in a table. I was quite impressed. How did I do it? It was with a combo of Access and the IDC query file that got me there. I made query in Access and then made relationships to the files. I guess Database class was not a waste of time after all. Access makes it so easy, just drag your field to the field you want to link and it does all the work for you. IT will also ask you if you want to cascade delete and update related records. I big step up from dBASE that is for sure!!! The hardest part about working with "Leading Edge" stuff is certainly not its complexity to understand, it how MUCH you have to know to get something done!! Simple stuff is easy because there are examples to aid you, but once you want to branch out from what the example has laid out, you are out in the creek sans paddle if you know what I mean.

 

May 7, 1997

 

Now I am fixing up the Billing Page and adding a frames design so that the user has easy access to the main option without having to hit back on the browser. Since I had been designing the pages slightly smaller than the width of the screen, adding the menu to the side was no problem at all!! I also printed out a sample statement so that I would have something to refer to when I was fixing the design up. It still needs to have a few fields added that I have still not determined how to add yet and it also needs to be formatted so that it will fit on the screen without having to scroll down the page. I also went back and installed a fix for the customer Info entry problem. As I said above, I needed to find a way to insert into two tables at once, but the IDC file only allows one query per file. So, to bypass this problem I decided to have the user enter the Customer Info, insert that information into the table and then prompt them to confirm the entry and subsequently insert the necessary data into the Billing Counters table. If they do not confirm the entry, then the entry in the Customer Info file will be deleted. After seeing the frames I had setup in my section, Norman said that I should take his pages and add a frames design to them also. That is what I will do tomorrow.

 

May 8, 1997

 

Today I worked on setting up frames and looking for information on the internet about JavaScript, the IDC/HTX files I have been working on and CGI scripting. Since I may be working with CGI sometime I thought it would be a good idea to look into this while I was searching for other stuff. My primary purpose was to find info on stuff I needed to work with. I wanted to find out what I could do with JavaScript and what I was limited to. The same went for the IDC/HTX files too. I found out that with the current version of software we had, my usage of special variables in the IDC files was very limited. Many of the features that made the files easier to work with just weren’t there when I tried to use them. Such as being able to execute more than one SQL Statement in an IDC file and being able to pass conditions to the HTX file to produce a certain result. This problem does not make what I have to do impossible, but it does make it a lot harder than it could be.

 

May 9, 1997

 

Now I am going through all the documentation and fixing thing that have been changed and penciling down other thing that will have to be changed. Discussed with Norman what changes I thought should be made to the tables. He agreed with the one I had and made a few suggestions of his own. He also told me that the part he was working on would be ready to work with my database by Monday, so I set out to make sure that the data files were set up correctly so that some test data could be inserted into the database. Today was mostly a clean-up kind of day. This means that I went through all the stuff that I have done so far and fixed up the design of the page and tested them again to make sure that they actually "work!". I began adding JavaScript code to validate the Customer Info and also formatted the fields on the page to make them more pleasing to work with. I was also helping Norman out with what he was working on for most of the afternoon. He is trying to access my Database through visual C++ using Recordset classes. The hardest part of all is getting it to work. Once you have the code to access the database working, then the rest is easy.

 

May 12. 1997

 

Helped Norman with the Recordset classes this morning. He got them working after lunch and before he left today had a simple update and inquiry working. I figure he will be using my database by sometime tomorrow so I had better get the database updated to include some small changes we made to make data access easier. We changed one field from double to character because it was only being used for comparison, not calculation! I also working on the JavaScript for the Customer Info page. I have a data validation routine written and also have ones written for the ID numbers also. Tomorrow I hope to get that done plus begin integrating the MIN number page with the Customer page. This is another change that was decided would be made for easier data entry for personnel. Since a customer will always be registering one number when they are entered into the system, there may as well be a way to add them at the same time to save some extra work for the data entry clerk.

 

May 13, 1997

 

Today I was working on a date validation routine and figuring out a way to put together two pages into one. This is much harder than it sounds, because each page much send info to the next one and pass it on to the next one, etc. I figured out that I will be have 7-8 pages deep when I have it done. This means that the original HTML file will accept information and add that record to the table. Then you must ask the user if they want to make changes. If not, then they add the record to the counters table. After that if all done then you do the same thing for the MIN Number table. So, in its typical path, it would look like this:

 

Add Cust à Confirm Info à Add to Counter à Confirm Info à Add Min Number à Confirm Info

 

Then you would go back to Add Min Number and add another if necessary.

 

May 14, 1997

 

A repeat of yesterday is what today consisted of. I did a lot of testing trying to get the "SUPER" page working. There were a lot of things that could go wrong and they did. I had to check every possibility and make up a lot of duplicate pages so that the correct information would be shown and the right HTX file would be called. I also made some changes to the database and created some queries to use for future pages. I am not sure what I am supposed to do at this time other than fix what I already have done, so I am looking at other posible pages I could design.

 

May 15, 1997

Today I got the "SUPER" page working and also wrote a delete page to clean out some of the records I added. The great thing about the delete is that it is a automatic cascade delete. It will delete all related records when you delete the main record from the table. What I mean is that when you delete a customer record in Customer Info, it will also delete all MIN Numbers for that customer and all delete their Counter record also. I really like Access quite a bit and will never want to see dBASE again!! I also made query programs for the MIN Number table that allow you to enter a Customer Id and the query will list all MIN Numbers for that customer. The last thing I did today was to modify the opening page using a Table and a List. This made the main page much more professional and easier to read. Before some of the options required you to scroll down the page to find them, Now that I am using a table I can make two columns of menu options and fit them all on the page without the need to scroll down. I think I got as much accomplished today as I did this entire week so far.

 

May 16, 1997

 

Today was the last day before the long weekend, so I got less done today than on other days. I did go back and fix up the pages after talking with Norman about making changes to some of the fields and changing the format of others. I also started using Visual C++ trying to get familiar with the interface after not using it for about a month. I will probably start writing some CGI when I return on Tuesday because most of the IDC/HTX has been done and only needs to be looked over a final time by the people that are going to use it to see what should be changed to suit their needs. I was also surfing the newsgroups looking for information on new stuff pertaining to the IDC files. Since the computer I am running off of now is not actually a server, I do not have the full capability of the IDC files. I was seeing if there was a temporary way to test the IDC files using the advanced options. I found there is no way to do it.

 

May 20, 1997

 

When I returned today I continued doing the same things I started on Friday. I found out that the information for the system we are working on will be moved to Toronto in a few weeks. This is where the server is and it is put there since it is a central point across Canada to have it. So when it is put there, I will be able to fix my IDC files to work properly. At this point there are some duplicate screens to allow me to add to two files at once. With the proper IDC syntax I will be able to do this without calling additional screens.

 

May 21, 1997

 

Now I am starting to write a CGI program that will allow me the retrueve the username and password that the user entered and then call a form that lets the user enter their thoughts on the site. It is really a simple concept but I have two hurdles to overcome. The first is that I have not written a Visual C++ program that worked yet and the second is that to use CGI you have to be able to setup "Environment Variables". The variables are what tell me what your IP is, your domain name. etc. Once I have these two problems figured out, then I will have no problem getting the program to do what I want. I also had to learn how to use a "printf" since CGI does not work using a ‘cout’. This has something to do with the CGI header file setup. It was no big deal, and I thought that a ‘printf’ was far more versatile than a ‘cout’. Why did we have to learn ‘cout’s’. I now think that they suck!

 

May 22, 1997

 

I got the Visual C++ program working today and began to add the CGI to it. The way CGI works is that you get the Environment Variables then you start printing HTML on the screen. It looks like this for example:

 

printf("<html><head><title>Test Page</title></head><body><h1>My Test Page</h1>\n");

printf("The username you entered is: %s\n", REMOTE_USER);

printf("</body></html>");

 

That would give you a basic page showing the username that the client entered. I then added to the program to call an IDC file that would use the username as a search and return the customer information on the screen. Now I just have to setup the CGI program to accept information on a form and store it in a file.

 

May 23,1997

 

Today Norman and I discussed getting the programs and pages ready for a presentation next week. We went through all of my pages and he pointed out what should be changed and what needed to be added. He also told me that he would get me an account on the DPL web server so that I can test my IDC files out with the new advanced syntax added. Then he also discussed graphic design for the page and that we are responsible for that aspect too. Norman is now working on a animated GIF for the front page and I am trying my best to finalize all my pages since some of them are complete but have not had test messages removed or in some cases I have not finished the JavaScript code for them. Others need to be re-designed because they do not fit on a 640*480 screen. I have a number of thing that need to be changed, but none of them are major. I am sure that the presentation is not until at least Wed,Thur so I will be working on getting the major pages ready for a demo up until that time.

 

May 26, 1997

 

I was very busy today getting the entire page in a presentable format. Everything did work properly, but there was a lot of it that did not work very user friendly. So I spent most of the day fixing the pages up and asking Norman if what I had for a format was acceptable or not. Most of the time he did say that yes, it was quite good. There were a few things that I did that he thought should be changed. For example, one of the pages had a large title at the top and made it so that the information had to be scrolled up. Norman said to make the title smaller and then all the information would fit on the page at once. It was mostly little things that I never thought that Norman picked on. By the end of the day I had the page pretty much ready for presentation except that a few of the functions had not been setup yet. I simply setup a JavaScript prompt saying that the function is not available yet and left it at that. Today is definitely the busiest day I have had so far this term.

 

May 27, 1997

 

Today is the day that Ian presents my pages to someone from Fredericton. I was informed that it would not be until 1pm so I decided to fix a few of the pages that I left alone yesterday. I added JavaScript prompts for the search pages to eliminate the need for loading an HTML page and thus speeding up download and response time. I got this working properly on all the functions in a few hours. Then as I ran through my project I found a few more problems that I didn’t see yesterday. I decided that even though I only had a couple of hours until Norman and Ian would be presenting the project, that I had better get those problems fixed. I was still working on one at about 10 after one. But since the interested party was a bit late , I did’nt have to worry about not getting it working. The presentation was quicker than I thought, only 15 minutes, and I realized how much work I put into setting up the page and how little time someone spent looking at it. I guess that is true of all jobs, you work innnumerable hours on a system and then make a 45 minute presentation on the whole thing to determine if all those hours were for nothing or not. The rest of this week should not be as hectic as these first two.

 

May 28, 1997

 

I might be wrong about what I said above. Today, Ian sent Norman and I a sample specification document that we were to follow to report on what our projects did. So I guess the end of this work term is going to be quite hectic in comparison with the first 5 weeks. The way I am required to do this document is to give a brief overview of what my project does and then have a section with a screen shot of each page used. Then in the next section you describe each function referencing the screen given above in the second section. You also have to document any errors that may occur and give a action to be taken when they occur. It is a bit like a Operations Manual with a bit more technical detail. So I began looking at this and trying to figure out the numbers they use to designate processes. Each function gets a Unit Process number. I am trying to figure what processes my project is. I asked Norman and he told me what to use. Now that I understand what to do, I will begin.

 

May 29, 1997

 

Only two works days left until Gary and I return to school for presentations. Today I started with the screen shots and writing the documentation for each function. I am plannning to do all the screens first and then write the documentation for each. For simpler ones though, I am going to do both the screen and documentation at one time. I have been trying to get Visio installed on my PC for the last 2 days so that I can make a map of the site. I feel that the map is an essential part of the system because it shows the user what pages go where and then where they return to when a certain button is pressed. I was also helping out someone who is trying to write an HTML form that will send the results to an e-mail address. Since there are many ways to do this, you must figure out what way would be the most effective.

 

May 30, 1997

 

This is the last day before we go back for presentations. Today I worked on the documentation some more and continued to help out Trig with his mailform problem. Today was more of a helping people out day then working day. I was also asking Norman how I should setup my report, One for each group of functions or put the whole system into one report. He said it would be more efficient to put it all into one document since then you would not have duplicate pages in each separate document. I agreed with him continued working on my screens. Then, finally, I got Visio setup. Brian installed it on hos computer and I mapped into it. I spent all afternoon working on that site map and I only go it half done. It is really going to be big!!! I figure that it will fill an 8.5" * 11" sheet of paper if not require me to use a larger sheet of paper or put it one two pages. Anyway I really do like Visio a little better than Rfflow because it does more things for me automatically. I also decided at the end of the day that I would continue to write this diary just so that I could look back and see what I was doing. So back to school I go and will be back to DPL and writing here on Tuesday.