Tuesday, February 10, 2015

File Converter Between MS-DOS and Macintosh

File Converter between MS-DOS and Macintosh

In 1985, there was a customer of La Maison de l'ordinateur, I don't remember its name, but he had a catalog of his products that was implemented in a database running on an MS-DOS system. That client decided to migrate its database to Macintosh system.

An Apple Macintosh System
An Apple Macintosh System
At the time, no commercial products existed to do that type of conversion between the two types of systems.


An MS-DOS System
An MS-DOS System

So, I wrote on the Macintosh a program to convert the files from one system to the other.

The line breaks were different between IBM and Apple and the accentuated letters in French had different ASCII codes. That is almost all there is to say about the algorithm.




One last thing to mention: There were a huge number of files to convert, so I had to write a nice user interface to make it easy to use.


Symphony Spreadsheets

Lotus Symphony Spreadsheets Project

In 1984, while I was working at La Maison de l'ordinateur, I have meet a customer.
I do not remember the name of that customer. All I remember is that he was the president of a security agency, insuring the security at the Ottawa Parliament.
Lotus Symphony
Lotus Symphony

In order to keep his contract, he needed to buy a computer system with a spreadsheet program.

I sold him an IBM AT with the Lotus Symphony software suite for DOS. I also sold him a special graphic adapter (I don't remember the name of the graphic card) but it was for monochrome displays and able to render high-resolution graphics and also to work in a 132 columns text mode.
The IBM PC/AT
The IBM PC/AT

I've also obtained a contract to build a set of worksheets, using Lotus Symphony, to get him started.

Lotus Symphony was an integrated software package for creating and editing text, spreadsheets, charts and other documents on the MS-DOS operating systems. It was released by Lotus Development as a follow-on to its popular spreadsheet program, Lotus 1-2-3 and was produced from 1984-1992. Lotus Jazz on the Apple Macintosh was a sibling product.

Budgeting System

Budgeting System for "Communications Québec"


The first subcontract I've obtained while I was working at La Maison de l'ordinateur was for a branch of the Government of Québec—Communications Québec.

I've obtained a contract to create a budgeting system with Lotus 1-2-3[1].
Picture: Lotus 1-2-3 screen snapshot example.
Picture: Lotus 1-2-3 screen snapshot example.
This is not an actual example of my application.

With Lotus 1-2-3 it was possible to insert in the cells of a worksheet commands called macros.

The application was menu-driven and contained many macros to ease and automate the planning and production of expense budgets.




[1] Lotus 1-2-3 is a spreadsheet program from Lotus Software (now part of IBM). It was the IBM PC’s first "killer application"; its huge popularity in the mid-1980s contributed significantly to the success of the IBM PC in the corporate environment.

Accounting System Port

Porting an Accounting System

In 1985, whilst I was working at La Maison de l'ordinateur, there was a programmer working for them, Réal Désilets, and he gave a contract to port a complete accounting system, written in Microsoft Basic, from a CP/M computer (that was about to break down) to an IBM PC/AT machine under MS-DOS.

The IBM Personal Computer AT, more commonly known as the IBM AT and also sometimes called
Picture: The IBM PC/AT.
Picture: The IBM PC/AT.
the PC AT or PC/AT, was IBM's second-generation PC, designed around the 6 MHz Intel 80286 microprocessor and released in 1984 as System Unit 5170. The name AT stood for "Advanced Technology", and was chosen because the AT offered various technologies that were then new in personal computers; one such advancement was that the 80286 processor supported protected mode. IBM later released an 8 MHz version of the AT (c.f. picture).

Anyway, it was an easy job for me to do and I was well paid to do it.

Something worth noting: The user interface of the program was in German, because the mother company was based in Germany. So, I have learned a few accounting terms in German schnell (i.e. rapidly).


Internship

A Routing System Developed During an Internship

In 1985-1986, at the end of my course in Computer Science Technology, in order to obtain my programmer-analyst diploma (DEC) at the cegep Montmorency, I did an height months internship with a fellow student, a colleague, in an enterprise called Extermination Trans-Metrople/Fertivert.

In fact, Extermination Trans-Metropole was the main enterprise and Fertivert was a franchise owned by the first company. Fertivert was offering a service of lawn care treatments such as:

  • Pre-Emergent & Targeted Weed Control
  • Fertilization
  • Aeration
  • Picture 1: My alumna Michèle Labrèche
    Picture 1: My alumna Michèle Labrèche
  • Lime Soil Amendment

My Colleague on that Project

I have accomplished this project with a colleague, my alumna Michèle Labrèche (c.f. picture 1):

Project Description

Simply put, the client wanted to have a database of his customers and to be able to generate various reports from the information stored in that database.

Picture 2: The IBM PC-XT.
Picture 2: The IBM PC-XT.
But the most important report that had to be generated for was a routing list.  For example, if one day a technician needs to visit all the customer located in a given city, for example Longueuil, then we would extract from the database all the customers where the city is LONGUEUIL, and sort that sublist on the postal code.

If you sort a list on the postal code, it will give you a route to follow to visit them. It is so good that if you have six customers on a given street, you will visit them in order from one side of the street and visit the other customers on the other side of the street when you come back. Thanks to CANADA POST for implementing the postal codes system.

The Hardware We Had at our Disposal

The application had to run on an original IBM PC-XT (c.f. picture 2), with 640 KB of RAM and a 20 MB hard-drive and a monochrome display adapter. At the time, the price for such a machine was around $10,000.00.

The Analysis

After doing the analysis, we recommended to developed the application in Turbo Pascal 2.0 and with a commercial B-Trees package to implement the database. Such a package was available from Borland. I had written myself previously a Turbo Pascal module to create and manage input forms with full editing commands and data validation and I was planning to use that in our application to manage screen inputs using forms and menus in the application. This would have enable us to create a very performant (fast) application on the given hardware.

We Changed our Plan According to the Customer

There was an employee at Fertivert, Eduardo, working for the company. He had some knowledge about computing because he had a certificate in computer sciences. A certificate is 10 courses (or two full time sessions at the university).

He explained to us what he wanted and gave us some guidelines to develop the system and asked us to use Aston-Tate's dBase II instead of Turbo Pascal. For him, if the system was developed using dBase II, then it would be easier for him to create new reports and modify the system after we would be gone.

He was right, and we complied.

But, we have found out in the end that dBase II was a program with some disadvantages:

  • dBase II code was interpreted, not compiled.
  • dBase II was a language with a lot of bugs, not to say incomplete.
  • It was only possible to open and use two tables at one given time.
    This was a major flaw, because opening and closing tables added latency in a system that was already slow.
  • dBase II wasn't a true relational database management system (RDBMS):
  • No security.
  • No user concurrent access (but it was not needed then).
  • No real SQL.
In other words, the system worked fine, was corresponding to the needs of the client, but it was a bit slow.

Successful Outcome

Nevertheless, we have succeed in delivering what the customers wanted and they were satisfied.

So satisfied  they gave me (to my parents in fact) two years of free law care treatments. After that, my parents continued the service again for several years after. Our lawn was really green, good looking, no weed, no dandelion...

Today, pesticides are banned. Very bad for the environment. Some studies showed that it can cause various illnesses and cancers in animals and humans.

So today, I don't treat my lawn. It's full of pretty yellow flowers of dandelion and other plants, and I live with that. Anyway, monocultures are not natural. Monocultures can lead to the quicker spread of pests and diseases, where a uniform crop is susceptible to a pathogen.





Wednesday, February 4, 2015

Backing up your Files

Making Backups

When was the last time you've made a backup?  
Do you have a backup procedure? 
Is your data important to you? If not, then you are not a serious computer user and you don't need to care about backups, otherwise read on...
Backuping is a dry topic, not very interesting you may think. Wrong! MAKING BACKUPS IS VERY IMPORTANT, and can sometimes be fun.

Making backups is very important, and it's a task often neglected by computer users. Especially by individuals using a computer at home.

In a professional environment, the IT department takes care of the problem of backups. But for ordinary people at home with their personal computers, the task is left to them, and from my personal experience, very few people have an adequate backup procedure. In the recent years, several people came to me in despair because they had lost their data after a hard disk failure, the execution of a command by mistake (e.g. del *.*), or a virus infection.

Having backups is very important and it will save your life if anything happens. Is your data important to you? If not, then you are not a serious computer user, and you don't need to care about backups.

Usually, people store files on the hard disk of their computer. After time, the accumulate a lot of files. And one day, their drive breaks and they come to me hoping that I can retrieve their data. Sometimes, I can restore the data, or at least parts of it. The lost of data can also be caused by a virus infecting the system. When a virus or malware infects your system, it may be possible to salvage your files if the virus was not too evil. Finally, the user can delete files himself inadvertently.

I predict that your hard drive will have a failure. Your hard drive is a mechanical device that will fail you. It can fail in two minutes, in two days, or in five years, I do not know when, but I know it will fail you eventually. And when it will, you will probably loose all your files, unless you have backups of your files on other media, or even in the cloud (i.e. storage devices on Internet). The following comic strip describes the evolution of backups:
Picture: How we make backups now.
Picture: How we make backups now.

It is very important to do backups of your files, in any fashion.

Just a note: If you do backups in the cloud, be aware that the service that you will use will have access to your files. Their server can also be hacked. So, if you have files containing sensitive information, it is really not a good idea to put them in the cloud, unless you own the cloud server yourself.

How I Do my Personal Backups

A Bit About My Systems

At home, I have three computers :
  • One ASUS P4S333 desktop server with 10 hard-disks, but I can use only at most four hard disks at a given time in that machine.
    Operating Systems: MS-DOS 3.2 to 6.0, Windows 1.0 to 3.11, Windows 95, Windows 98, Windows XP profesional, Linux Mandrake 8.2, Linux RedHat 9, Linux OpenSuse 10.2
  • One notebook HP Pavilion g6
    Operating Systems: Windows 7 Premium, Ubuntu 12.10, Kubuntu 12.10
  • One laptop Toshiba Satellite L850D
    Operating System: Linux Ubuntu 14.04 LTS
Picture: My Desktop Server
Picture: My Desktop Server.

Picture: My Notebook and Laptop Computers.
Picture: My Notebook and Laptop Computers.


Where Do I Store my Backups

After over 30 years of computing, I have accumulated a lot of files: pictures, movies, music, documents, etc... These files are very important to me. You never know when something will become handy.

When I perform a full backup of all my files, I keep it, especially if it's made on optical digital media (such as CD-ROMs or DVDs).  Back in the old times when we were using magnetic media, it was tantalizing to reuse the same backup media over and over, rewriting over previous backups.

So, if I make a full backup every month, I have in reserve 12 backups after a year.

Of course, I do not always perform a full backup. Sometimes, I only save a few files on devices such as external USB drives, USB keys, other machines connected on my network, and even on my Google Drive in the cloud.

An Example of the Importance of Having Multiple Backups

At one point in time, I was using a Windows XP computer and it got infected by a virus. So, I needed to re-install Windows XP. I mean, reformatting the hard-drive, re-installing Windows and retrieving all my personal files from a backup.

The joke is that after re-installing Windows, everything was fine. But the virus had infected executable files in my last backup archive. Fortunately, after spending three days of installing and scanning, I was able to retrieve all my files, having to retrieve infected programs from previous older backup archives. It took a lot of work and I had to burn the midnight oil, but eventually I prevailed and have not lost a single file.

My Main Archive Repository

I have on a computer what I call my main archive repository. I put in this location all the files that I wanna keep.

In this archive, the permission on the files is READ-ONLY to prevent modifications by mistake. Also, the contents of the archive is restricted. Not all users can access the archive.

I have copies of this archive on several computers, on several hard-disks, also on an external 2 TB USB drive, and finally, I also create copies of the archives on optical digital media such as DVDs and CD-ROMs.

Also, I keep copies of these optical backups into another physical building in the event that my house would be completely destroyed by a fire for example.

My Full Backup Procedure

Today, I have made a new full backup. Here is the procedure I used to create a copy of my archives:

Use the command df(1) to report the file system disk space usage:
Snapshot1.png
Snapshot1.png
The following command shows the top directory of the archive and also counts approximately the number of files in the archive:
Snapshot2.png
Snapshot2.png
The following command creates a tape archive file containing all the archive contents:
Snapshot3.png
Snapshot3.png
The following command will compress in a password protected ZIP file the tape archive file:
Snapshot4.png
Snapshot4.png
The following command will split into 4.3 GB chunks the huge compressed tape archive:
Snapshot5.png
Snapshot5.png
After that, I can burn the files xa{a,b,c,d,e} to five blank DVDs and I will give my archive to a friend and ask this person to put that into his safe:
Snapshot6.png
Snapshot6.png

How to Reconstruct my Archive

If something very bad happens and if I want to retrieve the files on the DVDs, I will need to perform the following procedure:
Snapshot7.png
Snapshot7.png

  1. I need a Linux or Unix system with at least 50 GB of free space. Why 50 GB? Because the size of the archive is about 25 GB and I will need twice the amount of space temporary to reconstruct it. But, 60 GB or more free space would be preferable.
  2. I will create a new empty directory in that file system and I will copy the files xa{a,b,c,d,e} from each DVD to this new directory. In the end, I will have these five files in that directory (cf. Snapshot7.png):
  3. I will use the command cat(1) to concatenate the five files into a new tar zipped file:
    # cat xaa xab xac xad xae > my_backup.tar.zip
  4. I will use the command unzip(1) to uncompress the file. The unzip command will ask at the terminal for the password needed. In case I forget in the future the password I have used, this is a hint for me ("FLN"):
    # unzip my_backup.tar.zip
  5. To extract all the files from the tape archive file into the current directory:
    # tar -xvf my_backup.tar

Sunday, February 1, 2015

Service Call Follow-up Example

Service Call Follow-up Example

An example of the kind of service I deliver to my Customers

On Monday January 26th at 11:00 AM, I received a call from Mr. Denis T., my former French teacher during my third high school grade (in 1981).

He told me his inkjet printer was not working, and also that he changed his computer. Now, he's using an ASUS laptop with Windows 7, instead of his old desktop with Windows XP. He told me he installed the printer's driver and that it was not working. Finally, he also told me that he had more questions for me...

I've told him that I would be there in two hours, at 13:00. So I did...

After investigating the problem, I found out that he had not used his ink printer since several months. His color ink cartridge was half full and his black cartridge empty. Anyway, the ink left in the ink cartridges was dried, so only blank pages of paper would come out of the printer

So we went to a store (Staples) and bought new cartridges. It cost $70. Almost the price of the printer.

After fixing his printer problem and showing him how to scan documents with his printer, I have installed Google Chrome on his computer and made it the default web browser. I have also created him a new GMail account, because the user experience is better if you can sign into Chrome.

But I forgot to put his Chrome in French before leaving him. So I have made and sent him this video to help him configure Chrome in French.

This is a video I sent to my customer after. I don`t know if he even watched it.