25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more...
Home   Projects   Up   Sitemap   Search   Blog   Forum+Chat   About Us   Privacy   Terms of Use   Feedback   FAQ   Images   Services   Ads   Donate

About Us

The author

I wrote my first computer programs, in FORTRAN, in a summer school class in 1970. It was so much fun that outside the class I launched into an attempt that lasted several days to write a program that would follow the steps needed to solve the following problem in the way a person would do it. Each letter stands for a digit:

    S E N D
+   M O R E
= M O N E Y

It proved to be far too difficult for someone in a one-month programming class. I kept thinking I was so close..., but probably wasn't, and there was no way to tell because of the one fatal flaw of computer programming as a pursuit in those days: I had no access to a computer to test it because the class was over.

It never occurred to me to consider programming as a profession. The inability to experiment outside a programming class, and there being no such thing as a high school programming class, were no doubt contributing factors. I wanted to be a writer, which I could practice on my own, or, most of all, a famous guitarist, or, failing that, a psychologist.

In college in 1975, I learned BASIC in two hours by reading a book, but it wasn't part of a class. Why spend 10 weeks listening to somebody drone if you can learn it in 2 hours? I wrote BASIC programs to do useful things at my student job, but we didn't have a computer. (When I did have a computer three years later, the programs ran perfectly the first time.) By 1979, I had a TI-59 programmable calculator, which was a true computer and did perform useful tasks, but it still felt like a calculator.

In spite of mostly having practiced guitar, I somehow graduated university with a psychology degree. Having lost all interest in psychology years before, however, I instead became an honest well-liked failure as a salesman. Then got a job as a secretary. The famous guitarist thing didn't work out.

When the Commodore PET, and then the Apple and TRS-80 computers came out, I wanted one badly, but they cost thousands of dollars and always seemed to be broken.

In 1981, I was given the job of shopping for a computer for our office and spent a month at it. The Heathkit H-89 computer was reliable, less expensive, and best of all (maybe not in the boss's view) it was a kit that would have to be built. The boss decided against buying any computer at all, so I bought it myself, possibly the very next day: $2,500, nearly all I had, and the best investment in education and career I ever made.

Three months after building the H-89, I started a data processing, programming, and consulting business. Not many businesses had computers in those days, and not many people knew anything about them, so knowing anything was useful. I also started working as a computer repair technician at the local Heathkit store. They said I did a good job and nearly doubled my pay.

Working with computers became a living and a passion. Many of the projects here on the site were stimulated simply by curiosity about what computers could do.


The programs and projects

Some of the programs and projects here are practical solutions developed in the course of work, daily life, and from a habit of turning every hobby and interest into a computer project.

Some of the most interesting programs simply began with the question, "I wonder if I could write a program that would...", to which the answer was usually yes.

The programs are generally very stable in the exact environments in which they were developed, i.e. on the systems described below. In other environments, I don't know.

A few of the programs (for the vintage computers) have warnings in the source code that they are hardware dependent and must be used only on the type of computer they were designed for.

I cannot guarantee that any program fully, accurately, or correctly performs the function it was designed to do. There could be errors of methodology or result that I never noticed.

None of the programs on the site (nor the site itself) were designed to contain any intentionally malicious code such as adware, spyware, malicious macros, or hidden or masked routines designed to do harm. That having been said, I can't guarantee that they are incapable of doing harm; only that I did not design anything into them intended to do so. It is a good idea to always scan downloaded files (from any site) with antivirus software before you open or use them. You can also check out a website's report at McAfee SiteAdvisor. Here is the report for this site.

For each of the site's projects, study the web page, source code, and documentation so you understand what it is, what it's supposed to do, and what environment it's intended for. A few of the projects are very complex and will require a lot of study to understand and use.

 


The computers

Projects were developed on whichever computer I was using at the time. Most projects got ported forward through the computers I owned. These included:

A Heathkit H-89 (H-90), 2 MHz Z80, running
  • HDOS 2.0
  • CP/M 2.2.03
  • Microsoft MBASIC 5.
  • It still runs today!
H-89 computer, H-77 cabinet with 48TPI drive.
A Heathkit H-100, 4 MHz 8088/8085, running
  • MSDOS 2.0
  • CP/M-85
  • DeSmet C 3.03 compiler
  • No longer have it. Electrolytic capacitors in the power supply failed in 1997. You can prevent similar failure of your H-100 by running it for a few minutes a month. The ZVM-135 color monitor failed, colorfully, by catching fire in 1995.
H-100 computer with 2 Mitsubishi half-height 96TPI drives. ZVM-135 color monitor. TI-59 at left.

The H-89 and H-100 in use in 1992. TI-59 on top of the 2 modems.

A Gateway P5-90XL, 90 MHz Pentium I, running
  • MSDOS 6.22
  • Windows For Workgroups 3.11
  • Microsoft Word 6.0, Access 2.0, Excel 5.0
  • Borland C++ 4.0 compiler with ObjectWindows Library (OWL) 2.0
  • It still runs today, and many projects from it remain unported to Windows XP.
P5-90XL in use in 2003.
A Gateway 710X, 3.2 GHz Pentium 4/HT, running
  • Windows XP/SP2
  • Microsoft Office 2003 Professional
 

Copyright and Licensing

I own the copyright to the projects on the site and have chosen to distribute most of them under the terms of the Free Software Foundation's GNU General Public License (GPL) Version 2.

Each zip file contains a copy of the GPL. For small projects that are only source code listings on web pages, please make yourself a copy of the GNU GPL.

If you copy any code from a page that has only one copyright and licensing notice which applies to all the code on the page, you must copy both notices into your copied code block. If the copied block is small, you must still retain the copyright notice but may use this shorter form of the licensing notice: "Published under GNU GPL (General Public License) Version 2, with ABSOLUTELY NO WARRANTY."

Some of the projects, such as Microsoft Office documents, aren't computer programs. The "source code" of those documents, as referred to in the GPL, is whatever elements in the document are modifiable and copyrightable, whether it be program code, macro code, cell contents and formulas, form or report design, template layouts, text, etc.

If a project doesn't state that it is distributed under the GPL, then it is not, but it could be an oversight, so it can't hurt to ask.

There is now a GPL 3 license, which is not compatible with the GPL 2. It is unlikely I'll ever get around to updating the licensing for all the projects. If you need a project licensed under GPL 3, feel free to ask.

This site's web pages (such as this one) are not published under the GPL or any free license. They may not be copied or republished. However, several of the blog articles have sample HTML or CSS code demonstrating how to do particular tasks. You may copy and use that code freely in your own site even though the code contains no license notice.

View the GNU General Public License (GPL) Version 2
Local copy on this site, in very readable HTML format, with links to other formats (plain text, and the original at the GNU website, which offers other formats).  
 

 

 

Valid HTML 4.01 Transitional Valid CSS
View content labeling at ICRA.
Copyright ©2008 Steven Whitney. Last modified 04/29/2008.