The purpose of this document is to briefly describe some of the computer related abilities I have developed for the benefit of those who may be interested in my services. It is a meant as a supplement to more formal material.
Note: This document was initially written in the middle of 1997. Some of the less relevant material has been removed in later edits.
Brief historical info and OS experience: I started out with
a Commodore 64 circa 1983 and learned BASIC and a small amount of
6502 machine language. My interest subsided after around '85 and
I did little with computers until around '93 when I got a 486 (PC.)
I used predominately DOS with some win 3.11 at the time. I used
this system for school projects and played around with many misc.
shareware programs. Later, I got a P-90 notebook with win95 and
started writing more advanced spreadsheets (in excel) as my lab
courses became more challenging. Also with this system, I began to
do more Internet related research and developed skills in finding needed
information and applications software.
Near the end of '96, I needed a more powerful computer to run MicroStation (an advanced CAD package) so I assembled the computer which I use today. In late '97, I switched to WinNT4.0 workstation. I was impressed with its refinement over Win95.
In early '99, I set up a FreeBSD Unix box to act as an Internet gateway and development platform. I was so pleased with its performance and its capabilities that I soon converted my primary machine to that OS as well and acquired a 3rd machine running Win95/NT for certain legacy software and for network experimentation. I plan to also put X86 Solaris on this machine for reference, but have more pressing projects at the moment.
General: I think my biggest strength is in having the ability to pick up a new piece of software and to quickly understanding enough about it to make it useful. This ability is, I believe, attributable in part to my having done so numerous times with miscellaneous software obtained largely through the Internet. Having a high level of interest in given piece of software also contributes to my learning curve.
UNIX related: I became especially interested in Unix when I used in my job with an Internet Service Provider (head of technical support.) Though I was able to develop some simple shell scripts to assist in routine tasks, the status of the machine as the main production server precluded me from going much farther than that. I implemented some of my ideas at home using Perl on my WinNT machine, but it was clear that Unix was a superior platform upon which to do such development. For this reason and several others, I installed FreeBSD Unix on an older system that I had. Within a month, I also installed it on my main system and have been very happy with it since. Necessarily, my earlier efforts had been aimed at learning system administration, but eventually I was able make a shift toward more development related tasks. Some of the items which I have put some energy into learning include:
Along the lines of development, I have made an effort to become familia r with certain programming languages. I decided to do some early work with Perl to gain some familiarity with it though I planned to, and later did switch to Python as a first choice in the high level scripting language category. The major projects which I have undertaken using these languages both involved parsing a data source (a mailbox in the Perl case, and a structured data file in the Python case) and eventually generating html, output. My main experience with shell scripting has been for doing automated back-ups and website maintenance related tasks via cron. I have concentrated on learning the features of ksh since it seems to be widely available. As fo r lower level languages, C++ seems to be a logical choice. When I took an entry level course in the subject, I was the only person in my class who was using a non-Microsoft OS and therefore needed to learn the basics of the gnu compiler, make, gdb, etc on my own. Currently I am enrolled in the second C++ course, an introductory C, and an introductory assembly language course.
Intended areas of concentration: -000102 My recent interest in Unix has made me increasingly aware of how much more there is to learn. Below are some of the items which I intend to gain further knowledge of when time allows, or when the need requires it:
Note: The following items have been shuffled to the bottom of this document as my own priorities have shifted.
General Internet: I have spent a great deal of time both using the
Internet, and studying its structure. This has resulted in my understanding
both its major components (WWW, usenet, etc.) and how to use them effectively.
It is my belief that in the
future, "literacy" will include having the ability to find useful information
on the Internet, and this is becoming increasingly challenging as the Internet
grows. I have learned enough html (HyperText Markup Language) to create a
fairly nice web site with a special navigation tool and other Java applets.
Update: Since that time, I participated in AT&T's beta test program for personal web pages. My site managed to make AT&T's top 10 list with the explanation: "very advanced." Also during this period, I gained administrative access to another site (www.abode.com) which has better service including a more robust CGI library and logging features. Update: Later, I registered a domain name and acquired hosting with a web presence provider who uses FreeBSD Unix. I opted for an account which provides me surprising degree of freedom to use of the server's resources including the ability to compile and install software for my own use and install whatever CGIs I see fit. My interest in web site design and html dwindled though I had learn it well enough so that later projects which involved dynamic html generation required almost no research effort in that aspect.
Excel 5.0: I consider my skills with excel to be probably the highest
relative to the other software specifically mentioned here (as of '97).
Much of the work I have done has been for engineering lab reports which
require visual feedback (graphs) as well as a fair amount of mathematical
complexity. I learned early on that it often pays in the long run to write
spreadsheets that require a minimal amount of input and rely on internal
calculations for as much of the work as possible. I also take pleasure in
carrying this principle as far as practical. Lately, I have been paying
more attention to creating a decent looking and intuitive user interface
partially because my familiarity with other tasks affords me the extra time.
Probably my most advanced spreadsheet to date utilizes a "massively 3-D"
architecture and careful use of mixed cell references to perform a technique
for solving systems of non-linear equations known as the "Hardy Cross" method.
In all honesty, a more traditional program would have been more suitable, but
I wished to try my hand at systematic 3-D referencing.
Update -000102: I use Excel infrequently now, and generally for specific needs rather than for fun.
Access 2.0: My main experience with access was in designing an inventory management system for my former employer who has a used lumberyard. There where some complexities in the nature of his inventory that required a relational database. During spring break in 1996, I went into a "total immersion" learning project and figured out enough to build a workable system, though the user interface could have used some more work. As it turned out, the owner fired the yard manager who was the only guy with a hope of maintaining the system, and it was never used. Other than that, I use access as a fancy address book, and little else. As an exercise, I used it in conjunction with excel to analyze the log data from my web site.
(Content no longer deemed relevant -000102)
CAD in general:
Related to CAD:
What I don't know: (obsolete: most items addressed -000102.)