Dr. Lex' HyperCard section

What is HyperCard?About my HC StacksSome HyperCard related linksThe Stacks

What is HyperCard?

HyperCard IconHyperCard, created by Bill Atkinson and released for the first time in 1987 by Apple Computer, is considered by many as one of the precursors of the World Wide Web. HyperCard stacks consist of cards, which are arranged in backgrounds. Cards can contain fields, buttons and graphics. Each object, like cards, buttons, fields and even the stack itself can have scripts which perform actions when triggered by events like a mouse click, a keystroke, … or commands from other objects, stacks or even applications. This allows the user to ‘link’ cards and stacks to each other, which was an inspiration for Tim Berners-Lee, the inventor of the World Wide Web, to invent the concept of webpages with hyperlinks.

HyperCard however, is far more than that. This entire site is created in a program written in HyperCard. HyperCard was very popular with schools and persons related to education, because it allowed to make educational applications with the greatest of ease. It also has pretty powerful built-in mathematical functions. Actually, HyperCard allows to make applications in a very short time. E.g. you could want to compare two large text files byte by byte. If you would need to program this with a decent user interface, in a language like C, you'd be busy for at least an hour. I programmed such an application in 10 minutes in HyperCard. The drawback is that the result is much slower than a C program, because HyperTalk (the scripting language of HyperCard) is not compiled, but interpreted upon execution. But for many applications where speed is not crucial, HyperCard may be the easiest and fastest way of implementation. The fact that it is not compiled also allows to make changes immediately: you can enter the debugger at any time while running a HC stack, and modify the scripts on-the-fly.

You probably didn't know that Cyan's succesful game ‘Myst’ was developed in HyperCard. The first episode (“Myst” itself) was even released as a standalone HC application. By using HyperCard, the developers could focus on the graphics and puzzles themselves instead of pondering how to implement them in a computer program — that was just a matter of writing some HyperTalk scripts, which are closer to plain English as any other script language.

Unfortunately, Apple has discontinued the development of HyperCard after the last version, 2.4.1, in 1998. This also means that HC was not ported to OS X. It still runs under the Classic environment, but can't take profit of any of the new technologies. The Classic environment has in the meantime also been discontinued. Despite many requests by fervent users, there also don't seem to be any plans to restart the HC project. That is really a pity, because for a long time there has not been anything that comes anywhere near to it. The only option to run HyperCard nowadays is to use a classic Mac OS emulator like SheepShaver.

Revolution and LiveCode

Luckily, HyperCard never really died. A company called Runtime Revolution acquired the MetaCard engine which was a proprietary ‘clone’ of Hypercard. They used it as a basis for the cross-platform “Revolution” development system, which was later on renamed to “LiveCode”. Although based on an entirely different platform and non-trivial HyperCard stacks cannot be simply opened and run in LiveCode, it is very similar to HyperCard. In 2013, a free and open source version ‘LiveCode Community Edition’ was released. I never really looked into it because I moved on to different platforms during the hiatus while HyperCard was pretty much dead and LiveCode was not fully developed. However, LiveCode is certainly worth checking out for anyone interested in HyperCard and rapid application development.

About my HC Stacks

During the more than 9 years that I worked with HyperCard, I created lots of stacks which performed tasks that would otherwise consume huge amounts of time. Most of these stacks have never left my hard disk, others are available as shareWare or freeWare applications:

Some day, someone in a HyperCard mailing list suggested to make those other stacks, the ones that normally never leave my Mac's hard disk, available too. And indeed, this may be a good idea. Although some of these stacks are not really “release quality”, most likely lots of other people will find them useful, or find good scripting examples in them. So I made the most interesting stacks available here too… They are all freeWare of course!

I haven't checked these in a long time, most likely some of them are dead.


The Stacks

StuffIt Expander 5.1 or newer is required to unStuff most of the archives. It can be downloaded from the Aladdin Systems website.
If you have problems downloading the files, make sure your browser is properly set up for files with extension “.sit”.

If anyone feels like porting these stacks to LiveCode, you are free to do so. The only catch is that you cannot sell the result for money and you must mention my name when distributing the stack, or in the stack itself. Porting may be difficult or impossible for the stacks that rely on XCMDs, unless the functionality has been added to LiveCode itself.

ToTopAlphabetStats

