Stream much. I try not to. I wonder if there are others too that feel that one way to simplify their lives is to have more local content, stream less and rely less on outside data that we have no control over. I talk about some of the things that I have done in this regard.
Continues…Having gone back through my programming archives, I found numerous game concepts that I had tried out back in the early 1990’s but ultimately abandoned. Writing code quickly in order to quickly find out what sticks became the programming methodology that I followed.
Continues…I recently gathered together the code and tools that I used to create my commercial games for Casady & Greene and created a disk image (suitable for emulators) on GitHub. The experience brought to mind memories of the early 1990’s and the small software company of Casady & Greene.
Continues…Went on a quest to try to recover my old Soft Dorothy shareware game code and build files. I took a dive into emulators, had to repair a SCSI hard drive, used some modern hardware for vintage Macs … success. Now I can code again like it’s 1989.
Continues…With over 400 digital stereo images to work through, I decided to write an app to make the creation of old-fashioned stereoscopic cards a bit easier. And A.I. helped.
Continues…Full-size virtual pinball cabinets are expensive to purchase or difficult to build yourself (and even then, expensive). Here I put together a kind of partial virtual pinball controller, a Quarter-Cab if you will. Hopefully those new to wood working will not find this too intimidating. And I did what I could to keep Phase I of the controller affordable. Here’s how to build it.
Continues…I did a six part series of what I learned scripting virtual pinball tables for VPX (Visual Pinball X). The links to those posts follow:
Part 1 (Teacher’s Pet)Excuse the title, but as I understand it pinhead is a term of pride used by the community of pinball collectors and “obsessors”. I guess I count myself among them now — certainly with regard to virtual pinball but increasingly with regard to pinball in general. In fact I think virtual pinball will probably invariably do that to someone that starts to steep themselves in the hobby.
There’s nothing virtual though about the large pinball cabinet that now lives in my basement — though it plays virtual pinball it’s no smaller than the real thing. This is about how discovering a piece of open-source software lead me to commit three months of labor (and who knows how much cash) to chase virtual pinball. Take this as either a gentle introduction to virtual pinball or perhaps a cautionary tale.
Continues…The Cherry Mash candy bar was common in Kansas City when my sister and I were kids. For unknown reasons I took to working with the candy bar for a couple of art pieces.
For this piece I wanted to create a print that had a pop-art feel — as though screen-printed with just three colors and conspicuously half-toned. I had some ideas for approaching it unconventionally and I write about the experiment here.
Continues…Op-Amps (operational amplifiers) are integrated circuits that have been a bit annoying to work with in the past for me. Often they require rather odd power requirements — frequently positive and negative 9-volt power rails. I’ve bread-boarded op-amp circuits in the past and ended up with a couple of 9V batteries hanging off the end of the breadboard. It worked but was not ideal.
Here I create a small PCB that attaches to a breadboard and makes prototyping with op-amp chips much easier.
Continues…Maybe you know about the early (first?) 6502-based computer, the KIM-1 from 1976. I recently built a replica (the PAL-1) and wanted to flip through some of the original documentation. Fortunately archive.org has quite a bit of early KIM-1 texts.
I pulled down the KIM-1 Users Manual as a PDF but after printing it out and comb-binding it, I decided I would rather have a more polished softbound version so I created a book project on Lulu.
The PDF was suprisingly clean, only the cover was a let-down. So I used my favorite vector-based drawing app, Affinity Designer, and recreated the front and back covers.
Shipping is such a factor in the cost that I went ahead and had Lulu print up eight extras. I went ahead and set up a Tindie site to sell the extra copies.
I retired a year and a half ago after having worked for twenty-six years as a programmer for Apple. I’m not sure which would have been more surprising: if I had continued programming in my spare time after I had retired or if I never programmed again.
Continues…Adam74 is a small ASCII terminal intended for hobbyist 8-bit computers. It has a simple, vintage-style interface: 7 pins for 7-bits of ASCII data and another "strobe" pin to tell the Adam74 to add the character to its buffer and display it. Special control characters allow cursor movement, etc. You can select either amber or green text — inverted text is supported as well.
I go into more detail here:…I found out though that bringing in a bound book of your source code to the interview is rather unusual. When I sat down in a small conference room across from two Apple engineers and put my Glider book between us, there were smiles and looks of surprise from the interviewers. That it turned out to be a conversation starter was a happy accident…
More…I was putting together a jigsaw puzzle the other day and it suddenly took me back to over twenty years ago when I was putting together another jigsaw puzzle — or I should say I was helping several people put together. That jigsaw puzzle was an enormous one, perhaps 5000 pieces that someone at work had deposited on a very large table in one of the common areas.
Continues…Mooncraft 2000 is a web-based lunar "voxel" game. It uses a classic 90’s game algorithm to render a voxel-like terrain. I wrote it in Javascript using the HTML5 Canvas.
The Moon terrain is accurate — I began with NASA data. The game-play is straight-forward: you move cargo from one lunar base to another gaining in rank as you do so. Beginning as a lowly Apprentice, you try to learn to fly, manage fuel and move enough cargo to get to Journeyman and then, if you persist, Master class.
I begin a series of posts on how the code works and the process I went through in creating the game here…
Tom Dowdy was a software engineer at Apple back in 1995 when I was still writing Macintosh games in Lawrence, Kansas. One of his programming responsibilities was to maintain Apple’s SimpleText (aka TeachText) application (see document icon above) — a basic text editor that shipped with the Macintosh. He was also the tech-lead (technical leader) for the graphics component of Apple’s newest graphics framework called Quickdraw GX.
Continues…SystemSix is a small desk accessory sort of thing written in Python running on a Raspberry Pi and driving a small e-ink display. It fetches your calendar events and the local weather and displays them with the look of an early Macintosh running, of course, the System 6 operating system.
It changes the "desktop" from day to day, has several possible layouts, over 100 icons of classic apps it selects from. If your first Mac was from this era, it should bring back fond memories when you check on it in the morning and see what surprises it has for you.
Note: I know it looks interactive, but I assure you it is static, changing the desktop only once a day.
Sources and an instructive README.md are available on GitHub if you want to build/run your own.
More in depth detail on how I put together SystemSix here.
Some years ago I had written a sort of "Card Engine" framework to make card games like solitaire easy to write. I think I enjoyed is as an exercise in designing a framework, an API.
Rather than the playing card being the sort of fundamental class of the Card Engine
,
it was what I called the "Stack" or CardStack
object, representing a stack, pile, or
tableau of playing cards that really was primary.
To be sure, there was a Card
class and the CardStack
acted as a container
for Card
s. But the more significant methods that really implement the progression of a
card game were on the CardStack
objects: methods like CardStack.shuffle()
,
CardStack.dealTopCard(toStack:)
, etc.
I wanted to learn Javascript some years back so I wrote a couple of variations of solitaire for the web. The result ended up being Kardland.
I won’t go any further into the weeds describing the classes. Suffice it to say that Kardland was the result of my taking this "Card Engine", more or less, and rewriting it in JavaScript as a way of trying to learn JavaScript.
I put the sources to Kardland on my GitHub page.
Don’t laugh at the name, it was the best domain name I could think of that was available at the time.
Or, you know, if you just want to play a game of solitaire online, you could go to Kardland.
The sign-up/sign-in is broken since I just moved to a new server. You can still play the solitaire games though. I’ll try to get the backend wired up again soon.
My name is John Calhoun. I discovered computer programming around 1980 when I was in high school. Sometime in college, second half of the 1980’s, I got an Apple Macintosh computer and fell in love with both the hardware and software. It was then that I began to really program.
In learning how to program my Mac Plus, I wrote some shareware games. One of these, Glider, I rewrote commercially for a small company, Casady & Greene, Inc. (based in Salinas, California). After it was published, I turned to programming full-time.
Mid-1990’s I was hired by Apple Computer (now Apple, Inc.) and moved from Kansas to California where I married, raised a family and worked for the next 26 years.
I just left Apple and have returned to the midwest. Perhaps I will go back to writing shareware?