25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more...
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
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 main difficulty of computer programming as a hobby in those days: I had no access to a computer 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 programming classes in high school, 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 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 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.
Projects were developed on whichever computer I was using at the time. Most projects got ported forward through the computers I owned. These included:
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.
Each zip file contains a copy of the version of the GPL that applies to it. For small projects that are only source code listings on web pages, please make yourself a copy of the GPL Version 2 or Version 3, whichever applies to that project.
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. Insert the correct version number where required: "Published under GNU GPL (General Public License) Version [N], 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.
If you are not familiar with the GPL, here is a brief summary which in some circumstances might be all you need to know:
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.
Here are links to local copies of the GPL in very readable HTML format, with links to other formats (plain text, and the original at the GNU website, which offers other formats):
Copyright ©2012 Steven Whitney. Last modified Sun 07/29/2012 10:03:51 -0700.