This stack takes any text as input and counts the occurences of all characters of the alphabet in it. It can draw a graph of the result, and sort the data so you actually get a list of the characters, sorted in order of frequency. For example, for 60K of various English texts, the frequency order was: " etaoinsrhdlcum*fwpygb.,kvjxq!z?", with "*" representing all other characters (like "()/-&:...). Of course the order of characters in such a list will differ from text to text, and from language to language (the list for Dutch is "enatiordslgmhkuv*jwpbcz.,fy!x?q". Possible uses for this stack are cryptography (I used it to optimize a code script), or just for fun...
Download it (StuffIt format, 11K)

ToTopASCII Art

This stack can create an "ASCII representation" of large & fat b&w images. It's very primitive, but it works. Just don't move the mouse over the window when it's busy, or it'll leave ASCII trails.
Download it (StuffIt format, 6.5 K)

ToTopBinary Converter

This tiny stack, more than 5 years old, converts decimal numbers into binary numbers, and vice versa. For example, "1111011111010110111101101010111100011111100111" is the binary representation of 68125658433511. This was one of the first stacks where I really experienced that working with variables could seriously boost the speed of a stack compared to working with fields... Actually this version runs 16 times faster than its "prototype" which used lots of fields to do the calculation.
Download it (StuffIt format, 3.1 K)

ToTopDiskLibrary 1.0

This stack creates index cards for media like floppy disks, ZIP disks, Magneto-Optical disks, CD-ROMs, ... This allows you to search for files on these disks without having to mount them. In other words: no more disk-jockey situations if you forgot on which disk a certain file is!
For each disk, all file names are stored, together with some information like size, creation date... You can also type info texts for your files, which makes it even easier to find them back afterwards. You can export index cards to data files to share with other people, or as a backup... and all for free!
Download it (StuffIt format, 96 K)

ToTopLineFeedNuker 2.0

LineFeedNuker ScreenshotOne day I became so bored of all those Windoze files stuffed with linefeed characters, that I created this little stack which destroys these characters so you can read the files properly in SimpleText or other text viewers/editors. It also offers the option to convert the ASCII sets from Windows to Mac. To make it look less boring, I created a funky interface for it... Of course, if you have less than 256 colours it will switch to a boring black & white version automatically.
It also features a nice sound to play with all volume knobs turned open!
Download it (StuffIt format, 55 K)

ToTopMailinglist Mangler

A simple way to send messages to multiple people at once, is to use the "Bcc" field in your mail program, and put a comma-separated list of addresses in there. This stack makes it easy to create and modify such lists: you can open an existing list, add addresses to it, or scan other files for e-mail addresses and insert these into the list.
Download it (StuffIt format, 9 K)

ToTopMailStack 2.1

People who have an e-mail account which keeps the read & sent e-mail folders on the server will undoubtedly have noticed that the resulting mail files are extremely unhandy once you have downloaded them on your own computer: they just contain all e-mails after each other, with their full headers and attachments and so on. So I created this stack, which makes it easy to browse such files, with various options like ASCII conversion, header filtering and a very handy search function, which can search for text strings in a mail file (even boolean search), or in multiple files at once. People who keep their e-mail on their own hard disk may see no immediate use for this stack, unless their e-mail program doesn't have a decent search-in-all-mails function.
Version 2 requires much less memory to work, is faster, and offers lots of new features like opening of attachments, boolean search... Version 2.1 requires even less memory (60K will do for most operations), supports more file formats, and fixes some bugs.
Download it (StuffIt format, 62 K)

ToTopMath Stack

This stack may not be immediately practical to use on a regular basis, but for educational purposes or just to experiment with some mathematical concepts it may be interesting. It can perform basic operations on matrices, both in decimal and "fractional" mode (this means that all operations are performed using fractions, avoiding rounding errors); it also can do basic fraction operations and it can check if a number is a prime number, or search the first prime number following a certain number. For example, 2102356131827 is the first prime number following 2102356131733! The prime number algorithm is compiled into a blazing fast XFCN, so it shouldn't surprise you that the previous calculation didn't even take a second on an 8100/110 PowerMac.
Mind that this stack is not finished at all, but if it weren't usable in some way, I wouldn't have made it available here...
Download it (StuffIt format, 12 K)

ToTopThe Update 2.1

The Update screenshotThis HyperCard stack scans for files modified after a certain date and time, and copies them to a separate folder, or transfers them to a server via FTP. The main use for this stack is the updating of websites or other things which involve a lot of separate files, like all kinds of file collections and so on. By using presets, this can be done in a few seconds while it can take minutes to do the same thing manually!
To show that HyperCard stacks don't need to look dull black & white, I made a funky full colour interface for this stack (see screenshot). Of course, for the people with black & white screens or very little disk space, there is a "light" version too.
FTP transfer will only work on Mac OS 8.6 or newer. However, if you have an older OS, you can still use the local file copying method.
Version 2.1 introduces a log file and some other small enhancements.
Download it (Colour version, StuffIt format, 99 K)
Download it (B&W version, StuffIt format, 61 K)

ToTopYear Calendar 2.1

This stack just generates little year calendars, ideal to print out and put into your wallet, diary and so on. It can be printed in English, French, Spanish, German and Dutch. And yes, it's Y2K compliant (just like every Mac and Mac program since 1984.)
Download it (StuffIt format, 14 K)

©2001/08-2014/09 Alexander Thomas