Macintosh Stuff

Macintosh Page Index:

Macintosh based software I've written
Hypercard based software I've written
How I got into computers, and "why Mac for me?"
Why Macintosh?
More Information
Macintosh related links (This is the same list as is accessable through my weblinks page.)

Back to Bill's home page.

Macintosh based software I've written:
I have written several programs in C, using the Macintosh Toolbox. Here are the most interesting. Please contact me if you are interested in any of these.

A world map drawing program, done for my college senior project. This program has been greatly improved starting in 2003. Check it out!

A simple macintosh interface program, demonstrating basic interface features such as multiple windows, redrawing windows when they are brought to the foreground after a portion of them was hidden by another window, changing window titles, drawing different elements to a window, menu items, opening files, page setup and print, dialog box elements, simple animation using copybits, horizontal scroll bar, and possibly some other things. I think it will crash if you change the current printer with the chooser while the program is running, then choose page setup or print. You may have to invoke the print command and/or the page setup command before changing the current printer to get it to crash. I used this program as a basis to create my map drawing software.

A "game." I'm not sure what to call it, but it isn't a full featured game by any means. Basically, you move around the edge of a board safely while "nasties" move around the center of a box. You gain points by moving out into the middle of the board and making a rectangle before returning to the edge. The area of the rectangle is added to your score. If one of the nasties cross the line you make, you loose lives.

Rectdraw and Sundance
These two programs are basically screen savers, except that they won't start on their own. Rectdraw works best on a 9 inch screen mac. It randomly draws rectangles of different sizes and shadings to the screen. On screens larger than 9 inches, it only draws to the top left corner of the screen. Sundance starts at the top left of the screen and draws a line from the corner to a random spot on the screen. This is repeated several times, then the starting point is moved around the edge of the screen in a clockwise direction one pixel at a time, drawing several lines from each edge point to random spots on the screen. Every time around, it redraws the entire screen to black and essentially starts over.
Both programs end when the mouse is clicked. Neither program properly redraws the entire screen, and at least part of the screen is still covered with whatever patterns the program drew. These disappear as you move windows around the screen.

This program gives you a DOS-like prompt, and returns silly responses when you type various DOS commands. The author (me) would like to remain anonymous. :-)

If you are interested in any of this stuff, please e-mail me at When you write, please let me know how you found my page and the address for your web page if you have one.
To the top of this page

Projects in Hypercard:
I have written many programs in Hypercard. Here are the most interesting.

My most successful Hypercard stack was written long after Hypercard has gone by the wayside. It imitates a deck of multiplication or addition cards for math practice, and has been used by my parents at a school they volunteer at. The teachers like the program as well. This program was written in the winter and spring of 2004.

A Screen Saver, which includes a message recording component
A Space invaders game (my first significant Hypercard project)
A "Blind Maze." No map, and everything looks the same. But their is a destination and there are pitfalls. You must simply find the correct destination. I have thought about making a contest out of this, with a prize for the first person to find the correct path to the exit. To be eligible for the prize, an entry fee is required.
A railroad cab simulation (very primitive)
A railroad dispatching simulation. I've written this one in Javascript as well. Click here to go to it.

If you are interested in any of this stuff, please e-mail me at When you write, please let me know how you found my page and the address for your web page if you have one.
To the top of this page

How I got into computers

In 6th grade, I had several computer lessons that involved Apple II's using the BASIC programming language. I did some programming on my own in addition to the school work. The following year I played games on Apple computers. After that, I barely touched a computer until I went to the computer lab in High School to start work on a research paper. Our school had all Macintosh, and it wasn't long before I discovered Hypercard. Hypercard was nearly solely responsible for developing my interest in programming, and in Macintosh computers in general. I soon discovered that there were things that you could do in Hypercard that you couldn't do unless you changed a certain setting, called user levels. The challenge of figuring this out helped spark my interest in the program. It took a while, but I eventually discovered that at the highest user level, a whole computer language was available to do nearly anything you wanted. During the course of a Christmas break, I studied this in depth, and developed a simple game, complete with animation, high score board, and other features.

I continued to do various things in Hypercard while taking the course of pursuing a Chemistry/Environmental Science degree in college. I was hoping to emphasize my degree on Environmental Science and Environmental issues, but the curriculum I was taking emphasized Chemistry. After a year of Inorganic Chemistry which I got through ok, and a semester of Organic chemistry which I ended up failing, I decided to try computer science. I got an A in the introductory course, and at that point, I realized that this was what I should be doing. It wasn't just the A, but also the fact that I enjoyed the work in the course, especially since many of the things I learned had parallels in Hypercard, and many of the things discussed in the course I already knew because of my experience with Hypercard. I remained quite fond of Hypercard, and worked it into numerous projects in several different courses as I worked through my computer classes. I still find Hypercard to be a useful tool, and I still enjoy using it.

I have also programmed in other languages as a hobby. In 1994 during my first summer at Silver Bay, I programmed in the C language and made an effort to learn the Macintosh Toolbox. The Macintosh Toolbox is a set of procedures that can be called from within the C language as well as other languages. By calling these functions, the various features of the Mac interface can be used in an individual program. Those familiar with the Mac interface understand the importance of the Apple menu items always being in the Apple menu (putting them there requires a specific function call from within your code). And those who understand Mac programming will understand the amusement I got when I learned that by simply moving a line of code to another place, I was able to load all the Apple menu items into the File menu!

I have come to realize that there is little need for programming at this level for the vast majority of people, even computer people. This is because software already exists to handle most business and other functions. Specialized software for business is often best met with a powerful database tool, and other specialized software usually doesn't find widespread application. While I highly admire the people who know how to do this and do it well, and while I have gotten my hands wet at doing it, I have realized that it is not a very productive use of my time to develop applications at this level unless the application is going to be used by millions of people, which is highly unlikely for anything that I might ever write, unless I am writing the software with other professionals who themelves or their associates intend to bring the software to mass market.

My familiarity with the Mac makes me more productive when using it for my personal computer needs than any other computer platform.

To the top of this page

Why Macintosh?

I feel the Macintosh needs no justification. Those who use it understand why they do. It can be for any of a huge number of different reasons. Many have attacked it and predicted Apple's doom from day one, yet Apple and the Mac are still here and doing well. There's no law saying you have to use a Mac, and there's no law saying you can't, nor should there be. This is a free country. So why do people get so upset over the issue? For the most part, it simply isn't worth my time arguing over it!

Nevertheless, here are some obvious reasons:

better interface,
more consistent programs: all programs share a similar organizational style
Backward Compatibility: Some programs I haven't upgraded in over 10 years!
generally more reliable hardware: Some Macintosh machines I and others have are at least 10 years old, yet they still work and still do useful things
higher resale value
resistance to Microsoft
desktop publishing and graphics arts design
Fewer viruses: Most Mac viruses are relatively harmless, and there aren't nearly as many as PC's are plagued with
MacOS X: Provides the ability to run Unix as well as Mac OS applications
To the top of this page

Offline Macintosh stuff:

I have some text files kept offline that contain information related to Macintosh computers on the following topics. If you want me to send you any of these files, please send e-mail to When you write, please let me know how you found my web site and the address for your web page if you have one.

  Fun stuff related to the Mac
  Much more, but not necessarily useful stuff
To the top of this page

Back to Bill's home page.